From 8ff87578121f6dab6cf43ecd2ec842153e6b7fca Mon Sep 17 00:00:00 2001 From: Nho Quy Dinh Date: Wed, 20 Dec 2023 12:20:04 +0100 Subject: [PATCH] feat: Use alovoa-expo as official frontend for the web #284 --- .../sites-available/app.alovoa.com.conf | 30 + .../sites-available/beta.app.alovoa.com.conf | 30 + .../alovoa/config/SecurityConfig.java | 3 +- ...Resource.java => AdminSearchResource.java} | 33 +- .../nonononoki/alovoa/html/ApiResource.java | 398 ++++++--- .../alovoa/html/BlockedUsersResource.java | 56 -- .../alovoa/html/DeleteAccountResource.java | 22 +- .../alovoa/html/DislikedUsersResource.java | 56 -- .../alovoa/html/DonateResource.java | 43 - .../nonononoki/alovoa/html/IndexResource.java | 22 +- .../alovoa/html/LikedUsersResource.java | 56 -- .../nonononoki/alovoa/html/LoginResource.java | 13 +- .../alovoa/html/MessageResource.java | 103 --- .../alovoa/html/NotificationResource.java | 72 -- .../alovoa/html/PasswordResource.java | 25 +- .../html/ProfileOnboardingResource.java | 55 -- .../alovoa/html/ProfileResource.java | 2 - .../alovoa/html/RegisterResource.java | 64 -- .../alovoa/html/UserProfileResource.java | 102 --- .../repo/UserDeleteTokenRepository.java | 2 + .../alovoa/rest/Oauth2Controller.java | 11 +- .../alovoa/service/NotificationService.java | 4 - .../alovoa/service/PasswordService.java | 64 +- .../alovoa/service/RegisterService.java | 598 ++++++------- .../alovoa/service/SearchService.java | 15 +- .../alovoa/service/UserService.java | 14 +- src/main/resources/application.properties | 11 +- src/main/resources/i18n/messages.properties | 192 +--- .../resources/i18n/messages_de.properties | 2 +- .../resources/static/css/admin-search.css | 119 +++ src/main/resources/static/css/donate.css | 82 -- .../resources/static/css/lib/bulma.blue.css | 3 - .../resources/static/css/lib/bulma.orange.css | 3 - .../resources/static/css/lib/bulma.purple.css | 3 - .../resources/static/css/lib/leaflet.min.css | 6 - .../resources/static/css/message-detail.css | 94 -- .../resources/static/css/notification.css | 116 --- .../static/css/profile-onboarding.css | 157 ---- src/main/resources/static/css/profile.css | 96 -- src/main/resources/static/css/search.css | 261 ------ .../resources/static/css/snips/ui-angular.css | 3 - .../resources/static/css/user-profile.css | 79 -- src/main/resources/static/img/f-icon.svg | 13 - src/main/resources/static/img/g-icon.svg | 43 - .../resources/static/img/onboarding/LICENSE | 7 - .../img/onboarding/add-verification.svg | 157 ---- .../static/img/onboarding/description.svg | 148 ---- .../static/img/onboarding/genders.svg | 247 ------ .../static/img/onboarding/intention.svg | 505 ----------- .../static/img/onboarding/interests.svg | 205 ----- .../resources/static/img/onboarding/match.svg | 124 --- .../static/img/onboarding/profilepic.svg | 312 ------- .../static/img/onboarding/verification.svg | 271 ------ src/main/resources/static/js/admin-search.js | 85 ++ src/main/resources/static/js/admin.js | 2 +- src/main/resources/static/js/donate.js | 17 - .../static/js/lib/Mp3LameEncoder.min.js | 3 - .../static/js/lib/bulma-slider.min.js | 5 - .../resources/static/js/lib/cutter.min.js | 3 - .../resources/static/js/lib/leaflet.min.js | 6 - .../resources/static/js/message-detail.js | 100 --- src/main/resources/static/js/message.js | 20 - src/main/resources/static/js/notification.js | 3 - .../resources/static/js/password-reset.js | 36 - .../resources/static/js/profile-onboarding.js | 305 ------- src/main/resources/static/js/profile.js | 822 ------------------ .../resources/static/js/register-oauth.js | 48 - src/main/resources/static/js/register.js | 70 -- src/main/resources/static/js/search.js | 253 ------ .../static/js/tools/copy-clipboard.js | 29 - .../static/js/tools/get-notification.js | 74 -- .../resources/static/js/user-profile-lib.js | 162 ---- src/main/resources/static/js/user-profile.js | 17 - src/main/resources/static/sw.js | 44 +- .../resources/templates/admin-search.html | 57 ++ .../templates/admin-verification.html | 2 - src/main/resources/templates/admin.html | 6 +- .../resources/templates/blocked-users.html | 80 -- .../resources/templates/delete-account.html | 79 -- .../resources/templates/disliked-users.html | 80 -- src/main/resources/templates/donate-list.html | 4 +- src/main/resources/templates/donate.html | 76 -- src/main/resources/templates/faq.html | 4 +- src/main/resources/templates/fragments.html | 702 +-------------- src/main/resources/templates/imprint.html | 4 +- src/main/resources/templates/index.html | 8 +- src/main/resources/templates/liked-users.html | 78 -- src/main/resources/templates/login.html | 184 ++-- .../resources/templates/message-detail.html | 83 -- src/main/resources/templates/messages.html | 91 -- .../resources/templates/notification.html | 78 -- .../resources/templates/password-change.html | 108 ++- .../resources/templates/password-reset.html | 56 -- src/main/resources/templates/privacy.html | 4 +- .../templates/profile-onboarding.html | 137 --- src/main/resources/templates/profile.html | 630 -------------- .../resources/templates/register-oauth.html | 123 --- src/main/resources/templates/register.html | 177 ---- src/main/resources/templates/search.html | 153 ---- src/main/resources/templates/tos.html | 4 +- .../resources/templates/user-profile.html | 45 - .../alovoa/html/BlockedUsersResourceTest.java | 96 -- .../alovoa/html/DonateListResourceTest.java | 21 - .../alovoa/html/DonateResourceTest.java | 84 -- .../alovoa/html/MessageResourceTest.java | 114 --- .../alovoa/html/NotificationResourceTest.java | 98 --- .../alovoa/html/PasswordResourceTest.java | 1 - .../alovoa/html/RegisterResourceTest.java | 21 - .../alovoa/html/SearchResourceTest.java | 84 -- .../alovoa/html/UserProfileResourceTest.java | 110 --- 110 files changed, 1139 insertions(+), 9799 deletions(-) create mode 100644 scripts/root/etc/apache2/sites-available/app.alovoa.com.conf create mode 100644 scripts/root/etc/apache2/sites-available/beta.app.alovoa.com.conf rename src/main/java/com/nonononoki/alovoa/html/{SearchResource.java => AdminSearchResource.java} (63%) delete mode 100644 src/main/java/com/nonononoki/alovoa/html/BlockedUsersResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/DislikedUsersResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/DonateResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/LikedUsersResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/MessageResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/NotificationResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/ProfileOnboardingResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/RegisterResource.java delete mode 100644 src/main/java/com/nonononoki/alovoa/html/UserProfileResource.java create mode 100644 src/main/resources/static/css/admin-search.css delete mode 100644 src/main/resources/static/css/donate.css delete mode 100644 src/main/resources/static/css/lib/bulma.blue.css delete mode 100644 src/main/resources/static/css/lib/bulma.orange.css delete mode 100644 src/main/resources/static/css/lib/bulma.purple.css delete mode 100644 src/main/resources/static/css/lib/leaflet.min.css delete mode 100644 src/main/resources/static/css/message-detail.css delete mode 100644 src/main/resources/static/css/notification.css delete mode 100644 src/main/resources/static/css/profile-onboarding.css delete mode 100644 src/main/resources/static/css/profile.css delete mode 100644 src/main/resources/static/css/search.css delete mode 100644 src/main/resources/static/css/snips/ui-angular.css delete mode 100644 src/main/resources/static/css/user-profile.css delete mode 100644 src/main/resources/static/img/f-icon.svg delete mode 100644 src/main/resources/static/img/g-icon.svg delete mode 100644 src/main/resources/static/img/onboarding/LICENSE delete mode 100644 src/main/resources/static/img/onboarding/add-verification.svg delete mode 100644 src/main/resources/static/img/onboarding/description.svg delete mode 100644 src/main/resources/static/img/onboarding/genders.svg delete mode 100644 src/main/resources/static/img/onboarding/intention.svg delete mode 100644 src/main/resources/static/img/onboarding/interests.svg delete mode 100644 src/main/resources/static/img/onboarding/match.svg delete mode 100644 src/main/resources/static/img/onboarding/profilepic.svg delete mode 100644 src/main/resources/static/img/onboarding/verification.svg create mode 100644 src/main/resources/static/js/admin-search.js delete mode 100644 src/main/resources/static/js/donate.js delete mode 100644 src/main/resources/static/js/lib/Mp3LameEncoder.min.js delete mode 100644 src/main/resources/static/js/lib/bulma-slider.min.js delete mode 100644 src/main/resources/static/js/lib/cutter.min.js delete mode 100644 src/main/resources/static/js/lib/leaflet.min.js delete mode 100644 src/main/resources/static/js/message-detail.js delete mode 100644 src/main/resources/static/js/message.js delete mode 100644 src/main/resources/static/js/notification.js delete mode 100644 src/main/resources/static/js/password-reset.js delete mode 100644 src/main/resources/static/js/profile-onboarding.js delete mode 100644 src/main/resources/static/js/profile.js delete mode 100644 src/main/resources/static/js/register-oauth.js delete mode 100644 src/main/resources/static/js/register.js delete mode 100644 src/main/resources/static/js/search.js delete mode 100644 src/main/resources/static/js/tools/copy-clipboard.js delete mode 100644 src/main/resources/static/js/tools/get-notification.js delete mode 100644 src/main/resources/static/js/user-profile-lib.js delete mode 100644 src/main/resources/static/js/user-profile.js create mode 100644 src/main/resources/templates/admin-search.html delete mode 100644 src/main/resources/templates/blocked-users.html delete mode 100644 src/main/resources/templates/delete-account.html delete mode 100644 src/main/resources/templates/disliked-users.html delete mode 100644 src/main/resources/templates/donate.html delete mode 100644 src/main/resources/templates/liked-users.html delete mode 100644 src/main/resources/templates/message-detail.html delete mode 100644 src/main/resources/templates/messages.html delete mode 100644 src/main/resources/templates/notification.html delete mode 100644 src/main/resources/templates/password-reset.html delete mode 100755 src/main/resources/templates/profile-onboarding.html delete mode 100644 src/main/resources/templates/profile.html delete mode 100644 src/main/resources/templates/register-oauth.html delete mode 100644 src/main/resources/templates/register.html delete mode 100644 src/main/resources/templates/search.html delete mode 100644 src/main/resources/templates/user-profile.html delete mode 100644 src/test/java/com/nonononoki/alovoa/html/BlockedUsersResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/DonateListResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/DonateResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/MessageResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/NotificationResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/RegisterResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/SearchResourceTest.java delete mode 100644 src/test/java/com/nonononoki/alovoa/html/UserProfileResourceTest.java diff --git a/scripts/root/etc/apache2/sites-available/app.alovoa.com.conf b/scripts/root/etc/apache2/sites-available/app.alovoa.com.conf new file mode 100644 index 00000000..c8dad9fc --- /dev/null +++ b/scripts/root/etc/apache2/sites-available/app.alovoa.com.conf @@ -0,0 +1,30 @@ + + ServerName app.alovoa.com + Redirect permanent / https://app.alovoa.com/ +RewriteEngine on +RewriteCond %{SERVER_NAME} =app.alovoa.com +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + + + ServerName www.app.alovoa.com + Redirect permanent / https://app.alovoa.com/ +RewriteEngine on +RewriteCond %{SERVER_NAME} =www.app.alovoa.com +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + + + ServerName app.alovoa.com + SSLEngine On + SSLProxyEngine On + SSLProxyVerify none + SSLProxyCheckPeerCN off + SSLProxyCheckPeerName off + ProxyPass / https://127.0.0.1:10080/ + ProxyPassReverse / https://127.0.0.1:10080/ + RequestHeader set X-Forwarded-Proto https + RequestHeader set X-Forwarded-Port 443 + ProxyPreserveHost On + Include /etc/letsencrypt/options-ssl-apache.conf + SSLCertificateFile /etc/letsencrypt/live/alovoa.com/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/alovoa.com/privkey.pem + diff --git a/scripts/root/etc/apache2/sites-available/beta.app.alovoa.com.conf b/scripts/root/etc/apache2/sites-available/beta.app.alovoa.com.conf new file mode 100644 index 00000000..ff63acad --- /dev/null +++ b/scripts/root/etc/apache2/sites-available/beta.app.alovoa.com.conf @@ -0,0 +1,30 @@ + + ServerName beta.app.alovoa.com + Redirect permanent / https://beta.app.alovoa.com/ +RewriteEngine on +RewriteCond %{SERVER_NAME} =beta.app.alovoa.com +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + + + ServerName www.beta.app.alovoa.com + Redirect permanent / https://beta.app.alovoa.com/ +RewriteEngine on +RewriteCond %{SERVER_NAME} =www.beta.app.alovoa.com +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + + + ServerName beta.app.alovoa.com + SSLEngine On + SSLProxyEngine On + SSLProxyVerify none + SSLProxyCheckPeerCN off + SSLProxyCheckPeerName off + ProxyPass / https://127.0.0.1:10081/ + ProxyPassReverse / https://127.0.0.1:10081/ + RequestHeader set X-Forwarded-Proto https + RequestHeader set X-Forwarded-Port 443 + ProxyPreserveHost On + Include /etc/letsencrypt/options-ssl-apache.conf + SSLCertificateFile /etc/letsencrypt/live/alovoa.com/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/alovoa.com/privkey.pem + diff --git a/src/main/java/com/nonononoki/alovoa/config/SecurityConfig.java b/src/main/java/com/nonononoki/alovoa/config/SecurityConfig.java index 8e03b96e..c6ef26f1 100644 --- a/src/main/java/com/nonononoki/alovoa/config/SecurityConfig.java +++ b/src/main/java/com/nonononoki/alovoa/config/SecurityConfig.java @@ -95,7 +95,8 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .requestMatchers("/password/**").permitAll().requestMatchers("/favicon.ico").permitAll().requestMatchers("/sw.js") .permitAll().requestMatchers("/robots.txt").permitAll().requestMatchers("/.well-known/assetlinks.json") .permitAll().requestMatchers("/text/*").permitAll().requestMatchers("/manifest/**").permitAll() - .requestMatchers("/fonts/**").permitAll().requestMatchers("/error").permitAll() + .requestMatchers("/fonts/**").permitAll().requestMatchers("/error").permitAll().requestMatchers("/info").permitAll() + .requestMatchers("/user/delete-account-confirm").permitAll() .anyRequest().authenticated().and().formLogin().loginPage("/login").and().logout() .deleteCookies(COOKIE_SESSION, COOKIE_REMEMBER).logoutUrl("/logout").logoutSuccessUrl("/?logout").and() diff --git a/src/main/java/com/nonononoki/alovoa/html/SearchResource.java b/src/main/java/com/nonononoki/alovoa/html/AdminSearchResource.java similarity index 63% rename from src/main/java/com/nonononoki/alovoa/html/SearchResource.java rename to src/main/java/com/nonononoki/alovoa/html/AdminSearchResource.java index a6172344..b9ca7952 100644 --- a/src/main/java/com/nonononoki/alovoa/html/SearchResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/AdminSearchResource.java @@ -27,9 +27,9 @@ import java.util.List; @Controller -public class SearchResource { +public class AdminSearchResource { - public static final String URL = "/search"; + public static final String URL = "/admin-search"; @Autowired private AuthService authService; @Autowired @@ -42,9 +42,6 @@ public class SearchResource { private int donationModulus; @Value("${app.donation.popup.time}") private int donationPopupTime; - @Value("${app.search.max.distance}") - private int searchMaxDistance; - @GetMapping(URL) public ModelAndView search() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, @@ -52,35 +49,15 @@ public ModelAndView search() throws AlovoaException, InvalidKeyException, Illega UnsupportedEncodingException { User user = authService.getCurrentUser(true); - if (!user.isAdmin() && user.getProfilePicture() == null && user.getDescription() == null) { - return new ModelAndView("redirect:" + ProfileOnboardingResource.URL); + if (!user.isAdmin()) { + throw new AlovoaException("not authorized"); } user.setNumberSearches(user.getNumberSearches() + 1); userRepo.saveAndFlush(user); - boolean showDonationPopup = false; - if (user.getNumberSearches() % donationModulus == 0) { - - List userDonations = user.getDonations(); - if (userDonations != null && !userDonations.isEmpty()) { - UserDonation lastDonation = Collections.max(userDonations, Comparator.comparing(UserDonation::getDate)); - Date date = new Date(); - long ms = lastDonation.getDate().getTime(); - long diff = date.getTime() - ms; - - if (diff >= donationPopupTime) { - showDonationPopup = true; - } - } else { - showDonationPopup = true; - } - } - - ModelAndView mav = new ModelAndView("search"); + ModelAndView mav = new ModelAndView("admin-search"); mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - mav.addObject("showDonationPopup", showDonationPopup); - mav.addObject("searchMaxDistance", searchMaxDistance); return mav; } } diff --git a/src/main/java/com/nonononoki/alovoa/html/ApiResource.java b/src/main/java/com/nonononoki/alovoa/html/ApiResource.java index b3ebeffe..4ef301e2 100644 --- a/src/main/java/com/nonononoki/alovoa/html/ApiResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/ApiResource.java @@ -1,132 +1,294 @@ package com.nonononoki.alovoa.html; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.Map; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; - +import com.fasterxml.jackson.core.JsonProcessingException; +import com.nonononoki.alovoa.Tools; +import com.nonononoki.alovoa.component.ExceptionHandler; +import com.nonononoki.alovoa.component.TextEncryptorConverter; +import com.nonononoki.alovoa.entity.User; +import com.nonononoki.alovoa.entity.user.*; +import com.nonononoki.alovoa.model.AlovoaException; +import com.nonononoki.alovoa.model.ConversationDto; +import com.nonononoki.alovoa.model.NotificationDto; +import com.nonononoki.alovoa.model.UserDto; +import com.nonononoki.alovoa.repo.*; +import com.nonononoki.alovoa.service.AuthService; +import com.nonononoki.alovoa.service.UserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.server.ResponseStatusException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.nonononoki.alovoa.model.AlovoaException; +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import java.io.UnsupportedEncodingException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.util.*; @RestController @RequestMapping("/api/v1/resource") public class ApiResource { - @Autowired - private DonateResource donateResource; - - @Autowired - private MessageResource messageResource; - - @Autowired - private NotificationResource notificationResource; - - @Autowired - private ProfileResource profileResource; - - @Autowired - private SearchResource searchResource; - - @Autowired - private UserProfileResource userProfileResource; - - @Autowired - private ProfileOnboardingResource profileOnboardingResource; - - @Autowired - private LikedUsersResource likedUsersResource; - - @Autowired - private DislikedUsersResource dislikedUsersResource; - - @Autowired - private BlockedUsersResource blockedUsersResource; - - @GetMapping("/donate") - public Map resourceDonate() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return donateResource.donate().getModel(); - } - - @GetMapping("/chats") - public Map resourceChats() - throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return messageResource.chats().getModel(); - } - - @GetMapping("/chats/{id}") - public Map resourceChatsDetail(@PathVariable long id) throws JsonProcessingException, - InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return messageResource.chatsDetail(id).getModel(); - } - - @GetMapping("/alerts") - public Map resourceNotification() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return notificationResource.notification().getModel(); - } - - @GetMapping("/profile") - public Map resourceProfile() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return profileResource.profile().getModel(); - } - - @GetMapping("/profile/view/{idEncoded}") - public Map resourceProfileView(@PathVariable String idEncoded) throws JsonProcessingException, - InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return userProfileResource.profileView(idEncoded).getModel(); - } - - @GetMapping("/search") - public Map resourceSearch() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return searchResource.search().getModel(); - } - - @GetMapping("/user/onboarding") - public Map userOnboarding() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return profileOnboardingResource.onboarding().getModel(); - } - - @GetMapping("/blocked-users") - public Map blockedUsers() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return blockedUsersResource.blockedUsers().getModel(); - } - - @GetMapping("/liked-users") - public Map likedUsers() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return likedUsersResource.likedUsers().getModel(); - } - - @GetMapping("/disliked-users") - public Map dislikedUsers() throws JsonProcessingException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return dislikedUsersResource.dislikedUsers().getModel(); - } + @Autowired + private UserRepository userRepo; + + @Autowired + private ProfileResource profileResource; + + @Autowired + private AdminSearchResource searchResource; + + @Autowired + private GenderRepository genderRepo; + + @Autowired + private UserIntentionRepository userIntentionRepo; + + @Autowired + private ConversationRepository conversationRepo; + + @Autowired + private UserBlockRepository userBlockRepo; + + @Autowired + private AuthService authService; + + @Autowired + private UserService userService; + + @Autowired + private TextEncryptorConverter textEncryptor; + + private static final long MAX_RESULTS = 50; + + @Value("${app.media.max-size}") + private int mediaMaxSize; + + @Value("${app.interest.max}") + private int interestMaxSize; + + @GetMapping("/donate") + public Map resourceDonate() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + ModelMap map = new ModelMap(); + User user = authService.getCurrentUser(true); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } + + @GetMapping("/chats") + public Map resourceChats() + throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, + NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + ModelMap map = new ModelMap(); + User user = authService.getCurrentUser(true); + user.getDates().setMessageCheckedDate(new Date()); + userRepo.saveAndFlush(user); + List convos = new ArrayList<>(); + List conversations = conversationRepo.findByUsers_Id(user.getId()); + for (Conversation c : conversations) { + if (!c.isBlocked(userBlockRepo)) { + convos.add(ConversationDto.conversationToDto(c, user, textEncryptor)); + } + } + + convos.sort((ConversationDto a, ConversationDto b) -> b.getLastUpdated().compareTo(a.getLastUpdated())); + + map.addAttribute("conversations", convos); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } + + @GetMapping("/chats/{id}") + public Map resourceChatsDetail(@PathVariable long id) throws JsonProcessingException, + InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, + NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + ModelMap map = new ModelMap(); + User user = authService.getCurrentUser(true); + Conversation c = conversationRepo.findById(id).orElse(null); + + if (c == null) { + throw new AlovoaException("conversation_not_found"); + } + + if (!c.containsUser(user)) { + throw new AlovoaException("user_not_in_conversation"); + } + + User u = c.getPartner(user); + + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + map.addAttribute("convoId", id); + map.addAttribute("partner", UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); + + c.setLastOpened(new Date()); + conversationRepo.saveAndFlush(c); + return map; + } + + @GetMapping("/alerts") + public Map resourceNotification() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + ModelMap map = new ModelMap(); + User user = authService.getCurrentUser(true); + user.getDates().setNotificationCheckedDate(new Date()); + userRepo.saveAndFlush(user); + List nots = user.getNotifications(); + List notifications = new ArrayList<>(); + for (int i = 0; i < nots.size(); i++) { + UserNotification n = nots.get(i); + + boolean blockedMe = user.getBlockedByUsers().stream() + .anyMatch(b -> b.getUserFrom().getId().equals(n.getUserFrom().getId())); + boolean blockedYou = user.getBlockedUsers().stream() + .anyMatch(b -> b.getUserTo().getId().equals(n.getUserFrom().getId())); + + if (!blockedMe && !blockedYou) { + NotificationDto dto = NotificationDto.notificationToNotificationDto(n, user, userService, textEncryptor); + notifications.add(dto); + } + } + + notifications.sort((NotificationDto a, NotificationDto b) -> b.getDate().compareTo(a.getDate())); + + map.addAttribute("notifications", notifications); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } + + @GetMapping("/profile") + public Map resourceProfile() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + return profileResource.profile().getModel(); + } + + @GetMapping("/profile/view/{idEncoded}") + public Map resourceProfileView(@PathVariable String idEncoded) throws JsonProcessingException, + InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, + NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + Optional idOptional = UserDto.decodeId(idEncoded, textEncryptor); + if (idOptional.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND); + } + + Long id = idOptional.get(); + User userView = userRepo.findById(id).orElse(null); + User user = authService.getCurrentUser(true); + + if (user.getId().equals(id)) { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + + if (userView != null) { + if (userView.getBlockedUsers().stream().filter(o -> o.getUserTo() != null).anyMatch(o -> o.getUserTo().getId().equals(user.getId()))) { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + + if (userView.isDisabled()) { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + + ModelMap map = new ModelMap(); + + userView.setNumberProfileViews(userView.getNumberProfileViews() + 1); + userView = userRepo.saveAndFlush(userView); + + UserDto userDto = UserDto.userToUserDto(userView, user, userService, textEncryptor, UserDto.ALL); + UserDto currUserDto = UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA); + + map.addAttribute("user", userDto); + map.addAttribute("currUser", currUserDto); + map.addAttribute("compatible", Tools.usersCompatible(user, userView)); + + return map; + + } else { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + } + + @GetMapping("/search") + public Map resourceSearch() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + return searchResource.search().getModel(); + } + + @GetMapping("/user/onboarding") + public Map userOnboarding() throws AlovoaException { + User user = authService.getCurrentUser(true); + int age = Tools.calcUserAge(user); + boolean isLegal = age >= Tools.AGE_LEGAL; + ModelMap mav = new ModelMap(); + mav.addAttribute("genders", genderRepo.findAll()); + mav.addAttribute("intentions", userIntentionRepo.findAll()); + mav.addAttribute("isLegal", isLegal); + mav.addAttribute("mediaMaxSize", mediaMaxSize); + mav.addAttribute("interestMaxSize", interestMaxSize); + return mav; + } + + @GetMapping("/blocked-users") + public Map blockedUsers() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + User user = authService.getCurrentUser(true); + ModelMap map = new ModelMap(); + List userBlocks = user.getBlockedUsers(); + List blockedUsers = userBlocks.stream().sorted(Comparator.comparing(UserBlock::getDate).reversed()) + .limit(MAX_RESULTS).map(UserBlock::getUserTo).toList(); + List users = new ArrayList<>(); + for (User u : blockedUsers) { + users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); + } + map.addAttribute("users", users); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } + + @GetMapping("/liked-users") + public Map likedUsers() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + User user = authService.getCurrentUser(true); + ModelMap map = new ModelMap(); + List userLikes = user.getLikes(); + List likedUsers = userLikes.stream().sorted(Comparator.comparing(UserLike::getDate).reversed()) + .limit(MAX_RESULTS).map(UserLike::getUserTo).toList(); + List users = new ArrayList<>(); + for (User u : likedUsers) { + users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); + } + map.addAttribute("users", users); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } + + @GetMapping("/disliked-users") + public Map dislikedUsers() throws JsonProcessingException, InvalidKeyException, + IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, + InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { + User user = authService.getCurrentUser(true); + ModelMap map = new ModelMap(); + List userDislikes = user.getHiddenUsers(); + List dislikedUsers = userDislikes.stream().sorted(Comparator.comparing(UserHide::getDate).reversed()) + .limit(MAX_RESULTS).map(UserHide::getUserTo).toList(); + List users = new ArrayList<>(); + for (User u : dislikedUsers) { + users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); + } + map.addAttribute("users", users); + map.addAttribute("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); + return map; + } } diff --git a/src/main/java/com/nonononoki/alovoa/html/BlockedUsersResource.java b/src/main/java/com/nonononoki/alovoa/html/BlockedUsersResource.java deleted file mode 100644 index c88def7c..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/BlockedUsersResource.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserBlock; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -@Controller -public class BlockedUsersResource { - - private static final long MAX_RESULTS = 50; - @Autowired - private AuthService authService; - @Autowired - private UserService userService; - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/blocked-users") - public ModelAndView blockedUsers() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - - User user = authService.getCurrentUser(true); - ModelAndView mav = new ModelAndView("blocked-users"); - List userBlocks = user.getBlockedUsers(); - List blockedUsers = userBlocks.stream().sorted(Comparator.comparing(UserBlock::getDate).reversed()) - .limit(MAX_RESULTS).map(UserBlock::getUserTo).toList(); - List users = new ArrayList<>(); - for (User u : blockedUsers) { - users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); - } - mav.addObject("users", users); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/DeleteAccountResource.java b/src/main/java/com/nonononoki/alovoa/html/DeleteAccountResource.java index 3bce4cb4..191aa5a6 100644 --- a/src/main/java/com/nonononoki/alovoa/html/DeleteAccountResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/DeleteAccountResource.java @@ -28,12 +28,6 @@ @RequestMapping("/") public class DeleteAccountResource { - @Autowired - private AuthService authService; - - @Autowired - private UserService userService; - @Autowired private TextEncryptorConverter textEncryptor; @@ -41,23 +35,9 @@ public class DeleteAccountResource { private long accountDeleteDuration; @GetMapping("/delete-account/{tokenString}") - public ModelAndView deleteAccount(@PathVariable String tokenString) throws AlovoaException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException { - User user = authService.getCurrentUser(true); - + public ModelAndView deleteAccount(@PathVariable String tokenString) { ModelAndView mav = new ModelAndView("delete-account"); mav.addObject("tokenString", tokenString); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - - UserDeleteToken token = user.getDeleteToken(); - boolean active = false; - long ms = new Date().getTime(); - if (token != null && token.getDate().getTime() + accountDeleteDuration >= ms) { - active = true; - } - mav.addObject("active", active); - return mav; } } diff --git a/src/main/java/com/nonononoki/alovoa/html/DislikedUsersResource.java b/src/main/java/com/nonononoki/alovoa/html/DislikedUsersResource.java deleted file mode 100644 index 38ba0e2a..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/DislikedUsersResource.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserHide; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -@Controller -public class DislikedUsersResource { - - private static final long MAX_RESULTS = 50; - @Autowired - private AuthService authService; - @Autowired - private UserService userService; - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/user/disliked-users") - public ModelAndView dislikedUsers() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - - User user = authService.getCurrentUser(true); - ModelAndView mav = new ModelAndView("disliked-users"); - List userDislikes = user.getHiddenUsers(); - List dislikedUsers = userDislikes.stream().sorted(Comparator.comparing(UserHide::getDate).reversed()) - .limit(MAX_RESULTS).map(UserHide::getUserTo).toList(); - List users = new ArrayList<>(); - for (User u : dislikedUsers) { - users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); - } - mav.addObject("users", users); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/DonateResource.java b/src/main/java/com/nonononoki/alovoa/html/DonateResource.java deleted file mode 100644 index f332d8cb..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/DonateResource.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -@Controller -public class DonateResource { - - @Autowired - private AuthService authService; - - @Autowired - private UserService userService; - - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/donate") - public ModelAndView donate() - throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - ModelAndView mav = new ModelAndView("donate"); - User user = authService.getCurrentUser(true); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/IndexResource.java b/src/main/java/com/nonononoki/alovoa/html/IndexResource.java index 7a6ed344..6cc21e90 100644 --- a/src/main/java/com/nonononoki/alovoa/html/IndexResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/IndexResource.java @@ -18,26 +18,8 @@ @Controller public class IndexResource { - - @Autowired - private AuthService authService; - @GetMapping("/") - public ModelAndView index() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - - User user = authService.getCurrentUser(); - if (user != null) { - if (user.getProfilePicture() != null - && user.getDescription() != null) { - return new ModelAndView("redirect:" + SearchResource.URL); - } else { - return new ModelAndView("redirect:" + ProfileOnboardingResource.URL); - } - } - - ModelAndView mav = new ModelAndView("index"); - return mav; + public ModelAndView index() { + return new ModelAndView("index"); } } diff --git a/src/main/java/com/nonononoki/alovoa/html/LikedUsersResource.java b/src/main/java/com/nonononoki/alovoa/html/LikedUsersResource.java deleted file mode 100644 index 9b7a80a6..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/LikedUsersResource.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserLike; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -@Controller -public class LikedUsersResource { - - private static final long MAX_RESULTS = 50; - @Autowired - private AuthService authService; - @Autowired - private UserService userService; - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/user/liked-users") - public ModelAndView likedUsers() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - - User user = authService.getCurrentUser(true); - ModelAndView mav = new ModelAndView("liked-users"); - List userLikes = user.getLikes(); - List likedUsers = userLikes.stream().sorted(Comparator.comparing(UserLike::getDate).reversed()) - .limit(MAX_RESULTS).map(b -> b.getUserTo()).collect(Collectors.toList()); - List users = new ArrayList<>(); - for (User u : likedUsers) { - users.add(UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); - } - mav.addObject("users", users); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/LoginResource.java b/src/main/java/com/nonononoki/alovoa/html/LoginResource.java index d03af09c..80b15c88 100644 --- a/src/main/java/com/nonononoki/alovoa/html/LoginResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/LoginResource.java @@ -18,18 +18,11 @@ public class LoginResource { @Value("${app.privacy.update-date}") private String privacyDate; - + public static final String URL = "/login"; @GetMapping(URL) public ModelAndView login() throws AlovoaException { - - User user = authService.getCurrentUser(); - if (user != null) { - return new ModelAndView("redirect:" + SearchResource.URL); - } - - ModelAndView mav = new ModelAndView("login"); - return mav; + return new ModelAndView("login"); } -} +} \ No newline at end of file diff --git a/src/main/java/com/nonononoki/alovoa/html/MessageResource.java b/src/main/java/com/nonononoki/alovoa/html/MessageResource.java deleted file mode 100644 index 9ddfc80d..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/MessageResource.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.Conversation; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.ConversationDto; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserBlockRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Controller -public class MessageResource { - - @Autowired - private AuthService authService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Autowired - private UserBlockRepository userBlockRepo; - - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/chats") - public ModelAndView chats() - throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - - ModelAndView mav = new ModelAndView("messages"); - User user = authService.getCurrentUser(true); - user.getDates().setMessageCheckedDate(new Date()); - userRepo.saveAndFlush(user); - List convos = new ArrayList<>(); - List conversations = conversationRepo.findByUsers_Id(user.getId()); - for (Conversation c : conversations) { - if (!c.isBlocked(userBlockRepo)) { - convos.add(ConversationDto.conversationToDto(c, user, textEncryptor)); - } - } - - convos.sort((ConversationDto a, ConversationDto b) -> b.getLastUpdated().compareTo(a.getLastUpdated())); - - mav.addObject("conversations", convos); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } - - @GetMapping("/chats/{id}") - public ModelAndView chatsDetail(@PathVariable long id) throws AlovoaException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException { - - ModelAndView mav = new ModelAndView("message-detail"); - User user = authService.getCurrentUser(true); - Conversation c = conversationRepo.findById(id).orElse(null); - - if (c == null) { - throw new AlovoaException("conversation_not_found"); - } - - if (!c.containsUser(user)) { - throw new AlovoaException("user_not_in_conversation"); - } - - User u = c.getPartner(user); - - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - mav.addObject("convoId", id); - mav.addObject("partner", UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY)); - - c.setLastOpened(new Date()); - conversationRepo.saveAndFlush(c); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/NotificationResource.java b/src/main/java/com/nonononoki/alovoa/html/NotificationResource.java deleted file mode 100644 index 5270bab3..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/NotificationResource.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserNotification; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.NotificationDto; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -@Controller -public class NotificationResource { - - public static final String URL = "/alerts"; - @Autowired - private AuthService authService; - @Autowired - private UserService userService; - @Autowired - private TextEncryptorConverter textEncryptor; - @Autowired - private UserRepository userRepo; - - @GetMapping(URL) - public ModelAndView notification() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - - ModelAndView mav = new ModelAndView("notification"); - User user = authService.getCurrentUser(true); - user.getDates().setNotificationCheckedDate(new Date()); - userRepo.saveAndFlush(user); - List nots = user.getNotifications(); - List notifications = new ArrayList<>(); - for (int i = 0; i < nots.size(); i++) { - UserNotification n = nots.get(i); - - boolean blockedMe = user.getBlockedByUsers().stream() - .anyMatch(b -> b.getUserFrom().getId().equals(n.getUserFrom().getId())); - boolean blockedYou = user.getBlockedUsers().stream() - .anyMatch(b -> b.getUserTo().getId().equals(n.getUserFrom().getId())); - - if (!blockedMe && !blockedYou) { - NotificationDto dto = NotificationDto.notificationToNotificationDto(n, user, userService, textEncryptor); - notifications.add(dto); - } - } - - notifications.sort((NotificationDto a, NotificationDto b) -> b.getDate().compareTo(a.getDate())); - - mav.addObject("notifications", notifications); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/PasswordResource.java b/src/main/java/com/nonononoki/alovoa/html/PasswordResource.java index ff2ca606..0a0e14f9 100644 --- a/src/main/java/com/nonononoki/alovoa/html/PasswordResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/PasswordResource.java @@ -25,33 +25,10 @@ @RequestMapping("/password") public class PasswordResource { - @Autowired - private AuthService authService; - - @Autowired - private UserService userService; - - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/reset") - public ModelAndView passwordReset() throws AlovoaException, InvalidKeyException, IllegalBlockSizeException, - BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, - UnsupportedEncodingException { - ModelAndView mav = new ModelAndView("password-reset"); - User user = authService.getCurrentUser(); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); - return mav; - } - @GetMapping("/change/{tokenString}") - public ModelAndView passwordChange(@PathVariable String tokenString) throws AlovoaException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException { + public ModelAndView passwordChange(@PathVariable String tokenString) { ModelAndView mav = new ModelAndView("password-change"); mav.addObject("tokenString", tokenString); - User user = authService.getCurrentUser(); - mav.addObject("user", UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA)); return mav; } } diff --git a/src/main/java/com/nonononoki/alovoa/html/ProfileOnboardingResource.java b/src/main/java/com/nonononoki/alovoa/html/ProfileOnboardingResource.java deleted file mode 100644 index c7b97c1e..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/ProfileOnboardingResource.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.nonononoki.alovoa.html; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import com.nonononoki.alovoa.Tools; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.repo.GenderRepository; -import com.nonononoki.alovoa.repo.UserIntentionRepository; -import com.nonononoki.alovoa.service.AuthService; - -@Controller -public class ProfileOnboardingResource { - - @Autowired - private AuthService authService; - - @Autowired - private GenderRepository genderRepo; - - @Autowired - private UserIntentionRepository userIntentionRepo; - @Value("${app.media.max-size}") - private int mediaMaxSize; - - @Value("${app.interest.max}") - private int interestMaxSize; - - public static final String URL = "/user/onboarding"; - - @GetMapping(URL) - public ModelAndView onboarding() throws AlovoaException { - - User user = authService.getCurrentUser(true); - if (user.isAdmin()) { - return new ModelAndView("redirect:" + AdminResource.URL); - } else if (user.getProfilePicture() != null || user.getDescription() != null) { - return new ModelAndView("redirect:" + ProfileResource.URL); - } else { - int age = Tools.calcUserAge(user); - boolean isLegal = age >= Tools.AGE_LEGAL; - ModelAndView mav = new ModelAndView("profile-onboarding"); - mav.addObject("genders", genderRepo.findAll()); - mav.addObject("intentions", userIntentionRepo.findAll()); - mav.addObject("isLegal", isLegal); - mav.addObject("mediaMaxSize", mediaMaxSize); - mav.addObject("interestMaxSize", interestMaxSize); - return mav; - } - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/ProfileResource.java b/src/main/java/com/nonononoki/alovoa/html/ProfileResource.java index 84cff4ad..9e1f8429 100644 --- a/src/main/java/com/nonononoki/alovoa/html/ProfileResource.java +++ b/src/main/java/com/nonononoki/alovoa/html/ProfileResource.java @@ -63,8 +63,6 @@ public ModelAndView profile() throws AlovoaException, InvalidKeyException, Illeg User user = authService.getCurrentUser(true); if (user.isAdmin()) { return new ModelAndView("redirect:" + AdminResource.URL); - } else if (user.getProfilePicture() == null && user.getDescription() == null) { - return new ModelAndView("redirect:" + ProfileOnboardingResource.URL); } else { int age = Tools.calcUserAge(user); boolean isLegal = age >= Tools.AGE_LEGAL; diff --git a/src/main/java/com/nonononoki/alovoa/html/RegisterResource.java b/src/main/java/com/nonononoki/alovoa/html/RegisterResource.java deleted file mode 100644 index a3809a21..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/RegisterResource.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.nonononoki.alovoa.html; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.servlet.ModelAndView; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.repo.GenderRepository; -import com.nonononoki.alovoa.repo.UserIntentionRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.RegisterService; - -@Controller -public class RegisterResource { - - @Autowired - private RegisterService registerService; - - @Autowired - private GenderRepository genderRepo; - - @Autowired - private UserIntentionRepository userIntentionRepo; - - @Autowired - private AuthService authService; - - public static final String URL = "/register"; - - @GetMapping(URL) - public ModelAndView register() throws AlovoaException { - - User user = authService.getCurrentUser(); - if (user != null) { - return new ModelAndView("redirect:" + ProfileResource.URL); - } - ModelAndView mav = new ModelAndView("register"); - mav.addObject("genders", genderRepo.findAll()); - mav.addObject("intentions", userIntentionRepo.findAll()); - return mav; - } - - public ModelAndView registerOauth(String firstName) { - ModelAndView mav = new ModelAndView("register-oauth"); - mav.addObject("genders", genderRepo.findAll()); - mav.addObject("intentions", userIntentionRepo.findAll()); - mav.addObject("firstName", firstName); - return mav; - } - - @GetMapping("/register/confirm/{tokenString}") - public String registerConfirm(@PathVariable String tokenString) { - try { - registerService.registerConfirm(tokenString); - return "redirect:/?registration-confirm-success"; - } catch (Exception e) { - return "redirect:/?registration-confirm-failed"; - } - - } -} diff --git a/src/main/java/com/nonononoki/alovoa/html/UserProfileResource.java b/src/main/java/com/nonononoki/alovoa/html/UserProfileResource.java deleted file mode 100644 index acebcd70..00000000 --- a/src/main/java/com/nonononoki/alovoa/html/UserProfileResource.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.nonononoki.alovoa.html; - -import com.nonononoki.alovoa.Tools; -import com.nonononoki.alovoa.component.ExceptionHandler; -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.model.AlovoaException; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.UserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.server.ResponseStatusException; -import org.springframework.web.servlet.ModelAndView; - -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import java.io.UnsupportedEncodingException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.Optional; - -@Controller -public class UserProfileResource { - - @Autowired - private UserRepository userRepo; - - @Autowired - private AuthService authService; - - @Autowired - private UserService userService; - - @Autowired - private TextEncryptorConverter textEncryptor; - - @GetMapping("/profile/view/{idEncoded}") - public ModelAndView profileView(@PathVariable String idEncoded) throws NumberFormatException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { - return data(idEncoded, "user-profile"); - } - - @GetMapping("/profile/view/modal/{idEncoded}") - public ModelAndView profileViewModal(@PathVariable String idEncoded) throws AlovoaException, - InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, - NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException { - return data(idEncoded, "fragments::user-profile-modal"); - } - - public ModelAndView data(String idEncoded, String view) throws AlovoaException, InvalidKeyException, - IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, - InvalidAlgorithmParameterException, UnsupportedEncodingException { - Optional idOptional = UserDto.decodeId(idEncoded, textEncryptor); - if (idOptional.isEmpty()) { - throw new ResponseStatusException(HttpStatus.NOT_FOUND); - } - - Long id = idOptional.get(); - User userView = userRepo.findById(id).orElse(null); - User user = authService.getCurrentUser(true); - - if (user.getId().equals(id)) { - return new ModelAndView("redirect:" + ProfileResource.URL); - } - - if (userView != null) { - if (userView.getBlockedUsers().stream().filter(o -> o.getUserTo() != null).anyMatch(o -> o.getUserTo().getId().equals(user.getId()))) { - throw new AlovoaException("blocked"); - } - - if (userView.isDisabled()) { - throw new AlovoaException("disabled"); - } - - ModelAndView mav = new ModelAndView(view); - - userView.setNumberProfileViews(userView.getNumberProfileViews() + 1); - userView = userRepo.saveAndFlush(userView); - - UserDto userDto = UserDto.userToUserDto(userView, user, userService, textEncryptor, UserDto.ALL); - UserDto currUserDto = UserDto.userToUserDto(user, user, userService, textEncryptor, UserDto.NO_MEDIA); - - mav.addObject("user", userDto); - mav.addObject("currUser", currUserDto); - - mav.addObject("compatible", Tools.usersCompatible(user, userView)); - - return mav; - - } else { - throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); - } - } -} diff --git a/src/main/java/com/nonononoki/alovoa/repo/UserDeleteTokenRepository.java b/src/main/java/com/nonononoki/alovoa/repo/UserDeleteTokenRepository.java index 3d32b025..61dc5151 100644 --- a/src/main/java/com/nonononoki/alovoa/repo/UserDeleteTokenRepository.java +++ b/src/main/java/com/nonononoki/alovoa/repo/UserDeleteTokenRepository.java @@ -9,5 +9,7 @@ public interface UserDeleteTokenRepository extends JpaRepository { List findTop100ByDateAfter(Date d); + + UserDeleteToken findByContent(String content); } diff --git a/src/main/java/com/nonononoki/alovoa/rest/Oauth2Controller.java b/src/main/java/com/nonononoki/alovoa/rest/Oauth2Controller.java index c80c0bfe..e2d03247 100644 --- a/src/main/java/com/nonononoki/alovoa/rest/Oauth2Controller.java +++ b/src/main/java/com/nonononoki/alovoa/rest/Oauth2Controller.java @@ -11,6 +11,9 @@ import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; + +import com.nonononoki.alovoa.html.IndexResource; +import com.nonononoki.alovoa.html.LoginResource; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -40,8 +43,6 @@ import com.nonononoki.alovoa.Tools; import com.nonononoki.alovoa.config.SecurityConfig; import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.html.LoginResource; -import com.nonononoki.alovoa.html.RegisterResource; import com.nonononoki.alovoa.model.AlovoaException; import com.nonononoki.alovoa.repo.UserRepository; import com.nonononoki.alovoa.service.PublicService; @@ -57,7 +58,7 @@ public class Oauth2Controller { private OAuth2AuthorizedClientService clientService; @Autowired - private RegisterResource registerResource; + private IndexResource indexResource; @Autowired private PublicService publicService; @@ -169,7 +170,7 @@ public ModelAndView oauth2Success() httpSession.removeAttribute(REDIRECT_URL); return new ModelAndView(new RedirectView(url + params)); } - return registerResource.registerOauth(firstName); + return indexResource.index(); } else { if (httpSession.getAttribute(REDIRECT_URL) != null) { int page = REDIRECT_DEFAULT; @@ -187,7 +188,7 @@ public ModelAndView oauth2Success() } } } catch (AlovoaException e) { - return new ModelAndView("redirect:" + RegisterResource.URL + "?register.oauth.email-invalid"); + return new ModelAndView("redirect:/?register.oauth.email-invalid"); } catch (Exception e) { logger.error(e.getMessage(), e); } diff --git a/src/main/java/com/nonononoki/alovoa/service/NotificationService.java b/src/main/java/com/nonononoki/alovoa/service/NotificationService.java index 7a8a4f98..73ab5eae 100644 --- a/src/main/java/com/nonononoki/alovoa/service/NotificationService.java +++ b/src/main/java/com/nonononoki/alovoa/service/NotificationService.java @@ -21,7 +21,6 @@ import com.nonononoki.alovoa.Tools; import com.nonononoki.alovoa.entity.User; import com.nonononoki.alovoa.entity.user.UserWebPush; -import com.nonononoki.alovoa.html.NotificationResource; import com.nonononoki.alovoa.model.AlovoaException; import com.nonononoki.alovoa.model.WebPushMessage; import com.nonononoki.alovoa.repo.UserRepository; @@ -93,7 +92,6 @@ public void newLike(User user) throws GeneralSecurityException, IOException, Jos String msg = messageSource.getMessage("backend.webpush.like.subject", null, locale); WebPushMessage message = new WebPushMessage(); - message.setClickTarget(appDomain + NotificationResource.URL); message.setTitle(title); message.setMessage(msg); send(user, message); @@ -108,7 +106,6 @@ public void newMatch(User user) throws GeneralSecurityException, IOException, Jo String msg = messageSource.getMessage("backend.webpush.match.subject", null, locale); WebPushMessage message = new WebPushMessage(); - message.setClickTarget(appDomain + NotificationResource.URL); message.setTitle(title); message.setMessage(msg); send(user, message); @@ -123,7 +120,6 @@ public void newMessage(User user) throws GeneralSecurityException, IOException, String msg = messageSource.getMessage("backend.webpush.message.subject", null, locale); WebPushMessage message = new WebPushMessage(); - message.setClickTarget(appDomain + NotificationResource.URL); message.setTitle(title); message.setMessage(msg); send(user, message); diff --git a/src/main/java/com/nonononoki/alovoa/service/PasswordService.java b/src/main/java/com/nonononoki/alovoa/service/PasswordService.java index 0eb86352..549fd613 100644 --- a/src/main/java/com/nonononoki/alovoa/service/PasswordService.java +++ b/src/main/java/com/nonononoki/alovoa/service/PasswordService.java @@ -55,48 +55,40 @@ public class PasswordService { public UserPasswordToken resetPassword(PasswordResetDto dto) throws AlovoaException, NoSuchAlgorithmException, MessagingException, IOException { - User u = authService.getCurrentUser(); + if (!captchaService.isValid(dto.getCaptchaId(), dto.getCaptchaText())) { + throw new AlovoaException("captcha_invalid"); + } + User u = userRepo.findByEmail(Tools.cleanEmail(dto.getEmail())); if (u == null) { - if (!captchaService.isValid(dto.getCaptchaId(), dto.getCaptchaText())) { - throw new AlovoaException("captcha_invalid"); - } - u = userRepo.findByEmail(Tools.cleanEmail(dto.getEmail())); - - if (u == null) { - throw new DisabledException(ExceptionHandler.USER_NOT_FOUND); - } - - if (u.isAdmin()) { - throw new AlovoaException("user_is_admin"); - } - - if (u.getPassword() == null) { - throw new AlovoaException("user_has_social_login"); - } - - if (u.isDisabled()) { - throw new DisabledException("user_disabled"); - } + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); } - + + if (u.isAdmin()) { + throw new AlovoaException("user_is_admin"); + } + //user has social login, do not assign new password! - if (u.getPassword() != null) { - UserPasswordToken token = new UserPasswordToken(); - token.setContent(RandomStringUtils.random(tokenLength, 0, 0, true, true, null, new SecureRandom())); - token.setDate(new Date()); - token.setUser(u); - u.setPasswordToken(token); - u = userRepo.saveAndFlush(u); - - mailService.sendPasswordResetMail(u); - - SecurityContextHolder.clearContext(); - - return u.getPasswordToken(); - } else { + if (u.getPassword() == null) { throw new AlovoaException("user_has_social_login"); } + + if (u.isDisabled()) { + throw new AlovoaException("user_disabled"); + } + + UserPasswordToken token = new UserPasswordToken(); + token.setContent(RandomStringUtils.random(tokenLength, 0, 0, true, true, null, new SecureRandom())); + token.setDate(new Date()); + token.setUser(u); + u.setPasswordToken(token); + u = userRepo.saveAndFlush(u); + + mailService.sendPasswordResetMail(u); + + SecurityContextHolder.clearContext(); + + return u.getPasswordToken(); } public void changePassword(PasswordChangeDto dto) throws AlovoaException { diff --git a/src/main/java/com/nonononoki/alovoa/service/RegisterService.java b/src/main/java/com/nonononoki/alovoa/service/RegisterService.java index b5af5ef3..0c036694 100644 --- a/src/main/java/com/nonononoki/alovoa/service/RegisterService.java +++ b/src/main/java/com/nonononoki/alovoa/service/RegisterService.java @@ -45,326 +45,326 @@ @Service public class RegisterService { - @Value("${app.token.length}") - private int tokenLength; + @Value("${app.token.length}") + private int tokenLength; - @Value("${app.age.min}") - private int minAge; + @Value("${app.age.min}") + private int minAge; - @Value("${app.age.max}") - private int maxAge; + @Value("${app.age.max}") + private int maxAge; - @Value("${app.age.range}") - private int ageRange; + @Value("${app.age.range}") + private int ageRange; - @Value("${spring.profiles.active}") - private String profile; + @Value("${spring.profiles.active}") + private String profile; - @Value("${app.intention.delay}") - private long intentionDelay; + @Value("${app.intention.delay}") + private long intentionDelay; - @Value("${app.first-name.length-max}") - private long firstNameLengthMax; + @Value("${app.first-name.length-max}") + private long firstNameLengthMax; - @Value("${app.first-name.length-min}") - private long firstNameLengthMin; + @Value("${app.first-name.length-min}") + private long firstNameLengthMin; - @Value("${app.mail.plus-addressing}") - private boolean plusAddressing; + @Value("${app.mail.plus-addressing}") + private boolean plusAddressing; - @Value("${app.referral.max}") - private int referralMax; + @Value("${app.referral.max}") + private int referralMax; - @Autowired - private PasswordEncoder passwordEncoder; + @Autowired + private PasswordEncoder passwordEncoder; - @Autowired - private MailService mailService; + @Autowired + private MailService mailService; - @Autowired - private PublicService publicService; + @Autowired + private PublicService publicService; - @Autowired - private UserRepository userRepo; + @Autowired + private UserRepository userRepo; - @Autowired - private GenderRepository genderRepo; + @Autowired + private GenderRepository genderRepo; - @Autowired - private UserIntentionRepository userIntentionRepo; - - @Autowired - private UserRegisterTokenRepository registerTokenRepo; + @Autowired + private UserIntentionRepository userIntentionRepo; - @Autowired - private AuthService authService; + @Autowired + private UserRegisterTokenRepository registerTokenRepo; - @Autowired - protected CaptchaService captchaService; + @Autowired + private AuthService authService; - @Autowired - private UserService userService; + @Autowired + protected CaptchaService captchaService; - @Autowired - private TextEncryptorConverter textEncryptor; + @Autowired + private UserService userService; - private static final int MIN_PASSWORD_SIZE = 7; + @Autowired + private TextEncryptorConverter textEncryptor; - private static final Logger logger = LoggerFactory.getLogger(RegisterService.class); + private static final int MIN_PASSWORD_SIZE = 7; - public String register(RegisterDto dto) - throws NoSuchAlgorithmException, AlovoaException, MessagingException, IOException { - - dto.setEmail(Tools.cleanEmail(dto.getEmail())); - - if (!isValidEmailAddress(dto.getEmail())) { - throw new AlovoaException("email_invalid"); - } - - if (!profile.equals(Tools.DEV)) { - dto.setEmail(Tools.cleanEmail(dto.getEmail())); - if (plusAddressing && dto.getEmail().contains("+")) { - dto.setEmail(dto.getEmail().split("[+]")[0] + "@" + dto.getEmail().split("@")[1]); - } - } + private static final Logger logger = LoggerFactory.getLogger(RegisterService.class); - // check if email is in spam mail list - if (profile.equals(Tools.PROD)) { - try { - // check spam domains - if (Tools.isTextContainingLineFromFile(Tools.TEMP_EMAIL_FILE_NAME, dto.getEmail())) { - throw new AlovoaException(publicService.text("backend.error.register.email-spam")); - } - } catch (IOException e) { - logger.error(e.getMessage()); - } - } - - User user = userRepo.findByEmail(dto.getEmail()); - if (user != null) { - throw new AlovoaException(publicService.text("backend.error.register.email-exists")); - } - - BaseRegisterDto baseRegisterDto = registerBase(dto, false); - user = baseRegisterDto.getUser(); - user.setReferrerCode(dto.getReferrerCode()); - - user.setPassword(passwordEncoder.encode(dto.getPassword())); - user = userRepo.saveAndFlush(user); - - UserRegisterToken token = createUserToken(user); - return token.getContent(); - } - - public void registerOauth(RegisterDto dto) throws MessagingException, IOException, AlovoaException, - NumberFormatException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, - NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException { - - String email = Tools.cleanEmail(authService.getOauth2Email()); - if (email == null) { - throw new AlovoaException(publicService.text("email_is_null")); - } - - User user = userRepo.findByEmail(email); - if (user != null) { - throw new AlovoaException(publicService.text("backend.error.register.email-exists")); - } - - dto.setEmail(email); - BaseRegisterDto baseRegisterDto = registerBase(dto, true); - user = baseRegisterDto.getUser(); - user.setConfirmed(true); - - try { - if (dto.getReferrerCode() != null && !dto.getReferrerCode().isEmpty()) { - Optional idOptional = UserDto.decodeId(dto.getReferrerCode(), textEncryptor); - if (idOptional.isPresent()) { - long id = idOptional.get(); - User referrer = userRepo.findById(id).orElse(null); - - if (referrer != null && referrer.isConfirmed() && referrer.getNumberReferred() < referralMax) { - user.setTotalDonations(Tools.REFERRED_AMOUNT); - user.setNumberReferred(1); - referrer.setTotalDonations(referrer.getTotalDonations() + Tools.REFERRED_AMOUNT); - referrer.setNumberReferred(referrer.getNumberReferred() + 1); - } - } - } - } catch (Exception e) { - throw new AlovoaException(e.getMessage()); - } - - userRepo.saveAndFlush(user); - - userService.updateUserInfo(user); - - mailService.sendAccountConfirmed(user); - } - - public UserRegisterToken createUserToken(User user) throws MessagingException, IOException { - UserRegisterToken token = generateToken(user); - user.setRegisterToken(token); - user = userRepo.saveAndFlush(user); - mailService.sendRegistrationMail(user); - return token; - } - - public UserRegisterToken generateToken(User user) { - UserRegisterToken token = new UserRegisterToken(); - token.setContent(RandomStringUtils.random(tokenLength, 0, 0, true, true, null, new SecureRandom())); - token.setDate(new Date()); - token.setUser(user); - return token; - } - - public User registerConfirm(String tokenString) throws MessagingException, IOException, AlovoaException, - NumberFormatException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, - NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException { - UserRegisterToken token = registerTokenRepo.findByContent(tokenString); - - if (token == null) { - throw new AlovoaException("token_not_found"); - } - - User user = token.getUser(); - - if (user == null) { - throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); - } - - if (user.isConfirmed()) { - throw new AlovoaException("user_not_confirmed"); - } - - try { - if (user.getReferrerCode() != null && !user.getReferrerCode().isEmpty()) { - long id = UserDto.decodeIdThrowing(user.getReferrerCode(), textEncryptor); - User referrer = userRepo.findById(id).orElse(null); - - if (referrer != null && referrer.isConfirmed() && referrer.getNumberReferred() < referralMax) { - user.setTotalDonations(Tools.REFERRED_AMOUNT); - user.setNumberReferred(1); - referrer.setTotalDonations(referrer.getTotalDonations() + Tools.REFERRED_AMOUNT); - referrer.setNumberReferred(referrer.getNumberReferred() + 1); - } - } - } catch (Exception e) { - throw new AlovoaException(e.getMessage()); - } - - user.setConfirmed(true); - user.setRegisterToken(null); - user.setReferrerCode(null); - - user = userRepo.saveAndFlush(user); - - mailService.sendAccountConfirmed(user); - - return user; - } - - // used by normal registration and oauth - private BaseRegisterDto registerBase(RegisterDto dto, boolean isOauth) throws AlovoaException { - - if (dto.getFirstName().length() > firstNameLengthMax || dto.getFirstName().length() < firstNameLengthMin) { - throw new AlovoaException("name_invalid"); - } - - // check minimum age - int userAge = Tools.calcUserAge(dto.getDateOfBirth()); - if (userAge < minAge) { - throw new AlovoaException(publicService.text("backend.error.register.min-age")); - } - if (userAge > maxAge) { - throw new AlovoaException(publicService.text("max_age_exceeded")); - } - - if (!isOauth) { - if (dto.getPassword().length() < MIN_PASSWORD_SIZE) { - throw new AlovoaException("password_too_short"); - } - - if (!dto.getPassword().matches(".*\\d.*") || !dto.getPassword().matches(".*[a-zA-Z].*")) { - throw new AlovoaException("password_too_simple"); - } - } - - User user = new User(Tools.cleanEmail(dto.getEmail())); - user.setFirstName(dto.getFirstName()); - - // default age bracket, user can change it later in their profile - int userMinAge = userAge - ageRange; - int userMaxAge = userAge + ageRange; - if (userMinAge < minAge) { - userMinAge = minAge; - } - if (userMaxAge > maxAge) { - userMaxAge = maxAge; - } - - user.setPreferedMinAge(dto.getDateOfBirth(), userMinAge); - user.setPreferedMaxAge(dto.getDateOfBirth(), userMaxAge); - user.setGender(genderRepo.findById(dto.getGender()).orElse(null)); - user.setIntention(userIntentionRepo.findById(UserIntention.MEET).orElse(null)); - user.setPreferedGenders(new HashSet<>(genderRepo.findAll())); - - UserDates dates = new UserDates(); - Date today = new Date(); - dates.setActiveDate(today); - dates.setCreationDate(today); - dates.setDateOfBirth(dto.getDateOfBirth()); - dates.setIntentionChangeDate(new Date(today.getTime() - intentionDelay)); - dates.setMessageCheckedDate(today); - dates.setMessageDate(today); - dates.setNotificationCheckedDate(today); - dates.setNotificationDate(today); - dates.setUser(user); - user.setDates(dates); - - // resolves hibernate issue with null Collections with orphanremoval - // https://hibernate.atlassian.net/browse/HHH-9940 - user.setInterests(new ArrayList<>()); - user.setImages(new ArrayList<>()); - user.setDonations(new ArrayList<>()); - user.setLikes(new ArrayList<>()); - user.setLikedBy(new ArrayList<>()); - user.setConversations(new ArrayList<>()); - user.setMessageReceived(new ArrayList<>()); - user.setMessageSent(new ArrayList<>()); - user.setNotifications(new ArrayList<>()); - user.setNotificationsFrom(new ArrayList<>()); - user.setHiddenByUsers(new ArrayList<>()); - user.setHiddenUsers(new ArrayList<>()); - user.setBlockedByUsers(new ArrayList<>()); - user.setBlockedUsers(new ArrayList<>()); - user.setReported(new ArrayList<>()); - user.setReportedByUsers(new ArrayList<>()); - user.setWebPush(new ArrayList<>()); - - user.setNumberProfileViews(0); - user.setNumberSearches(0); - user.setNumberReferred(0); - - user = userRepo.saveAndFlush(user); - - userService.updateUserInfo(user); - - BaseRegisterDto baseRegisterDto = new BaseRegisterDto(); - baseRegisterDto.setRegisterDto(dto); - baseRegisterDto.setUser(user); - return baseRegisterDto; - } - - private static boolean isValidEmailAddress(String email) { - if (email == null) { - return false; - } - try { - InternetAddress a = new InternetAddress(email); - a.validate(); - return true; - } catch (AddressException ex) { - return false; - } - } + public String register(RegisterDto dto) + throws NoSuchAlgorithmException, AlovoaException, MessagingException, IOException { + + dto.setEmail(Tools.cleanEmail(dto.getEmail())); + + if (!isValidEmailAddress(dto.getEmail())) { + throw new AlovoaException("email_invalid"); + } + + if (!profile.equals(Tools.DEV)) { + dto.setEmail(Tools.cleanEmail(dto.getEmail())); + if (plusAddressing && dto.getEmail().contains("+")) { + dto.setEmail(dto.getEmail().split("[+]")[0] + "@" + dto.getEmail().split("@")[1]); + } + } + + // check if email is in spam mail list + if (profile.equals(Tools.PROD)) { + try { + // check spam domains + if (Tools.isTextContainingLineFromFile(Tools.TEMP_EMAIL_FILE_NAME, dto.getEmail())) { + throw new AlovoaException(publicService.text("backend.error.register.email-spam")); + } + } catch (IOException e) { + logger.error(e.getMessage()); + } + } + + User user = userRepo.findByEmail(dto.getEmail()); + if (user != null) { + throw new AlovoaException(publicService.text("backend.error.register.email-exists")); + } + + BaseRegisterDto baseRegisterDto = registerBase(dto, false); + user = baseRegisterDto.getUser(); + user.setReferrerCode(dto.getReferrerCode()); + + user.setPassword(passwordEncoder.encode(dto.getPassword())); + user = userRepo.saveAndFlush(user); + + UserRegisterToken token = createUserToken(user); + return token.getContent(); + } + + public void registerOauth(RegisterDto dto) throws MessagingException, IOException, AlovoaException, + NumberFormatException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, + NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException { + + String email = Tools.cleanEmail(authService.getOauth2Email()); + if (email == null) { + throw new AlovoaException("email_is_null"); + } + + User user = userRepo.findByEmail(email); + if (user != null) { + throw new AlovoaException(publicService.text("backend.error.register.email-exists")); + } + + dto.setEmail(email); + BaseRegisterDto baseRegisterDto = registerBase(dto, true); + user = baseRegisterDto.getUser(); + user.setConfirmed(true); + + try { + if (dto.getReferrerCode() != null && !dto.getReferrerCode().isEmpty()) { + Optional idOptional = UserDto.decodeId(dto.getReferrerCode(), textEncryptor); + if (idOptional.isPresent()) { + long id = idOptional.get(); + User referrer = userRepo.findById(id).orElse(null); + + if (referrer != null && referrer.isConfirmed() && referrer.getNumberReferred() < referralMax) { + user.setTotalDonations(Tools.REFERRED_AMOUNT); + user.setNumberReferred(1); + referrer.setTotalDonations(referrer.getTotalDonations() + Tools.REFERRED_AMOUNT); + referrer.setNumberReferred(referrer.getNumberReferred() + 1); + } + } + } + } catch (Exception e) { + throw new AlovoaException(e.getMessage()); + } + + userRepo.saveAndFlush(user); + + userService.updateUserInfo(user); + + mailService.sendAccountConfirmed(user); + } + + public UserRegisterToken createUserToken(User user) throws MessagingException, IOException { + UserRegisterToken token = generateToken(user); + user.setRegisterToken(token); + user = userRepo.saveAndFlush(user); + mailService.sendRegistrationMail(user); + return token; + } + + public UserRegisterToken generateToken(User user) { + UserRegisterToken token = new UserRegisterToken(); + token.setContent(RandomStringUtils.random(tokenLength, 0, 0, true, true, null, new SecureRandom())); + token.setDate(new Date()); + token.setUser(user); + return token; + } + + public User registerConfirm(String tokenString) throws MessagingException, IOException, AlovoaException, + NumberFormatException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, + NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException { + UserRegisterToken token = registerTokenRepo.findByContent(tokenString); + + if (token == null) { + throw new AlovoaException("token_not_found"); + } + + User user = token.getUser(); + + if (user == null) { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + + if (user.isConfirmed()) { + throw new AlovoaException("user_not_confirmed"); + } + + try { + if (user.getReferrerCode() != null && !user.getReferrerCode().isEmpty()) { + long id = UserDto.decodeIdThrowing(user.getReferrerCode(), textEncryptor); + User referrer = userRepo.findById(id).orElse(null); + + if (referrer != null && referrer.isConfirmed() && referrer.getNumberReferred() < referralMax) { + user.setTotalDonations(Tools.REFERRED_AMOUNT); + user.setNumberReferred(1); + referrer.setTotalDonations(referrer.getTotalDonations() + Tools.REFERRED_AMOUNT); + referrer.setNumberReferred(referrer.getNumberReferred() + 1); + } + } + } catch (Exception e) { + throw new AlovoaException(e.getMessage()); + } + + user.setConfirmed(true); + user.setRegisterToken(null); + user.setReferrerCode(null); + + user = userRepo.saveAndFlush(user); + + mailService.sendAccountConfirmed(user); + + return user; + } + + // used by normal registration and oauth + private BaseRegisterDto registerBase(RegisterDto dto, boolean isOauth) throws AlovoaException { + + if (dto.getFirstName().length() > firstNameLengthMax || dto.getFirstName().length() < firstNameLengthMin) { + throw new AlovoaException("name_invalid"); + } + + // check minimum age + int userAge = Tools.calcUserAge(dto.getDateOfBirth()); + if (userAge < minAge) { + throw new AlovoaException(publicService.text("backend.error.register.min-age")); + } + if (userAge > maxAge) { + throw new AlovoaException("max_age_exceeded"); + } + + if (!isOauth) { + if (dto.getPassword().length() < MIN_PASSWORD_SIZE) { + throw new AlovoaException("password_too_short"); + } + + if (!dto.getPassword().matches(".*\\d.*") || !dto.getPassword().matches(".*[a-zA-Z].*")) { + throw new AlovoaException("password_too_simple"); + } + } + + User user = new User(Tools.cleanEmail(dto.getEmail())); + user.setFirstName(dto.getFirstName()); + + // default age bracket, user can change it later in their profile + int userMinAge = userAge - ageRange; + int userMaxAge = userAge + ageRange; + if (userMinAge < minAge) { + userMinAge = minAge; + } + if (userMaxAge > maxAge) { + userMaxAge = maxAge; + } + + user.setPreferedMinAge(dto.getDateOfBirth(), userMinAge); + user.setPreferedMaxAge(dto.getDateOfBirth(), userMaxAge); + user.setGender(genderRepo.findById(dto.getGender()).orElse(null)); + user.setIntention(userIntentionRepo.findById(UserIntention.MEET).orElse(null)); + user.setPreferedGenders(new HashSet<>(genderRepo.findAll())); + + UserDates dates = new UserDates(); + Date today = new Date(); + dates.setActiveDate(today); + dates.setCreationDate(today); + dates.setDateOfBirth(dto.getDateOfBirth()); + dates.setIntentionChangeDate(new Date(today.getTime() - intentionDelay)); + dates.setMessageCheckedDate(today); + dates.setMessageDate(today); + dates.setNotificationCheckedDate(today); + dates.setNotificationDate(today); + dates.setUser(user); + user.setDates(dates); + + // resolves hibernate issue with null Collections with orphanremoval + // https://hibernate.atlassian.net/browse/HHH-9940 + user.setInterests(new ArrayList<>()); + user.setImages(new ArrayList<>()); + user.setDonations(new ArrayList<>()); + user.setLikes(new ArrayList<>()); + user.setLikedBy(new ArrayList<>()); + user.setConversations(new ArrayList<>()); + user.setMessageReceived(new ArrayList<>()); + user.setMessageSent(new ArrayList<>()); + user.setNotifications(new ArrayList<>()); + user.setNotificationsFrom(new ArrayList<>()); + user.setHiddenByUsers(new ArrayList<>()); + user.setHiddenUsers(new ArrayList<>()); + user.setBlockedByUsers(new ArrayList<>()); + user.setBlockedUsers(new ArrayList<>()); + user.setReported(new ArrayList<>()); + user.setReportedByUsers(new ArrayList<>()); + user.setWebPush(new ArrayList<>()); + + user.setNumberProfileViews(0); + user.setNumberSearches(0); + user.setNumberReferred(0); + + user = userRepo.saveAndFlush(user); + + userService.updateUserInfo(user); + + BaseRegisterDto baseRegisterDto = new BaseRegisterDto(); + baseRegisterDto.setRegisterDto(dto); + baseRegisterDto.setUser(user); + return baseRegisterDto; + } + + private static boolean isValidEmailAddress(String email) { + if (email == null) { + return false; + } + try { + InternetAddress a = new InternetAddress(email); + a.validate(); + return true; + } catch (AddressException ex) { + return false; + } + } } diff --git a/src/main/java/com/nonononoki/alovoa/service/SearchService.java b/src/main/java/com/nonononoki/alovoa/service/SearchService.java index 83c7de8c..d84caeea 100644 --- a/src/main/java/com/nonononoki/alovoa/service/SearchService.java +++ b/src/main/java/com/nonononoki/alovoa/service/SearchService.java @@ -197,7 +197,7 @@ public SearchDto search(Double latitude, Double longitude, int distance, int sor filteredUsers = filterUsers(users, ignoreIds, user, false); if (!filteredUsers.isEmpty()) { return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.global")).global(true) + .global(true) .stage(SearchStage.INCREASED_RADIUS_1).build(); } @@ -216,7 +216,7 @@ public SearchDto search(Double latitude, Double longitude, int distance, int sor filteredUsers = filterUsers(users, ignoreIds, user, false); if (!filteredUsers.isEmpty()) { return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.global")).global(true) + .global(true) .stage(SearchStage.INCREASED_RADIUS_2).build(); } @@ -225,14 +225,14 @@ public SearchDto search(Double latitude, Double longitude, int distance, int sor if (!filteredUsers.isEmpty()) { return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.global")).global(true).stage(SearchStage.WORLD).build(); + .global(true).stage(SearchStage.WORLD).build(); } users = userRepo.usersSearchAllIgnoreLocationAndIntention(request, sort); filteredUsers = filterUsers(users, ignoreIds, user, false); if (!filteredUsers.isEmpty()) { return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.incompatible")).incompatible(true).global(true).stage(SearchStage.IGNORE_1) + .incompatible(true).global(true).stage(SearchStage.IGNORE_1) .build(); } @@ -251,14 +251,14 @@ public SearchDto search(Double latitude, Double longitude, int distance, int sor filteredUsers = filterUsers(users, ignoreIds, user, false); if (!filteredUsers.isEmpty()) { return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.incompatible")).incompatible(true).global(true).stage(SearchStage.IGNORE_2) + .incompatible(true).global(true).stage(SearchStage.IGNORE_2) .build(); } users = userRepo.usersSearchAllIgnoreAll(request, sort); filteredUsers = filterUsers(users, ignoreIds, user, true); return SearchDto.builder().users(searchResultstoUserDto(filteredUsers, sortId, user)) - .message(publicService.text("search.warning.incompatible")).incompatible(true).global(true) + .incompatible(true).global(true) .stage(SearchStage.IGNORE_ALL).build(); } @@ -286,8 +286,9 @@ private List searchResultstoUserDto(final List userList, int sort throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, UnsupportedEncodingException, AlovoaException { List userDtos = new ArrayList<>(); + int mediaMode = user.isAdmin() ? UserDto.ALL : UserDto.PROFILE_PICTURE_ONLY; for (User u : userList) { - UserDto dto = UserDto.userToUserDto(u, user, userService, textEncryptor, UserDto.PROFILE_PICTURE_ONLY); + UserDto dto = UserDto.userToUserDto(u, user, userService, textEncryptor, mediaMode); userDtos.add(dto); } diff --git a/src/main/java/com/nonononoki/alovoa/service/UserService.java b/src/main/java/com/nonononoki/alovoa/service/UserService.java index 8b2c8ef9..6bbf3aa6 100644 --- a/src/main/java/com/nonononoki/alovoa/service/UserService.java +++ b/src/main/java/com/nonononoki/alovoa/service/UserService.java @@ -304,7 +304,12 @@ public UserDeleteToken deleteAccountRequest() throws MessagingException, IOExcep public void deleteAccountConfirm(UserDeleteAccountDto dto) throws MessagingException, IOException, AlovoaException, NoSuchAlgorithmException { - User user = authService.getCurrentUser(true); + User user = userRepo.findByEmail(Tools.cleanEmail(dto.getEmail())); + + if (user == null) { + throw new AlovoaException(ExceptionHandler.USER_NOT_FOUND); + } + UserDeleteToken deleteToken = user.getDeleteToken(); if (!dto.isConfirm() || deleteToken == null) { @@ -313,8 +318,6 @@ public void deleteAccountConfirm(UserDeleteAccountDto dto) String userTokenString = deleteToken.getContent(); - dto.setEmail(Tools.cleanEmail(dto.getEmail())); - long ms = new Date().getTime(); if (ms - user.getDeleteToken().getDate().getTime() > userDeleteDuration) { throw new AlovoaException("deletion_not_valid"); @@ -325,10 +328,6 @@ public void deleteAccountConfirm(UserDeleteAccountDto dto) throw new AlovoaException("deletion_wrong_token"); } - if (!dto.getEmail().equals(user.getEmail())) { - throw new AlovoaException("deletion_wrong_email"); - } - if (!captchaService.isValid(dto.getCaptchaId(), dto.getCaptchaText())) { throw new AlovoaException("captcha_invalid"); } @@ -340,7 +339,6 @@ public void deleteAccountConfirm(UserDeleteAccountDto dto) removeUserDataCascading(user, userDeleteParam); - user = authService.getCurrentUser(true); user = userRepo.saveAndFlush(user); userRepo.delete(user); userRepo.flush(); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 39f8c22a..9bbc0115 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -240,7 +240,7 @@ bucket4j.filters[19].cache-name=bucket4j bucket4j.filters[19].url=/user/userdata/* bucket4j.filters[19].metrics.tags[0].key=IP bucket4j.filters[19].metrics.tags[0].expression=getRemoteAddr() -bucket4j.filters[19].rate-limits[0].bandwidths[0].capacity=2 +bucket4j.filters[19].rate-limits[0].bandwidths[0].capacity=5 bucket4j.filters[19].rate-limits[0].bandwidths[0].time=1200 bucket4j.filters[19].rate-limits[0].bandwidths[0].unit=seconds @@ -252,6 +252,14 @@ bucket4j.filters[20].rate-limits[0].bandwidths[0].capacity=10 bucket4j.filters[20].rate-limits[0].bandwidths[0].time=10 bucket4j.filters[20].rate-limits[0].bandwidths[0].unit=seconds +bucket4j.filters[21].cache-name=bucket4j +bucket4j.filters[21].url=/user/delete-account-confirm +bucket4j.filters[21].metrics.tags[0].key=IP +bucket4j.filters[21].metrics.tags[0].expression=getRemoteAddr() +bucket4j.filters[21].rate-limits[0].bandwidths[0].capacity=5 +bucket4j.filters[21].rate-limits[0].bandwidths[0].time=1200 +bucket4j.filters[21].rate-limits[0].bandwidths[0].unit=seconds + # custom values app.company.name=Alovoa @@ -302,6 +310,7 @@ app.interest.autocomplete.max=5 app.donation.modulus=10 app.url.auth.success=/ app.url.auth.failure=/login?error +app.url.front-end=http://localhost:8081 #24 hours app.user.delete.duration.valid=86400000 diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index 7336bdac..bb1cb16a 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -6,87 +6,37 @@ app.name=Alovoa error.generic=An error occured. Please try again. success.submit.generic=Your request has been successfully submitted. -success.clipboard=Copied to clipboard! -error.max-chars.generic=You have resubmitVerificationPicture()ached the maximum number of characters. -error.password-weak=Your password needs to be at least 7 characters long and must contain characters and numbers. -error.media.max-size-exceeded=File is too large! Maximum size is 2MB. -error.password-no-match=Passwords do not match. -error.format-not-supported=Format not supported. + success.generic=Success! -accent-color=Accent Color -alerts=Alerts + bmac=Buy me a coffee cancel=Cancel captcha=Captcha -chats=Chats -comment=Comment contact=Contact -dark=Dark -default=Default -description=Description -dob=Date of birth donate=Donate -donated=Donated -donations=Donations email=Email faq=FAQ -filter=Filter -first-name=First name -gender=Gender -imperial=Imperial imprint=Imprint -interest=Interest -interests=Interests -km=km -#do not translate -kofi=Ko-fi language=Language -last-name=Last name -light=Light -login=Login -logout=Logout message=Message -mi=mi -new-password=New password -no=No -no-users-found=No users found -optional=optional -or=Or -password=Password -password-repeat=Repeat password +kofi=Ko-fi +login=Login privacy-policy=Privacy Policy -profile=Profile -reports=Reports -save=Save -search=Search -si=SI sign-up=Sign up source-code=Source code -sort=Sort submit=Submit -subject=Subject tos=Terms of Service -units=Units website=Website yes=Yes +no=No + # TEMPLATE # meta.content=Meet new people in your area, absolutely privately using open-source technologies. You're only a few clicks away to find new friends, dating and sexual partners. Looking for a girlfriend, boyfriend, quick hookup, one-night stand or just someone with the same interests? No problem! -blocked-users.title=Blocked users -profile.blocked-users=Show blocked users -liked-users.title=Liked users -profile.liked-users=Show liked users -disliked-users.title=Disliked users -profile.disliked-users=Show disliked users -profile.warning.incomplete=User profile is incomplete, you won't be seen by other users. -profile.warning.no-profile-picture=No profile picture found! -profile.warning.no-description=No description found! -profile.warning.no-intention=No intention found! -profile.warning.no-gender-preference=No gender preference found! -profile.warning.no-location=No location found! It will be set automatically when you search for other users! -profile.warning.intention.limit=Intention changed. You cannot change it for another 24 hours. + delete-account.title=Delete account delete-account.confirm=I hereby confirm to delete this account permanently. delete-account.not-active=Link is not active yet. Please check the instructions we have sent you or send another account deletion request. + donate.title=Donate donate.notice-1=Be sure to fill in your account's email address in the message or name area. donate.notice-2=Use Stripe instead of PayPal because its fees are much lower. @@ -95,8 +45,10 @@ donate.latest-donations=Latest Donations donate.largest-donations=Largest Donations donate.donate-now=Donate now donate-list.store.warning=Donation links are not available because of store rules. Please visit this page in your browser to donate. + index.cookie.notice=This site uses cookies to store the session and user preferences to function properly. Your data is safe with us, as we don't store any personal information in the cookies nor do we send any information to a third party. By continuing to use this site you agree to the use of cookies. index.cookie.more=Click here to learn more + #do not translate index.subtitle=Meet new, exciting people! index.subtitle-2=100% free, no ads @@ -121,120 +73,7 @@ index.js.registration-confirm-failed=Confirmation failed, please try again! index.js.password-reset-requested=An email for resetting your password has been sent, please check your emails and follow the instructions. index.js.password-change-success=Your password has been successfully changed! index.js.confirm-account-deleted=Your account has been successfully deleted! -login.title=Login -login.subtitle=Please login to proceed. -login.forgot-password=Forgot password? -login.oauth.google=Sign in with Google -login.oauth.facebook=Sign in with Facebook -login.email.sign-in=Sign in with email -login.register=Don't have an account? -login.remember=Remember me -login.privacy-policy=Privacy policy was updated on the {0} -login.js.error=Login failed, please check your credentials, complete the captcha and try again. A new confirmation email has been sent to you if your account hasn't been verified yet. -message.title=Messages -message.match=You got a match! Tap here to send a message :) -message.video-chat=A video chat has been requested! -message.js.error.max-length=You have reached the maximum number of characters. -message.js.video.confirm=Invite chat partner to video chat? -notification.title=Notification -notification.liked-by=You have been liked by -password-change.title=Change password -password-change.warning=Your password needs to be at least 7 characters long and must contain characters and numbers. -password-reset.title=Reset password -profile.title=Profile -profile.webpush=Receive notifications -profile.intention=I want... -profile.intention.meet=to meet new people -profile.intention.date=a relationship -profile.intention.sex=sexual intimacy -profile.pref-age-range=Preferred age range -profile.min-age=Minimum Age -profile.max-age=Maximum Age -profile.gender=Looking for... -profile.gender.male=Male -profile.gender.female=Female -profile.gender.other=Other -profile.userdata.request=Request user data -profile.account.delete=Delete account -profile.interest.info=Only characters, digits and minus (-) allowed. Must be between 3 and 30 characters long. Maximum 5 interests. -profile.audio=Custom audio -profile.audio.info=Upload a short audio for your visitors. You can upload anything - sound effects, your voice or part of your favourite song! -profile.audio.delete=Delete audio? -profile.delete-account.success=Success! Please check your mailbox and read the instructions carefully. -profile.show-zodiac=Show zodiac signs -profile.ui-design=UI design -profile.ui-design.rounded=Rounded -profile.ui-design.angular=Angular -profile.referrer.info=Recommend Alovoa to a friend! Both of you will a get small but permanent visibility boost if a new account is created with this link: -profile.referrer.amount=Number of referrals left: -profile.misc-info.title=More Info -profile.misc-info.drugs.title=Drugs -profile.misc-info.relationship.title=Relationship Status -profile.misc-info.kids.title=Children -profile.misc-info.drugs.tobacco=Tobacco -profile.misc-info.drugs.alcohol=Alcohol -profile.misc-info.drugs.cannabis=Cannabis -profile.misc-info.drugs.other=Other drugs -profile.misc-info.relationship.single=Single -profile.misc-info.relationship.taken=In a relationship -profile.misc-info.relationship.open=Open relationship -profile.misc-info.relationship.other=It's complicated -profile.misc-info.kids.no=No Kids -profile.misc-info.kids.yes=Has Kids -profile.profile-picture.change.description-1=Change your profile picture? -profile.profile-picture.change.description-2=Your verification status will be removed. -profile.verification.your-verification=Your verification picture -profile.verification.description-1=Upload a picture of yourself showing the following characters: -profile.verification.description-2=Simply write the text on a white sheet of paper. Make sure that your face is clearly visible. -profile.verification.description-3=You can be verified by both us and the community. -profile.verification.instruction-1=Do both pictures depict the same person? -profile.verification.instruction-2=Is the verification text on a blank piece of paper? -profile.verification.instruction-3=Do the verification texts match? -profile.verification.vote.success=Your vote has been cast -profile.verification.button=Verify user -profile.verification.badge.community=Verified by the community -profile.verification.badge.admin=Verified by us -profile.js.delete-image.confirm=Delete selected image? -profile-onboarding.profile-picture=I look like this -profile-onboarding.description=Something about myself -profile-onboarding.description.placeholder=I really love ice cream! -profile-onboarding.interests=I really like these things... -profile-onboarding.intention.warning=Can only be changed again after 24 hours -profile-onboarding.match.title=Start getting likes! -profile-onboarding.match.subtitle=Messages can only be sent after a match -profile-onboarding.submit=Let's go! -register.title=Register -register.subtitle=Create a new account -#register.warning=password-change.warning -#register.gender.male=profile.gender.male -#register.gender.female=profile.gender.female -#register.gender.other=profile.gender.other -register.email.sign-up=Sign up with email -register.tos-agree=I agree to the Terms of Service -register.privacy-agree=I agree to the Privacy Policy -register.asterisk-warning=Fields with an asterisk (*) cannot be changed in the future -register.login=Already have an account? -register.oauth.google=Sign up with Google -register.oauth.facebook=Sign up with Facebook -register.referral-code=Referral code -search.title=Search -search.max-distance=Maximum distance -search.sort.filter.distance=Lowest distance -search.sort.filter.active=Active date -search.sort.filter.interests=Interests -search.sort.filter.total-donation=Total donations -search.sort.filter.new-users=New users -search.donation.popup=Do you want to donate? Each cent will help us reach out new users and add new features to improve the overall experience! -search.warning.global=No compatible users in your area. Showing users all around the globe. -search.warning.incompatible=No compatible users found. Showing incompatible users, be careful! -search.js.error.no-geolocation=Your browser does not support HTML5 geolocation. Please try with another browser. -search.js.error.no-location=Position could not be determined. Make sure that your GPS is turned on. -userprofile.report.confirm=Report user for violating the Terms of Service? -userprofile.num-blocks=# Blocks by users -userprofile.num-reports=# Reports by users -userprofile.js.block-user=Block user? -userprofile.js.unblock-user=Unblock user? -userprofile.js.success.report-user=User has been successfully reported! + faq.title=FAQ faq.privacy.question=Is my data really private? faq.privacy.answer=Yes. Your data is not shared with a third-party. @@ -250,9 +89,13 @@ faq.no-users.question=There are no users in my area! faq.no-users.answer=You can try in a few days, new users will be in your area eventually. Additionally, you can donate or tell your family and friends to make this platform even more popular! faq.delete-data.question=I want to delete my data, how can I do it? faq.delete-data.answer=We are sad to see you go, but if you are sure, click on the "Delete account" link on the bottom of your profile page. Afterwards just follow the instructions that we sent you to your email address. + imprint.title=Imprint + privacy.title=Privacy + tos.title=Terms of service + admin.title=Administration admin-delete-contact=Delete contact admin.delete-report=Delete report @@ -263,6 +106,7 @@ admin.remove-images=Remove images admin.mail.send-single=Send email admin.mail.send-all=Send email to all admin.mail.send-all.confirm=You are about to send an email to all users. Are you sure? + ### ### BACKEND ### ### @@ -290,12 +134,12 @@ backend.mail.account-delete-confirm.subject=Account deletion backend.mail.account-delete-confirm.body=Hello {0},
We have deleted your account at {1}. You can always create a new account if you change your mind. We hope to hear from you again :) backend.mail.account-confirmed.subject=Account confirmed backend.mail.account-confirmed.body=Hello {0},
We have confirmed your account creation at {1}. Have fun meeting new people! + # Text blocks #do not translate -backend.privacy=

Privacy Policy

This privacy policy will explain how our organization uses the personal data we collect from you when you use our website.

What data do we collect?

COMPANY_NAME collects the following data:

  • Personal identification information (Name, email address, birth date, etc.).
  • Your location and preferences.
  • Any interaction you have with another user.

How do we collect your data?

You directly provide COMPANY_NAME with most of the data we collect. We collect data and process data when you:

  • Register online.
  • Provide information in your profile area.
  • Search for other users.
  • Visit any page on the website.
  • Interact with users on the platform.
  • Voluntarily complete a customer survey or provide feedback.

How will we use your data?

COMPANY_NAME collects your data so that we can:

  • Manage your account.
  • Email you with important changes and news.
  • Allow other users to find you.

Third-party APIs

COMPANY_NAME uses third-party APIs of these sites

  • openstreetmap.org. Your general location is used to render map data when searching for users.
  • meet.jit.si. No personal data is shared, but their service is used to enable video and audio communication between users.
  • google.com and facebook.com. Your personal data stays safe in our local database, but these OAuth providers are able to indentify you each time you use their services.

How do we store your data?

COMPANY_NAME stores your data in a secure database.

COMPANY_NAME will keep your personal data for unlimited time. You can request to delete your data at all times.

COMPANY_NAME would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:

The right to access– You have the right to request COMPANY_NAME for copies of your personal data. We may charge you a small fee for this service.

The right to rectification– You have the right to request that COMPANY_NAME correct any information you believe is inaccurate. You also have the right to request COMPANY_NAME to complete the information you believe is incomplete.

The right to erasure– You have the right to request that COMPANY_NAME erase your personal data, under certain conditions.

The right to restrict processing- You have the right to request that COMPANY_NAME restrict the processing of your personal data, under certain conditions.

The right to object to processing– You have the right to object to COMPANY_NAME – processing of your personal data, under certain conditions.

The right to data portability– You have the right to request that COMPANY_NAME transfer the data that we have collected to another organization, or directly to you, under certain conditions.

If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please follow the instruction on how to contact us at the bottom of this page.

Cookies

Cookies are text files placed on your computer to collect standard Internet log information and visitor behavior information. When you visit our websites, we may collect information from you automatically through cookies or similar technology

For further information, visit allaboutcookies.org.

How do we use cookies?

COMPANY_NAME uses cookies in a range of ways to improve your experience on our website, including:

  • Keeping you signed in.
  • Storing non-personal data.

What types of cookies do we use?

There are a number of different types of cookies, however, our website uses:

  • Functionality – COMPANY_NAME uses these cookies so that we recognize you on our website and remember your previously selected preferences. These could include what language you prefer and location you are in.
  • That's it. Unlike our competitors, we don't have any cookies that can track you.

How to manage cookies

You can set your browser not to accept cookies, and the above website tells you how to remove cookies from your browser. However, in a few cases, some of our website features may not function as a result.

Privacy policies of other websites

The COMPANY_NAME website contains links to other websites. Our privacy policy applies only to our website, so if you click on a link to another website, you should read their privacy policy.

Changes to our privacy policy

COMPANY_NAME keeps its privacy policy under regular review and places any updates on this web page. This privacy policy was last updated on PRIVACY_UPDATE_DATE.

How to contact us

If you have any questions about COMPANY_NAME's privacy policy, the data we hold on you, or you would like to exercise one of your data protection rights, please do not hesitate to contact us here. Your contact data will be saved up to 90 days.

How delete your data

Please follow the instructions on our FAQ page

+backend.privacy=

Privacy Policy

This privacy policy will explain how our organization uses the personal data we collect from you when you use our website.

What data do we collect?

COMPANY_NAME collects the following data:

  • Personal identification information (Name, email address, birth date, etc.).
  • Your location and preferences.
  • Any interaction you have with another user.

How do we collect your data?

You directly provide COMPANY_NAME with most of the data we collect. We collect data and process data when you:

  • Register online.
  • Provide information in your profile area.
  • Search for other users.
  • Visit any page on the website.
  • Interact with users on the platform.
  • Voluntarily complete a customer survey or provide feedback.

How will we use your data?

COMPANY_NAME collects your data so that we can:

  • Manage your account.
  • Email you with important changes and news.
  • Allow other users to find you.

Third-party APIs

COMPANY_NAME uses third-party APIs of these sites

  • openstreetmap.org. Your general location is used to render map data when searching for users.
  • meet.jit.si. No personal data is shared, but their service is used to enable video and audio communication between users.
  • google.com and facebook.com. Your personal data stays safe in our local database, but these OAuth providers are able to indentify you each time you use their services.

How do we store your data?

COMPANY_NAME stores your data in a secure database.

COMPANY_NAME will keep your personal data for unlimited time. You can request to delete your data at all times.

COMPANY_NAME would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:

The right to access– You have the right to request COMPANY_NAME for copies of your personal data. We may charge you a small fee for this service.

The right to rectification– You have the right to request that COMPANY_NAME correct any information you believe is inaccurate. You also have the right to request COMPANY_NAME to complete the information you believe is incomplete.

The right to erasure– You have the right to request that COMPANY_NAME erase your personal data, under certain conditions.

The right to restrict processing- You have the right to request that COMPANY_NAME restrict the processing of your personal data, under certain conditions.

The right to object to processing– You have the right to object to COMPANY_NAME – processing of your personal data, under certain conditions.

The right to data portability– You have the right to request that COMPANY_NAME transfer the data that we have collected to another organization, or directly to you, under certain conditions.

If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please follow the instruction on how to contact us at the bottom of this page.

Cookies

Cookies are text files placed on your computer to collect standard Internet log information and visitor behavior information. When you visit our websites, we may collect information from you automatically through cookies or similar technology

For further information, visit allaboutcookies.org.

How do we use cookies?

COMPANY_NAME uses cookies in a range of ways to improve your experience on our website, including:

  • Keeping you signed in.
  • Storing non-personal data.

What types of cookies do we use?

There are a number of different types of cookies, however, our website uses:

  • Functionality – COMPANY_NAME uses these cookies so that we recognize you on our website and remember your previously selected preferences. These could include what language you prefer and location you are in.
  • That's it. Unlike our competitors, we don't have any cookies that can track you.

How to manage cookies

You can set your browser not to accept cookies, and the above website tells you how to remove cookies from your browser. However, in a few cases, some of our website features may not function as a result.

Privacy policies of other websites

The COMPANY_NAME website contains links to other websites. Our privacy policy applies only to our website, so if you click on a link to another website, you should read their privacy policy.

Changes to our privacy policy

COMPANY_NAME keeps its privacy policy under regular review and places any updates on this web page. This privacy policy was last updated on PRIVACY_UPDATE_DATE.

How to contact us

If you have any questions about COMPANY_NAME's privacy policy, the data we hold on you, or you would like to exercise one of your data protection rights, please do not hesitate to contact us here. Your contact data will be saved up to 90 days.

How delete your data

Please follow the instructions on our FAQ page

\ #do not translate backend.tos=

Terms of Service

Updated on TOS_UPDATE_DATE

1. Introduction

By using our Services, you accept the Terms of Service, which may be updated from time to time and our Privacy Policy. If you do not accept and agree to be bound by all of the terms, please do not use our services.

The platform is available in multiple languages, but only the languages English and German are officially supported. We cannot guarantee the correctness of any content from another language.

2. Eligibility

By creating an account and using the service, you represent and warrant that:

  • you can form a binding contract with COMPANY_NAME.
  • you are at least MIN_AGE years old.
  • you do not have more than one account on our services.
  • you will comply with this agreement and all national and international laws.
  • you have never been found guilty for a sex crime or violence related crime.
  • you treat others with a respectful manner.
  • you only upload data that belongs to you.
  • you do not impersonate another person.
  • you do not share illegal content.
  • you do not share links in your public profile.
  • you do not harass, bully, stalk, intimidate, assault, defame, harm or otherwise mistreat any person.
  • you do not upload sexual implicit or explicit content.
  • you have not previously been banned from our services.

4. Your content

You are solely responsible and liable for any content that you upload. By uploading your content you acknowledge that you own all the rights to do so.

5. Privacy

For all information regarding privacy, please read our Privacy Policy.

6. Donations & Refunds

COMPANY_NAME only receives donations and does not sell any virtual good or subscriptions. Donations are not refundable, except when it’s required by the country you reside in.

7. Our rights

We reserve the right to terminate your account at all times without prior notification.

8. Disclaimer

COMPANY_NAME PROVIDES THE SERVICE ON AN “AS IS” AND “AS AVAILABLE” BASIS AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, GRANTS NO WARRANTIES OF ANY KIND.

COMPANY_NAME DOES NOT REPRESENT OR WARRANT THAT THE SERVICE WILL BE UNINTERRUPTED OR ERROR FREE, OR THAT ANY CONTENT OR INFORMATION YOU OBTAIN ON OR THROUGH THE SERVICE WILL BE ACCURATE.

COMPANY_NAME TAKES NO RESPONSIBILITY FOR ANY CONTENT THAT YOU OR ANOTHER USER POSTS OR SENDS.

COMPANY_NAME IS NOT RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER HARDWARE OR SOFTWARE.

- diff --git a/src/main/resources/i18n/messages_de.properties b/src/main/resources/i18n/messages_de.properties index d4b515b1..9a1664ff 100644 --- a/src/main/resources/i18n/messages_de.properties +++ b/src/main/resources/i18n/messages_de.properties @@ -295,7 +295,7 @@ backend.mail.account-confirmed.body=Hallo {0},
Wir haben Deine Kontoerstell # Text blocks -backend.privacy=

Datenschutzrichtlinie

Diese Datenschutzrichtlinie erläutert, wie unser Unternehmen Deine personenbezogenen Daten verwendet, die wir von Dir bei der Nutzung unserer Website nutzen.

Welche Daten sammeln wir?

COMPANY_NAME sammelt die folgenden Daten:

  • Persönliche Identifikationsdaten (Name, E-Mail-Adresse, Geburtsdatum, etc.).
  • Dein Standort und Deine Präferenzen.
  • Jede Interaktion, die Du mit einem anderen Benutzer hast.

Wie sammeln wir Deine Daten?

Die meisten Daten, die wir sammeln, stellst Du COMPANY_NAME direkt zur Verfügung. Wir sichern Deine Daten, wenn Du:

  • Dich online registrierst.
  • Informationen in Deinem Profilbereich bereitstellst.
  • Nach anderen Benutzern.
  • Eine beliebige Seite auf der Website besuchst.
  • Mit Benutzern auf der Plattform interagierst.
  • Freiwillig eine Kundenumfrage ausfüllst oder Feedback gibst.

Wie verwenden wir Deine Daten?

COMPANY_NAME sammelt Deine Daten, damit:

  • Wir Dein Konto verwalten können.
  • Wir Dich per E-Mail über wichtige Änderungen und Neuigkeiten informieren können.
  • Andere Benutzer dich finden können.

Drittanbieter-APIs

COMPANY_NAME nutzt Drittanbieter-APIs dieser Seiten:

  • openstreetmap.org. Dein allgemeiner Standort wird verwendet, um Kartendaten bei der Suche nach Benutzern zu rendern.
  • meet.jit.si. Es werden keine persönlichen Daten weitergegeben, aber deren Dienste werden verwendet, um Video- und Audiokommunikation zwischen Nutzern zu ermöglichen.
  • google.com und facebook.com. Deine persönlichen Daten bleiben sicher in unserer lokalen Datenbank, aber diese OAuth-Anbieter können Dich jedes Mal identifizieren, wenn Du deren Dienste verwendest.

Wie speichern wir Deine Daten?

COMPANY_NAME speichert Deine Daten in einer sicheren Datenbank.

COMPANY_NAME speichert Deine persönlichen Daten für unbegrenzte Zeit. Du kannst jederzeit die Löschung Deiner Daten verlangen.

COMPANY_NAME möchte sicherstellen, dass Du über alle Deine Datenschutzrechte informiert bist. Jeder Nutzer ist hat das Recht auf Folgendes:

Recht auf Auskunft- Du hast das Recht, von COMPANY_NAME Kopien Deiner persönlichen Daten anzufordern. Für diesen Service können wir Dir eine geringe Gebühr berechnen.

Das Recht auf Berichtigung- Du hast das Recht, von COMPANY_NAME die Berichtigung von Informationen zu verlangen, die Du für unrichtig hällst. Du hast auch das Recht, COMPANY_NAME aufzufordern, die Informationen, die Du für unvollständig hällst, zu vervollständigen.

Das Recht auf Löschung- Du hast das Recht zu verlangen, dass COMPANY_NAME Deine persönlichen Daten löscht, unter bestimmten Bedingungen.

Das Recht auf Einschränkung der Verarbeitung- Du hast das Recht zu verlangen, dass COMPANY_NAME die Verarbeitung Deiner personenbezogenen Daten unter bestimmten Bedingungen einschränkt.

Widerspruchsrecht gegen die Verarbeitung- Du hast das Recht, die Verarbeitung Deiner personenbezogenen Daten durch COMPANY_NAME unter bestimmten Bedingungen zu widersprechen.

Das Recht auf Datenübertragbarkeit- Du hast das Recht zu verlangen, dass COMPANY_NAME die von uns erhobenen Daten die wir gesammelt haben, unter bestimmten Bedingungen an eine andere Organisation oder direkt an Dich zu übertragen.

Wenn Du eine Anfrage stellst, haben wir einen Monat Zeit, Dir zu antworten. Wenn Du eines dieser Rechte ausüben möchtest, folge bitte den Anweisungen am Ende dieser Seite, wie DU uns kontaktieren kannst.

Cookies

Cookies sind Textdateien, die auf Deinem Computer platziert werden, um Standard-Internet-Log-Informationen und Informationen zum Besucherverhalten zu sammeln. Informationen zu sammeln. Wenn Du unsere Webseite besuchst, sammeln wir möglicherweise automatisch Informationen von Dir durch Cookies oder eine ähnliche Technologie.

Für weitere Informationen besuche bitte allaboutcookies.org.

Wie verwenden wir Cookies?

COMPANY_NAME verwendet Cookies auf verschiedene Weisen, um Deine Erfahrung auf unserer Website zu verbessern. Folgende Funktionen werden durch Cookies ermöglicht:

  • Du bleibst eingeloggt.
  • Sicherung von nicht-personenbezogenen Daten.

Welche Arten von Cookies verwenden wir?

Es gibt eine Reihe von verschiedenen Arten von Cookies, unsere Website verwendet jedoch:

  • Funktionalität - COMPANY_NAME verwendet diese Cookies, damit wir Dich auf unserer Website erkennen können und damit wir einige Deiner zuvor gewählten Präferenzen sichern können. Dazu könnte gehören zum Beispiel, welche Sprache Du bevorzugst und an welchem Ort Du dich befindest.
  • Das war's. Im Gegensatz zu unseren Wettbewerbern verwenden wir keine Cookies, die Dich verfolgen können.

Wie man Cookies verwaltet

Du kannst Dein Browser so einstellen, dass dieser keine Cookies akzeptiert, und auf der oben genannten Website erfährst du, wie Du Cookies deaktivieren kannst. In einigen Fällen kann es jedoch vorkommen, dass einige Funktionen unserer Website dadurch nicht funktionieren.

Datenschutzrichtlinien anderer Websites

Die Website von COMPANY_NAME enthält Links zu anderen Websites. Unsere Datenschutzrichtlinien gelten nur für unsere Website, wenn Du also auf einen Link zu einer anderen Website klickst, solltst Du deren Datenschutzrichtlinien lesen.

Änderungen an unserer Datenschutzrichtlinie

COMPANY_NAME überprüft seine Datenschutzrichtlinien regelmäßig und stellt etwaige Aktualisierungen auf diese Webseite. Diese Datenschutz Richtlinie wurde zuletzt am PRIVACY_UPDATE_DATE aktualisiert.

Wie Du uns kontaktieren kannst

Wenn Du Fragen zur Datenschutzerklärung von COMPANY_NAME hast, zu den von uns über Dich gespeicherten Daten, oder wenn Du eines Deiner Datenschutzrechte ausüben möchtest, zögerere nicht, uns hierzu kontaktieren. Deine Kontaktdaten werden bis zu 90 Tage lang gesichert.

Wie du Deine Daten löschen kannst

Bitte folge die Instruktionen auf unserer FAQ Seite

+backend.privacy=

Datenschutzrichtlinie

Diese Datenschutzrichtlinie erläutert, wie unser Unternehmen Deine personenbezogenen Daten verwendet, die wir von Dir bei der Nutzung unserer Website nutzen.

Welche Daten sammeln wir?

COMPANY_NAME sammelt die folgenden Daten:

  • Persönliche Identifikationsdaten (Name, E-Mail-Adresse, Geburtsdatum, etc.).
  • Dein Standort und Deine Präferenzen.
  • Jede Interaktion, die Du mit einem anderen Benutzer hast.

Wie sammeln wir Deine Daten?

Die meisten Daten, die wir sammeln, stellst Du COMPANY_NAME direkt zur Verfügung. Wir sichern Deine Daten, wenn Du:

  • Dich online registrierst.
  • Informationen in Deinem Profilbereich bereitstellst.
  • Nach anderen Benutzern.
  • Eine beliebige Seite auf der Website besuchst.
  • Mit Benutzern auf der Plattform interagierst.
  • Freiwillig eine Kundenumfrage ausfüllst oder Feedback gibst.

Wie verwenden wir Deine Daten?

COMPANY_NAME sammelt Deine Daten, damit:

  • Wir Dein Konto verwalten können.
  • Wir Dich per E-Mail über wichtige Änderungen und Neuigkeiten informieren können.
  • Andere Benutzer dich finden können.

Drittanbieter-APIs

COMPANY_NAME nutzt Drittanbieter-APIs dieser Seiten:

  • openstreetmap.org. Dein allgemeiner Standort wird verwendet, um Kartendaten bei der Suche nach Benutzern zu rendern.
  • meet.jit.si. Es werden keine persönlichen Daten weitergegeben, aber deren Dienste werden verwendet, um Video- und Audiokommunikation zwischen Nutzern zu ermöglichen.
  • google.com und facebook.com. Deine persönlichen Daten bleiben sicher in unserer lokalen Datenbank, aber diese OAuth-Anbieter können Dich jedes Mal identifizieren, wenn Du deren Dienste verwendest.

Wie speichern wir Deine Daten?

COMPANY_NAME speichert Deine Daten in einer sicheren Datenbank.

COMPANY_NAME speichert Deine persönlichen Daten für unbegrenzte Zeit. Du kannst jederzeit die Löschung Deiner Daten verlangen.

COMPANY_NAME möchte sicherstellen, dass Du über alle Deine Datenschutzrechte informiert bist. Jeder Nutzer ist hat das Recht auf Folgendes:

Recht auf Auskunft- Du hast das Recht, von COMPANY_NAME Kopien Deiner persönlichen Daten anzufordern. Für diesen Service können wir Dir eine geringe Gebühr berechnen.

Das Recht auf Berichtigung- Du hast das Recht, von COMPANY_NAME die Berichtigung von Informationen zu verlangen, die Du für unrichtig hällst. Du hast auch das Recht, COMPANY_NAME aufzufordern, die Informationen, die Du für unvollständig hällst, zu vervollständigen.

Das Recht auf Löschung- Du hast das Recht zu verlangen, dass COMPANY_NAME Deine persönlichen Daten löscht, unter bestimmten Bedingungen.

Das Recht auf Einschränkung der Verarbeitung- Du hast das Recht zu verlangen, dass COMPANY_NAME die Verarbeitung Deiner personenbezogenen Daten unter bestimmten Bedingungen einschränkt.

Widerspruchsrecht gegen die Verarbeitung- Du hast das Recht, die Verarbeitung Deiner personenbezogenen Daten durch COMPANY_NAME unter bestimmten Bedingungen zu widersprechen.

Das Recht auf Datenübertragbarkeit- Du hast das Recht zu verlangen, dass COMPANY_NAME die von uns erhobenen Daten die wir gesammelt haben, unter bestimmten Bedingungen an eine andere Organisation oder direkt an Dich zu übertragen.

Wenn Du eine Anfrage stellst, haben wir einen Monat Zeit, Dir zu antworten. Wenn Du eines dieser Rechte ausüben möchtest, folge bitte den Anweisungen am Ende dieser Seite, wie DU uns kontaktieren kannst.

Cookies

Cookies sind Textdateien, die auf Deinem Computer platziert werden, um Standard-Internet-Log-Informationen und Informationen zum Besucherverhalten zu sammeln. Informationen zu sammeln. Wenn Du unsere Webseite besuchst, sammeln wir möglicherweise automatisch Informationen von Dir durch Cookies oder eine ähnliche Technologie.

Für weitere Informationen besuche bitte allaboutcookies.org.

Wie verwenden wir Cookies?

COMPANY_NAME verwendet Cookies auf verschiedene Weisen, um Deine Erfahrung auf unserer Website zu verbessern. Folgende Funktionen werden durch Cookies ermöglicht:

  • Du bleibst eingeloggt.
  • Sicherung von nicht-personenbezogenen Daten.

Welche Arten von Cookies verwenden wir?

Es gibt eine Reihe von verschiedenen Arten von Cookies, unsere Website verwendet jedoch:

  • Funktionalität - COMPANY_NAME verwendet diese Cookies, damit wir Dich auf unserer Website erkennen können und damit wir einige Deiner zuvor gewählten Präferenzen sichern können. Dazu könnte gehören zum Beispiel, welche Sprache Du bevorzugst und an welchem Ort Du dich befindest.
  • Das war's. Im Gegensatz zu unseren Wettbewerbern verwenden wir keine Cookies, die Dich verfolgen können.

Wie man Cookies verwaltet

Du kannst Dein Browser so einstellen, dass dieser keine Cookies akzeptiert, und auf der oben genannten Website erfährst du, wie Du Cookies deaktivieren kannst. In einigen Fällen kann es jedoch vorkommen, dass einige Funktionen unserer Website dadurch nicht funktionieren.

Datenschutzrichtlinien anderer Websites

Die Website von COMPANY_NAME enthält Links zu anderen Websites. Unsere Datenschutzrichtlinien gelten nur für unsere Website, wenn Du also auf einen Link zu einer anderen Website klickst, solltst Du deren Datenschutzrichtlinien lesen.

Änderungen an unserer Datenschutzrichtlinie

COMPANY_NAME überprüft seine Datenschutzrichtlinien regelmäßig und stellt etwaige Aktualisierungen auf diese Webseite. Diese Datenschutz Richtlinie wurde zuletzt am PRIVACY_UPDATE_DATE aktualisiert.

Wie Du uns kontaktieren kannst

Wenn Du Fragen zur Datenschutzerklärung von COMPANY_NAME hast, zu den von uns über Dich gespeicherten Daten, oder wenn Du eines Deiner Datenschutzrechte ausüben möchtest, zögerere nicht, uns hier zu kontaktieren. Deine Kontaktdaten werden bis zu 90 Tage lang gesichert.

Wie du Deine Daten löschen kannst

Bitte folge die Instruktionen auf unserer FAQ Seite

backend.tos=

Dienstleistungsbedingungen

Aktualisiert am TOS_UPDATE_DATE

1. Einleitung

Indem Du unsere Dienste nutzt, akzeptierst Du die Nutzungsbedingungen, die von Zeit zu Zeit aktualisiert werden können, sowie unsere Datenschutz Policy. Wenn Du nicht alle Bedingungen akzeptierst und damit einverstanden bist, nutze bitte unsere Dienste nicht.

Die Plattform ist in mehreren Sprachen verfügbar, aber nur die Sprachen Englisch und Deutsch werden offiziell unterstützt. Wir können nicht für die Korrektheit von Inhalten in einer anderen Sprache garantieren.

2. Teilnahmeberechtigung

Du musst mindestens MIN_AGE Jahre alt sein, um ein Konto zu erstellen und den Dienst zu nutzen. Durch die Erstellung eines Kontos und die Nutzung sicherst Du zu und gewährleistest folgende Dinge:

  • Du kannst einen verbindlichen Vertrag mit COMPANY_NAME abschließen.
  • Du bist mindestens MIN_AGE Jahre alt.
  • Du hast nicht mehr als ein Konto auf unserer Plattform
  • Du hällst dich an diese Vereinbarung und alle nationalen und internationalen Gesetze.
  • Du bist noch nie wegen eines Sexual- oder Gewaltverbrechens verurteilt worden.
  • Du behandelst andere mit Respekt.
  • Du lädst nur Daten hoch, die Dir gehört.
  • Du geben sich nicht als eine andere Person aus.
  • Du teilst keine illegalen Inhalte.
  • Du teilst keine Links in Deinem öffentlichen Profil.
  • Du belästigst, schikanierst, stalkst, bedrohst, attackierst, diffamierest, verletzt oder misshandelst keine andere Person.
  • Du lädst keine sexuell impliziten oder expliziten Inhalte hoch.
  • Du wurdest bisher nicht von unserer Plattform entfernt.

4. Dein Inhalt

Du bist allein verantwortlich und haftbar für alle Inhalte, die Du hochladen. Mit dem Hochladen Deiner Inhalte erkennst Du an, dass Du alle Rechte daran besitzt.

5. Datenschutz

Für alle Informationen zum Datenschutz lies bitte die Datenschutzrichtlinie.

6. Spenden & Rückerstattungen

COMPANY_NAME nimmt nur Spenden entgegen und verkauft keine virtuellen Güter oder Abonnements. Spenden werden nicht zurückerstattet, es sei denn, dass das Land, in dem Du Deinen Wohnsitz habst, dies verlangt.

7. Unsere Rechte

Wir behalten uns das Recht vor, Dein Account jederzeit ohne vorherige Ankündigung zu terminieren.

8. Haftungsausschluss

COMPANY_NAME STELLT DEN SERVICE SO ZUR VERFÜGUNG "WIE ES IST", UND ES BESTEHT KEIN ANSPRUCH AUF GEWÄHRLEISTUNG JEGLICHER ART, SOWEIT DIES GESETZLICH ZULÄSSIG IST.

COMPANY_NAME SICHERT NICHT ZU ODER GARANTIERT NICHT, DASS DER DIENST UNUNTERBROCHEN LÄUFT ODER FEHLERFREI IST, ODER DASS INHALTE ODER INFORMATIONEN, DIE DU AUF ODER ÜBER DEN DIENST ERHALTEN, KORREKT SIND.

COMPANY_NAME ÜBERNIMMT KEINE VERANTWORTUNG FÜR INHALTE, DIE DU ODER EIN ANDERER NUTZER HOCHLÄDT ODER VERSENDET.

COMPANY_NAME IST NICHT VERANTWORTLICH FÜR SCHÄDEN AN DEINER COMPUTER-HARDWARE ODER -SOFTWARE.

diff --git a/src/main/resources/static/css/admin-search.css b/src/main/resources/static/css/admin-search.css new file mode 100644 index 00000000..2bb4de71 --- /dev/null +++ b/src/main/resources/static/css/admin-search.css @@ -0,0 +1,119 @@ +html { + background-image: url(/img/search-cover.webp); +} + +#map { + height: 90vh; + min-height: 360px; + width: 100%; +} + +.image img { + max-height: 400px; + max-width: 400px; +} + +.card { + padding: 24px; + box-sizing: border-box; + border-bottom: 1px solid; + border-color: #dbdbdb; + border-radius: initial; +} + +.button.colored svg { + color: white; +} + +.profile-bottom .button { + height: 56px; + width: 56px; +} + +.card-content .content { + height: 339px; +} + +.content { + padding-top: 36px; +} + +#max-distance-slider { + margin-right: 8px; +} + +.swiper-container { + width: 100%; + height: 100%; +} + +.swiper-slide { + height: auto; +} + +.card.is-horizontal { + flex-direction: row; + display: flex; + box-shadow: none; + margin-bottom: 16px; +} + +.card.is-horizontal .card-image { + align-self: center; +} + +.card.is-horizontal .image { + min-height: 100%; +} + +.card.is-horizontal .card-content { + flex: 1; +} + +.card.is-horizontal .card-content { + padding-left: 4em; + padding-top: 0; + padding-bottom: 0; + font-size: 0.8em; +} + +.hidden { + visibility: hidden; +} + +.user-search-card { + scroll-snap-align: start; +} + +.user-search-div { + margin-bottom: 24px; + overflow-y: scroll; + scrollbar-width: thin; +} + +.content-background { + padding-bottom: 8px; +} + +.leaflet-popup-content { + width: 56px !important; +} +.search-button-padding { + padding-right: 24px; +} + +.card-image { + cursor: pointer; +} + +.common-interests { + padding-top: 8px; +} + +.common-interests > div { + padding: 0.4rem 0.8rem 0.4rem 0.8rem; +} + +.description { + padding-top: 8px; +} \ No newline at end of file diff --git a/src/main/resources/static/css/donate.css b/src/main/resources/static/css/donate.css deleted file mode 100644 index b0b372c3..00000000 --- a/src/main/resources/static/css/donate.css +++ /dev/null @@ -1,82 +0,0 @@ -.card { - height: initial; -} - -.card-content { - position: initial; -} - -.profile-pic:hover { - cursor: pointer; -} - -.card-image { - width: initial; -} - -#donation-select { - flex: 1; - margin-right: 4px; -} - -#donate-button { - flex: 1; -} - -#main-container { - overflow-y: scroll; -} - -#donate-top-margin { - margin-top: 8px; -} - -@media screen and (max-width: 1024px) { - #donate-cards-div { - margin-bottom: 0px; - } - - .card.is-horizontal { - margin-top: initial; - } - - #main-container { - scroll-snap-type: y mandatory; - height: calc(100vh - 112px); - height: calc(100 * var(--vh) - 112px); - } - - .card-image { - margin-top: 16px; - } - - .donate-user-card .content { - padding: 12px; - } -} - -@media screen and (max-width: 600px) { - #donate-top-margin { - margin-top: 0px; - } -} - -@media screen and (max-width: 450px) { - #donate-now-text { - display: none; - } - .donate-user-card .content { - padding-top: 0px; - } - .description { - padding-top: 2px !important; - } -} - -/* KAIOS Screns are very small */ -@media screen and (max-width: 302px) { - #main-container { - height: calc(100vh - 56px); - height: calc(100 * var(--vh) - 56px); - } -} \ No newline at end of file diff --git a/src/main/resources/static/css/lib/bulma.blue.css b/src/main/resources/static/css/lib/bulma.blue.css deleted file mode 100644 index ec4f4976..00000000 --- a/src/main/resources/static/css/lib/bulma.blue.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ -@charset "UTF-8";a{color:#43a4f4;}a.box:hover,a.box:focus{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #43a4f4}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #43a4f4}.button:focus,.button.is-focused{border-color:#43a4f4;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.button.is-ghost{background:none;border-color:transparent;color:#43a4f4;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#43a4f4;text-decoration:underline}.button.is-primary{background-color:#43a4f4;border-color:transparent;color:#fff}.button.is-primary:hover,.button.is-primary.is-hovered{background-color:#379ff3;border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.button.is-primary.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.button.is-primary:active,.button.is-primary.is-active{background-color:#2b99f3;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#43a4f4;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#43a4f4}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#43a4f4}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#43a4f4;color:#43a4f4}.button.is-primary.is-outlined:hover,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined.is-focused{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-primary.is-outlined.is-loading:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#43a4f4;box-shadow:none;color:#43a4f4}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined.is-focused{background-color:#fff;color:#43a4f4}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-primary.is-light{background-color:#ecf6fe;color:#0a64ae}.button.is-primary.is-light:hover,.button.is-primary.is-light.is-hovered{background-color:#e0f0fd;border-color:transparent;color:#0a64ae}.button.is-primary.is-light:active,.button.is-primary.is-light.is-active{background-color:#d4eafc;border-color:transparent;color:#0a64ae}.button.is-link{background-color:#43a4f4;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#379ff3;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2b99f3;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#43a4f4;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#43a4f4}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#43a4f4}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#43a4f4;color:#43a4f4}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#43a4f4;box-shadow:none;color:#43a4f4}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#43a4f4}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-link.is-light{background-color:#ecf6fe;color:#0a64ae}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e0f0fd;border-color:transparent;color:#0a64ae}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#d4eafc;border-color:transparent;color:#0a64ae}.button.is-info{background-color:#43a4f4;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#379ff3;border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.button.is-info:active,.button.is-info.is-active{background-color:#2b99f3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#43a4f4;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#43a4f4}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#43a4f4}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#43a4f4;color:#43a4f4}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#43a4f4;box-shadow:none;color:#43a4f4}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#43a4f4}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #43a4f4 #43a4f4!important}.button.is-info.is-light{background-color:#ecf6fe;color:#0a64ae}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f0fd;border-color:transparent;color:#0a64ae}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4eafc;border-color:transparent;color:#0a64ae}.notification.is-primary{background-color:#43a4f4;color:#fff}.notification.is-primary.is-light{background-color:#ecf6fe;color:#0a64ae}.notification.is-link{background-color:#43a4f4;color:#fff}.notification.is-link.is-light{background-color:#ecf6fe;color:#0a64ae}.notification.is-info{background-color:#43a4f4;color:#fff}.notification.is-info.is-light{background-color:#ecf6fe;color:#0a64ae}.progress.is-primary::-webkit-progress-value{background-color:#43a4f4}.progress.is-primary::-moz-progress-bar{background-color:#43a4f4}.progress.is-primary::-ms-fill{background-color:#43a4f4}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#43a4f4 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#43a4f4}.progress.is-link::-moz-progress-bar{background-color:#43a4f4}.progress.is-link::-ms-fill{background-color:#43a4f4}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#43a4f4 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#43a4f4}.progress.is-info::-moz-progress-bar{background-color:#43a4f4}.progress.is-info::-ms-fill{background-color:#43a4f4}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#43a4f4 30%,#ededed 30%)}.table td.is-primary,.table th.is-primary{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.table td.is-link,.table th.is-link{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.table td.is-info,.table th.is-info{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.table td.is-selected,.table th.is-selected{background-color:#43a4f4;color:#fff}.table tr.is-selected{background-color:#43a4f4;color:#fff}.tag:not(body).is-primary{background-color:#43a4f4;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ecf6fe;color:#0a64ae}.tag:not(body).is-link{background-color:#43a4f4;color:#fff}.tag:not(body).is-link.is-light{background-color:#ecf6fe;color:#0a64ae}.tag:not(body).is-info{background-color:#43a4f4;color:#fff}.tag:not(body).is-info.is-light{background-color:#ecf6fe;color:#0a64ae}.input:focus,.textarea:focus,.select select:focus,.is-focused.input,.is-focused.textarea,.select select.is-focused,.input:active,.textarea:active,.select select:active,.is-active.input,.is-active.textarea,.select select.is-active{border-color:#43a4f4;box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.is-primary.input,.is-primary.textarea{border-color:#43a4f4}.is-primary.input:focus,.is-primary.textarea:focus,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.input:active,.is-primary.textarea:active,.is-primary.is-active.input,.is-primary.is-active.textarea{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.is-link.input,.is-link.textarea{border-color:#43a4f4}.is-link.input:focus,.is-link.textarea:focus,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.input:active,.is-link.textarea:active,.is-link.is-active.input,.is-link.is-active.textarea{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.is-info.input,.is-info.textarea{border-color:#43a4f4}.is-info.input:focus,.is-info.textarea:focus,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.input:active,.is-info.textarea:active,.is-info.is-active.input,.is-info.is-active.textarea{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.select:not(.is-multiple):not(.is-loading)::after{border-color:#43a4f4;right:1.125em;z-index:4}.select.is-primary:not(:hover)::after{border-color:#43a4f4}.select.is-primary select{border-color:#43a4f4}.select.is-primary select:hover,.select.is-primary select.is-hovered{border-color:#2b99f3}.select.is-primary select:focus,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select.is-active{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.select.is-link:not(:hover)::after{border-color:#43a4f4}.select.is-link select{border-color:#43a4f4}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2b99f3}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.select.is-info:not(:hover)::after{border-color:#43a4f4}.select.is-info select{border-color:#43a4f4}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#2b99f3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 .125em rgba(67,164,244,.25)}.file.is-primary .file-cta{background-color:#43a4f4;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.file.is-primary.is-hovered .file-cta{background-color:#379ff3;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.file.is-primary.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(67,164,244,.25);color:#fff}.file.is-primary:active .file-cta,.file.is-primary.is-active .file-cta{background-color:#2b99f3;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#43a4f4;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#379ff3;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(67,164,244,.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2b99f3;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#43a4f4;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#379ff3;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(67,164,244,.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#2b99f3;border-color:transparent;color:#fff}.help.is-primary{color:#43a4f4}.help.is-link{color:#43a4f4}.help.is-info{color:#43a4f4}.breadcrumb a{align-items:center;color:#43a4f4;display:flex;justify-content:center;padding:0 .75em}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#43a4f4;color:#fff}.menu-list a.is-active{background-color:#43a4f4;color:#fff}.message.is-primary{background-color:#ecf6fe}.message.is-primary .message-header{background-color:#43a4f4;color:#fff}.message.is-primary .message-body{border-color:#43a4f4;color:#0a64ae}.message.is-link{background-color:#ecf6fe}.message.is-link .message-header{background-color:#43a4f4;color:#fff}.message.is-link .message-body{border-color:#43a4f4;color:#0a64ae}.message.is-info{background-color:#ecf6fe}.message.is-info .message-header{background-color:#43a4f4;color:#fff}.message.is-info .message-body{border-color:#43a4f4;color:#0a64ae}.navbar.is-primary{background-color:#43a4f4;color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active{background-color:#2b99f3;color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active{background-color:#2b99f3;color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2b99f3;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#43a4f4;color:#fff}.navbar.is-link{background-color:#43a4f4;color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2b99f3;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2b99f3;color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2b99f3;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#43a4f4;color:#fff}.navbar.is-info{background-color:#43a4f4;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#2b99f3;color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#2b99f3;color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2b99f3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#43a4f4;color:#fff}}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#43a4f4}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#43a4f4}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#43a4f4;border-bottom-style:solid;border-bottom-width:3px;color:#43a4f4;padding-bottom:calc(.5rem - 3px)}.navbar-link:not(.is-arrowless)::after{border-color:#43a4f4;margin-top:-.375em;right:1.125em}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#43a4f4}.navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#43a4f4}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#43a4f4}.pagination-link.is-current{background-color:#43a4f4;border-color:#43a4f4;color:#fff}.panel.is-primary .panel-heading{background-color:#43a4f4;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#43a4f4}.panel.is-primary .panel-block.is-active .panel-icon{color:#43a4f4}.panel.is-link .panel-heading{background-color:#43a4f4;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#43a4f4}.panel.is-link .panel-block.is-active .panel-icon{color:#43a4f4}.panel.is-info .panel-heading{background-color:#43a4f4;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#43a4f4}.panel.is-info .panel-block.is-active .panel-icon{color:#43a4f4}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#43a4f4}.panel-block.is-active{border-left-color:#43a4f4;color:#363636}.panel-block.is-active .panel-icon{color:#43a4f4}.tabs li.is-active a{border-bottom-color:#43a4f4;color:#43a4f4}.tabs.is-toggle li.is-active a{background-color:#43a4f4;border-color:#43a4f4;color:#fff;z-index:1}.has-text-primary{color:#43a4f4!important}a.has-text-primary:hover,a.has-text-primary:focus{color:#138df1!important}.has-background-primary{background-color:#43a4f4!important}.has-text-primary-light{color:#ecf6fe!important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#bcdefb!important}.has-background-primary-light{background-color:#ecf6fe!important}.has-text-primary-dark{color:#0a64ae!important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#0d80de!important}.has-background-primary-dark{background-color:#0a64ae!important}.has-text-link{color:#43a4f4!important}a.has-text-link:hover,a.has-text-link:focus{color:#138df1!important}.has-background-link{background-color:#43a4f4!important}.has-text-link-light{color:#ecf6fe!important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#bcdefb!important}.has-background-link-light{background-color:#ecf6fe!important}.has-text-link-dark{color:#0a64ae!important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#0d80de!important}.has-background-link-dark{background-color:#0a64ae!important}.has-text-info{color:#43a4f4!important}a.has-text-info:hover,a.has-text-info:focus{color:#138df1!important}.has-background-info{background-color:#43a4f4!important}.has-text-info-light{color:#ecf6fe!important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bcdefb!important}.has-background-info-light{background-color:#ecf6fe!important}.has-text-info-dark{color:#0a64ae!important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#0d80de!important}.has-background-info-dark{background-color:#0a64ae!important}.hero.is-primary{background-color:#43a4f4;color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#43a4f4}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary .navbar-link.is-active{background-color:#2b99f3;color:#fff}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#43a4f4}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}}.hero.is-link{background-color:#43a4f4;color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#43a4f4}}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2b99f3;color:#fff}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#43a4f4}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}}.hero.is-info{background-color:#43a4f4;color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#43a4f4}}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#2b99f3;color:#fff}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#43a4f4}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#06b8fe 0%,#43a4f4 71%,#5795fa 100%)}}.switch[type=checkbox]:checked+label::before,.switch[type=checkbox]:checked+label:before{background:#43a4f4 !important} -.swiper-pagination-bullet-active{background:#43a4f4 !important} \ No newline at end of file diff --git a/src/main/resources/static/css/lib/bulma.orange.css b/src/main/resources/static/css/lib/bulma.orange.css deleted file mode 100644 index e408c10d..00000000 --- a/src/main/resources/static/css/lib/bulma.orange.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ -@charset "UTF-8";a{color:#ffa724;cursor:pointer;text-decoration:none}a.box:hover,a.box:focus{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #ffa724}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #ffa724}.button:focus,.button.is-focused{border-color:#ffa724;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.button.is-ghost{background:none;border-color:transparent;color:#ffa724;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#ffa724;text-decoration:underline}.button.is-primary{background-color:#ffa724;border-color:transparent;color:#fff}.button.is-primary:hover,.button.is-primary.is-hovered{background-color:#ffa217;border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.button.is-primary.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.button.is-primary:active,.button.is-primary.is-active{background-color:#ff9d0a;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#ffa724;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#ffa724}.button.is-primary.is-inverted:hover,.button.is-primary.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ffa724}.button.is-primary.is-outlined{background-color:transparent;border-color:#ffa724;color:#ffa724}.button.is-primary.is-outlined:hover,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined.is-focused{background-color:#ffa724;border-color:#ffa724;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#ffa724;box-shadow:none;color:#ffa724}.button.is-primary.is-inverted.is-outlined:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ffa724}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-primary.is-light{background-color:#fff7eb;color:#945900}.button.is-primary.is-light:hover,.button.is-primary.is-light.is-hovered{background-color:#fff2de;border-color:transparent;color:#945900}.button.is-primary.is-light:active,.button.is-primary.is-light.is-active{background-color:#ffedd1;border-color:transparent;color:#945900}.button.is-link{background-color:#ffa724;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#ffa217;border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.button.is-link:active,.button.is-link.is-active{background-color:#ff9d0a;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#ffa724;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#ffa724}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ffa724}.button.is-link.is-outlined{background-color:transparent;border-color:#ffa724;color:#ffa724}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#ffa724;border-color:#ffa724;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#ffa724;box-shadow:none;color:#ffa724}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ffa724}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-link.is-light{background-color:#fff7eb;color:#945900}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#fff2de;border-color:transparent;color:#945900}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#ffedd1;border-color:transparent;color:#945900}.button.is-info{background-color:#ffa724;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#ffa217;border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.button.is-info:active,.button.is-info.is-active{background-color:#ff9d0a;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#ffa724;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#ffa724}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ffa724}.button.is-info.is-outlined{background-color:transparent;border-color:#ffa724;color:#ffa724}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#ffa724;border-color:#ffa724;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#ffa724;box-shadow:none;color:#ffa724}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ffa724}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffa724 #ffa724!important}.button.is-info.is-light{background-color:#fff7eb;color:#945900}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#fff2de;border-color:transparent;color:#945900}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#ffedd1;border-color:transparent;color:#945900}.notification.is-primary{background-color:#ffa724;color:#fff}.notification.is-primary.is-light{background-color:#fff7eb;color:#945900}.notification.is-link{background-color:#ffa724;color:#fff}.notification.is-link.is-light{background-color:#fff7eb;color:#945900}.notification.is-info{background-color:#ffa724;color:#fff}.notification.is-info.is-light{background-color:#fff7eb;color:#945900}.progress.is-primary::-webkit-progress-value{background-color:#ffa724}.progress.is-primary::-moz-progress-bar{background-color:#ffa724}.progress.is-primary::-ms-fill{background-color:#ffa724}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#ffa724 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#ffa724}.progress.is-link::-moz-progress-bar{background-color:#ffa724}.progress.is-link::-ms-fill{background-color:#ffa724}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#ffa724 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#ffa724}.progress.is-info::-moz-progress-bar{background-color:#ffa724}.progress.is-info::-ms-fill{background-color:#ffa724}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#ffa724 30%,#ededed 30%)}.table td.is-primary,.table th.is-primary{background-color:#ffa724;border-color:#ffa724;color:#fff}.table td.is-link,.table th.is-link{background-color:#ffa724;border-color:#ffa724;color:#fff}.table td.is-info,.table th.is-info{background-color:#ffa724;border-color:#ffa724;color:#fff}.table td.is-selected,.table th.is-selected{background-color:#ffa724;color:#fff}.table tr.is-selected{background-color:#ffa724;color:#fff}.tag:not(body).is-primary{background-color:#ffa724;color:#fff}.tag:not(body).is-primary.is-light{background-color:#fff7eb;color:#945900}.tag:not(body).is-link{background-color:#ffa724;color:#fff}.tag:not(body).is-link.is-light{background-color:#fff7eb;color:#945900}.tag:not(body).is-info{background-color:#ffa724;color:#fff}.tag:not(body).is-info.is-light{background-color:#fff7eb;color:#945900}.input:focus,.textarea:focus,.select select:focus,.is-focused.input,.is-focused.textarea,.select select.is-focused,.input:active,.textarea:active,.select select:active,.is-active.input,.is-active.textarea,.select select.is-active{border-color:#ffa724;box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.is-primary.input,.is-primary.textarea{border-color:#ffa724}.is-primary.input:focus,.is-primary.textarea:focus,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.input:active,.is-primary.textarea:active,.is-primary.is-active.input,.is-primary.is-active.textarea{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.is-link.input,.is-link.textarea{border-color:#ffa724}.is-link.input:focus,.is-link.textarea:focus,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.input:active,.is-link.textarea:active,.is-link.is-active.input,.is-link.is-active.textarea{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.is-info.input,.is-info.textarea{border-color:#ffa724}.is-info.input:focus,.is-info.textarea:focus,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.input:active,.is-info.textarea:active,.is-info.is-active.input,.is-info.is-active.textarea{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.select:not(.is-multiple):not(.is-loading)::after{border-color:#ffa724;right:1.125em;z-index:4}.select.is-primary:not(:hover)::after{border-color:#ffa724}.select.is-primary select{border-color:#ffa724}.select.is-primary select:hover,.select.is-primary select.is-hovered{border-color:#ff9d0a}.select.is-primary select:focus,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select.is-active{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.select.is-link:not(:hover)::after{border-color:#ffa724}.select.is-link select{border-color:#ffa724}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#ff9d0a}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.select.is-info:not(:hover)::after{border-color:#ffa724}.select.is-info select{border-color:#ffa724}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#ff9d0a}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 .125em rgba(255,167,36,.25)}.file.is-primary .file-cta{background-color:#ffa724;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.file.is-primary.is-hovered .file-cta{background-color:#ffa217;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.file.is-primary.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,167,36,.25);color:#fff}.file.is-primary:active .file-cta,.file.is-primary.is-active .file-cta{background-color:#ff9d0a;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#ffa724;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#ffa217;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,167,36,.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#ff9d0a;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#ffa724;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#ffa217;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,167,36,.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#ff9d0a;border-color:transparent;color:#fff}.help.is-primary{color:#ffa724}.help.is-link{color:#ffa724}.help.is-info{color:#ffa724}.breadcrumb a{align-items:center;color:#ffa724;display:flex;justify-content:center;padding:0 .75em}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#ffa724;color:#fff}.menu-list a.is-active{background-color:#ffa724;color:#fff}.message.is-primary{background-color:#fff7eb}.message.is-primary .message-header{background-color:#ffa724;color:#fff}.message.is-primary .message-body{border-color:#ffa724;color:#945900}.message.is-link{background-color:#fff7eb}.message.is-link .message-header{background-color:#ffa724;color:#fff}.message.is-link .message-body{border-color:#ffa724;color:#945900}.message.is-info{background-color:#fff7eb}.message.is-info .message-header{background-color:#ffa724;color:#fff}.message.is-info .message-body{border-color:#ffa724;color:#945900}.navbar.is-primary{background-color:#ffa724;color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ff9d0a;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#ffa724;color:#fff}.navbar.is-link{background-color:#ffa724;color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ff9d0a;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#ffa724;color:#fff}.navbar.is-info{background-color:#ffa724;color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ff9d0a;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#ffa724;color:#fff}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#ffa724}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#ffa724}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#ffa724;border-bottom-style:solid;border-bottom-width:3px;color:#ffa724;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#ffa724;margin-top:-.375em;right:1.125em}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#ffa724}.navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#ffa724}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#ffa724}.pagination-link.is-current{background-color:#ffa724;border-color:#ffa724;color:#fff}.panel.is-primary .panel-heading{background-color:#ffa724;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#ffa724}.panel.is-primary .panel-block.is-active .panel-icon{color:#ffa724}.panel.is-link .panel-heading{background-color:#ffa724;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#ffa724}.panel.is-link .panel-block.is-active .panel-icon{color:#ffa724}.panel.is-info .panel-heading{background-color:#ffa724;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#ffa724}.panel.is-info .panel-block.is-active .panel-icon{color:#ffa724}.panel-list a:hover{color:#ffa724}.panel-block.is-active{border-left-color:#ffa724;color:#363636}.panel-block.is-active .panel-icon{color:#ffa724}.tabs li.is-active a{border-bottom-color:#ffa724;color:#ffa724}.tabs.is-toggle li.is-active a{background-color:#ffa724;border-color:#ffa724;color:#fff;z-index:1}.has-text-primary{color:#ffa724!important}a.has-text-primary:hover,a.has-text-primary:focus{color:#f09000!important}.has-background-primary{background-color:#ffa724!important}.has-text-primary-light{color:#fff7eb!important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#ffe2b8!important}.has-background-primary-light{background-color:#fff7eb!important}.has-text-primary-dark{color:#945900!important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#c77700!important}.has-background-primary-dark{background-color:#945900!important}.has-text-link{color:#ffa724!important}a.has-text-link:hover,a.has-text-link:focus{color:#f09000!important}.has-background-link{background-color:#ffa724!important}.has-text-link-light{color:#fff7eb!important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#ffe2b8!important}.has-background-link-light{background-color:#fff7eb!important}.has-text-link-dark{color:#945900!important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#c77700!important}.has-background-link-dark{background-color:#945900!important}.has-text-info{color:#ffa724!important}a.has-text-info:hover,a.has-text-info:focus{color:#f09000!important}.has-background-info{background-color:#ffa724!important}.has-text-info-light{color:#fff7eb!important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#ffe2b8!important}.has-background-info-light{background-color:#fff7eb!important}.has-text-info-dark{color:#945900!important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#c77700!important}.has-background-info-dark{background-color:#945900!important}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0%,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0%,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#ffa724;color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#ffa724}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ffa724}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}}.hero.is-link{background-color:#ffa724;color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#ffa724}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ffa724}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}}.hero.is-info{background-color:#ffa724;color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#ffa724}}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#ff9d0a;color:#fff}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#f06800 0%,#ffa724 71%,#ffd23d 100%)}}.switch[type=checkbox]:checked+label::before,.switch[type=checkbox]:checked+label:before{background:#ff9d0a !important} -.swiper-pagination-bullet-active{background:#ffa724 !important} \ No newline at end of file diff --git a/src/main/resources/static/css/lib/bulma.purple.css b/src/main/resources/static/css/lib/bulma.purple.css deleted file mode 100644 index 640294ae..00000000 --- a/src/main/resources/static/css/lib/bulma.purple.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ -@charset "UTF-8";a{color:#ab47bd;cursor:pointer;text-decoration:none}a.box:hover,a.box:focus{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #ab47bd}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #ab47bd}.button.is-primary{background-color:#ab47bd;border-color:transparent;color:#fff}.button.is-primary:hover,.button.is-primary.is-hovered{background-color:#a442b6;border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.button.is-primary.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.button.is-primary:active,.button.is-primary.is-active{background-color:#9c3eac;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#ab47bd;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#ab47bd}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ab47bd}.button.is-primary.is-outlined{background-color:transparent;border-color:#ab47bd;color:#ab47bd}.button.is-primary.is-outlined:hover,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined.is-focused{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#ab47bd;box-shadow:none;color:#ab47bd}.button.is-primary.is-inverted.is-outlined:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ab47bd}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-primary.is-light{background-color:#f8f0fa;color:#9c3eac}.button.is-primary.is-light:hover,.button.is-primary.is-light.is-hovered{background-color:#f4e7f6;border-color:transparent;color:#9c3eac}.button.is-primary.is-light:active,.button.is-primary.is-light.is-active{background-color:#f0ddf3;border-color:transparent;color:#9c3eac}.button.is-link{background-color:#ab47bd;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#a442b6;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.button.is-link:active,.button.is-link.is-active{background-color:#9c3eac;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#ab47bd;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#ab47bd}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ab47bd}.button.is-link.is-outlined{background-color:transparent;border-color:#ab47bd;color:#ab47bd}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#ab47bd;box-shadow:none;color:#ab47bd}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ab47bd}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-link.is-light{background-color:#f8f0fa;color:#9c3eac}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#f4e7f6;border-color:transparent;color:#9c3eac}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#f0ddf3;border-color:transparent;color:#9c3eac}.button.is-info{background-color:#ab47bd;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#a442b6;border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.button.is-info:active,.button.is-info.is-active{background-color:#9c3eac;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#ab47bd;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#ab47bd}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ab47bd}.button.is-info.is-outlined{background-color:transparent;border-color:#ab47bd;color:#ab47bd}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#ab47bd;box-shadow:none;color:#ab47bd}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ab47bd}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ab47bd #ab47bd!important}.button.is-info.is-light{background-color:#f8f0fa;color:#9c3eac}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#f4e7f6;border-color:transparent;color:#9c3eac}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#f0ddf3;border-color:transparent;color:#9c3eac}.notification.is-primary{background-color:#ab47bd;color:#fff}.notification.is-primary.is-light{background-color:#f8f0fa;color:#9c3eac}.notification.is-link{background-color:#ab47bd;color:#fff}.notification.is-link.is-light{background-color:#f8f0fa;color:#9c3eac}.notification.is-info{background-color:#ab47bd;color:#fff}.notification.is-info.is-light{background-color:#f8f0fa;color:#9c3eac}.progress.is-primary::-webkit-progress-value{background-color:#ab47bd}.progress.is-primary::-moz-progress-bar{background-color:#ab47bd}.progress.is-primary::-ms-fill{background-color:#ab47bd}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#ab47bd 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#ab47bd}.progress.is-link::-moz-progress-bar{background-color:#ab47bd}.progress.is-link::-ms-fill{background-color:#ab47bd}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#ab47bd 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#ab47bd}.progress.is-info::-moz-progress-bar{background-color:#ab47bd}.progress.is-info::-ms-fill{background-color:#ab47bd}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#ab47bd 30%,#ededed 30%)}.table td.is-primary,.table th.is-primary{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.table td.is-link,.table th.is-link{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.table td.is-info,.table th.is-info{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.table td.is-selected,.table th.is-selected{background-color:#ab47bd;color:#fff}.table tr.is-selected{background-color:#ab47bd;color:#fff}.tag:not(body).is-primary{background-color:#ab47bd;color:#fff}.tag:not(body).is-primary.is-light{background-color:#f8f0fa;color:#9c3eac}.tag:not(body).is-link{background-color:#ab47bd;color:#fff}.tag:not(body).is-link.is-light{background-color:#f8f0fa;color:#9c3eac}.tag:not(body).is-info{background-color:#ab47bd;color:#fff}.tag:not(body).is-info.is-light{background-color:#f8f0fa;color:#9c3eac}.input:focus,.textarea:focus,.select select:focus,.is-focused.input,.is-focused.textarea,.select select.is-focused,.input:active,.textarea:active,.select select:active,.is-active.input,.is-active.textarea,.select select.is-active{border-color:#ab47bd;box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.is-primary.input,.is-primary.textarea{border-color:#ab47bd}.is-primary.input:focus,.is-primary.textarea:focus,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.input:active,.is-primary.textarea:active,.is-primary.is-active.input,.is-primary.is-active.textarea{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.is-link.input,.is-link.textarea{border-color:#ab47bd}.is-link.input:focus,.is-link.textarea:focus,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.input:active,.is-link.textarea:active,.is-link.is-active.input,.is-link.is-active.textarea{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.is-info.input,.is-info.textarea{border-color:#ab47bd}.is-info.input:focus,.is-info.textarea:focus,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.input:active,.is-info.textarea:active,.is-info.is-active.input,.is-info.is-active.textarea{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#ab47bd;right:1.125em;z-index:4}.select.is-primary:not(:hover)::after{border-color:#ab47bd}.select.is-primary select{border-color:#ab47bd}.select.is-primary select:hover,.select.is-primary select.is-hovered{border-color:#9c3eac}.select.is-primary select:focus,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select.is-active{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.select.is-link:not(:hover)::after{border-color:#ab47bd}.select.is-link select{border-color:#ab47bd}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#9c3eac}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.select.is-info:not(:hover)::after{border-color:#ab47bd}.select.is-info select{border-color:#ab47bd}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#9c3eac}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 .125em rgba(171,71,189,.25)}.file.is-primary .file-cta{background-color:#ab47bd;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.file.is-primary.is-hovered .file-cta{background-color:#a442b6;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.file.is-primary.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(171,71,189,.25);color:#fff}.file.is-primary:active .file-cta,.file.is-primary.is-active .file-cta{background-color:#9c3eac;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#ab47bd;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#a442b6;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(171,71,189,.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#9c3eac;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#ab47bd;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#a442b6;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(171,71,189,.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#9c3eac;border-color:transparent;color:#fff}.help.is-primary{color:#ab47bd}.help.is-link{color:#ab47bd}.help.is-info{color:#ab47bd}.breadcrumb a{align-items:center;color:#ab47bd;display:flex;justify-content:center;padding:0 .75em}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#ab47bd;color:#fff}.menu-list a.is-active{background-color:#ab47bd;color:#fff}.message.is-primary{background-color:#f8f0fa}.message.is-primary .message-header{background-color:#ab47bd;color:#fff}.message.is-primary .message-body{border-color:#ab47bd;color:#9c3eac}.message.is-link{background-color:#f8f0fa}.message.is-link .message-header{background-color:#ab47bd;color:#fff}.message.is-link .message-body{border-color:#ab47bd;color:#9c3eac}.message.is-info{background-color:#f8f0fa}.message.is-info .message-header{background-color:#ab47bd;color:#fff}.message.is-info .message-body{border-color:#ab47bd;color:#9c3eac}.navbar.is-primary{background-color:#ab47bd;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link{background-color:#9c3eac;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#ab47bd;color:#fff}}.navbar.is-link{background-color:#ab47bd;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#9c3eac;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#ab47bd;color:#fff}}.navbar.is-info{background-color:#ab47bd;color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#9c3eac;color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#9c3eac;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#ab47bd;color:#fff}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#ab47bd}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#ab47bd}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#ab47bd;border-bottom-style:solid;border-bottom-width:3px;color:#ab47bd;padding-bottom:calc(.5rem - 3px)}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#ab47bd;margin-top:-.375em;right:1.125em}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#ab47bd}.navbar-dropdown a.navbar-item.is-active{background-color:whitesmoke;color:#ab47bd}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#ab47bd}.pagination-link.is-current{background-color:#ab47bd;border-color:#ab47bd;color:#fff}.panel.is-primary .panel-heading{background-color:#ab47bd;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#ab47bd}.panel.is-primary .panel-block.is-active .panel-icon{color:#ab47bd}.panel.is-link .panel-heading{background-color:#ab47bd;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#ab47bd}.panel.is-link .panel-block.is-active .panel-icon{color:#ab47bd}.panel.is-info .panel-heading{background-color:#ab47bd;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#ab47bd}.panel.is-info .panel-block.is-active .panel-icon{color:#ab47bd}.panel-list a:hover{color:#ab47bd}.panel-block.is-active{border-left-color:#ab47bd;color:#363636}.panel-block.is-active .panel-icon{color:#ab47bd}.tabs li.is-active a{border-bottom-color:#ab47bd;color:#ab47bd}.tabs.is-toggle li.is-active a{background-color:#ab47bd;border-color:#ab47bd;color:#fff;z-index:1}.has-text-primary{color:#ab47bd!important}a.has-text-primary:hover,a.has-text-primary:focus{color:#8b379a!important}.has-background-primary{background-color:#ab47bd!important}.has-text-primary-light{color:#f8f0fa!important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#e7cbec!important}.has-background-primary-light{background-color:#f8f0fa!important}.has-text-primary-dark{color:#9c3eac!important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#b45ac4!important}.has-background-primary-dark{background-color:#9c3eac!important}.has-text-link{color:#ab47bd!important}a.has-text-link:hover,a.has-text-link:focus{color:#8b379a!important}.has-background-link{background-color:#ab47bd!important}.has-text-link-light{color:#f8f0fa!important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#e7cbec!important}.has-background-link-light{background-color:#f8f0fa!important}.has-text-link-dark{color:#9c3eac!important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#b45ac4!important}.has-background-link-dark{background-color:#9c3eac!important}.has-text-info{color:#ab47bd!important}a.has-text-info:hover,a.has-text-info:focus{color:#8b379a!important}.has-background-info{background-color:#ab47bd!important}.has-text-info-light{color:#f8f0fa!important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#e7cbec!important}.has-background-info-light{background-color:#f8f0fa!important}.has-text-info-dark{color:#9c3eac!important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#b45ac4!important}.has-background-info-dark{background-color:#9c3eac!important}.hero.is-primary{background-color:#ab47bd;color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#ab47bd}}.hero.is-primary a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary .navbar-link.is-active{background-color:#9c3eac;color:#fff}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ab47bd}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}}.hero.is-link{background-color:#ab47bd;color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#ab47bd}}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#9c3eac;color:#fff}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ab47bd}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}}.hero.is-info{background-color:#ab47bd;color:#fff}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ab47bd}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#7e2da4 0%,#ab47bd 71%,#c954c7 100%)}}.switch[type=checkbox]:checked+label::before,.switch[type=checkbox]:checked+label:before{background:#ab47bd !important} -.swiper-pagination-bullet-active{background:#ab47bd !important} \ No newline at end of file diff --git a/src/main/resources/static/css/lib/leaflet.min.css b/src/main/resources/static/css/lib/leaflet.min.css deleted file mode 100644 index f44e4b63..00000000 --- a/src/main/resources/static/css/lib/leaflet.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/* @preserve - * Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com - * (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade - * BSD-2-Clause - */ -.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent;}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom;}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none;}.leaflet-container{-webkit-tap-highlight-color:transparent;}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4);}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078A8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:black}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;border:none;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:bold;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-clickable{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px;}.leaflet-tooltip-top{margin-top:-6px;}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px;}.leaflet-tooltip-right{margin-left:6px;}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff} \ No newline at end of file diff --git a/src/main/resources/static/css/message-detail.css b/src/main/resources/static/css/message-detail.css deleted file mode 100644 index 54e26149..00000000 --- a/src/main/resources/static/css/message-detail.css +++ /dev/null @@ -1,94 +0,0 @@ -#top { - border-bottom: 1px solid #dbdbdb; - padding-bottom: 16px; -} - -#first-name { - font-size: 2em -} - -#messages-div { - height: calc(100vh - 370px); - height: calc(100 * var(--vh) - 370px); - overflow: auto; -} - -#message-send-div { - height: 50px; -} - -#message-send-input { - float: left; - width: calc(100% - 52px - 14px); -} - -#message-send-padding { - float: left; - margin-left: 14px; - margin-top: 1px; -} - -#message-send-button { - float: left; - width: 52px; - height: 52px; -} - -#message-send-button svg { - color: white; -} - -.chat-message { - padding: 8px; - margin-right: 4px; - margin-left: 4px; - max-width: 80%; -} - -.chat-message.left { - border-radius: 4px; - background-color: rgba(127,127,127,0.1); -} - -.profile-pic { - height: 40px; - width: 40px; -} - -.section { - padding-top: 24px; - padding-bottom: 24px; -} - -@media only screen and (max-width: 500px) { - .profile-pic { - border-radius: 290486px; - } -} - -@media only screen and (max-height: 900px) { - #top { - height: 60px; - } - #messages-div { - height: calc(100vh - 370px); - height: calc(100 * var(--vh) - 370px); - } - #first-name { - font-size: 1.7em - } -} - - -@media only screen and (max-width: 400px) { - .section { - padding-top: 12px; - padding-bottom: 12px; - padding-left: 8px; - padding-right: 8px; - } - #messages-div { - height: calc(100vh - 290px); - height: calc(100 * var(--vh) - 290px); - } -} \ No newline at end of file diff --git a/src/main/resources/static/css/notification.css b/src/main/resources/static/css/notification.css deleted file mode 100644 index 627937fd..00000000 --- a/src/main/resources/static/css/notification.css +++ /dev/null @@ -1,116 +0,0 @@ -#main-container { - padding-bottom: 52px; -} - -.card-image:first-child img { - border-top-left-radius:12px; - border-top-right-radius: 12px; -} - -.image img { - max-height: 100px; - max-width: 100px; - min-width: 40px; - min-height: 40px; -} - -.card { - padding: 24px; - border: 1px solid #dbdbdb; - margin-bottom: 24px; - cursor: pointer; -} - -.notification-div .button { - height: 58px; -} - -.notification-div { - font-size: 2em; -} - -.notification-card { - min-height: 60px; -} - -.notification-div { - text-align: center; - /*min-width: 240px;*/ -} - -.messages-name { - font-size: 2em; -} -.message-preview { - font-size: 1.2em; -} - -/*https://github.com/jgthms/bulma/pull/1596#issuecomment-556416927*/ -.card.is-horizontal { - flex-direction: row; - display: flex; - flex-basis: 50ex; - flex-grow: 0; - flex-shrink: 1; - box-shadow: none; -} - -.card.is-horizontal .card-image { - align-self: center; -} - -.card.is-horizontal .image { - min-height: 100%; -} - -.card.is-horizontal .card-content { - flex: 1; -} - -.card.is-horizontal .card-content { - padding-left: 1em; - padding-top: 0; - padding-bottom: 0; - font-size: 0.8em; -} - -@media ( prefers-color-scheme : dark) { - .card { - border: 1px solid #535353; - } -} - -@media screen and (max-width: 500px) { - - .card-image:first-child img { - border-radius: 290486px; - } - .image img { - height: 60px; - width: 60px; - border-radius: 290486px; - } - .section { - padding: 0; - } - .notification-div { - font-size: 1em !important; - } - .card { - border-radius: 0px; - padding: 8px; - margin-bottom: 0px; - border-top: none !important; - border-left: none !important; - border-right: none !important; - border-bottom: none !important; - height: 72px; - } - .message-preview { - font-size: 0.9em; - } - .messages-name { - font-size: 1.2em; - } -} - \ No newline at end of file diff --git a/src/main/resources/static/css/profile-onboarding.css b/src/main/resources/static/css/profile-onboarding.css deleted file mode 100644 index 01a6e1c1..00000000 --- a/src/main/resources/static/css/profile-onboarding.css +++ /dev/null @@ -1,157 +0,0 @@ - html, body { - position: relative; - height: 100%; -} - body { - font-size: 14px; - margin: 0; - padding: 0; -} - -textarea { - box-sizing: border-box; -} - -.swiper { - width: 100%; - height: 50%; -} -.swiper-slide { - text-align: center; - justify-content: center; - align-items: center; -} -.swiper-slide > div { - flex-direction: column; - height: 100%; - max-width: 600px; -} -.label { - margin-bottom: 36px !important; - font-size: 2em; -} -.radio-parent, .switch-parent { - display: flex; - flex-direction: column; - align-items: flex-start -} - -.switch-parent > label, .radio-parent > label { - margin-bottom: 10px; - font-size: 1.3em !important; -} - -.margin-left-right { - margin-left: 4px; - margin-right: 4px; -} - -#submit { - height: 32px; - margin-top: 100px; -} - -.onboarding-icon { - display: none; -} - -.subtitle { - padding-top: 24px; - font-size: 0.5em !important; - opacity: 0.5; -} - -@media screen and (min-height: 400px) { - .onboarding-icon { - display: block; - margin-top: 18px; - margin-bottom: 32px; - height:10vh; - } - .swiper-slide > div { - justify-content: initial; - } - .subtitle { - font-size: 0.6em !important; - } -} - -@media screen and (min-height: 550px) { - .onboarding-icon { - margin-top: 18px; - margin-bottom: 32px; - height:20vh; - } - .subtitle { - font-size: 0.7em !important; - } -} - -@media screen and (min-height: 700px) { - .onboarding-icon { - margin-top: 28px; - margin-bottom: 52px; - } - .subtitle { - font-size: 0.8em !important; - } -} - -@media screen and (min-height: 800px) { - .onboarding-icon { - margin-top: 48px; - margin-bottom: 64px; - } -} - -@media screen and (min-width: 600px) { - .swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical>.swiper-pagination-bullets { - right: 40px; - } - .swiper-pagination-bullet { - width: 0.7rem; - height: 0.7rem; - } -} - -@media screen and (min-width: 1000px) { - .swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical>.swiper-pagination-bullets { - right: 50px; - } - .swiper-pagination-bullet { - width: 1rem; - height: 1rem; - } -} - -@media screen and (max-width: 400px) { - .radio-parent > label { - font-size: 1.0em !important; - } -} - -@media screen and (max-width: 300px) { - .radio-parent > label { - font-size: 0.7em !important; - } - - .switch-parent > label { - font-size: 1em !important; - } - - .label { - font-size: 1em; - } -} - -@media screen and (max-height: 500px) { - #submit { - margin-top: 60px; - } -} - -@media screen and (max-height: 300px) { - #submit { - margin-top: 20px; - } -} diff --git a/src/main/resources/static/css/profile.css b/src/main/resources/static/css/profile.css deleted file mode 100644 index d922b172..00000000 --- a/src/main/resources/static/css/profile.css +++ /dev/null @@ -1,96 +0,0 @@ -#main-logged-in { - height: initial; -} - -#webpush-button { - display: none; - width: 100%; - height: 100%; - white-space: normal; -} - -.notification:not(:last-child) { - margin-bottom: 0.5rem; -} - -.swiper-wrapper { - max-height: 300px; - align-items: center; -} - -#addImageDiv { - border-radius: 12px; -} - -#donate-box { - margin-top: 24px; -} - -#donate-box:hover, #donate-box *:hover { - cursor: pointer; -} - -.modal-image { - max-height: 50vh; - width: 420px; - margin-bottom: 24px; -} - -#profile-warning-collapsible { - padding: 1.25rem; - display: flex; - justify-content: space-between; - border-radius: 4px; - margin-top: 12px; -} - -#navbar-link-profile-warning::after { - border-color: white !important; -} - -#profile-warning-collapsible.disabled { - background-color:#757575; -} - -.notification.is-warning.disabled { - background-color: #9e9e9e; -} - -#misc-info-field .label { - font-weight: normal; -} - -.modal-description { - margin-bottom: 8px; - padding: 8px; -} - -.modal-content { - max-height: 100vh; -} - -@media screen and (max-width: 769px) { - .modal-content { - margin: 0 auto; - width: 90%; - } -} - -@media screen and (max-width: 460px) { - .box { - padding: 0px; - box-shadow: initial; - } - .section { - padding: 0.5rem 1rem; - } - - .modal-image { - width: 80vw; - margin-bottom: 24px; - } - - .modal-description { - font-size: 12px; - } -} \ No newline at end of file diff --git a/src/main/resources/static/css/search.css b/src/main/resources/static/css/search.css deleted file mode 100644 index edb337fd..00000000 --- a/src/main/resources/static/css/search.css +++ /dev/null @@ -1,261 +0,0 @@ -html { - background-image: url(/img/search-cover.webp); -} - -#map { - height: 90vh; - min-height: 360px; - width: 100%; -} - -.image img { - max-height: 400px; - max-width: 400px; -} - -.card { - padding: 24px; - box-sizing: border-box; - border-bottom: 1px solid; - border-color: #dbdbdb; - border-radius: initial; -} - -.button.colored svg { - color: white; -} - -.profile-bottom .button { - height: 56px; - width: 56px; -} - -.card-content .content { - height: 339px; -} - -.content { - padding-top: 36px; -} - -#max-distance-slider { - margin-right: 8px; -} - -.swiper-container { - width: 100%; - height: 100%; -} - -.swiper-slide { - height: auto; -} - -.card.is-horizontal { - flex-direction: row; - display: flex; - box-shadow: none; - margin-bottom: 16px; -} - -.card.is-horizontal .card-image { - align-self: center; -} - -.card.is-horizontal .image { - min-height: 100%; -} - -.card.is-horizontal .card-content { - flex: 1; -} - -.card.is-horizontal .card-content { - padding-left: 4em; - padding-top: 0; - padding-bottom: 0; - font-size: 0.8em; -} - -.hidden { - visibility: hidden; -} - -.user-search-card { - scroll-snap-align: start; -} - -.user-search-div { - margin-bottom: 24px; - overflow-y: scroll; - scrollbar-width: thin; -} - -.content-background { - padding-bottom: 8px; -} - -.leaflet-popup-content { - width: 56px !important; -} -.search-button-padding { - padding-right: 24px; -} - -.card-image { - cursor: pointer; -} - -.common-interests { - padding-top: 8px; -} - -.common-interests > div { - padding: 0.4rem 0.8rem 0.4rem 0.8rem; -} - -.description { - padding-top: 8px; -} - -@media screen and (max-width: 1024px) { - .card.is-horizontal { - flex-direction: column !important; - } - .card { - border: initial; - border-radius: 0px !important; - height: calc(100vh - 236px); - height: calc(100 * var(--vh) - 236px); - position: relative; - padding: 0px; - } - .card-image { - z-index: 1; - margin-top: 16px; - } - .card-content { - height: initial; - z-index: 2; - margin-top: -150px; - position: absolute; - bottom: 0; - width: 100%; - margin: 0; - padding: initial !important; - width: 100%; - } - .card-content .content { - height: initial; - } - .section { - padding: 1rem 1.5rem; - } - .content-background { - height: 100%; - z-index: 0; - /*background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(255,255,255,0.9) 10%, rgba(255,255,255,0.9) 100%);*/ - background: rgba(255, 255, 255, 0.9) - } - .profile-bottom.dimmed { - background: rgba(255, 255, 255, 0.9) - } - .profile-bottom { - padding-left: 12px; - padding-right: 12px; - padding-bottom: 24px; - } - .content { - padding: 12px; - padding-top: 12px; - } - .user-search-card { - height: 100%; - } - .user-search-div { - scroll-snap-type: y mandatory; - height: calc(100vh - 108px); - height: calc(100 * var(--vh) - 97px); - } - .card-image { - padding: 12px; - padding-top: 0px; - } - .common-interests > div { - font-size: 0.9em; - padding: 0.3rem 0.7rem 0.3rem 0.7rem; - } - .description { - padding-top: 6px; - } -} -@media screen and (max-width: 600px) { - .card.is-horizontal { - margin-top: 0px; - margin-bottom: 16px; - } - .section { - padding: 0.5rem 0.5rem; - } - .media { - margin-top: 0.2em !important; - margin-bottom: 0.2em !important; - } - .card { - padding: 0px; - height: calc(100vh - 132px); - height: calc(100 * var(--vh) - 132px); - padding-top: 0px !important; - } - .card-image { - width: 100%; - margin-top: 0px; - } - .card-content { - margin: 0; - padding: initial !important; - width: 100%; - } - .image img { - max-height: initial; - max-width: initial; - } - .user-search-div { - margin-bottom: 0px; - } - .search-button-padding { - padding-right: 12px; - } - .profile-bottom .button-small { - height: 48px; - width: 48px; - } - .common-interests > div { - font-size: 0.7em; - padding: 0.2rem 0.4rem 0.2rem 0.4rem; - } - .description { - padding-top: 4px; - } -} -@media screen and (max-width: 350px) { - #donate-modal .media-left { - display: none; - } -} - -@media screen and (min-width: 1024px) { - .description { - /*display: initial !important;*/ - } - .search-visibility { - display: none; - } -} - -@media screen and (max-width: 302px) { - .card-image { - padding: 0px; - } -} - \ No newline at end of file diff --git a/src/main/resources/static/css/snips/ui-angular.css b/src/main/resources/static/css/snips/ui-angular.css deleted file mode 100644 index 7f604af0..00000000 --- a/src/main/resources/static/css/snips/ui-angular.css +++ /dev/null @@ -1,3 +0,0 @@ -*:not(.loader):not(.is-rounded) { - border-radius: 0px !important; -} \ No newline at end of file diff --git a/src/main/resources/static/css/user-profile.css b/src/main/resources/static/css/user-profile.css deleted file mode 100644 index 6b91a2f1..00000000 --- a/src/main/resources/static/css/user-profile.css +++ /dev/null @@ -1,79 +0,0 @@ -#audio-play-button { - margin-top: 12px; - width: 115px; -} - -.card-image:first-child img { - border-top-left-radius: 12px; - border-top-right-radius: 12px; - border-bottom-left-radius: 12px; - border-bottom-right-radius: 12px; -} - -.profile-bottom .button { - height: 56px; - width: 56px; -} - -#like-hide-bottom { - padding-bottom: 24px; - position: sticky; - display: flex; - left: 0; - bottom: 0; - width: 100%; - align-items: center; - justify-content: center; - z-index: 1; -} - -#verification-modal-content { - width: 770px; -} - -@media screen and (max-width: 768px) { - .swiper-container-user-profile img { - max-height: initial; - max-width: initial; - width: 100%; - } - .swiper-container-user-profile img { - border-radius: 0px !important; - } - .swiper-container-user-profile { - margin-top: 0px !important; - } - .container .content { - padding: 1.5rem 1.5rem; - } - #user-profile-modal .swiper-container-user-profile { - margin-top: 0px !important; - } - .swiper-container-user-profile { - margin-top: 12px; - } - #verification-modal-content { - width: 100%; - padding: 1.25rem; - } - #verification-modal-box { - padding: 2.45rem; - } - #verification-modal-section { - padding: 3rem 1.5rem; - } -} - -@media screen and (max-width: 584px) { - #verification-modal-content { - padding: 12px; - } - #verification-modal-box { - padding: 12px; - } - #verification-modal-section { - padding: 4xp; - } -} - - diff --git a/src/main/resources/static/img/f-icon.svg b/src/main/resources/static/img/f-icon.svg deleted file mode 100644 index 4619e911..00000000 --- a/src/main/resources/static/img/f-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Fill 1 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/img/g-icon.svg b/src/main/resources/static/img/g-icon.svg deleted file mode 100644 index 032b6ac5..00000000 --- a/src/main/resources/static/img/g-icon.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - btn_google_light_normal_ios - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/img/onboarding/LICENSE b/src/main/resources/static/img/onboarding/LICENSE deleted file mode 100644 index ae659f20..00000000 --- a/src/main/resources/static/img/onboarding/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright 2022 Katerina Limpitsouni -All images, assets and vectors published on unDraw can be used for free. You can use them for noncommercial and commercial purposes. You do not need to ask permission from or provide credit to the creator or unDraw. - -More precisely, unDraw grants you an nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use the assets provided from unDraw for free, including for commercial purposes, without permission from or attributing the creator or unDraw. This license does not include the right to compile assets, vectors or images from unDraw to replicate a similar or competing service, in any form or distribute the assets in packs or otherwise. This extends to automated and non-automated ways to link, embed, scrape, search or download the assets included on the website without our consent. - -Regarding brand logos that are included: -Are registered trademarks of their respected owners. Are included on a promotional basis and do not represent an association with unDraw or its users. Do not indicate any kind of endorsement of the trademark holder towards unDraw, nor vice versa. Are provided with the sole purpose to represent the actual brand/service/company that has registered the trademark and must not be used otherwise. \ No newline at end of file diff --git a/src/main/resources/static/img/onboarding/add-verification.svg b/src/main/resources/static/img/onboarding/add-verification.svg deleted file mode 100644 index 51622b57..00000000 --- a/src/main/resources/static/img/onboarding/add-verification.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/description.svg b/src/main/resources/static/img/onboarding/description.svg deleted file mode 100644 index a127a644..00000000 --- a/src/main/resources/static/img/onboarding/description.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/genders.svg b/src/main/resources/static/img/onboarding/genders.svg deleted file mode 100644 index ff9a8988..00000000 --- a/src/main/resources/static/img/onboarding/genders.svg +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/intention.svg b/src/main/resources/static/img/onboarding/intention.svg deleted file mode 100644 index a9709aa2..00000000 --- a/src/main/resources/static/img/onboarding/intention.svg +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/interests.svg b/src/main/resources/static/img/onboarding/interests.svg deleted file mode 100644 index 9f94b4aa..00000000 --- a/src/main/resources/static/img/onboarding/interests.svg +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/match.svg b/src/main/resources/static/img/onboarding/match.svg deleted file mode 100644 index 39a2075e..00000000 --- a/src/main/resources/static/img/onboarding/match.svg +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/profilepic.svg b/src/main/resources/static/img/onboarding/profilepic.svg deleted file mode 100644 index 26992fe9..00000000 --- a/src/main/resources/static/img/onboarding/profilepic.svg +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/img/onboarding/verification.svg b/src/main/resources/static/img/onboarding/verification.svg deleted file mode 100644 index b64452ec..00000000 --- a/src/main/resources/static/img/onboarding/verification.svg +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/js/admin-search.js b/src/main/resources/static/js/admin-search.js new file mode 100644 index 00000000..d26c4e49 --- /dev/null +++ b/src/main/resources/static/js/admin-search.js @@ -0,0 +1,85 @@ +$(function() { + mainContainerLoadCards("/search/users/default"); +}); + +function searchBase(showLoader = true) { + let distance = $("#max-distance-slider").val(); + let sort = $("#sort").val(); + let url = "/search/users/" + lat + "/" + + lon + "/" + distance + "/" + sort; + mainContainerLoadCards(url, showLoader); + +} + +function mainContainerLoadCards(url, bShowLoader = true) { + + showLoader(); + $("#main-container").load(url, function() { + + closeModal(); + + let shortSwipes = true; + if(window.innerWidth <= 1024) { + shortSwipes = true; + } else { + shortSwipes = false; + } + + $('.swiper').each(function(index, element) { + $(this).addClass('s' + index); + let slider = new Swiper('.s' + index, { + initialSlide: 1, + shortSwipes: shortSwipes, + simulateTouch: true + }); + + slider.on('transitionEnd', function() { + let id = $(slider.el).attr("id"); + + if (slider.activeIndex == 0) { + likeUser(id); + } else if (slider.activeIndex == 2) { + hideUser(id); + } + }); + }); + + let searchMessageDiv = $("#search-message"); + if (searchMessageDiv) { + if (searchMessageDiv.text()) { + alert(searchMessageDiv.text()); + } + } + + hideLoader(); + + }); +} + +function hideProfileTile(id) { + closeModal(); + let tile = $("#" + id); + $(tile).fadeOut(100, function() { + tile.hide(); + searchAgain(); + }); +} + +function getUserDivFromButton(btn) { + return $(btn).parent().parent().parent().parent(); +} + +function hasVisibleUsers() { + let hasUsers = false; + $(".user-search-card").each(function(i, obj) { + if (!hasUsers && $(obj).is(":visible")) { + hasUsers = true; + } + }); + return hasUsers; +} + +function viewProfile(idEnc) { + let url = '/admin/profile/view/' + idEnc; + window.open(url, '_blank').focus(); +} diff --git a/src/main/resources/static/js/admin.js b/src/main/resources/static/js/admin.js index f4c55c4d..99a57193 100644 --- a/src/main/resources/static/js/admin.js +++ b/src/main/resources/static/js/admin.js @@ -13,7 +13,7 @@ function hideContact(id) { } function viewProfile(idEnc) { - let url = '/profile/view/' + idEnc; + let url = '/admin/profile/view/' + idEnc; window.open(url, '_blank').focus(); } diff --git a/src/main/resources/static/js/donate.js b/src/main/resources/static/js/donate.js deleted file mode 100644 index 5e71868d..00000000 --- a/src/main/resources/static/js/donate.js +++ /dev/null @@ -1,17 +0,0 @@ -$(function() { - search(1); - getUpdates(); -}); - -function search(sort) { - showLoader(); - let url = "/donate/search/" + sort; - $("#main-container").load(url, function() { - closeModal(); - hideLoader(); - }); -} - -function donateSortClicked() { - openModal("donate-settings-modal"); -} \ No newline at end of file diff --git a/src/main/resources/static/js/lib/Mp3LameEncoder.min.js b/src/main/resources/static/js/lib/Mp3LameEncoder.min.js deleted file mode 100644 index a605a39d..00000000 --- a/src/main/resources/static/js/lib/Mp3LameEncoder.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*The MIT License (MIT) https://github.com/higuma/mp3-lame-encoder-js/ -Copyright (c) 2015 Yuji Miyane*/ -(function(self){var Module=self.Mp3LameEncoderConfig,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,r){e=nodePath.normalize(e);var i=nodeFS.readFileSync(e);return i||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),i=nodeFS.readFileSync(e)),i&&!r&&(i=i.toString()),i},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e})),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert("object"==typeof r),r},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){}),Module.printErr||(Module.printErr=function(e){});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8==0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,r){return"double"===r||"i64"===r?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,r,i){return i||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,i){return i&&i.length?(i.splice||(i=Array.prototype.slice.call(i)),i.splice(0,0,r),Module["dynCall_"+e].apply(null,i)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r=TOTAL_MEMORY&&!enlargeMemory())return DYNAMICTOP=r,0;return r},alignMemory:function(e,r){return e=Math.ceil(e/(r||16))*(r||16)},makeBigInt:function(e,r,i){return i?+(e>>>0)+4294967296*+(r>>>0):+(e>>>0)+4294967296*+(0|r)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,r){e||abort("Assertion failed: "+r)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,r,i,t){switch("*"===(i=i||"i8").charAt(i.length-1)&&(i="i32"),i){case"i1":HEAP8[e>>0]=r;break;case"i8":HEAP8[e>>0]=r;break;case"i16":HEAP16[e>>1]=r;break;case"i32":HEAP32[e>>2]=r;break;case"i64":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=r;break;case"double":HEAPF64[e>>3]=r;break;default:abort("invalid type for setValue: "+i)}}function getValue(e,r,i){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+r)}return null}(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var r=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,r),r},stringToC:function(e){var r=0;return null!=e&&0!==e&&writeStringToMemory(e,r=Runtime.stackAlloc(1+(e.length<<2))),r}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,i,t,n){var a=getCFunc(e),o=[],s=0;if(t)for(var l=0;l>2]=0;for(l=o+a;t>0]=0;return o}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var f,u,c,h=0;h>0],(0!=i||r)&&(n++,!r||n!=r););r||(r=n);var a="";if(t<128){for(var o,s=1024;r>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(r,s))),a=a?a+o:o,e+=s,r-=s;return a}return Module.UTF8ToString(e)}function AsciiToString(e){for(var r="";;){var i=HEAP8[e++>>0];if(!i)return r;r+=String.fromCharCode(i)}}function stringToAscii(e,r){return writeAsciiToMemory(e,r,!1)}function UTF8ArrayToString(e,r){for(var i,t,n,a,o,s="";;){if(!(i=e[r++]))return s;if(128&i)if(t=63&e[r++],192!=(224&i))if(n=63&e[r++],224==(240&i)?i=(15&i)<<12|t<<6|n:(a=63&e[r++],240==(248&i)?i=(7&i)<<18|t<<12|n<<6|a:(o=63&e[r++],i=248==(252&i)?(3&i)<<24|t<<18|n<<12|a<<6|o:(1&i)<<30|t<<24|n<<18|a<<12|o<<6|63&e[r++])),i<65536)s+=String.fromCharCode(i);else{var l=i-65536;s+=String.fromCharCode(55296|l>>10,56320|1023&l)}else s+=String.fromCharCode((31&i)<<6|t);else s+=String.fromCharCode(i)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,r,i,t){if(!(t>0))return 0;for(var n=i,a=i+t-1,o=0;o=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),s<=127){if(i>=a)break;r[i++]=s}else if(s<=2047){if(i+1>=a)break;r[i++]=192|s>>6,r[i++]=128|63&s}else if(s<=65535){if(i+2>=a)break;r[i++]=224|s>>12,r[i++]=128|s>>6&63,r[i++]=128|63&s}else if(s<=2097151){if(i+3>=a)break;r[i++]=240|s>>18,r[i++]=128|s>>12&63,r[i++]=128|s>>6&63,r[i++]=128|63&s}else if(s<=67108863){if(i+4>=a)break;r[i++]=248|s>>24,r[i++]=128|s>>18&63,r[i++]=128|s>>12&63,r[i++]=128|s>>6&63,r[i++]=128|63&s}else{if(i+5>=a)break;r[i++]=252|s>>30,r[i++]=128|s>>24&63,r[i++]=128|s>>18&63,r[i++]=128|s>>12&63,r[i++]=128|s>>6&63,r[i++]=128|63&s}}return r[i]=0,i-n}function stringToUTF8(e,r,i){return stringToUTF8Array(e,HEAPU8,r,i)}function lengthBytesUTF8(e){for(var r=0,i=0;i=55296&&t<=57343&&(t=65536+((1023&t)<<10)|1023&e.charCodeAt(++i)),t<=127?++r:r+=t<=2047?2:t<=65535?3:t<=2097151?4:t<=67108863?5:6}return r}function UTF16ToString(e){for(var r=0,i="";;){var t=HEAP16[e+2*r>>1];if(0==t)return i;++r,i+=String.fromCharCode(t)}}function stringToUTF16(e,r,i){if(void 0===i&&(i=2147483647),i<2)return 0;for(var t=r,n=(i-=2)<2*e.length?i/2:e.length,a=0;a>1]=o,r+=2}return HEAP16[r>>1]=0,r-t}function lengthBytesUTF16(e){return 2*e.length}function UTF32ToString(e){for(var r=0,i="";;){var t=HEAP32[e+4*r>>2];if(0==t)return i;if(++r,t>=65536){var n=t-65536;i+=String.fromCharCode(55296|n>>10,56320|1023&n)}else i+=String.fromCharCode(t)}}function stringToUTF32(e,r,i){if(void 0===i&&(i=2147483647),i<4)return 0;for(var t=r,n=t+i-4,a=0;a=55296&&o<=57343)o=65536+((1023&o)<<10)|1023&e.charCodeAt(++a);if(HEAP32[r>>2]=o,(r+=4)+4>n)break}return HEAP32[r>>2]=0,r-t}function lengthBytesUTF32(e){for(var r=0,i=0;i=55296&&t<=57343&&++i,r+=4}return r}function demangle(e){var r=!!Module.___cxa_demangle;if(r)try{var i=_malloc(e.length);writeStringToMemory(e.substr(1),i);var t=_malloc(4),n=Module.___cxa_demangle(i,0,0,t);if(0===getValue(t,"i32")&&n)return Pointer_stringify(n)}catch(e){}finally{i&&_free(i),t&&_free(t),n&&_free(n)}var a=3,o={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},s=[],l=!0;var f=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}f=function r(i,t,n){t=t||1/0;var f,u="",c=[];if("N"===e[a]){if(f=function(){a++,"K"===e[a]&&a++;for(var r=[];"E"!==e[a];)if("S"!==e[a])if("C"!==e[a]){var i=parseInt(e.substr(a)),t=i.toString().length;if(!i||!t){a--;break}var n=e.substr(a+t,i);r.push(n),s.push(n),a+=t+i}else r.push(r[r.length-1]),a+=2;else{a++;var o=e.indexOf("_",a),l=e.substring(a,o)||0;r.push(s[l]||"?"),a=o+1}return a++,r}().join("::"),0==--t)return i?[f]:f}else if(("K"===e[a]||l&&"L"===e[a])&&a++,m=parseInt(e.substr(a))){var h=m.toString().length;f=e.substr(a+h,m),a+=h+m}if(l=!1,"I"===e[a]){a++;var d=r(!0);u+=r(!0,1,!0)[0]+" "+f+"<"+d.join(", ")+">"}else u=f;e:for(;a0;){var v=e[a++];if(v in o)c.push(o[v]);else switch(v){case"P":c.push(r(!0,1,!0)[0]+"*");break;case"R":c.push(r(!0,1,!0)[0]+"&");break;case"L":a++;var m=e.indexOf("E",a)-a;c.push(e.substr(a,m)),a+=m+2;break;case"A":if(m=parseInt(e.substr(a)),a+=m.toString().length,"_"!==e[a])throw"?";a++,c.push(r(!0,1,!0)[0]+" ["+m+"]");break;case"E":break e;default:u+="?"+v;break e}}return n||1!==c.length||"void"!==c[0]||(c=[]),i?(u&&c.push(u+"?"),c):u+"("+c.join(", ")+")"}()}catch(e){f+="?"}return f.indexOf("?")>=0&&!r&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),f}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var r=demangle(e);return e===r?e:e+" ["+r+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(r){e=r}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii,Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e%4096>0&&(e+=4096-e%4096),e}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216,totalMemory=65536,buffer;totalMemory0;){var r=e.shift();if("function"!=typeof r){var i=r.func;"number"==typeof i?void 0===r.arg?Runtime.dynCall("v",i):Runtime.dynCall("vi",i,[r.arg]):i(void 0===r.arg?null:r.arg)}else r()}}totalMemory!==TOTAL_MEMORY&&(Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+TOTAL_STACK+")"),TOTAL_MEMORY=totalMemory),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support"),buffer=new ArrayBuffer(TOTAL_MEMORY),HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,r,i){var t=i>0?i:lengthBytesUTF8(e)+1,n=new Array(t),a=stringToUTF8Array(e,n,0,n.length);return r&&(n.length=a),n}function intArrayToString(e){for(var r=[],i=0;i255&&(t&=255),r.push(String.fromCharCode(t))}return r.join("")}function writeStringToMemory(e,r,i){for(var t=intArrayFromString(e,i),n=0;n>0]=a,n+=1}}function writeArrayToMemory(e,r){for(var i=0;i>0]=e[i]}function writeAsciiToMemory(e,r,i){for(var t=0;t>0]=e.charCodeAt(t);i||(HEAP8[r>>0]=0)}function unSign(e,r,i){return e>=0?e:r<=32?2*Math.abs(1<=t&&(r<=32||e>t)&&(e=-2*t+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var i=65535&e,t=65535&r;return i*t+((e>>>16)*t+i*(r>>>16)<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;r<32;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null,ASM_CONSTS=[];STATIC_BASE=8,STATICTOP=STATIC_BASE+96992,__ATINIT__.push(),allocate([69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,86,98,114,70,114,97,109,101,115,32,98,117,102,102,101,114,10,0,0,0,0,0,193,192,0,0,129,193,0,0,64,1,0,0,1,195,0,0,192,3,0,0,128,2,0,0,65,194,0,0,1,198,0,0,192,6,0,0,128,7,0,0,65,199,0,0,0,5,0,0,193,197,0,0,129,196,0,0,64,4,0,0,1,204,0,0,192,12,0,0,128,13,0,0,65,205,0,0,0,15,0,0,193,207,0,0,129,206,0,0,64,14,0,0,0,10,0,0,193,202,0,0,129,203,0,0,64,11,0,0,1,201,0,0,192,9,0,0,128,8,0,0,65,200,0,0,1,216,0,0,192,24,0,0,128,25,0,0,65,217,0,0,0,27,0,0,193,219,0,0,129,218,0,0,64,26,0,0,0,30,0,0,193,222,0,0,129,223,0,0,64,31,0,0,1,221,0,0,192,29,0,0,128,28,0,0,65,220,0,0,0,20,0,0,193,212,0,0,129,213,0,0,64,21,0,0,1,215,0,0,192,23,0,0,128,22,0,0,65,214,0,0,1,210,0,0,192,18,0,0,128,19,0,0,65,211,0,0,0,17,0,0,193,209,0,0,129,208,0,0,64,16,0,0,1,240,0,0,192,48,0,0,128,49,0,0,65,241,0,0,0,51,0,0,193,243,0,0,129,242,0,0,64,50,0,0,0,54,0,0,193,246,0,0,129,247,0,0,64,55,0,0,1,245,0,0,192,53,0,0,128,52,0,0,65,244,0,0,0,60,0,0,193,252,0,0,129,253,0,0,64,61,0,0,1,255,0,0,192,63,0,0,128,62,0,0,65,254,0,0,1,250,0,0,192,58,0,0,128,59,0,0,65,251,0,0,0,57,0,0,193,249,0,0,129,248,0,0,64,56,0,0,0,40,0,0,193,232,0,0,129,233,0,0,64,41,0,0,1,235,0,0,192,43,0,0,128,42,0,0,65,234,0,0,1,238,0,0,192,46,0,0,128,47,0,0,65,239,0,0,0,45,0,0,193,237,0,0,129,236,0,0,64,44,0,0,1,228,0,0,192,36,0,0,128,37,0,0,65,229,0,0,0,39,0,0,193,231,0,0,129,230,0,0,64,38,0,0,0,34,0,0,193,226,0,0,129,227,0,0,64,35,0,0,1,225,0,0,192,33,0,0,128,32,0,0,65,224,0,0,1,160,0,0,192,96,0,0,128,97,0,0,65,161,0,0,0,99,0,0,193,163,0,0,129,162,0,0,64,98,0,0,0,102,0,0,193,166,0,0,129,167,0,0,64,103,0,0,1,165,0,0,192,101,0,0,128,100,0,0,65,164,0,0,0,108,0,0,193,172,0,0,129,173,0,0,64,109,0,0,1,175,0,0,192,111,0,0,128,110,0,0,65,174,0,0,1,170,0,0,192,106,0,0,128,107,0,0,65,171,0,0,0,105,0,0,193,169,0,0,129,168,0,0,64,104,0,0,0,120,0,0,193,184,0,0,129,185,0,0,64,121,0,0,1,187,0,0,192,123,0,0,128,122,0,0,65,186,0,0,1,190,0,0,192,126,0,0,128,127,0,0,65,191,0,0,0,125,0,0,193,189,0,0,129,188,0,0,64,124,0,0,1,180,0,0,192,116,0,0,128,117,0,0,65,181,0,0,0,119,0,0,193,183,0,0,129,182,0,0,64,118,0,0,0,114,0,0,193,178,0,0,129,179,0,0,64,115,0,0,1,177,0,0,192,113,0,0,128,112,0,0,65,176,0,0,0,80,0,0,193,144,0,0,129,145,0,0,64,81,0,0,1,147,0,0,192,83,0,0,128,82,0,0,65,146,0,0,1,150,0,0,192,86,0,0,128,87,0,0,65,151,0,0,0,85,0,0,193,149,0,0,129,148,0,0,64,84,0,0,1,156,0,0,192,92,0,0,128,93,0,0,65,157,0,0,0,95,0,0,193,159,0,0,129,158,0,0,64,94,0,0,0,90,0,0,193,154,0,0,129,155,0,0,64,91,0,0,1,153,0,0,192,89,0,0,128,88,0,0,65,152,0,0,1,136,0,0,192,72,0,0,128,73,0,0,65,137,0,0,0,75,0,0,193,139,0,0,129,138,0,0,64,74,0,0,0,78,0,0,193,142,0,0,129,143,0,0,64,79,0,0,1,141,0,0,192,77,0,0,128,76,0,0,65,140,0,0,0,68,0,0,193,132,0,0,129,133,0,0,64,69,0,0,1,135,0,0,192,71,0,0,128,70,0,0,65,134,0,0,1,130,0,0,192,66,0,0,128,67,0,0,65,131,0,0,0,65,0,0,193,129,0,0,129,128,0,0,64,64,0,0,115,116,114,97,110,103,101,32,101,114,114,111,114,32,102,108,117,115,104,105,110,103,32,98,117,102,102,101,114,32,46,46,46,32,10,0,0,0,0,0,69,114,114,111,114,58,32,77,65,88,95,72,69,65,68,69,82,95,66,85,70,32,116,111,111,32,115,109,97,108,108,32,105,110,32,98,105,116,115,116,114,101,97,109,46,99,32,10,0,0,0,0,0,0,0,0,73,110,116,101,114,110,97,108,32,98,117,102,102,101,114,32,105,110,99,111,110,115,105,115,116,101,110,99,121,46,32,102,108,117,115,104,98,105,116,115,32,60,62,32,82,101,115,118,83,105,122,101,0,0,0,0,98,105,116,32,114,101,115,101,114,118,111,105,114,32,101,114,114,111,114,58,32,10,108,51,95,115,105,100,101,45,62,109,97,105,110,95,100,97,116,97,95,98,101,103,105,110,58,32,37,105,32,10,82,101,115,118,111,105,114,32,115,105,122,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,111,115,116,41,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,114,101,41,32,32,32,32,32,32,32,32,32,32,37,105,32,10,104,101,97,100,101,114,32,97,110,100,32,115,105,100,101,105,110,102,111,58,32,32,32,32,32,32,37,105,32,10,100,97,116,97,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,116,111,116,97,108,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,40,114,101,109,97,105,110,100,101,114,58,32,37,105,41,32,10,98,105,116,115,112,101,114,102,114,97,109,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,0,0,84,104,105,115,32,105,115,32,97,32,102,97,116,97,108,32,101,114,114,111,114,46,32,32,73,116,32,104,97,115,32,115,101,118,101,114,97,108,32,112,111,115,115,105,98,108,101,32,99,97,117,115,101,115,58,0,57,48,37,37,32,32,76,65,77,69,32,99,111,109,112,105,108,101,100,32,119,105,116,104,32,98,117,103,103,121,32,118,101,114,115,105,111,110,32,111,102,32,103,99,99,32,117,115,105,110,103,32,97,100,118,97,110,99,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110,115,0,0,0,0,0,0,32,57,37,37,32,32,89,111,117,114,32,115,121,115,116,101,109,32,105,115,32,111,118,101,114,99,108,111,99,107,101,100,0,0,0,0,0,0,0,0,32,49,37,37,32,32,98,117,103,32,105,110,32,76,65,77,69,32,101,110,99,111,100,105,110,103,32,108,105,98,114,97,114,121,0,0,0,0,0,0,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE),allocate([94,131,108,63,21,239,195,62,109,196,126,63,54,189,200,61,67,236,127,63,176,10,201,60,196,254,127,63,136,15,201,59,88,88,88,0,0,0,0,0,37,108,117,0,0,0,0,0,105,109,97,103,101,47,112,110,103,0,0,0,0,0,0,0,105,109,97,103,101,47,103,105,102,0,0,0,0,0,0,0,105,109,97,103,101,47,106,112,101,103,0,0,0,0,0,0,37,100,0,0,0,0,0,0,128,187,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,148,92,0,0,68,172,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,20,85,0,0,0,125,0,0,0,0,208,64,0,0,0,65,102,102,166,64,0,0,208,64,184,61,0,0,192,93,0,0,0,0,0,65,0,0,8,65,102,102,166,64,0,0,192,64,74,46,0,0,34,86,0,0,0,0,8,65,246,40,16,65,102,102,166,64,0,0,208,64,140,42,0,0,128,62,0,0,246,40,16,65,102,102,22,65,205,204,156,64,0,0,208,64,223,30,0,0,224,46,0,0,102,102,22,65,154,153,25,65,0,0,144,64,0,0,192,64,40,23,0,0,17,43,0,0,154,153,25,65,102,102,30,65,51,51,163,64,0,0,208,64,70,21,0,0,64,31,0,0,102,102,30,65,0,0,32,65,205,204,156,64,0,0,208,64,112,15,0,0,8,0,0,0,208,7,0,0,16,0,0,0,116,14,0,0,24,0,0,0,60,15,0,0,32,0,0,0,124,21,0,0,40,0,0,0,88,27,0,0,48,0,0,0,76,29,0,0,56,0,0,0,16,39,0,0,64,0,0,0,248,42,0,0,80,0,0,0,188,52,0,0,96,0,0,0,252,58,0,0,112,0,0,0,240,60,0,0,128,0,0,0,104,66,0,0,160,0,0,0,92,68,0,0,192,0,0,0,168,72,0,0,224,0,0,0,200,75,0,0,0,1,0,0,244,76,0,0,64,1,0,0,20,80,0,0,44,76,0,0,56,74,0,0,168,72,0,0,80,70,0,0,92,68,0,0,128,62,0,0,240,60,0,0,52,58,0,0,212,48,0,0,16,39,0,0,110,15,0,0,0,0,0,0,192,93,0,0,44,76,0,0,68,72,0,0,80,70,0,0,92,68,0,0,104,66,0,0,116,64,0,0,240,60,0,0,96,59,0,0,62,28,0,0,110,15,0,0,0,0,0,0,44,76,0,0,56,74,0,0,68,72,0,0,80,70,0,0,92,68,0,0,116,64,0,0,140,60,0,0,164,56,0,0,212,48,0,0,28,37,0,0,110,15,0,0,0,0,0,0,102,102,182,64,0,0,208,64,154,153,233,64,51,51,3,65,0,0,32,65,102,102,62,65,0,0,80,65,0,0,96,65,0,0,112,65,0,0,132,65,87,97,114,110,105,110,103,58,32,104,105,103,104,112,97,115,115,32,102,105,108,116,101,114,32,100,105,115,97,98,108,101,100,46,32,32,104,105,103,104,112,97,115,115,32,102,114,101,113,117,101,110,99,121,32,116,111,111,32,115,109,97,108,108,10,0,0,0,0,0,0,0,69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,105,110,95,98,117,102,102,101,114,32,98,117,102,102,101,114,10,0,0,0,0,0,1,0,0,0,16,0,0,0,17,0,0,0,8,0,0,0,9,0,0,0,24,0,0,0,25,0,0,0,4,0,0,0,5,0,0,0,20,0,0,0,21,0,0,0,12,0,0,0,13,0,0,0,28,0,0,0,29,0,0,0,2,0,0,0,3,0,0,0,18,0,0,0,19,0,0,0,10,0,0,0,11,0,0,0,26,0,0,0,27,0,0,0,6,0,0,0,7,0,0,0,22,0,0,0,23,0,0,0,14,0,0,0,15,0,0,0,30,0,0,0,31,0,0,0,0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,116,173,207,171,133,159,107,171,183,89,146,170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170,0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,37,39,192,172,51,37,173,172,234,209,152,172,227,84,131,172,249,175,89,172,11,14,43,172,102,34,244,171,201,49,137,171,74,123,157,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,170,174,79,227,170,5,174,113,170,234,207,6,62,205,19,212,62,139,111,68,63,255,175,139,63,23,208,166,63,117,235,200,63,190,226,245,63,122,130,26,64,105,251,74,64,185,87,144,64,107,16,243,64,233,58,183,65,92,28,124,63,187,141,36,63,68,29,175,62,178,143,112,63,212,208,49,190,125,27,68,191,215,179,93,63,0,0,0,63,254,181,3,191,218,134,241,190,2,115,160,190,116,71,58,190,29,176,193,189,135,203,39,189,29,161,104,188,70,123,114,187,168,132,91,63,216,185,97,63,221,26,115,63,129,186,123,63,65,218,126,63,253,200,127,63,101,249,127,63,141,255,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,42,174,79,227,42,5,174,113,42,37,39,192,44,51,37,173,44,234,209,152,44,227,84,131,44,249,175,89,44,11,14,43,44,102,34,244,43,201,49,137,43,74,123,157,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,116,173,207,171,133,159,107,171,183,89,146,170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170,121,207,23,190,138,59,1,66,164,51,148,67,155,200,92,68,202,167,45,70,175,40,132,68,192,222,152,67,129,155,246,65,199,156,118,64,77,183,109,66,194,101,49,68,74,15,165,69,82,45,182,197,71,104,76,196,73,213,153,194,66,4,147,192,94,6,104,63,54,189,72,62,3,97,30,190,44,76,9,66,68,231,150,67,96,102,76,68,47,215,52,70,17,168,147,68,117,204,160,67,46,219,249,65,68,124,109,64,146,154,86,66,183,10,43,68,136,68,163,69,35,243,198,197,129,62,99,196,80,169,179,194,43,42,173,192,1,24,82,63,194,197,199,62,223,144,36,190,144,150,16,66,32,15,152,67,140,47,55,68,113,86,59,70,101,128,162,68,120,164,167,67,193,231,251,65,149,237,87,64,209,237,60,66,46,47,35,68,80,99,160,69,178,232,215,197,240,127,122,196,100,62,207,194,121,91,195,192,207,220,61,63,49,160,20,63,61,91,42,190,177,1,23,66,106,129,151,67,98,254,28,68,14,27,65,70,229,136,176,68,246,95,173,67,75,201,252,65,52,59,74,64,173,80,34,66,178,10,26,68,170,126,156,69,83,240,232,197,121,249,136,196,253,124,236,194,231,48,218,192,193,13,43,63,21,239,67,63,139,188,47,190,75,118,28,66,177,43,149,67,81,195,251,67,92,30,70,70,161,146,189,68,23,254,177,67,116,41,251,65,165,166,58,64,77,48,7,66,62,185,15,68,225,169,151,69,144,236,249,197,102,184,148,196,253,164,5,195,130,12,247,192,196,112,25,63,234,90,113,63,120,177,52,190,11,224,32,66,197,255,144,67,75,169,179,67,9,89,74,70,63,131,201,68,227,108,181,67,12,94,248,65,73,159,52,64,49,233,215,65,148,121,4,68,250,250,145,69,153,95,5,198,224,82,160,196,230,149,21,195,193,75,10,193,185,213,8,63,218,57,142,63,244,54,185,190,93,45,36,66,238,197,138,67,123,163,67,67,193,197,77,70,150,52,212,68,118,180,183,67,208,116,244,65,169,3,34,64,173,143,160,65,68,192,240,67,195,135,139,69,122,165,13,198,28,180,171,196,130,42,38,195,136,83,25,193,112,40,242,62,153,103,162,63,55,74,189,190,167,146,37,66,148,165,130,67,182,247,78,65,135,96,80,70,71,144,221,68,247,225,184,67,182,2,238,65,153,191,25,64,113,224,84,65,226,71,215,67,116,104,132,69,186,183,21,198,32,182,182,196,153,32,55,195,248,124,43,193,205,19,212,62,243,4,181,63,187,232,192,190,91,122,38,66,227,13,113,67,88,242,59,195,65,40,82,70,237,132,229,68,213,190,184,67,201,3,232,65,16,147,4,64,105,242,216,64,110,227,188,67,47,102,121,69,214,134,29,198,81,62,193,196,85,96,72,195,235,212,61,193,80,50,183,62,3,228,197,63,71,16,196,190,73,155,36,66,18,122,88,67,23,20,203,195,140,28,83,70,216,249,235,68,185,166,183,67,247,22,225,65,11,250,244,63,71,16,196,62,69,237,161,67,91,2,105,69,239,4,37,198,124,38,203,196,16,160,89,195,54,63,80,193,66,80,155,62,49,219,212,63,46,15,21,191,242,108,33,66,98,51,60,67,83,17,32,196,220,60,83,70,70,243,240,68,238,104,181,67,38,192,215,65,112,137,223,63,88,12,180,192,157,166,134,67,47,214,87,69,149,32,44,198,6,85,212,196,16,196,106,195,193,157,98,193,212,63,128,62,152,197,225,63,57,182,22,191,234,239,28,66,206,194,27,67,244,79,94,196,226,141,82,70,182,97,244,68,249,56,178,67,221,40,207,65,124,229,200,63,57,233,50,193,16,207,86,67,160,18,70,69,73,205,50,198,21,165,220,196,104,176,123,195,1,246,119,193,175,175,75,62,94,131,236,63,230,143,74,191,36,147,21,66,35,102,239,66,16,227,143,196,201,17,81,70,166,76,246,68,130,2,174,67,22,218,197,65,28,72,177,63,12,95,131,193,224,12,33,67,81,229,51,69,247,251,56,198,140,255,227,196,139,36,134,195,184,137,134,193,100,229,23,62,11,250,244,63,223,202,75,191,201,237,12,66,223,9,160,66,174,0,178,196,45,207,78,70,187,185,246,68,213,254,168,67,51,80,186,65,197,91,178,63,32,204,168,193,139,247,216,66,54,123,33,69,232,158,62,198,230,72,234,196,148,31,142,195,218,232,144,193,220,181,201,61,190,20,251,63,15,177,127,191,152,64,2,66,94,213,19,66,106,66,213,196,38,205,75,70,66,172,245,68,70,55,163,67,112,102,177,65,251,108,153,63,81,248,202,193,231,35,102,66,180,6,15,69,179,170,67,198,226,90,239,196,151,161,149,195,66,6,155,193,60,57,73,61,109,196,254,63,54,211,37,70,68,177,165,69,175,113,104,68,69,51,54,68,128,12,144,67,180,213,129,66,2,0,241,65,34,63,131,64,49,19,72,70,167,49,243,68,86,182,156,67,170,105,166,65,251,100,249,68,112,3,16,65,17,158,233,193,0,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,166,64,0,0,250,66,102,102,134,192,154,153,201,192,154,153,153,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,236,81,120,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,169,64,0,0,250,66,102,102,102,192,51,51,179,192,0,0,144,64,0,0,192,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,205,204,172,63,0,0,160,64,0,0,200,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,51,51,179,64,0,0,250,66,205,204,12,192,0,0,96,192,51,51,51,64,0,0,0,64,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,82,184,190,63,0,0,160,64,0,0,200,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,185,64,0,0,2,67,102,102,230,191,51,51,51,192,102,102,38,64,0,0,64,64,0,0,128,192,0,0,0,0,2,0,0,0,20,0,0,0,133,235,209,63,0,0,160,64,0,0,200,66,4,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,192,64,0,0,7,67,51,51,51,191,205,204,140,191,205,204,140,63,0,0,96,64,0,0,0,193,0,0,0,0,2,0,0,0,0,0,0,0,184,30,229,63,0,0,160,64,0,0,200,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,205,204,204,64,0,0,12,67,0,0,0,63,205,204,204,62,0,0,240,192,0,0,128,64,0,0,64,193,23,183,81,57,0,0,0,0,0,0,0,0,154,153,249,63,0,0,160,64,0,0,200,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,31,133,43,63,102,102,38,63,51,51,107,193,0,0,208,64,0,0,152,193,23,183,209,57,0,0,0,0,0,0,0,0,51,51,19,64,0,0,160,64,0,0,200,66,7,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,76,63,0,0,64,63,154,153,157,193,0,0,0,65,0,0,176,193,82,73,29,58,0,0,0,0,0,0,0,0,205,204,44,64,0,0,160,64,0,0,200,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,154,153,153,63,51,51,147,63,0,0,220,193,0,0,32,65,0,0,184,193,52,128,55,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,204,63,205,204,204,63,0,0,16,194,0,0,48,65,0,0,200,193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,0,0,0,64,0,0,0,64,0,0,16,194,0,0,64,65,0,0,200,193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,0,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,217,192,154,153,217,192,51,51,227,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,31,0,0,0,0,0,128,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,153,192,154,153,153,192,205,204,172,64,51,51,179,63,0,0,128,191,0,0,0,0,2,0,0,0,27,0,0,0,178,157,143,63,0,0,160,64,0,0,196,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,102,102,38,192,102,102,38,192,205,204,108,64,0,0,0,64,0,0,64,192,0,0,0,0,2,0,0,0,23,0,0,0,47,221,164,63,0,0,160,64,0,0,194,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,205,204,204,191,205,204,204,191,0,0,0,64,0,0,0,64,0,0,160,192,0,0,0,0,2,0,0,0,18,0,0,0,223,79,189,63,0,0,160,64,0,0,192,66,4,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,0,0,0,128,0,0,0,128,0,0,0,0,0,0,0,64,0,0,0,193,0,0,0,0,2,0,0,0,12,0,0,0,16,88,217,63,0,0,160,64,0,0,190,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,102,102,166,63,102,102,166,63,0,0,192,192,0,0,96,64,0,0,48,193,0,0,0,0,2,0,0,0,8,0,0,0,154,153,249,63,0,0,160,64,102,102,188,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,144,64,0,0,200,66,205,204,12,64,51,51,19,64,0,0,64,193,0,0,192,64,0,0,96,193,0,0,0,0,2,0,0,0,4,0,0,0,199,75,15,64,0,0,64,64,205,204,187,66,7,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,153,64,0,0,72,67,205,204,44,64,205,204,44,64,0,0,144,193,0,0,16,65,0,0,136,193,0,0,0,0,2,0,0,0,0,0,0,0,225,122,36,64,0,0,128,63,51,51,187,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,169,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,168,193,0,0,32,65,0,0,184,193,23,183,81,57,0,0,0,0,0,0,0,0,47,221,60,64,0,0,0,0,154,153,186,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,184,193,0,0,48,65,0,0,200,193,82,73,29,58,0,0,0,0,0,0,0,0,254,212,88,64,0,0,0,0,154,153,186,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,200,65,0,0,150,67,51,51,51,64,51,51,51,64,0,0,200,193,0,0,64,65,0,0,216,193,10,215,35,59,0,0,0,0,0,0,0,0,0,0,96,64,0,0,0,0,154,153,186,66,0,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,240,193,0,0,48,65,82,73,157,58,1,0,0,0,16,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,200,193,0,0,48,65,111,18,131,58,1,0,0,0,24,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,160,193,0,0,48,65,111,18,131,58,1,0,0,0,32,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,112,193,0,0,48,65,111,18,131,58,1,0,0,0,40,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,48,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,56,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,192,192,0,0,48,65,23,183,81,58,1,0,0,0,64,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,192,0,0,48,65,23,183,81,58,1,0,0,0,80,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,0,0,0,0,65,52,128,55,58,1,0,0,0,96,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,32,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,128,63,0,0,176,64,82,73,29,58,1,0,0,0,112,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,16,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,64,0,0,144,64,111,18,3,58,1,0,0,0,128,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,249,63,205,204,204,64,0,0,12,67,51,51,115,63,0,0,0,0,0,0,64,64,0,0,128,64,23,183,81,57,1,0,0,0,160,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,184,30,229,63,0,0,192,64,0,0,7,67,51,51,115,63,0,0,0,192,0,0,160,64,0,0,96,64,0,0,0,0,1,0,0,0,192,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,82,184,190,63,51,51,179,64,0,0,250,66,236,81,120,63,0,0,128,192,0,0,224,64,0,0,64,64,0,0,0,0,0,0,0,0,224,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,160,63,102,102,166,64,0,0,250,66,72,225,122,63,0,0,192,192,0,0,16,65,0,0,0,64,0,0,0,0,0,0,0,0,0,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,236,81,120,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,0,193,0,0,32,65,0,0,128,63,0,0,0,0,0,0,0,0,64,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,102,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,32,193,0,0,64,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,128,63,54,89,75,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,250,155,128,62,153,158,240,61,0,0,0,0,0,0,0,0,0,0,0,0,137,158,227,63,229,83,236,63,167,94,245,63,155,20,249,63,14,217,252,63,123,143,234,63,218,151,217,63,226,132,191,63,124,145,168,63,0,0,128,63,0,0,0,0,0,0,0,0,205,204,60,65,154,153,89,65,154,153,137,65,0,0,0,66,0,0,58,66,51,51,77,66,0,0,102,66,51,51,134,66,0,0,143,66,51,51,169,66,51,51,195,66,0,0,2,67,154,153,217,64,154,153,185,64,154,153,185,64,205,204,204,64,0,0,208,64,102,102,30,65,154,153,65,65,102,102,102,65,0,0,112,65,51,51,151,65,205,204,172,65,51,51,215,65,205,204,8,66,205,204,32,66,51,51,59,66,0,0,98,66,205,204,114,66,205,204,147,66,102,102,171,66,205,204,186,66,51,51,252,66,0,0,0,0,205,204,236,192,205,204,236,192,205,204,236,192,0,0,24,193,205,204,236,192,51,51,195,192,0,0,176,192,102,102,150,192,102,102,150,192,102,102,150,192,102,102,150,192,0,0,0,0,73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,3,0,0,0,9,0,0,0,9,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,9,0,0,0,12,0,0,0,6,0,0,0,11,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,15,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,12,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,9,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,15,0,0,0,12,0,0,0,9,0,0,0,0,0,0,0,6,0,0,0,18,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,32,0,0,0,42,0,0,0,56,0,0,0,74,0,0,0,100,0,0,0,132,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,114,0,0,0,136,0,0,0,162,0,0,0,194,0,0,0,232,0,0,0,22,1,0,0,76,1,0,0,138,1,0,0,208,1,0,0,28,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,136,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,52,0,0,0,62,0,0,0,74,0,0,0,90,0,0,0,110,0,0,0,134,0,0,0,162,0,0,0,196,0,0,0,238,0,0,0,32,1,0,0,86,1,0,0,162,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,40,0,0,0,52,0,0,0,66,0,0,0,84,0,0,0,106,0,0,0,136,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,42,0,0,0,50,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,106,0,0,0,128,0,0,0,156,0,0,0,190,0,0,0,230,0,0,0,20,1,0,0,74,1,0,0,128,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,28,0,0,0,38,0,0,0,50,0,0,0,64,0,0,0,80,0,0,0,100,0,0,0,126,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,82,0,0,0,102,0,0,0,126,0,0,0,156,0,0,0,194,0,0,0,240,0,0,0,40,1,0,0,108,1,0,0,192,1,0,0,38,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,42,0,0,0,58,0,0,0,78,0,0,0,104,0,0,0,138,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,24,0,0,0,36,0,0,0,48,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,108,0,0,0,132,0,0,0,160,0,0,0,192,0,0,0,232,0,0,0,24,1,0,0,80,1,0,0,144,1,0,0,220,1,0,0,54,2,0,0,56,2,0,0,58,2,0,0,60,2,0,0,62,2,0,0,64,2,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,36,0,0,0,52,0,0,0,72,0,0,0,96,0,0,0,124,0,0,0,160,0,0,0,162,0,0,0,164,0,0,0,166,0,0,0,192],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+6448),allocate([1,4,3,5,0,0,0,0,1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,192,72,1,0,56,65,1,0,3,0,0,0,0,0,0,0,200,72,1,0,224,72,1,0,3,0,0,0,0,0,0,0,240,72,1,0,8,73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,24,73,1,0,56,73,1,0,4,0,0,0,0,0,0,0,72,73,1,0,104,73,1,0,6,0,0,0,0,0,0,0,120,73,1,0,192,73,1,0,6,0,0,0,0,0,0,0,232,73,1,0,48,74,1,0,6,0,0,0,0,0,0,0,88,74,1,0,160,74,1,0,8,0,0,0,0,0,0,0,200,74,1,0,72,75,1,0,8,0,0,0,0,0,0,0,136,75,1,0,8,76,1,0,8,0,0,0,0,0,0,0,72,76,1,0,200,76,1,0,16,0,0,0,0,0,0,0,8,77,1,0,8,79,1,0,0,0,0,0,0,0,0,0,0,0,0,0,8,80,1,0,16,0,0,0,0,0,0,0,8,81,1,0,8,83,1,0,1,0,0,0,1,0,0,0,8,84,1,0,8,86,1,0,2,0,0,0,3,0,0,0,8,84,1,0,8,86,1,0,3,0,0,0,7,0,0,0,8,84,1,0,8,86,1,0,4,0,0,0,15,0,0,0,8,84,1,0,8,86,1,0,6,0,0,0,63,0,0,0,8,84,1,0,8,86,1,0,8,0,0,0,255,0,0,0,8,84,1,0,8,86,1,0,10,0,0,0,255,3,0,0,8,84,1,0,8,86,1,0,13,0,0,0,255,31,0,0,8,84,1,0,8,86,1,0,4,0,0,0,15,0,0,0,8,87,1,0,8,89,1,0,5,0,0,0,31,0,0,0,8,87,1,0,8,89,1,0,6,0,0,0,63,0,0,0,8,87,1,0,8,89,1,0,7,0,0,0,127,0,0,0,8,87,1,0,8,89,1,0,8,0,0,0,255,0,0,0,8,87,1,0,8,89,1,0,9,0,0,0,255,1,0,0,8,87,1,0,8,89,1,0,11,0,0,0,255,7,0,0,8,87,1,0,8,89,1,0,13,0,0,0,255,31,0,0,8,87,1,0,8,89,1,0,0,0,0,0,0,0,0,0,8,90,1,0,64,65,1,0,0,0,0,0,0,0,0,0,40,90,1,0,80,65,1,0,4,0,1,0,5,0,5,0,7,0,7,0,8,0,9,0,9,0,10,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0,13,0,12,0,13,0,12,0,13,0,13,0,14,0,10,0,10,0,5,0,4,0,6,0,6,0,7,0,8,0,8,0,9,0,9,0,10,0,10,0,11,0,10,0,11,0,11,0,11,0,11,0,12,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,14,0,12,0,13,0,12,0,14,0,10,0,10,0,7,0,7,0,7,0,8,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,12,0,13,0,12,0,13,0,12,0,14,0,13,0,14,0,9,0,11,0,8,0,9,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,9,0,12,0,9,0,10,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,15,0,9,0,11,0,10,0,10,0,9,0,10,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,14,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,9,0,12,0,10,0,11,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,16,0,9,0,12,0,11,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,13,0,17,0,13,0,17,0,10,0,12,0,11,0,11,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,11,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,16,0,13,0,16,0,10,0,12,0,11,0,12,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,15,0,13,0,16,0,13,0,15,0,10,0,13,0,12,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,17,0,13,0,17,0,13,0,16,0,10,0,12,0,12,0,13,0,12,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,16,0,13,0,15,0,13,0,16,0,10,0,13,0,12,0,13,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,17,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,18,0,10,0,13,0,12,0,15,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,18,0,13,0,17,0,13,0,17,0,13,0,17,0,13,0,19,0,13,0,17,0,10,0,13,0,13,0,14,0,12,0,15,0,12,0,13,0,12,0,14,0,12,0,16,0,12,0,16,0,12,0,15,0,13,0,16,0,13,0,16,0,13,0,17,0,13,0,18,0,13,0,17,0,13,0,19,0,13,0,17,0,13,0,16,0,10,0,13,0,9,0,10,0,9,0,10,0,9,0,10,0,9,0,11,0,9,0,11,0,9,0,12,0,9,0,12,0,9,0,12,0,9,0,13,0,9,0,13,0,9,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,6,0,10,0,2,0,1,0,3,0,4,0,7,0,7,0,4,0,4,0,4,0,5,0,7,0,7,0,6,0,6,0,7,0,7,0,8,0,8,0,0,0,0,0,3,0,1,0,4,0,4,0,6,0,7,0,8,0,8,0,4,0,4,0,4,0,5,0,6,0,8,0,7,0,9,0,5,0,7,0,6,0,8,0,7,0,9,0,8,0,10,0,7,0,8,0,7,0,8,0,8,0,9,0,9,0,10,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,144,0,0,0,160,0,0,0,255,255,255,255,0,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,255,255,255,255,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,6,0,0,0,11,0,0,0,16,0,0,0,21,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,3,0,1,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,1,4,7,4,5,7,6,7,8,0,0,0,0,0,0,0,3,0,2,0,1,0,1,0,1,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,2,3,7,4,4,7,6,7,8,0,0,0,0,0,0,0,1,0,2,0,6,0,5,0,3,0,1,0,4,0,4,0,7,0,5,0,7,0,1,0,6,0,1,0,1,0,0,0,1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10,7,0,3,0,5,0,1,0,6,0,2,0,3,0,2,0,5,0,4,0,4,0,1,0,3,0,3,0,2,0,0,0,3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9,1,0,2,0,10,0,19,0,16,0,10,0,3,0,3,0,7,0,10,0,5,0,3,0,11,0,4,0,13,0,17,0,8,0,4,0,12,0,11,0,18,0,15,0,11,0,2,0,7,0,6,0,9,0,14,0,3,0,1,0,6,0,4,0,5,0,3,0,2,0,0,0,1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12,0,0,0,0,3,0,4,0,6,0,18,0,12,0,5,0,5,0,1,0,2,0,16,0,9,0,3,0,7,0,3,0,5,0,14,0,7,0,3,0,19,0,17,0,15,0,13,0,10,0,4,0,13,0,5,0,8,0,11,0,5,0,1,0,12,0,4,0,4,0,1,0,1,0,0,0,2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13,0,0,0,0,7,0,5,0,9,0,14,0,15,0,7,0,6,0,4,0,5,0,5,0,6,0,7,0,7,0,6,0,8,0,8,0,8,0,5,0,15,0,6,0,9,0,10,0,5,0,1,0,11,0,7,0,9,0,6,0,4,0,1,0,14,0,4,0,6,0,2,0,6,0,0,0,3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11,0,0,0,0,1,0,2,0,10,0,23,0,35,0,30,0,12,0,17,0,3,0,3,0,8,0,12,0,18,0,21,0,12,0,7,0,11,0,9,0,15,0,21,0,32,0,40,0,19,0,6,0,14,0,13,0,22,0,34,0,46,0,23,0,18,0,7,0,20,0,19,0,33,0,47,0,27,0,22,0,9,0,3,0,31,0,22,0,41,0,26,0,21,0,20,0,5,0,3,0,14,0,13,0,10,0,11,0,16,0,6,0,5,0,1,0,9,0,8,0,7,0,8,0,4,0,4,0,2,0,0,0,1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13,3,0,4,0,10,0,24,0,34,0,33,0,21,0,15,0,5,0,3,0,4,0,10,0,32,0,17,0,11,0,10,0,11,0,7,0,13,0,18,0,30,0,31,0,20,0,5,0,25,0,11,0,19,0,59,0,27,0,18,0,12,0,5,0,35,0,33,0,31,0,58,0,30,0,16,0,7,0,5,0,28,0,26,0,32,0,19,0,17,0,15,0,8,0,14,0,14,0,12,0,9,0,13,0,14,0,9,0,4,0,1,0,11,0,4,0,6,0,6,0,6,0,3,0,2,0,0,0,2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12,9,0,6,0,16,0,33,0,41,0,39,0,38,0,26,0,7,0,5,0,6,0,9,0,23,0,16,0,26,0,11,0,17,0,7,0,11,0,14,0,21,0,30,0,10,0,7,0,17,0,10,0,15,0,12,0,18,0,28,0,14,0,5,0,32,0,13,0,22,0,19,0,18,0,16,0,9,0,5,0,40,0,17,0,31,0,29,0,17,0,13,0,4,0,2,0,27,0,12,0,11,0,15,0,10,0,7,0,4,0,1,0,27,0,12,0,8,0,12,0,6,0,3,0,1,0,0,0,4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12,1,0,5,0,14,0,21,0,34,0,51,0,46,0,71,0,42,0,52,0,68,0,52,0,67,0,44,0,43,0,19,0,3,0,4,0,12,0,19,0,31,0,26,0,44,0,33,0,31,0,24,0,32,0,24,0,31,0,35,0,22,0,14,0,15,0,13,0,23,0,36,0,59,0,49,0,77,0,65,0,29,0,40,0,30,0,40,0,27,0,33,0,42,0,16,0,22,0,20,0,37,0,61,0,56,0,79,0,73,0,64,0,43,0,76,0,56,0,37,0,26,0,31,0,25,0,14,0,35,0,16,0,60,0,57,0,97,0,75,0,114,0,91,0,54,0,73,0,55,0,41,0,48,0,53,0,23,0,24,0,58,0,27,0,50,0,96,0,76,0,70,0,93,0,84,0,77,0,58,0,79,0,29,0,74,0,49,0,41,0,17,0,47,0,45,0,78,0,74,0,115,0,94,0,90,0,79,0,69,0,83,0,71,0,50,0,59,0,38,0,36,0,15,0,72,0,34,0,56,0,95,0,92,0,85,0,91,0,90,0,86,0,73,0,77,0,65,0,51,0,44,0,43,0,42,0,43,0,20,0,30,0,44,0,55,0,78,0,72,0,87,0,78,0,61,0,46,0,54,0,37,0,30,0,20,0,16,0,53,0,25,0,41,0,37,0,44,0,59,0,54,0,81,0,66,0,76,0,57,0,54,0,37,0,18,0,39,0,11,0,35,0,33,0,31,0,57,0,42,0,82,0,72,0,80,0,47,0,58,0,55,0,21,0,22,0,26,0,38,0,22,0,53,0,25,0,23,0,38,0,70,0,60,0,51,0,36,0,55,0,26,0,34,0,23,0,27,0,14,0,9,0,7,0,34,0,32,0,28,0,39,0,49,0,75,0,30,0,52,0,48,0,40,0,52,0,28,0,18,0,17,0,9,0,5,0,45,0,21,0,34,0,64,0,56,0,50,0,49,0,45,0,31,0,19,0,12,0,15,0,10,0,7,0,6,0,3,0,48,0,23,0,20,0,39,0,36,0,35,0,53,0,21,0,16,0,23,0,13,0,10,0,6,0,1,0,4,0,2,0,16,0,15,0,17,0,27,0,25,0,20,0,29,0,11,0,17,0,12,0,16,0,8,0,1,0,1,0,0,0,1,0,1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18,1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12,7,0,12,0,18,0,53,0,47,0,76,0,124,0,108,0,89,0,123,0,108,0,119,0,107,0,81,0,122,0,63,0,13,0,5,0,16,0,27,0,46,0,36,0,61,0,51,0,42,0,70,0,52,0,83,0,65,0,41,0,59,0,36,0,19,0,17,0,15,0,24,0,41,0,34,0,59,0,48,0,40,0,64,0,50,0,78,0,62,0,80,0,56,0,33,0,29,0,28,0,25,0,43,0,39,0,63,0,55,0,93,0,76,0,59,0,93,0,72,0,54,0,75,0,50,0,29,0,52,0,22,0,42,0,40,0,67,0,57,0,95,0,79,0,72,0,57,0,89,0,69,0,49,0,66,0,46,0,27,0,77,0,37,0,35,0,66,0,58,0,52,0,91,0,74,0,62,0,48,0,79,0,63,0,90,0,62,0,40,0,38,0,125,0,32,0,60,0,56,0,50,0,92,0,78,0,65,0,55,0,87,0,71,0,51,0,73,0,51,0,70,0,30,0,109,0,53,0,49,0,94,0,88,0,75,0,66,0,122,0,91,0,73,0,56,0,42,0,64,0,44,0,21,0,25,0,90,0,43,0,41,0,77,0,73,0,63,0,56,0,92,0,77,0,66,0,47,0,67,0,48,0,53,0,36,0,20,0,71,0,34,0,67,0,60,0,58,0,49,0,88,0,76,0,67,0,106,0,71,0,54,0,38,0,39,0,23,0,15,0,109,0,53,0,51,0,47,0,90,0,82,0,58,0,57,0,48,0,72,0,57,0,41,0,23,0,27,0,62,0,9,0,86,0,42,0,40,0,37,0,70,0,64,0,52,0,43,0,70,0,55,0,42,0,25,0,29,0,18,0,11,0,11,0,118,0,68,0,30,0,55,0,50,0,46,0,74,0,65,0,49,0,39,0,24,0,16,0,22,0,13,0,14,0,7,0,91,0,44,0,39,0,38,0,34,0,63,0,52,0,45,0,31,0,52,0,28,0,19,0,14,0,8,0,9,0,3,0,123,0,60,0,58,0,53,0,47,0,43,0,32,0,22,0,37,0,24,0,17,0,12,0,15,0,10,0,2,0,1,0,71,0,37,0,34,0,30,0,28,0,20,0,17,0,26,0,21,0,16,0,10,0,6,0,8,0,6,0,2,0,0,0,3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15,1,0,5,0,14,0,44,0,74,0,63,0,110,0,93,0,172,0,149,0,138,0,242,0,225,0,195,0,120,1,17,0,3,0,4,0,12,0,20,0,35,0,62,0,53,0,47,0,83,0,75,0,68,0,119,0,201,0,107,0,207,0,9,0,15,0,13,0,23,0,38,0,67,0,58,0,103,0,90,0,161,0,72,0,127,0,117,0,110,0,209,0,206,0,16,0,45,0,21,0,39,0,69,0,64,0,114,0,99,0,87,0,158,0,140,0,252,0,212,0,199,0,131,1,109,1,26,0,75,0,36,0,68,0,65,0,115,0,101,0,179,0,164,0,155,0,8,1,246,0,226,0,139,1,126,1,106,1,9,0,66,0,30,0,59,0,56,0,102,0,185,0,173,0,9,1,142,0,253,0,232,0,144,1,132,1,122,1,189,1,16,0,111,0,54,0,52,0,100,0,184,0,178,0,160,0,133,0,1,1,244,0,228,0,217,0,129,1,110,1,203,2,10,0,98,0,48,0,91,0,88,0,165,0,157,0,148,0,5,1,248,0,151,1,141,1,116,1,124,1,121,3,116,3,8,0,85,0,84,0,81,0,159,0,156,0,143,0,4,1,249,0,171,1,145,1,136,1,127,1,215,2,201,2,196,2,7,0,154,0,76,0,73,0,141,0,131,0,0,1,245,0,170,1,150,1,138,1,128,1,223,2,103,1,198,2,96,1,11,0,139,0,129,0,67,0,125,0,247,0,233,0,229,0,219,0,137,1,231,2,225,2,208,2,117,3,114,3,183,1,4,0,243,0,120,0,118,0,115,0,227,0,223,0,140,1,234,2,230,2,224,2,209,2,200,2,194,2,223,0,180,1,6,0,202,0,224,0,222,0,218,0,216,0,133,1,130,1,125,1,108,1,120,3,187,1,195,2,184,1,181,1,192,6,4,0,235,2,211,0,210,0,208,0,114,1,123,1,222,2,211,2,202,2,199,6,115,3,109,3,108,3,131,13,97,3,2,0,121,1,113,1,102,0,187,0,214,2,210,2,102,1,199,2,197,2,98,3,198,6,103,3,130,13,102,3,178,1,0,0,12,0,10,0,7,0,11,0,10,0,17,0,11,0,9,0,13,0,12,0,10,0,7,0,5,0,3,0,1,0,3,0,1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10,15,0,13,0,46,0,80,0,146,0,6,1,248,0,178,1,170,1,157,2,141,2,137,2,109,2,5,2,8,4,88,0,14,0,12,0,21,0,38,0,71,0,130,0,122,0,216,0,209,0,198,0,71,1,89,1,63,1,41,1,23,1,42,0,47,0,22,0,41,0,74,0,68,0,128,0,120,0,221,0,207,0,194,0,182,0,84,1,59,1,39,1,29,2,18,0,81,0,39,0,75,0,70,0,134,0,125,0,116,0,220,0,204,0,190,0,178,0,69,1,55,1,37,1,15,1,16,0,147,0,72,0,69,0,135,0,127,0,118,0,112,0,210,0,200,0,188,0,96,1,67,1,50,1,29,1,28,2,14,0,7,1,66,0,129,0,126,0,119,0,114,0,214,0,202,0,192,0,180,0,85,1,61,1,45,1,25,1,6,1,12,0,249,0,123,0,121,0,117,0,113,0,215,0,206,0,195,0,185,0,91,1,74,1,52,1,35,1,16,1,8,2,10,0,179,1,115,0,111,0,109,0,211,0,203,0,196,0,187,0,97,1,76,1,57,1,42,1,27,1,19,2,125,1,17,0,171,1,212,0,208,0,205,0,201,0,193,0,186,0,177,0,169,0,64,1,47,1,30,1,12,1,2,2,121,1,16,0,79,1,199,0,197,0,191,0,189,0,181,0,174,0,77,1,65,1,49,1,33,1,19,1,9,2,123,1,115,1,11,0,156,2,184,0,183,0,179,0,175,0,88,1,75,1,58,1,48,1,34,1,21,1,18,2,127,1,117,1,110,1,10,0,140,2,90,1,171,0,168,0,164,0,62,1,53,1,43,1,31,1,20,1,7,1,1,2,119,1,112,1,106,1,6,0,136,2,66,1,60,1,56,1,51,1,46,1,36,1,28,1,13,1,5,1,0,2,120,1,114,1,108,1,103,1,4,0,108,2,44,1,40,1,38,1,32,1,26,1,17,1,10,1,3,2,124,1,118,1,113,1,109,1,105,1,101,1,2,0,9,4,24,1,22,1,18,1,11,1,8,1,3,1,126,1,122,1,116,1,111,1,107,1,104,1,102,1,100,1,0,0,43,0,20,0,19,0,17,0,15,0,13,0,11,0,9,0,7,0,6,0,4,0,7,0,5,0,3,0,1,0,3,0,4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6,1,0,10,0,8,0,20,0,12,0,20,0,16,0,32,0,14,0,12,0,24,0,0,0,28,0,16,0,24,0,16,0,15,0,28,0,26,0,48,0,22,0,40,0,36,0,64,0,14,0,24,0,20,0,32,0,12,0,16,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,8,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,51,0,0,0,35,0,0,0,53,0,0,0,71,0,0,0,52,0,0,0,70,0,0,0,88,0,0,0,69,0,0,0,87,0,0,0,105,0,0,0,104,0,0,0,122,0,0,0,0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,54,0,0,0,36,0,0,0,54,0,0,0,72,0,0,0,54,0,0,0,72,0,0,0,90,0,0,0,72,0,0,0,90,0,0,0,108,0,0,0,108,0,0,0,126,0,0,0,0,0,0,0,10,0,0,0,20,0,0,0,30,0,0,0,33,0,0,0,21,0,0,0,31,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,52,0,0,0,43,0,0,0,53,0,0,0,63,0,0,0,64,0,0,0,74,0,0,0,15,0,0,0,15,0,0,0,7,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,31,0,0,0,31,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,7,0,0,0,7,0,0,0,10,0,0,0,10,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+82224),allocate([51,46,57,57,46,53,0,0,93,61,127,102,158,160,230,63,0,0,0,0,0,136,57,61,68,23,117,250,82,176,230,63,0,0,0,0,0,0,216,60,254,217,11,117,18,192,230,63,0,0,0,0,0,120,40,189,191,118,212,221,220,207,230,63,0,0,0,0,0,192,30,61,41,26,101,60,178,223,230,63,0,0,0,0,0,0,216,188,227,58,89,152,146,239,230,63,0,0,0,0,0,0,188,188,134,147,81,249,125,255,230,63,0,0,0,0,0,216,47,189,163,45,244,102,116,15,231,63,0,0,0,0,0,136,44,189,195,95,236,232,117,31,231,63,0,0,0,0,0,192,19,61,5,207,234,134,130,47,231,63,0,0,0,0,0,48,56,189,82,129,165,72,154,63,231,63,0,0,0,0,0,192,0,189,252,204,215,53,189,79,231,63,0,0,0,0,0,136,47,61,241,103,66,86,235,95,231,63,0,0,0,0,0,224,3,61,72,109,171,177,36,112,231,63,0,0,0,0,0,208,39,189,56,93,222,79,105,128,231,63,0,0,0,0,0,0,221,188,0,29,172,56,185,144,231,63,0,0,0,0,0,0,227,60,120,1,235,115,20,161,231,63,0,0,0,0,0,0,237,188,96,208,118,9,123,177,231,63,0,0,0,0,0,64,32,61,51,193,48,1,237,193,231,63,0,0,0,0,0,0,160,60,54,134,255,98,106,210,231,63,0,0,0,0,0,144,38,189,59,78,207,54,243,226,231,63,0,0,0,0,0,224,2,189,232,195,145,132,135,243,231,63,0,0,0,0,0,88,36,189,78,27,62,84,39,4,232,63,0,0,0,0,0,0,51,61,26,7,209,173,210,20,232,63,0,0,0,0,0,0,15,61,126,205,76,153,137,37,232,63,0,0,0,0,0,192,33,189,208,66,185,30,76,54,232,63,0,0,0,0,0,208,41,61,181,202,35,70,26,71,232,63,0,0,0,0,0,16,71,61,188,91,159,23,244,87,232,63,0,0,0,0,0,96,34,61,175,145,68,155,217,104,232,63,0,0,0,0,0,196,50,189,149,163,49,217,202,121,232,63,0,0,0,0,0,0,35,189,184,101,138,217,199,138,232,63,0,0,0,0,0,128,42,189,0,88,120,164,208,155,232,63,0,0,0,0,0,0,237,188,35,162,42,66,229,172,232,63,0,0,0,0,0,40,51,61,250,25,214,186,5,190,232,63,0,0,0,0,0,180,66,61,131,67,181,22,50,207,232,63,0,0,0,0,0,208,46,189,76,102,8,94,106,224,232,63,0,0,0,0,0,80,32,189,7,120,21,153,174,241,232,63,0,0,0,0,0,40,40,61,14,44,40,208,254,2,233,63,0,0,0,0,0,176,28,189,150,255,145,11,91,20,233,63,0,0,0,0,0,224,5,189,249,47,170,83,195,37,233,63,0,0,0,0,0,64,245,60,74,198,205,176,55,55,233,63,0,0,0,0,0,32,23,61,174,152,95,43,184,72,233,63,0,0,0,0,0,0,9,189,203,82,200,203,68,90,233,63,0,0,0,0,0,104,37,61,33,111,118,154,221,107,233,63,0,0,0,0,0,208,54,189,42,78,222,159,130,125,233,63,0,0,0,0,0,0,1,189,163,35,122,228,51,143,233,63,0,0,0,0,0,0,45,61,4,6,202,112,241,160,233,63,0,0,0,0,0,164,56,189,137,255,83,77,187,178,233,63,0,0,0,0,0,92,53,61,91,241,163,130,145,196,233,63,0,0,0,0,0,184,38,61,197,184,75,25,116,214,233,63,0,0,0,0,0,0,236,188,142,35,227,25,99,232,233,63,0,0,0,0,0,208,23,61,2,243,7,141,94,250,233,63,0,0,0,0,0,64,22,61,77,229,93,123,102,12,234,63,0,0,0,0,0,0,245,188,246,184,142,237,122,30,234,63,0,0,0,0,0,224,9,61,39,46,74,236,155,48,234,63,0,0,0,0,0,216,42,61,93,10,70,128,201,66,234,63,0,0,0,0,0,240,26,189,155,37,62,178,3,85,234,63,0,0,0,0,0,96,11,61,19,98,244,138,74,103,234,63,0,0,0,0,0,136,56,61,167,179,48,19,158,121,234,63,0,0,0,0,0,32,17,61,141,46,193,83,254,139,234,63,0,0,0,0,0,192,6,61,210,252,121,85,107,158,234,63,0,0,0,0,0,184,41,189,184,111,53,33,229,176,234,63,0,0,0,0,0,112,43,61,129,243,211,191,107,195,234,63,0,0,0,0,0,0,217,60,128,39,60,58,255,213,234,63,0,0,0,0,0,0,228,60,163,210,90,153,159,232,234,63,0,0,0,0,0,144,44,189,103,243,34,230,76,251,234,63,0,0,0,0,0,80,22,61,144,183,141,41,7,14,235,63,0,0,0,0,0,212,47,61,169,137,154,108,206,32,235,63,0,0,0,0,0,112,18,61,75,26,79,184,162,51,235,63,0,0,0,0,0,71,77,61,231,71,183,21,132,70,235,63,0,0,0,0,0,56,56,189,58,89,229,141,114,89,235,63,0,0,0,0,0,0,152,60,106,197,241,41,110,108,235,63,0,0,0,0,0,208,10,61,80,94,251,242,118,127,235,63,0,0,0,0,0,128,222,60,178,73,39,242,140,146,235,63,0,0,0,0,0,192,4,189,3,6,161,48,176,165,235,63,0,0,0,0,0,112,13,189,102,111,154,183,224,184,235,63,0,0,0,0,0,144,13,61,255,193,75,144,30,204,235,63,0,0,0,0,0,160,2,61,111,161,243,195,105,223,235,63,0,0,0,0,0,120,31,189,184,29,215,91,194,242,235,63,0,0,0,0,0,160,16,189,233,178,65,97,40,6,236,63,0,0,0,0,0,64,17,189,224,82,133,221,155,25,236,63,0,0,0,0,0,224,11,61,238,100,250,217,28,45,236,63,0,0,0,0,0,64,9,189,47,208,255,95,171,64,236,63,0,0,0,0,0,208,14,189,21,253,250,120,71,84,236,63,0,0,0,0,0,102,57,61,203,208,87,46,241,103,236,63,0,0,0,0,0,16,26,189,182,193,136,137,168,123,236,63,0,0,0,0,128,69,88,189,51,231,6,148,109,143,236,63,0,0,0,0,0,72,26,189,223,196,81,87,64,163,236,63,0,0,0,0,0,0,203,60,148,144,239,220,32,183,236,63,0,0,0,0,0,64,1,61,137,22,109,46,15,203,236,63,0,0,0,0,0,32,240,60,18,196,93,85,11,223,236,63,0,0,0,0,0,96,243,60,59,171,91,91,21,243,236,63,0,0,0,0,0,144,6,189,188,137,7,74,45,7,237,63,0,0,0,0,0,160,9,61,250,200,8,43,83,27,237,63,0,0,0,0,0,224,21,189,133,138,13,8,135,47,237,63,0,0,0,0,0,40,29,61,3,162,202,234,200,67,237,63,0,0,0,0,0,160,1,61,145,164,251,220,24,88,237,63,0,0,0,0,0,0,223,60,161,230,98,232,118,108,237,63,0,0,0,0,0,160,3,189,78,131,201,22,227,128,237,63,0,0,0,0,0,216,12,189,144,96,255,113,93,149,237,63,0,0,0,0,0,192,244,60,174,50,219,3,230,169,237,63,0,0,0,0,0,144,255,60,37,131,58,214,124,190,237,63,0,0,0,0,0,128,233,60,69,180,1,243,33,211,237,63,0,0,0,0,0,32,245,188,191,5,28,100,213,231,237,63,0,0,0,0,0,112,29,189,236,154,123,51,151,252,237,63,0,0,0,0,0,20,22,189,94,125,25,107,103,17,238,63,0,0,0,0,0,72,11,61,231,163,245,20,70,38,238,63,0,0,0,0,0,206,64,61,92,238,22,59,51,59,238,63,0,0,0,0,0,104,12,61,180,63,139,231,46,80,238,63,0,0,0,0,0,48,9,189,104,109,103,36,57,101,238,63,0,0,0,0,0,0,229,188,68,76,199,251,81,122,238,63,0,0,0,0,0,248,7,189,38,183,205,119,121,143,238,63,0,0,0,0,0,112,243,188,232,144,164,162,175,164,238,63,0,0,0,0,0,208,229,60,228,202,124,134,244,185,238,63,0,0,0,0,0,26,22,61,13,104,142,45,72,207,238,63,0,0,0,0,0,80,245,60,20,133,24,162,170,228,238,63,0,0,0,0,0,64,198,60,19,90,97,238,27,250,238,63,0,0,0,0,0,128,238,188,6,65,182,28,156,15,239,63,0,0,0,0,0,136,250,188,99,185,107,55,43,37,239,63,0,0,0,0,0,144,44,189,117,114,221,72,201,58,239,63,0,0,0,0,0,0,170,60,36,69,110,91,118,80,239,63,0,0,0,0,0,240,244,188,253,68,136,121,50,102,239,63,0,0,0,0,0,128,202,60,56,190,156,173,253,123,239,63,0,0,0,0,0,188,250,60,130,60,36,2,216,145,239,63,0,0,0,0,0,96,212,188,142,144,158,129,193,167,239,63,0,0,0,0,0,12,11,189,17,213,146,54,186,189,239,63,0,0,0,0,0,224,192,188,148,113,143,43,194,211,239,63,0,0,0,0,128,222,16,189,238,35,42,107,217,233,239,63,0,0,0,0,0,67,238,60,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,0,190,188,90,250,26,11,240,63,0,0,0,0,0,64,179,188,3,51,251,169,61,22,240,63,0,0,0,0,0,23,18,189,130,2,59,20,104,33,240,63,0,0,0,0,0,64,186,60,108,128,119,62,154,44,240,63,0,0,0,0,0,152,239,60,202,187,17,46,212,55,240,63,0,0,0,0,0,64,199,188,137,127,110,232,21,67,240,63,0,0,0,0,0,48,216,60,103,84,246,114,95,78,240,63,0,0,0,0,0,63,26,189,90,133,21,211,176,89,240,63,0,0,0,0,0,132,2,189,149,31,60,14,10,101,240,63,0,0,0,0,0,96,241,60,26,247,221,41,107,112,240,63,0,0,0,0,0,36,21,61,45,168,114,43,212,123,240,63,0,0,0,0,0,160,233,188,208,155,117,24,69,135,240,63,0,0,0,0,0,64,230,60,200,7,102,246,189,146,240,63,0,0,0,0,0,120,0,189,131,243,198,202,62,158,240,63,0,0,0,0,0,0,152,188,48,57,31,155,199,169,240,63,0,0,0,0,0,160,255,60,252,136,249,108,88,181,240,63,0,0,0,0,0,200,250,188,138,108,228,69,241,192,240,63,0,0,0,0,0,192,217,60,22,72,114,43,146,204,240,63,0,0,0,0,0,32,5,61,216,93,57,35,59,216,240,63,0,0,0,0,0,208,250,188,243,209,211,50,236,227,240,63,0,0,0,0,0,172,27,61,166,169,223,95,165,239,240,63,0,0,0,0,0,232,4,189,240,210,254,175,102,251,240,63,0,0,0,0,0,48,13,189,75,35,215,40,48,7,241,63,0,0,0,0,0,80,241,60,91,91,18,208,1,19,241,63,0,0,0,0,0,0,236,60,249,42,94,171,219,30,241,63,0,0,0,0,0,188,22,61,213,49,108,192,189,42,241,63,0,0,0,0,0,64,232,60,125,4,242,20,168,54,241,63,0,0,0,0,0,208,14,189,233,45,169,174,154,66,241,63,0,0,0,0,0,224,232,60,56,49,79,147,149,78,241,63,0,0,0,0,0,64,235,60,113,142,165,200,152,90,241,63,0,0,0,0,0,48,5,61,223,195,113,84,164,102,241,63,0,0,0,0,0,56,3,61,17,82,125,60,184,114,241,63,0,0,0,0,0,212,40,61,159,187,149,134,212,126,241,63,0,0,0,0,0,208,5,189,147,141,140,56,249,138,241,63,0,0,0,0,0,136,28,189,102,93,55,88,38,151,241,63,0,0,0,0,0,240,17,61,167,203,111,235,91,163,241,63,0,0,0,0,0,72,16,61,227,135,19,248,153,175,241,63,0,0,0,0,0,57,71,189,84,93,4,132,224,187,241,63,0,0,0,0,0,228,36,61,67,28,40,149,47,200,241,63,0,0,0,0,0,32,10,189,178,185,104,49,135,212,241,63,0,0,0,0,0,128,227,60,49,64,180,94,231,224,241,63,0,0,0,0,0,192,234,60,56,217,252,34,80,237,241,63,0,0,0,0,0,144,1,61,247,205,56,132,193,249,241,63,0,0,0,0,0,120,27,189,143,141,98,136,59,6,242,63,0,0,0,0,0,148,45,61,30,168,120,53,190,18,242,63,0,0,0,0,0,0,216,60,65,221,125,145,73,31,242,63,0,0,0,0,0,52,43,61,35,19,121,162,221,43,242,63,0,0,0,0,0,248,25,61,231,97,117,110,122,56,242,63,0,0,0,0,0,200,25,189,39,20,130,251,31,69,242,63,0,0,0,0,0,48,2,61,2,166,178,79,206,81,242,63,0,0,0,0,0,72,19,189,176,206,30,113,133,94,242,63,0,0,0,0,0,112,18,61,22,125,226,101,69,107,242,63,0,0,0,0,0,208,17,61,15,224,29,52,14,120,242,63,0,0,0,0,0,238,49,61,62,99,245,225,223,132,242,63,0,0,0,0,0,192,20,189,48,187,145,117,186,145,242,63,0,0,0,0,0,216,19,189,9,223,31,245,157,158,242,63,0,0,0,0,0,176,8,61,155,14,209,102,138,171,242,63,0,0,0,0,0,124,34,189,58,218,218,208,127,184,242,63,0,0,0,0,0,52,42,61,249,26,119,57,126,197,242,63,0,0,0,0,0,128,16,189,217,2,228,166,133,210,242,63,0,0,0,0,0,208,14,189,121,21,100,31,150,223,242,63,0,0,0,0,0,32,244,188,207,46,62,169,175,236,242,63,0,0,0,0,0,152,36,189,34,136,189,74,210,249,242,63,0,0,0,0,0,48,22,189,37,182,49,10,254,6,243,63,0,0,0,0,0,54,50,189,11,165,238,237,50,20,243,63,0,0,0,0,128,223,112,189,184,215,76,252,112,33,243,63,0,0,0,0,0,72,34,189,162,233,168,59,184,46,243,63,0,0,0,0,0,152,37,189,102,23,100,178,8,60,243,63,0,0,0,0,0,208,30,61,39,250,227,102,98,73,243,63,0,0,0,0,0,0,220,188,15,159,146,95,197,86,243,63,0,0,0,0,0,216,48,189,185,136,222,162,49,100,243,63,0,0,0,0,0,200,34,61,57,170,58,55,167,113,243,63,0,0,0,0,0,96,32,61,254,116,30,35,38,127,243,63,0,0,0,0,0,96,22,189,56,216,5,109,174,140,243,63,0,0,0,0,0,224,10,189,195,62,113,27,64,154,243,63,0,0,0,0,0,114,68,189,32,160,229,52,219,167,243,63,0,0,0,0,0,32,8,61,149,110,236,191,127,181,243,63,0,0,0,0,0,128,62,61,242,168,19,195,45,195,243,63,0,0,0,0,0,128,239,60,34,225,237,68,229,208,243,63,0,0,0,0,0,160,23,189,187,52,18,76,166,222,243,63,0,0,0,0,0,48,38,61,204,78,28,223,112,236,243,63,0,0,0,0,0,166,72,189,140,126,172,4,69,250,243,63,0,0,0,0,0,220,60,189,187,160,103,195,34,8,244,63,0,0,0,0,0,184,37,61,149,46,247,33,10,22,244,63,0,0,0,0,0,192,30,61,70,70,9,39,251,35,244,63,0,0,0,0,0,96,19,189,32,169,80,217,245,49,244,63,0,0,0,0,0,152,35,61,235,185,132,63,250,63,244,63,0,0,0,0,0,0,250,60,25,137,97,96,8,78,244,63,0,0,0,0,0,192,246,188,1,210,167,66,32,92,244,63,0,0,0,0,0,192,11,189,22,0,29,237,65,106,244,63,0,0,0,0,0,128,18,189,38,51,139,102,109,120,244,63,0,0,0,0,0,224,48,61,0,60,193,181,162,134,244,63,0,0,0,0,0,64,45,189,4,175,146,225,225,148,244,63,0,0,0,0,0,32,12,61,114,211,215,240,42,163,244,63,0,0,0,0,0,80,30,189,1,184,109,234,125,177,244,63,0,0,0,0,0,128,7,61,225,41,54,213,218,191,244,63,0,0,0,0,0,128,19,189,50,193,23,184,65,206,244,63,0,0,0,0,0,128,0,61,219,221,253,153,178,220,244,63,0,0,0,0,0,112,44,61,150,171,216,129,45,235,244,63,0,0,0,0,0,224,28,189,2,45,157,118,178,249,244,63,0,0,0,0,0,32,25,61,193,49,69,127,65,8,245,63,0,0,0,0,0,192,8,189,42,102,207,162,218,22,245,63,0,0,0,0,0,0,250,188,234,81,63,232,125,37,245,63,0,0,0,0,0,8,74,61,218,78,157,86,43,52,245,63,0,0,0,0,0,216,38,189,26,172,246,244,226,66,245,63,0,0,0,0,0,68,50,189,219,148,93,202,164,81,245,63,0,0,0,0,0,60,72,61,107,17,233,221,112,96,245,63,0,0,0,0,0,176,36,61,222,41,181,54,71,111,245,63,0,0,0,0,0,90,65,61,14,196,226,219,39,126,245,63,0,0,0,0,0,224,41,189,111,199,151,212,18,141,245,63,0,0,0,0,0,8,35,189,76,11,255,39,8,156,245,63,0,0,0,0,0,236,77,61,39,84,72,221,7,171,245,63,0,0,0,0,0,0,196,188,244,122,168,251,17,186,245,63,0,0,0,0,0,8,48,61,11,70,89,138,38,201,245,63,0,0,0,0,0,200,38,189,63,142,153,144,69,216,245,63,0,0,0,0,0,154,70,61,225,32,173,21,111,231,245,63,0,0,0,0,0,64,27,189,202,235,220,32,163,246,245,63,0,0,0,0,0,112,23,61,184,220,118,185,225,5,246,63,0,0,0,0,0,248,38,61,21,247,205,230,42,21,246,63,0,0,0,0,0,0,1,61,49,85,58,176,126,36,246,63,0,0,0,0,0,208,21,189,181,41,25,29,221,51,246,63,0,0,0,0,0,208,18,189,19,195,204,52,70,67,246,63,0,0,0,0,0,128,234,188,250,142,188,254,185,82,246,63,0,0,0,0,0,96,40,189,151,51,85,130,56,98,246,63,0,0,0,0,0,254,113,61,142,50,8,199,193,113,246,63,0,0,0,0,0,32,55,189,126,169,76,212,85,129,246,63,0,0,0,0,0,128,230,60,113,148,158,177,244,144,246,63,0,0,0,0,0,120,41,189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,0,0,0,0,0,0,40,110,117,108,108,41,0,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,0,0,0,0,0,105,110,102,0,0,0,0,0,73,78,70,0,0,0,0,0,110,97,110,0,0,0,0,0,78,65,78,0,0,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+91696);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}function _InitGainAnalysis(){Module.printErr("missing function: InitGainAnalysis"),abort(-1)}function _AnalyzeSamples(){Module.printErr("missing function: AnalyzeSamples"),abort(-1)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var _fabsf=Math_abs,_floorf=Math_floor;Module._memset=_memset;var _BDtoILow=!0,ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86},ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}function _strerror_r(e,r,i){return e in ERRNO_MESSAGES?ERRNO_MESSAGES[e].length>i-1?___setErrNo(ERRNO_CODES.ERANGE):(writeAsciiToMemory(ERRNO_MESSAGES[e],r),0):___setErrNo(ERRNO_CODES.EINVAL)}function _strerror(e){return _strerror.buffer||(_strerror.buffer=_malloc(256)),_strerror_r(e,_strerror.buffer,256),_strerror.buffer}function _VBR_encode_frame(){Module.printErr("missing function: VBR_encode_frame"),abort(-1)}function _abort(){Module.abort()}function _init_xrpow_core_sse(){Module.printErr("missing function: init_xrpow_core_sse"),abort(-1)}var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var i=0,t=e.length-1;t>=0;t--){var n=e[t];"."===n?e.splice(t,1):".."===n?(e.splice(t,1),i++):i&&(e.splice(t,1),i--)}if(r)for(;i--;i)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),i="/"===e.substr(-1);return(e=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||r||(e="."),e&&i&&(e+="/"),(r?"/":"")+e},dirname:function(e){var r=PATH.splitPath(e),i=r[0],t=r[1];return i||t?(t&&(t=t.substr(0,t.length-1)),i+t):"."},basename:function(e){if("/"===e)return"/";var r=e.lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,r){return PATH.normalize(e+"/"+r)},resolve:function(){for(var e="",r=!1,i=arguments.length-1;i>=-1&&!r;i--){var t=i>=0?arguments[i]:FS.cwd();if("string"!=typeof t)throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,r="/"===t.charAt(0)}return(r?"/":"")+(e=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!r).join("/"))||"."},relative:function(e,r){function i(e){for(var r=0;r=0&&""===e[i];i--);return r>i?[]:e.slice(r,i-r+1)}e=PATH.resolve(e).substr(1),r=PATH.resolve(r).substr(1);for(var t=i(e.split("/")),n=i(r.split("/")),a=Math.min(t.length,n.length),o=a,s=0;s0?t.slice(0,i).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;e.input=intArrayFromString(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(Module.print(UTF8ArrayToString(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(Module.print(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(Module.printErr(UTF8ArrayToString(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(Module.printErr(UTF8ArrayToString(e.output,0)),e.output=[])}}},MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,r,i,t){if(FS.isBlkdev(i)||FS.isFIFO(i))throw new FS.ErrnoError(ERRNO_CODES.EPERM);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var n=FS.createNode(e,r,i,t);return FS.isDir(n.mode)?(n.node_ops=MEMFS.ops_table.dir.node,n.stream_ops=MEMFS.ops_table.dir.stream,n.contents={}):FS.isFile(n.mode)?(n.node_ops=MEMFS.ops_table.file.node,n.stream_ops=MEMFS.ops_table.file.stream,n.usedBytes=0,n.contents=null):FS.isLink(n.mode)?(n.node_ops=MEMFS.ops_table.link.node,n.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(n.mode)&&(n.node_ops=MEMFS.ops_table.chrdev.node,n.stream_ops=MEMFS.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[r]=n),n},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var r=[],i=0;ie.contents.length&&(e.contents=MEMFS.getFileDataAsRegularArray(e),e.usedBytes=e.contents.length),!e.contents||e.contents.subarray){var i=e.contents?e.contents.buffer.byteLength:0;if(i>=r)return;r=Math.max(r,i*(i<1048576?2:1.125)|0),0!=i&&(r=Math.max(r,256));var t=e.contents;return e.contents=new Uint8Array(r),void(e.usedBytes>0&&e.contents.set(t.subarray(0,e.usedBytes),0))}for(!e.contents&&r>0&&(e.contents=[]);e.contents.lengthr)e.contents.length=r;else for(;e.contents.length=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-n,t);if(assert(o>=0),o>8&&a.subarray)r.set(a.subarray(n,n+o),i);else for(var s=0;s0||n+to.timestamp)&&(n.push(i),t++)}));var a=[];if(Object.keys(r.entries).forEach((function(i){r.entries[i];e.entries[i]||(a.push(i),t++)})),!t)return i(null);var o=0,s=("remote"===e.type?e.db:r.db).transaction([IDBFS.DB_STORE_NAME],"readwrite"),l=s.objectStore(IDBFS.DB_STORE_NAME);function f(e){return e?f.errored?void 0:(f.errored=!0,i(e)):++o>=t?i(null):void 0}s.onerror=function(e){f(this.error),e.preventDefault()},n.sort().forEach((function(e){"local"===r.type?IDBFS.loadRemoteEntry(l,e,(function(r,i){if(r)return f(r);IDBFS.storeLocalEntry(e,i,f)})):IDBFS.loadLocalEntry(e,(function(r,i){if(r)return f(r);IDBFS.storeRemoteEntry(l,e,i,f)}))})),a.sort().reverse().forEach((function(e){"local"===r.type?IDBFS.removeLocalEntry(e,f):IDBFS.removeRemoteEntry(l,e,f)}))}},NODEFS={isWindows:!1,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/)},mount:function(e){return assert(ENVIRONMENT_IS_NODE),NODEFS.createNode(null,"/",NODEFS.getMode(e.opts.root),0)},createNode:function(e,r,i,t){if(!FS.isDir(i)&&!FS.isFile(i)&&!FS.isLink(i))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.createNode(e,r,i);return n.node_ops=NODEFS.node_ops,n.stream_ops=NODEFS.stream_ops,n},getMode:function(e){var r;try{r=fs.lstatSync(e),NODEFS.isWindows&&(r.mode=r.mode|(146&r.mode)>>1)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return r.mode},realPath:function(e){for(var r=[];e.parent!==e;)r.push(e.name),e=e.parent;return r.push(e.mount.opts.root),r.reverse(),PATH.join.apply(null,r)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(e){return e in NODEFS.flagsToPermissionStringMap?NODEFS.flagsToPermissionStringMap[e]:e},node_ops:{getattr:function(e){var r,i=NODEFS.realPath(e);try{r=fs.lstatSync(i)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return NODEFS.isWindows&&!r.blksize&&(r.blksize=4096),NODEFS.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:function(e,r){var i=NODEFS.realPath(e);try{if(void 0!==r.mode&&(fs.chmodSync(i,r.mode),e.mode=r.mode),void 0!==r.timestamp){var t=new Date(r.timestamp);fs.utimesSync(i,t,t)}void 0!==r.size&&fs.truncateSync(i,r.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(e,r){var i=PATH.join2(NODEFS.realPath(e),r),t=NODEFS.getMode(i);return NODEFS.createNode(e,r,t)},mknod:function(e,r,i,t){var n=NODEFS.createNode(e,r,i,t),a=NODEFS.realPath(n);try{FS.isDir(n.mode)?fs.mkdirSync(a,n.mode):fs.writeFileSync(a,"",{mode:n.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return n},rename:function(e,r,i){var t=NODEFS.realPath(e),n=PATH.join2(NODEFS.realPath(r),i);try{fs.renameSync(t,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(e,r){var i=PATH.join2(NODEFS.realPath(e),r);try{fs.unlinkSync(i)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(e,r){var i=PATH.join2(NODEFS.realPath(e),r);try{fs.rmdirSync(i)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(e){var r=NODEFS.realPath(e);try{return fs.readdirSync(r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(e,r,i){var t=PATH.join2(NODEFS.realPath(e),r);try{fs.symlinkSync(i,t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(e){var r=NODEFS.realPath(e);try{return r=fs.readlinkSync(r),r=NODEJS_PATH.relative(NODEJS_PATH.resolve(e.mount.opts.root),r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(e){var r=NODEFS.realPath(e.node);try{FS.isFile(e.node.mode)&&(e.nfd=fs.openSync(r,NODEFS.flagsToPermissionString(e.flags)))}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(e){try{FS.isFile(e.node.mode)&&e.nfd&&fs.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(e,r,i,t,n){if(0===t)return 0;var a,o=new Buffer(t);try{a=fs.readSync(e.nfd,o,0,t,n)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(a>0)for(var s=0;s8)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);for(var n=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=FS.root,o="/",s=0;s40)throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}return{path:o,node:a}},getPath:function(e){for(var r;;){if(FS.isRoot(e)){var i=e.mount.mountpoint;return r?"/"!==i[i.length-1]?i+"/"+r:i+r:i}r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var i=0,t=0;t>>0)%FS.nameTable.length},hashAddNode:function(e){var r=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[r],FS.nameTable[r]=e},hashRemoveNode:function(e){var r=FS.hashName(e.parent.id,e.name);if(FS.nameTable[r]===e)FS.nameTable[r]=e.name_next;else for(var i=FS.nameTable[r];i;){if(i.name_next===e){i.name_next=e.name_next;break}i=i.name_next}},lookupNode:function(e,r){var i=FS.mayLookup(e);if(i)throw new FS.ErrnoError(i,e);for(var t=FS.hashName(e.id,r),n=FS.nameTable[t];n;n=n.name_next){var a=n.name;if(n.parent.id===e.id&&a===r)return n}return FS.lookup(e,r)},createNode:function(e,r,i,t){if(!FS.FSNode){FS.FSNode=function(e,r,i,t){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=r,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=t},FS.FSNode.prototype={};var n=365,a=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&n)===n},set:function(e){e?this.mode|=n:this.mode&=-366}},write:{get:function(){return(this.mode&a)===a},set:function(e){e?this.mode|=a:this.mode&=-147}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var o=new FS.FSNode(e,r,i,t);return FS.hashAddNode(o),o},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=FS.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][2097155&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return FS.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:ERRNO_CODES.EACCES},mayLookup:function(e){var r=FS.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:ERRNO_CODES.EACCES)},mayCreate:function(e,r){try{FS.lookupNode(e,r);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,r,i){var t;try{t=FS.lookupNode(e,r)}catch(e){return e.errno}var n=FS.nodePermissions(e,"wx");if(n)return n;if(i){if(!FS.isDir(t.mode))return ERRNO_CODES.ENOTDIR;if(FS.isRoot(t)||FS.getPath(t)===FS.cwd())return ERRNO_CODES.EBUSY}else if(FS.isDir(t.mode))return ERRNO_CODES.EISDIR;return 0},mayOpen:function(e,r){return e?FS.isLink(e.mode)?ERRNO_CODES.ELOOP:FS.isDir(e.mode)&&(0!=(2097155&r)||512&r)?ERRNO_CODES.EISDIR:FS.nodePermissions(e,FS.flagsToPermissionString(r)):ERRNO_CODES.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(e,r){e=e||0,r=r||FS.MAX_OPEN_FDS;for(var i=e;i<=r;i++)if(!FS.streams[i])return i;throw new FS.ErrnoError(ERRNO_CODES.EMFILE)},getStream:function(e){return FS.streams[e]},createStream:function(e,r,i){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var t=new FS.FSStream;for(var n in e)t[n]=e[n];e=t;var a=FS.nextfd(r,i);return e.fd=a,FS.streams[a]=e,e},closeStream:function(e){FS.streams[e]=null},getStreamFromPtr:function(e){return FS.streams[e-1]},getPtrForStream:function(e){return e?e.fd+1:0},chrdev_stream_ops:{open:function(e){var r=FS.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){FS.devices[e]={stream_ops:r}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var r=[],i=[e];i.length;){var t=i.pop();r.push(t),i.push.apply(i,t.mounts)}return r},syncfs:function(e,r){"function"==typeof e&&(r=e,e=!1);var i=FS.getMounts(FS.root.mount),t=0;function n(e){if(e)return n.errored?void 0:(n.errored=!0,r(e));++t>=i.length&&r(null)}i.forEach((function(r){if(!r.type.syncfs)return n(null);r.type.syncfs(r,e,n)}))},mount:function(e,r,i){var t,n="/"===i,a=!i;if(n&&FS.root)throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!n&&!a){var o=FS.lookupPath(i,{follow_mount:!1});if(i=o.path,t=o.node,FS.isMountpoint(t))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var s={type:e,opts:r,mountpoint:i,mounts:[]},l=e.mount(s);return l.mount=s,s.root=l,n?FS.root=l:t&&(t.mounted=s,t.mount&&t.mount.mounts.push(s)),l},unmount:function(e){var r=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(r.node))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var i=r.node,t=i.mounted,n=FS.getMounts(t);Object.keys(FS.nameTable).forEach((function(e){for(var r=FS.nameTable[e];r;){var i=r.name_next;-1!==n.indexOf(r.mount)&&FS.destroyNode(r),r=i}})),i.mounted=null;var a=i.mount.mounts.indexOf(t);assert(-1!==a),i.mount.mounts.splice(a,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,i){var t=FS.lookupPath(e,{parent:!0}).node,n=PATH.basename(e);if(!n||"."===n||".."===n)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var a=FS.mayCreate(t,n);if(a)throw new FS.ErrnoError(a);if(!t.node_ops.mknod)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return t.node_ops.mknod(t,n,r,i)},create:function(e,r){return r=void 0!==r?r:438,r&=4095,r|=32768,FS.mknod(e,r,0)},mkdir:function(e,r){return r=void 0!==r?r:511,r&=1023,r|=16384,FS.mknod(e,r,0)},mkdev:function(e,r,i){return void 0===i&&(i=r,r=438),r|=8192,FS.mknod(e,r,i)},symlink:function(e,r){if(!PATH.resolve(e))throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var i=FS.lookupPath(r,{parent:!0}).node;if(!i)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var t=PATH.basename(r),n=FS.mayCreate(i,t);if(n)throw new FS.ErrnoError(n);if(!i.node_ops.symlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return i.node_ops.symlink(i,t,e)},rename:function(e,r){var i,t,n=PATH.dirname(e),a=PATH.dirname(r),o=PATH.basename(e),s=PATH.basename(r);try{i=FS.lookupPath(e,{parent:!0}).node,t=FS.lookupPath(r,{parent:!0}).node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!i||!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(i.mount!==t.mount)throw new FS.ErrnoError(ERRNO_CODES.EXDEV);var l,f=FS.lookupNode(i,o),u=PATH.relative(e,a);if("."!==u.charAt(0))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if("."!==(u=PATH.relative(r,n)).charAt(0))throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);try{l=FS.lookupNode(t,s)}catch(e){}if(f!==l){var c=FS.isDir(f.mode),h=FS.mayDelete(i,o,c);if(h)throw new FS.ErrnoError(h);if(h=l?FS.mayDelete(t,s,c):FS.mayCreate(t,s))throw new FS.ErrnoError(h);if(!i.node_ops.rename)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(f)||l&&FS.isMountpoint(l))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(t!==i&&(h=FS.nodePermissions(i,"w")))throw new FS.ErrnoError(h);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(e,r)}catch(e){}FS.hashRemoveNode(f);try{i.node_ops.rename(f,t,s)}catch(e){throw e}finally{FS.hashAddNode(f)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(e){}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}).node,i=PATH.basename(e),t=FS.lookupNode(r,i),n=FS.mayDelete(r,i,!0);if(n)throw new FS.ErrnoError(n);if(!r.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(t))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(e){}r.node_ops.rmdir(r,i),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(e){}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return r.node_ops.readdir(r)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}).node,i=PATH.basename(e),t=FS.lookupNode(r,i),n=FS.mayDelete(r,i,!1);if(n)throw n===ERRNO_CODES.EISDIR&&(n=ERRNO_CODES.EPERM),new FS.ErrnoError(n);if(!r.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(t))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(e){}r.node_ops.unlink(r,i),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(e){}},readlink:function(e){var r=FS.lookupPath(e),i=r.node;if(!i)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!i.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.node.parent),i.node_ops.readlink(i))},stat:function(e,r){var i=FS.lookupPath(e,{follow:!r}).node;if(!i)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!i.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return i.node_ops.getattr(i)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,i){var t;"string"==typeof e?t=FS.lookupPath(e,{follow:!i}).node:t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);t.node_ops.setattr(t,{mode:4095&r|-4096&t.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var i=FS.getStream(e);if(!i)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(i.node,r)},chown:function(e,r,i,t){var n;"string"==typeof e?n=FS.lookupPath(e,{follow:!t}).node:n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,i){FS.chown(e,r,i,!0)},fchown:function(e,r,i){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(t.node,r,i)},truncate:function(e,r){if(r<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var i;"string"==typeof e?i=FS.lookupPath(e,{follow:!0}).node:i=e;if(!i.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(i.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(i.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t=FS.nodePermissions(i,"w");if(t)throw new FS.ErrnoError(t);i.node_ops.setattr(i,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var i=FS.getStream(e);if(!i)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0==(2097155&i.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(i.node,r)},utime:function(e,r,i){var t=FS.lookupPath(e,{follow:!0}).node;t.node_ops.setattr(t,{timestamp:Math.max(r,i)})},open:function(e,r,i,t,n){if(""===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var a;if(i=void 0===i?438:i,i=64&(r="string"==typeof r?FS.modeStringToFlags(r):r)?4095&i|32768:0,"object"==typeof e)a=e;else{e=PATH.normalize(e);try{a=FS.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var o=!1;if(64&r)if(a){if(128&r)throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}else a=FS.mknod(e,i,0),o=!0;if(!a)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(FS.isChrdev(a.mode)&&(r&=-513),!o){var s=FS.mayOpen(a,r);if(s)throw new FS.ErrnoError(s)}512&r&&FS.truncate(a,0),r&=-641;var l=FS.createStream({node:a,path:FS.getPath(a),flags:r,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},t,n);l.stream_ops.open&&l.stream_ops.open(l),!Module.logReadFiles||1&r||(FS.readFiles||(FS.readFiles={}),e in FS.readFiles||(FS.readFiles[e]=1,Module.printErr("read file: "+e)));try{if(FS.trackingDelegate.onOpenFile){var f=0;1!=(2097155&r)&&(f|=FS.tracking.openFlags.READ),0!=(2097155&r)&&(f|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(e,f)}}catch(e){}return l},close:function(e){try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}},llseek:function(e,r,i){if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);return e.position=e.stream_ops.llseek(e,r,i),e.ungotten=[],e.position},read:function(e,r,i,t,n){if(t<0||n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.read)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var a=!0;if(void 0===n)n=e.position,a=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var o=e.stream_ops.read(e,r,i,t,n);return a||(e.position+=o),o},write:function(e,r,i,t,n,a){if(t<0||n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.write)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);1024&e.flags&&FS.llseek(e,0,2);var o=!0;if(void 0===n)n=e.position,o=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var s=e.stream_ops.write(e,r,i,t,n,a);o||(e.position+=s);try{e.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(e.path)}catch(e){}return s},allocate:function(e,r,i){if(r<0||i<=0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!FS.isFile(e.node.mode)&&!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(!e.stream_ops.allocate)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);e.stream_ops.allocate(e,r,i)},mmap:function(e,r,i,t,n,a,o){if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EACCES);if(!e.stream_ops.mmap)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);return e.stream_ops.mmap(e,r,i,t,n,a,o)},msync:function(e,r,i,t,n){return e&&e.stream_ops.msync?e.stream_ops.msync(e,r,i,t,n):0},munmap:function(e){return 0},ioctl:function(e,r,i){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);return e.stream_ops.ioctl(e,r,i)},readFile:function(e,r){if((r=r||{}).flags=r.flags||"r",r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');var i,t=FS.open(e,r.flags),n=FS.stat(e).size,a=new Uint8Array(n);return FS.read(t,a,0,n,0),"utf8"===r.encoding?i=UTF8ArrayToString(a,0):"binary"===r.encoding&&(i=a),FS.close(t),i},writeFile:function(e,r,i){if((i=i||{}).flags=i.flags||"w",i.encoding=i.encoding||"utf8","utf8"!==i.encoding&&"binary"!==i.encoding)throw new Error('Invalid encoding type "'+i.encoding+'"');var t=FS.open(e,i.flags,i.mode);if("utf8"===i.encoding){var n=new Uint8Array(lengthBytesUTF8(r)+1),a=stringToUTF8Array(r,n,0,n.length);FS.write(t,n,0,a,0,i.canOwn)}else"binary"===i.encoding&&FS.write(t,r,0,r.length,0,i.canOwn);FS.close(t)},cwd:function(){return FS.currentPath},chdir:function(e){var r=FS.lookupPath(e,{follow:!0});if(!FS.isDir(r.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);var i=FS.nodePermissions(r.node,"x");if(i)throw new FS.ErrnoError(i);FS.currentPath=r.path},createDefaultDirectories:function(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(e,r,i,t,n){return t}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0)),"undefined"!=typeof crypto){var r=new Uint8Array(1);e=function(){return crypto.getRandomValues(r),r[0]}}else e=ENVIRONMENT_IS_NODE?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};FS.createDevice("/dev","random",e),FS.createDevice("/dev","urandom",e),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createStandardStreams:function(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");var e=FS.open("/dev/stdin","r");HEAP32[_stdin>>2]=FS.getPtrForStream(e),assert(0===e.fd,"invalid handle for stdin ("+e.fd+")");var r=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=FS.getPtrForStream(r),assert(1===r.fd,"invalid handle for stdout ("+r.fd+")");var i=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=FS.getPtrForStream(i),assert(2===i.fd,"invalid handle for stderr ("+i.fd+")")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e,r){this.node=r,this.setErrno=function(e){for(var r in this.errno=e,ERRNO_CODES)if(ERRNO_CODES[r]===e){this.code=r;break}},this.setErrno(e),this.message=ERRNO_MESSAGES[e]},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[ERRNO_CODES.ENOENT].forEach((function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack=""})))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices()},init:function(e,r,i){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=r||Module.stdout,Module.stderr=i||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;for(var e=0;ethis.length-1||e<0)){var r=e%this.chunkSize,i=e/this.chunkSize|0;return this.getter(i)[r]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var r,t=Number(e.getResponseHeader("Content-length")),n=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,a=1048576;n||(a=t);var o=this;o.setDataGetter((function(e){var r=e*a,n=(e+1)*a-1;if(n=Math.min(n,t-1),void 0===o.chunks[e]&&(o.chunks[e]=function(e,r){if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>t-1)throw new Error("only "+t+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",i,!1),t!==a&&n.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+i+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)}(r,n)),void 0===o.chunks[e])throw new Error("doXHR failed!");return o.chunks[e]})),this._length=t,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new a;Object.defineProperty(o,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this._length}}),Object.defineProperty(o,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}});var s={isDevice:!1,contents:o}}else s={isDevice:!1,url:i};var l=FS.createFile(e,r,s,t,n);s.contents?l.contents=s.contents:s.url&&(l.contents=null,l.url=s.url),Object.defineProperty(l,"usedBytes",{get:function(){return this.contents.length}});var f={};return Object.keys(l.stream_ops).forEach((function(e){var r=l.stream_ops[e];f[e]=function(){if(!FS.forceLoadFile(l))throw new FS.ErrnoError(ERRNO_CODES.EIO);return r.apply(null,arguments)}})),f.read=function(e,r,i,t,n){if(!FS.forceLoadFile(l))throw new FS.ErrnoError(ERRNO_CODES.EIO);var a=e.node.contents;if(n>=a.length)return 0;var o=Math.min(a.length-n,t);if(assert(o>=0),a.slice)for(var s=0;s0){Date.now();var r=Browser.mainLoop.queue.shift();if(r.func(r.arg),Browser.mainLoop.remainingBlockers){var i=Browser.mainLoop.remainingBlockers,n=i%1==0?i-1:Math.floor(i);r.counted?Browser.mainLoop.remainingBlockers=n:(n+=.5,Browser.mainLoop.remainingBlockers=(8*i+n)/9)}return Browser.mainLoop.updateStatus(),void setTimeout(Browser.mainLoop.runner,0)}a1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():("timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter((function(){void 0!==t?Runtime.dynCall("vi",e,[t]):Runtime.dynCall("v",e)})),a0?_emscripten_set_main_loop_timing(0,1e3/r):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),i)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,r=Browser.mainLoop.timingValue,i=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(i,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,r),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",r=Browser.mainLoop.remainingBlockers,i=Browser.mainLoop.expectedBlockers;r?r=6;){var o=t>>n-6&63;n-=6,i+=r[o]}return 2==n?(i+=r[(3&t)<<4],i+="=="):4==n&&(i+=r[(15&t)<<2],i+="="),i}(e),a(f))},f.src=l,Browser.safeSetTimeout((function(){a(f)}),1e4)}};Module.preloadPlugins.push(r);var i=Module.canvas;i&&(i.requestPointerLock=i.requestPointerLock||i.mozRequestPointerLock||i.webkitRequestPointerLock||i.msRequestPointerLock||function(){},i.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},i.exitPointerLock=i.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",t,!1),document.addEventListener("mozpointerlockchange",t,!1),document.addEventListener("webkitpointerlockchange",t,!1),document.addEventListener("mspointerlockchange",t,!1),Module.elementPointerLock&&i.addEventListener("click",(function(e){!Browser.pointerLock&&i.requestPointerLock&&(i.requestPointerLock(),e.preventDefault())}),!1))}function t(){Browser.pointerLock=document.pointerLockElement===i||document.mozPointerLockElement===i||document.webkitPointerLockElement===i||document.msPointerLockElement===i}},createContext:function(e,r,i,t){if(r&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,a;if(r){var o={antialias:!1,alpha:!1};if(t)for(var s in t)o[s]=t[s];(a=GL.createContext(e,o))&&(n=GL.getContext(a).GLctx),e.style.backgroundColor="black"}else n=e.getContext("2d");return n?(i&&(r||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,r&&GL.makeContextCurrent(a),Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),Browser.init()),n):null},destroyContext:function(e,r,i){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r,i){Browser.lockPointer=e,Browser.resizeCanvas=r,Browser.vrDevice=i,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1),void 0===Browser.vrDevice&&(Browser.vrDevice=null);var t=Module.canvas;function n(){Browser.isFullScreen=!1;var e=t.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===e?(t.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},t.cancelFullScreen=t.cancelFullScreen.bind(document),Browser.lockPointer&&t.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(e.parentNode.insertBefore(t,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(t)}Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",n,!1),document.addEventListener("mozfullscreenchange",n,!1),document.addEventListener("webkitfullscreenchange",n,!1),document.addEventListener("MSFullscreenChange",n,!1));var a=document.createElement("div");t.parentNode.insertBefore(a,t),a.appendChild(t),a.requestFullScreen=a.requestFullScreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullScreen?function(){a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i?a.requestFullScreen({vrDisplay:i}):a.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var r=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=r+1e3/60;else for(;r+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var i=Math.max(Browser.nextRAF-r,0);setTimeout(e,i)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach((function(e){e()}))}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}))},safeSetTimeout:function(e,r){return Module.noExitRuntime=!0,setTimeout((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}),r)},safeSetInterval:function(e,r){return Module.noExitRuntime=!0,setInterval((function(){ABORT||Browser.allowAsyncCallbacks&&e()}),r)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var r=0;switch(e.type){case"DOMMouseScroll":r=e.detail;break;case"mousewheel":r=e.wheelDelta;break;case"wheel":r=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return r},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var r=Module.canvas.getBoundingClientRect(),i=Module.canvas.width,t=Module.canvas.height,n=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var o=e.touch;if(void 0===o)return;var s=o.pageX-(n+r.left),l=o.pageY-(a+r.top),f={x:s*=i/r.width,y:l*=t/r.height};if("touchstart"===e.type)Browser.lastTouches[o.identifier]=f,Browser.touches[o.identifier]=f;else if("touchend"===e.type||"touchmove"===e.type){var u=Browser.touches[o.identifier];u||(u=f),Browser.lastTouches[o.identifier]=u,Browser.touches[o.identifier]=f}return}var c=e.pageX-(n+r.left),h=e.pageY-(a+r.top);c*=i/r.width,h*=t/r.height,Browser.mouseMovementX=c-Browser.mouseX,Browser.mouseMovementY=h-Browser.mouseY,Browser.mouseX=c,Browser.mouseY=h}},xhrLoad:function(e,r,i){var t=new XMLHttpRequest;t.open("GET",e,!0),t.responseType="arraybuffer",t.onload=function(){200==t.status||0==t.status&&t.response?r(t.response):i()},t.onerror=i,t.send(null)},asyncLoad:function(e,r,i,t){Browser.xhrLoad(e,(function(i){assert(i,'Loading data file "'+e+'" failed (no arrayBuffer).'),r(new Uint8Array(i)),t||removeRunDependency("al "+e)}),(function(r){if(!i)throw'Loading data file "'+e+'" failed.';i()})),t||addRunDependency("al "+e)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach((function(r){r(e.width,e.height)}))},setCanvasSize:function(e,r,i){var t=Module.canvas;Browser.updateCanvasDimensions(t,e,r),i||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,r,i){r&&i?(e.widthNative=r,e.heightNative=i):(r=e.widthNative,i=e.heightNative);var t=r,n=i;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(t/n>8,255&e.sport])),u},getPeer:function(e,r,i){return e.peers[r+":"+i]},addPeer:function(e,r){e.peers[r.addr+":"+r.port]=r},removePeer:function(e,r){delete e.peers[r.addr+":"+r.port]},handlePeerEvents:function(e,r){var i=!0,t=function(){Module.websocket.emit("open",e.stream.fd);try{for(var i=r.dgram_send_queue.shift();i;)r.socket.send(i),i=r.dgram_send_queue.shift()}catch(e){r.socket.close()}};function n(t){assert("string"!=typeof t&&void 0!==t.byteLength),t=new Uint8Array(t);var n=i;if(i=!1,n&&10===t.length&&255===t[0]&&255===t[1]&&255===t[2]&&255===t[3]&&t[4]==="p".charCodeAt(0)&&t[5]==="o".charCodeAt(0)&&t[6]==="r".charCodeAt(0)&&t[7]==="t".charCodeAt(0)){var a=t[8]<<8|t[9];return SOCKFS.websocket_sock_ops.removePeer(e,r),r.port=a,void SOCKFS.websocket_sock_ops.addPeer(e,r)}e.recv_queue.push({addr:r.addr,port:r.port,data:t}),Module.websocket.emit("message",e.stream.fd)}ENVIRONMENT_IS_NODE?(r.socket.on("open",t),r.socket.on("message",(function(e,r){r.binary&&n(new Uint8Array(e).buffer)})),r.socket.on("close",(function(){Module.websocket.emit("close",e.stream.fd)})),r.socket.on("error",(function(r){e.error=ERRNO_CODES.ECONNREFUSED,Module.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])}))):(r.socket.onopen=t,r.socket.onclose=function(){Module.websocket.emit("close",e.stream.fd)},r.socket.onmessage=function(e){n(e.data)},r.socket.onerror=function(r){e.error=ERRNO_CODES.ECONNREFUSED,Module.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])})},poll:function(e){if(1===e.type&&e.server)return e.pending.length?65:0;var r=0,i=1===e.type?SOCKFS.websocket_sock_ops.getPeer(e,e.daddr,e.dport):null;return(e.recv_queue.length||!i||i&&i.socket.readyState===i.socket.CLOSING||i&&i.socket.readyState===i.socket.CLOSED)&&(r|=65),(!i||i&&i.socket.readyState===i.socket.OPEN)&&(r|=4),(i&&i.socket.readyState===i.socket.CLOSING||i&&i.socket.readyState===i.socket.CLOSED)&&(r|=16),r},ioctl:function(e,r,i){switch(r){case 21531:var t=0;return e.recv_queue.length&&(t=e.recv_queue[0].data.length),HEAP32[i>>2]=t,0;default:return ERRNO_CODES.EINVAL}},close:function(e){if(e.server){try{e.server.close()}catch(e){}e.server=null}for(var r=Object.keys(e.peers),i=0;i>2]=HEAP32[r+t>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[r+(t+4)>>2],i=+HEAPF64[tempDoublePtr>>3],t+=8):"i64"==e?(i=[HEAP32[r+t>>2],HEAP32[r+(t+4)>>2]],t+=8):(assert(0==(3&t)),e="i32",i=HEAP32[r+t>>2],t+=4),i}for(var a,o,s=[];;){var l=i;if(0===(a=HEAP8[i>>0]))break;if(o=HEAP8[i+1>>0],37==a){var f=!1,u=!1,c=!1,h=!1,d=!1;e:for(;;){switch(o){case 43:f=!0;break;case 45:u=!0;break;case 35:c=!0;break;case 48:if(h)break e;h=!0;break;case 32:d=!0;break;default:break e}i++,o=HEAP8[i+1>>0]}var v=0;if(42==o)v=n("i32"),i++,o=HEAP8[i+1>>0];else for(;o>=48&&o<=57;)v=10*v+(o-48),i++,o=HEAP8[i+1>>0];var m,E=!1,w=-1;if(46==o){if(w=0,E=!0,i++,42==(o=HEAP8[i+1>>0]))w=n("i32"),i++;else for(;;){var b=HEAP8[i+1>>0];if(b<48||b>57)break;w=10*w+(b-48),i++}o=HEAP8[i+1>>0]}switch(w<0&&(w=6,E=!1),String.fromCharCode(o)){case"h":104==HEAP8[i+2>>0]?(i++,m=1):m=2;break;case"l":108==HEAP8[i+2>>0]?(i++,m=8):m=4;break;case"L":case"q":case"j":m=8;break;case"z":case"t":case"I":m=4;break;default:m=null}switch(m&&i++,o=HEAP8[i+1>>0],String.fromCharCode(o)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var _=100==o||105==o,p=O=n("i"+8*(m=m||4));if(8==m&&(O=Runtime.makeBigInt(O[0],O[1],117==o)),m<=4)O=(_?reSign:unSign)(O&Math.pow(256,m)-1,8*m);var k=Math.abs(O),S="";if(100==o||105==o)F=8==m&&i64Math?i64Math.stringify(p[0],p[1],null):reSign(O,8*m,1).toString(10);else if(117==o)F=8==m&&i64Math?i64Math.stringify(p[0],p[1],!0):unSign(O,8*m,1).toString(10),O=Math.abs(O);else if(111==o)F=(c?"0":"")+k.toString(8);else if(120==o||88==o){if(S=c&&0!=O?"0x":"",8==m&&i64Math)if(p[1]){F=(p[1]>>>0).toString(16);for(var g=(p[0]>>>0).toString(16);g.length<8;)g="0"+g;F+=g}else F=(p[0]>>>0).toString(16);else if(O<0){O=-O,F=(k-1).toString(16);for(var y=[],M=0;M=0&&(f?S="+"+S:d&&(S=" "+S)),"-"==F.charAt(0)&&(S="-"+S,F=F.substr(1));S.length+F.lengthT&&T>=-4?(o=(103==o?"f":"F").charCodeAt(0),w-=T+1):(o=(103==o?"e":"E").charCodeAt(0),w--),R=Math.min(w,20)}101==o||69==o?(F=O.toExponential(R),/[eE][-+]\d$/.test(F)&&(F=F.slice(0,-1)+"0"+F.slice(-1))):102!=o&&70!=o||(F=O.toFixed(R),0===O&&__reallyNegative(O)&&(F="-"+F));var N=F.split("e");if(A&&!c)for(;N[0].length>1&&-1!=N[0].indexOf(".")&&("0"==N[0].slice(-1)||"."==N[0].slice(-1));)N[0]=N[0].slice(0,-1);else for(c&&-1==F.indexOf(".")&&(N[0]+=".");w>R++;)N[0]+="0";F=N[0]+(N.length>1?"e"+N[1]:""),69==o&&(F=F.toUpperCase()),O>=0&&(f?F="+"+F:d&&(F=" "+F))}else F=(O<0?"-":"")+"inf",h=!1;for(;F.length>0]);else s=s.concat(intArrayFromString("(null)".substr(0,P),!0));if(u)for(;P0;)s.push(32);u||s.push(n("i8"));break;case"n":var L=n("i32*");HEAP32[L>>2]=s.length;break;case"%":s.push(a);break;default:for(M=l;M>0])}i+=2}else s.push(a),i+=1}return s}function _fprintf(e,r,i){var t=__formatString(r,i),n=Runtime.stackSave(),a=_fwrite(allocate(t,"i8",ALLOC_STACK),1,t.length,e);return Runtime.stackRestore(n),a}function _vfprintf(e,r,i){return _fprintf(e,r,HEAP32[i>>2])}function _emscripten_memcpy_big(e,r,i){return HEAPU8.set(HEAPU8.subarray(r,r+i),e),e}Module._memcpy=_memcpy;var _log=Math_log,_cos=Math_cos,_llvm_pow_f64=Math_pow;function _sbrk(e){var r=_sbrk;r.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),r.called=!0,assert(Runtime.dynamicAlloc),r.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var i=DYNAMICTOP;if(0!=e&&!r.alloc(e))return-1>>>0;return i}function ___errno_location(){return ___errno_state}Module._bitshift64Shl=_bitshift64Shl;var _BItoD=!0;function _hip_set_debugf(){Module.printErr("missing function: hip_set_debugf"),abort(-1)}var _exp=Math_exp;function _time(e){var r=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=r),r}function _hip_decode1_unclipped(){Module.printErr("missing function: hip_decode1_unclipped"),abort(-1)}if(___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,FS.staticInit(),__ATINIT__.unshift((function(){Module.noFSInit||FS.init.initialized||FS.init()})),__ATMAIN__.push((function(){FS.ignorePermissions=!1})),__ATEXIT__.push((function(){FS.quit()})),Module.FS_createFolder=FS.createFolder,Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createLink=FS.createLink,Module.FS_createDevice=FS.createDevice,__ATINIT__.unshift((function(){TTY.init()})),__ATEXIT__.push((function(){TTY.shutdown()})),ENVIRONMENT_IS_NODE){var fs=require("fs"),NODEJS_PATH=require("path");NODEFS.staticInit()}Module.requestFullScreen=function(e,r,i){Browser.requestFullScreen(e,r,i)},Module.requestAnimationFrame=function(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function(e,r,i){Browser.setCanvasSize(e,r,i)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(e,r,i,t){return Browser.createContext(e,r,i,t)},__ATINIT__.push((function(){SOCKFS.root=FS.mount(SOCKFS,{},null)})),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE>0]=t[e>>0];t[d+1>>0]=t[e+1>>0];t[d+2>>0]=t[e+2>>0];t[d+3>>0]=t[e+3>>0]}function vr(e){e=e|0;t[d>>0]=t[e>>0];t[d+1>>0]=t[e+1>>0];t[d+2>>0]=t[e+2>>0];t[d+3>>0]=t[e+3>>0];t[d+4>>0]=t[e+4>>0];t[d+5>>0]=t[e+5>>0];t[d+6>>0]=t[e+6>>0];t[d+7>>0]=t[e+7>>0]}function mr(e){e=e|0;D=e}function Er(){return D|0}function wr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0;Q=c;t=e+84744|0;n=a[t>>2]|0;w=e+16|0;A=a[w>>2]|0;x=(83944+(A<<6)|0)+(n<<2)|0;W=a[x>>2]|0;Y=e+85784|0;K=a[Y>>2]|0;G=K+1|0;a[Y>>2]=G;X=e+85760|0;o=a[X>>2]|0;s=o+W|0;a[X>>2]=s;l=e+85764|0;f=a[l>>2]|0;u=f+1|0;a[l>>2]=u;h=e+85768|0;d=a[h>>2]|0;v=(u|0)<(d|0);if(v){return}m=e+85772|0;E=a[m>>2]|0;b=e+85776|0;_=a[b>>2]|0;p=(E|0)<(_|0);if(p){k=e+85780|0;S=a[k>>2]|0;g=S+(E<<2)|0;a[g>>2]=s;y=a[m>>2]|0;M=y+1|0;a[m>>2]=M;a[l>>2]=0;r=a[b>>2]|0;F=M;R=r}else{F=E;R=_}O=(F|0)==(R|0);if(!O){return}T=(R|0)>1;if(T){N=e+85780|0;D=a[N>>2]|0;Z=1;while(1){P=D+(Z<<2)|0;L=a[P>>2]|0;C=(Z|0)/2&-1;B=D+(C<<2)|0;a[B>>2]=L;I=Z+2|0;H=a[b>>2]|0;U=(I|0)<(H|0);if(U){Z=I}else{break}}i=a[m>>2]|0;j=i}else{j=R}z=a[h>>2]|0;q=z<<1;a[h>>2]=q;V=(j|0)/2&-1;a[m>>2]=V;return}function br(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0;ae=c;c=c+2896|0;te=ae;Z=ae+8|0;n=e+288|0;o=a[n>>2]|0;b=o+16|0;R=a[b>>2]|0;U=(R|0)==1;if(U){$=128}else{W=o+64|0;Y=a[W>>2]|0;K=(Y|0)<16000;r=K?32:64;$=r}G=o+104|0;X=a[G>>2]|0;s=(X|0)==0;if(s){l=o+120|0;f=a[l>>2]|0;ee=f}else{ee=$}u=R*72000|0;h=u+72000|0;d=ie(h,ee)|0;v=o+64|0;m=a[v>>2]|0;E=(d|0)/(m|0)&-1;w=o+24|0;_=a[w>>2]|0;p=_+156|0;k=o+85792|0;a[k>>2]=E;S=(E|0)<(p|0);g=(E|0)>2880;re=g|S;if(re){y=o+156|0;a[y>>2]=0;i=0;c=ae;return i|0}M=o+85784|0;a[M>>2]=0;F=o+85788|0;a[F>>2]=0;O=o+85760|0;a[O>>2]=0;A=o+85764|0;a[A>>2]=0;T=o+85768|0;a[T>>2]=1;N=o+85772|0;a[N>>2]=0;D=o+85780|0;P=a[D>>2]|0;L=(P|0)==(0|0);do{if(L){C=mn(1600)|0;a[D>>2]=C;B=(C|0)==(0|0);I=o+85776|0;if(!B){a[I>>2]=400;break}a[I>>2]=0;xt(o,8,te);H=o+156|0;a[H>>2]=0;i=-1;c=ae;return i|0}}while(0);pn(Z|0,0,2880)|0;pr(o,Z);x=a[k>>2]|0;z=(x|0)==0;if(!z){Q=0;while(1){q=Z+Q|0;V=t[q>>0]|0;Mr(o,V,1);j=Q+1|0;J=(j|0)==(x|0);if(J){break}else{Q=j}}}i=0;c=ae;return i|0}function _r(e,r,i){e=e|0;r=r|0;i=i|0;var o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;F=c;s=(i|0)>0;if(!s){return}o=n[e>>1]|0;b=o;y=0;while(1){l=r+y|0;m=t[l>>0]|0;E=m&255;w=b&65535;_=b^E;p=w>>>8;k=_&65535;S=k&255;f=48+(S<<2)|0;u=a[f>>2]|0;h=p^u;d=h&65535;n[e>>1]=d;v=y+1|0;g=(v|0)==(i|0);if(g){break}else{b=d;y=v}}return}function pr(e,r){e=e|0;r=r|0;var i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0;Mr=c;t[r>>0]=-1;l=r+1|0;f=t[l>>0]|0;B=f&255;K=B<<3;ne=K|7;me=ne&255;t[l>>0]=me;Fe=ne<<1;Ie=e+64|0;Ge=a[Ie>>2]|0;_r=(Ge|0)>15999;ar=_r&1;u=Fe|ar;S=u&255;t[l>>0]=S;A=u<<1;R=e+16|0;T=a[R>>2]|0;N=T&1;n=A&62;D=n|N;P=D<<2;L=P|1;C=L&255;t[l>>0]=C;I=L<<1;H=e+160|0;x=a[H>>2]|0;U=(x|0)==0;z=U&1;q=I|z;V=q&255;t[l>>0]=V;j=r+2|0;W=t[j>>0]|0;Y=W&255;G=Y<<4;X=e+84744|0;Z=a[X>>2]|0;J=Z&15;Q=G|J;$=Q&255;t[j>>0]=$;ee=Q<<2;re=e+20|0;ie=a[re>>2]|0;te=ie&3;o=ee&124;ae=o|te;oe=ae<<1;se=oe&255;t[j>>0]=se;le=ae<<2;fe=e+172|0;ue=a[fe>>2]|0;ce=ue&1;he=le|ce;de=he&255;t[j>>0]=de;ve=r+3|0;Ee=t[ve>>0]|0;we=Ee&255;be=we<<2;_e=e+180|0;pe=a[_e>>2]|0;ke=pe&3;Se=be|ke;ge=Se&255;t[ve>>0]=ge;ye=Se<<2;Me=e+84756|0;Oe=a[Me>>2]|0;Ae=Oe&3;Re=ye|Ae;Te=Re&255;t[ve>>0]=Te;Ne=Re<<1;De=e+164|0;Pe=a[De>>2]|0;Le=Pe&1;Ce=Ne|Le;Be=Ce&255;t[ve>>0]=Be;He=Ce<<1;xe=e+168|0;Ue=a[xe>>2]|0;ze=Ue&1;qe=He|ze;Ve=qe&255;t[ve>>0]=Ve;je=qe<<2;We=e+176|0;Ye=a[We>>2]|0;Ke=Ye&3;Xe=je|Ke;Ze=Xe&255;t[ve>>0]=Ze;t[r>>0]=-1;Je=a[R>>2]|0;Qe=(Je|0)==1;if(Qe){wr=128}else{$e=a[Ie>>2]|0;er=($e|0)<16000;i=er?32:64;wr=i}rr=e+104|0;ir=a[rr>>2]|0;tr=(ir|0)==0;if(tr){nr=e+120|0;or=a[nr>>2]|0;br=or}else{br=wr}sr=e+152|0;lr=a[sr>>2]|0;fr=(lr|0)==0;if(fr){ur=a[Ie>>2]|0;cr=Pt(br,Je,ur)|0;hr=cr<<4;dr=hr&255;s=a[R>>2]|0;vr=s;Er=dr}else{vr=Je;Er=0}mr=(vr|0)==1;kr=q<<24;pr=kr>>24;h=pr&-15;if(mr){d=h|10;v=d&255;t[l>>0]=v;m=t[j>>0]|0;E=m&255;w=E&13;b=Er<<24>>24;_=w|b;gr=_;Sr=gr&255;t[j>>0]=Sr;return}else{p=h|2;k=p&255;t[l>>0]=k;g=t[j>>0]|0;y=g&255;M=y&13;F=Er&255;O=M|F;gr=O;Sr=gr&255;t[j>>0]=Sr;return}}function kr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0;M=c;o=e+16|0;s=e+84744|0;v=a[s>>2]|0;m=(v|0)==0;if(m){b=e+120|0;i=a[o>>2]|0;r=i;g=b}else{E=a[o>>2]|0;w=(83944+(E<<6)|0)+(v<<2)|0;r=E;g=w}S=a[g>>2]|0;_=e+84752|0;p=a[_>>2]|0;t=e+64|0;n=a[t>>2]|0;k=r*72000|0;l=k+72000|0;f=ie(l,S)|0;u=(f|0)/(n|0)&-1;h=u+p|0;d=h<<3;return d|0}function Sr(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0;C=c;i=e+104|0;t=a[i>>2]|0;E=(t|0)>320;if(E){k=(r|0)==1;A=a[e>>2]|0;if(k){R=e+48|0;T=a[R>>2]|0;S=A*72000|0;g=S+72000|0;y=ie(g,t)|0;M=(y|0)/(T|0)&-1;F=M<<3;P=F;return P|0}else{O=A*7680|0;n=O+7680|0;P=n;return P|0}}o=a[e>>2]|0;if((r|0)==2){_=o*7680|0;p=_+7680|0;P=p;return P|0}else if((r|0)==1){s=e+48|0;l=a[s>>2]|0;f=(l|0)<16000;u=(83944+(o<<6)|0)+32|0;h=(83944+(o<<6)|0)+56|0;D=f?u:h;N=a[D>>2]|0;d=o*72000|0;v=d+72000|0;m=ie(v,N)|0;w=(m|0)/(l|0)&-1;b=w<<3;P=b;return P|0}else{P=11520;return P|0}return 0|0}function gr(e,r){e=e|0;r=r|0;var i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0;var Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0;var ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0;var gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0;Ri=c;R=r+2|0;T=t[R>>0]|0;We=T&255;ir=We&128;dr=(ir|0)!=0;F=dr?262140:196598;yr=We<<10;Cr=F^yr;Yr=Cr&65536;ti=(Yr|0)==0;vi=F^32773;i=ti?F:vi;N=We<<11;q=i<<1;$=q^N;ue=$&65536;ke=(ue|0)==0;De=q^32773;s=ke?q:De;ze=We<<12;qe=s<<1;Ve=qe^ze;je=Ve&65536;Ye=(je|0)==0;Ke=qe^32773;u=Ye?qe:Ke;Ge=We<<13;Xe=u<<1;Ze=Xe^Ge;Je=Ze&65536;Qe=(Je|0)==0;$e=Xe^32773;v=Qe?Xe:$e;er=We<<14;rr=v<<1;tr=rr^er;nr=tr&65536;ar=(nr|0)==0;or=rr^32773;w=ar?rr:or;sr=We<<15;lr=w<<1;fr=lr^sr;ur=fr&65536;cr=(ur|0)==0;hr=lr^32773;p=cr?lr:hr;vr=We<<16;mr=p<<1;Er=mr^vr;wr=Er&65536;br=(wr|0)==0;_r=mr^32773;g=br?mr:_r;pr=r+3|0;kr=t[pr>>0]|0;Sr=kr&255;gr=Sr<<9;Mr=g<<1;Fr=Mr^gr;Or=Fr&65536;Ar=(Or|0)==0;Rr=Mr^32773;A=Ar?Mr:Rr;Tr=Sr<<10;Nr=A<<1;Dr=Nr^Tr;Pr=Dr&65536;Lr=(Pr|0)==0;Br=Nr^32773;n=Lr?Nr:Br;Ir=Sr<<11;Hr=n<<1;xr=Hr^Ir;Ur=xr&65536;zr=(Ur|0)==0;qr=Hr^32773;l=zr?Hr:qr;Vr=Sr<<12;jr=l<<1;Wr=jr^Vr;Kr=Wr&65536;Gr=(Kr|0)==0;Xr=jr^32773;h=Gr?jr:Xr;Zr=Sr<<13;Jr=h<<1;Qr=Jr^Zr;$r=Qr&65536;ei=($r|0)==0;ri=Jr^32773;m=ei?Jr:ri;ii=Sr<<14;ni=m<<1;ai=ni^ii;oi=ai&65536;si=(oi|0)==0;li=ni^32773;b=si?ni:li;fi=Sr<<15;ui=b<<1;ci=ui^fi;hi=ci&65536;di=(hi|0)==0;mi=ui^32773;k=di?ui:mi;Ei=Sr<<16;wi=k<<1;bi=wi^Ei;_i=bi&65536;pi=(_i|0)==0;ki=wi^32773;y=pi?wi:ki;Si=e+24|0;gi=a[Si>>2]|0;yi=(gi|0)>6;if(yi){Fi=y;Oi=6}else{Mi=y;Be=Mi>>>8;Ie=Be&255;He=r+4|0;t[He>>0]=Ie;xe=Mi&255;Ue=r+5|0;t[Ue>>0]=xe;return}while(1){D=r+Oi|0;P=t[D>>0]|0;L=P&255;C=L<<9;B=Fi<<1;I=C^B;H=I&65536;x=(H|0)==0;U=B^32773;O=x?B:U;z=L<<10;V=O<<1;j=V^z;W=j&65536;Y=(W|0)==0;K=V^32773;o=Y?V:K;G=L<<11;X=o<<1;Z=X^G;J=Z&65536;Q=(J|0)==0;ee=X^32773;f=Q?X:ee;re=L<<12;ie=f<<1;te=ie^re;ne=te&65536;ae=(ne|0)==0;oe=ie^32773;d=ae?ie:oe;se=L<<13;le=d<<1;fe=le^se;ce=fe&65536;he=(ce|0)==0;de=le^32773;E=he?le:de;ve=L<<14;me=E<<1;Ee=me^ve;we=Ee&65536;be=(we|0)==0;_e=me^32773;_=be?me:_e;pe=L<<15;Se=_<<1;ge=Se^pe;ye=ge&65536;Me=(ye|0)==0;Fe=Se^32773;S=Me?Se:Fe;Oe=L<<16;Ae=S<<1;Re=Ae^Oe;Te=Re&65536;Ne=(Te|0)==0;Pe=Ae^32773;M=Ne?Ae:Pe;Le=Oi+1|0;Ce=(Le|0)<(gi|0);if(Ce){Fi=M;Oi=Le}else{Mi=M;break}}Be=Mi>>>8;Ie=Be&255;He=r+4|0;t[He>>0]=Ie;xe=Mi&255;Ue=r+5|0;t[Ue>>0]=xe;return}function yr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0;ee=c;c=c+16|0;Q=ee;l=e+52132|0;f=a[l>>2]|0;k=e+52128|0;D=a[k>>2]|0;V=D+-1|0;j=(D|0)==0;r=j?255:V;W=(e+39840|0)+(r*48|0)|0;Y=a[W>>2]|0;K=e+292|0;G=a[K>>2]|0;u=Y-G|0;h=(u|0)>-1;if(h){d=1-f|0;v=r+d|0;m=(r|0)<(f|0);E=v+256|0;i=m?E:v;w=i<<3;b=e+24|0;_=a[b>>2]|0;p=ie(w,_)|0;S=u-p|0;J=S}else{J=u}g=e+16|0;y=e+84744|0;M=a[y>>2]|0;F=(M|0)==0;if(F){R=e+120|0;n=a[g>>2]|0;t=n;Z=R}else{O=a[g>>2]|0;A=(83944+(O<<6)|0)+(M<<2)|0;t=O;Z=A}X=a[Z>>2]|0;T=e+84752|0;N=a[T>>2]|0;o=e+64|0;s=a[o>>2]|0;P=t*72000|0;L=P+72000|0;C=ie(L,X)|0;B=(C|0)/(s|0)&-1;I=B+N|0;H=I<<3;x=H+J|0;U=(x|0)<0;if(U){xt(e,1072,Q);c=ee;return}else{Rr(e,x);z=e+52140|0;a[z>>2]=0;q=e+21312|0;a[q>>2]=0;c=ee;return}}function Mr(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0;K=c;f=(i|0)==0;if(f){return}u=r&255;S=e+300|0;P=e+296|0;H=e+284|0;x=e+292|0;s=i;while(1){o=8;while(1){q=a[S>>2]|0;V=(q|0)==0;if(V){a[S>>2]=8;h=a[P>>2]|0;d=h+1|0;a[P>>2]=d;v=a[H>>2]|0;m=v+d|0;t[m>>0]=0;l=a[S>>2]|0;w=l}else{w=q}E=(o|0)<(w|0);n=E?o:w;b=o-n|0;_=w-n|0;a[S>>2]=_;p=u>>>b;k=p<<_;g=a[P>>2]|0;y=a[H>>2]|0;M=y+g|0;F=t[M>>0]|0;O=F&255;A=k|O;R=A&255;t[M>>0]=R;T=a[x>>2]|0;N=T+n|0;a[x>>2]=N;D=(b|0)>0;if(D){o=b}else{W=0;break}}while(1){L=(e+39840|0)+(W*48|0)|0;C=a[L>>2]|0;B=C+8|0;a[L>>2]=B;I=W+1|0;j=(I|0)==256;if(j){break}else{W=I}}U=s+-1|0;z=(U|0)==0;if(z){break}else{s=U}}return}function Fr(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0;var zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0;var si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0,Fi=0;var Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0;var Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0;var dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0,Dt=0;var Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0;var en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,_n=0,kn=0;var Sn=0,gn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0;var Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0;var fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0;var Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0,Ga=0;var Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0,ho=0,vo=0,mo=0;var Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0,Do=0,Po=0,Lo=0,Co=0;var Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0,Qo=0,$o=0,es=0,rs=0;var is=0,ts=0,ns=0,as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0,Es=0,ws=0,bs=0,_s=0,ps=0,ks=0;var Ss=0,gs=0,ys=0,Ms=0,Fs=0,Os=0,As=0,Rs=0,Ts=0,Ns=0,Ds=0,Ps=0,Ls=0,Cs=0,Bs=0,Is=0,Hs=0,xs=0,Us=0,zs=0;var qs=0,Vs=0,js=0,Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0,Qs=0,$s=0,el=0,rl=0,il=0,tl=0,nl=0,al=0,ol=0,sl=0;var ll=0,fl=0,ul=0,cl=0,hl=0,dl=0,vl=0,ml=0,El=0,wl=0,bl=0,_l=0,pl=0,kl=0,Sl=0,gl=0,yl=0,Ml=0,Fl=0,Ol=0;var Al=0,Rl=0,Tl=0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0,Hl=0,xl=0,Ul=0,zl=0,ql=0,Vl=0,jl=0,Wl=0,Yl=0,Kl=0;var Gl=0,Xl=0,Zl=0,Jl=0,Ql=0,$l=0,ef=0,rf=0,tf=0,nf=0,af=0,of=0,sf=0,lf=0,ff=0,uf=0,cf=0,hf=0,df=0,vf=0;var mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0,Ff=0,Of=0,Af=0,Rf=0,Tf=0,Nf=0,Df=0,Pf=0,Lf=0;var Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0,Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0,Xf=0,Zf=0,Jf=0,Qf=0,$f=0,eu=0;var ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0,du=0,vu=0,mu=0,Eu=0,wu=0,bu=0,_u=0,pu=0;var ku=0,Su=0,gu=0,yu=0,Mu=0,Fu=0,Ou=0,Au=0,Ru=0,Tu=0,Nu=0,Du=0,Pu=0,Lu=0,Cu=0,Bu=0,Iu=0,Hu=0,xu=0,Uu=0;var zu=0,qu=0,Vu=0,ju=0,Wu=0,Yu=0,Ku=0,Gu=0,Xu=0,Zu=0,Ju=0,Qu=0,$u=0,ec=0,rc=0,ic=0,tc=0,nc=0,ac=0,oc=0;var sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0,mc=0,Ec=0,wc=0,bc=0,_c=0,pc=0,kc=0,Sc=0,gc=0,yc=0,Mc=0,Fc=0;var Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0,Ic=0,Hc=0,xc=0,Uc=0,zc=0,qc=0,Vc=0,jc=0,Wc=0,Yc=0;var Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0,eh=0,rh=0,ih=0,th=0,nh=0,ah=0,oh=0,sh=0,lh=0,fh=0,uh=0,ch=0,hh=0;var dh=0,vh=0,mh=0,Eh=0,wh=0,bh=0,_h=0,ph=0,kh=0,Sh=0,gh=0,yh=0,Mh=0,Fh=0,Oh=0,Ah=0,Rh=0,Th=0,Nh=0,Dh=0;var Ph=0,Lh=0,Ch=0,Bh=0,Ih=0,Hh=0,xh=0,Uh=0,zh=0,qh=0,Vh=0,jh=0,Wh=0,Yh=0,Kh=0,Gh=0,Xh=0,Zh=0,Jh=0,Qh=0;var $h=0,ed=0,rd=0,id=0,td=0,nd=0,ad=0,od=0,sd=0,ld=0,fd=0,ud=0,cd=0,hd=0,dd=0,vd=0,md=0,Ed=0,wd=0,bd=0;var _d=0,pd=0,kd=0,Sd=0,gd=0,yd=0,Md=0,Fd=0,Od=0,Ad=0,Rd=0,Td=0,Nd=0,Dd=0,Pd=0,Ld=0,Cd=0,Bd=0,Id=0,Hd=0;var xd=0,Ud=0,zd=0,qd=0,Vd=0,jd=0,Wd=0,Yd=0,Kd=0,Gd=0,Xd=0,Zd=0,Jd=0,Qd=0,$d=0,ev=0,rv=0,iv=0,tv=0,nv=0;var av=0,ov=0,sv=0,lv=0,fv=0,uv=0,cv=0,hv=0,dv=0,vv=0,mv=0,Ev=0,wv=0,bv=0,_v=0,pv=0,kv=0,Sv=0,gv=0,yv=0;var Mv=0,Fv=0,Ov=0,Av=0,Rv=0,Tv=0,Nv=0,Dv=0,Pv=0,Lv=0,Cv=0,Bv=0,Iv=0,Hv=0,xv=0,Uv=0,zv=0,qv=0,Vv=0,jv=0;var Wv=0,Yv=0,Kv=0,Gv=0,Xv=0,Zv=0,Jv=0,Qv=0,$v=0,em=0,rm=0,im=0,tm=0,nm=0,am=0,om=0,sm=0,lm=0,fm=0,um=0;var cm=0,hm=0,dm=0,vm=0,mm=0,Em=0,wm=0,bm=0,_m=0,pm=0,km=0,Sm=0,gm=0,ym=0,Mm=0,Fm=0,Om=0,Am=0,Rm=0,Tm=0;var Nm=0,Dm=0,Pm=0,Lm=0,Cm=0,Bm=0,Im=0,Hm=0,xm=0,Um=0,zm=0,qm=0,Vm=0,jm=0,Wm=0,Ym=0,Km=0,Gm=0,Xm=0,Zm=0;var Jm=0,Qm=0,$m=0,eE=0,rE=0,iE=0,tE=0,nE=0,aE=0,oE=0,sE=0,lE=0,fE=0,uE=0,cE=0,hE=0,dE=0,vE=0,mE=0,EE=0;var wE=0,bE=0,_E=0,pE=0,kE=0,SE=0,gE=0,yE=0,ME=0,FE=0,OE=0,AE=0,RE=0,TE=0,NE=0,DE=0,PE=0,LE=0,CE=0,BE=0;var IE=0,HE=0,xE=0,UE=0,zE=0,qE=0,VE=0,jE=0,WE=0,YE=0,KE=0,GE=0,XE=0,ZE=0,JE=0,QE=0,$E=0,ew=0,rw=0,iw=0;var tw=0,nw=0,aw=0,ow=0,sw=0,lw=0,fw=0,uw=0,cw=0,hw=0,dw=0,vw=0,mw=0,Ew=0,ww=0,bw=0,_w=0,pw=0,kw=0,Sw=0;var gw=0,yw=0,Mw=0,Fw=0,Ow=0,Aw=0,Rw=0,Tw=0,Nw=0,Dw=0,Pw=0,Lw=0,Cw=0,Bw=0,Iw=0,Hw=0,xw=0,Uw=0,zw=0,qw=0;var Vw=0,jw=0,Ww=0,Yw=0,Kw=0,Gw=0,Xw=0,Zw=0,Jw=0,Qw=0,$w=0,eb=0,rb=0,ib=0,tb=0,nb=0,ab=0,ob=0,sb=0,lb=0;var fb=0,ub=0,cb=0,hb=0,db=0,vb=0,mb=0,Eb=0,wb=0,bb=0,_b=0,pb=0,kb=0,Sb=0,gb=0,yb=0,Mb=0,Fb=0,Ob=0,Ab=0;var Rb=0,Tb=0,Nb=0,Db=0,Pb=0,Lb=0,Cb=0,Bb=0,Ib=0,Hb=0,xb=0,Ub=0,zb=0,qb=0,Vb=0,jb=0,Wb=0,Yb=0,Kb=0,Gb=0;var Xb=0,Zb=0,Jb=0,Qb=0,$b=0,e_=0,r_=0,i_=0,t_=0,n_=0,a_=0,o_=0,s_=0,l_=0,f_=0,u_=0,c_=0,h_=0,d_=0,v_=0;var m_=0,E_=0,w_=0,b_=0,__=0,p_=0,k_=0,S_=0,g_=0,y_=0,M_=0,F_=0,O_=0,A_=0,R_=0,T_=0,N_=0,D_=0,P_=0,L_=0;var C_=0,B_=0,I_=0,H_=0,x_=0,U_=0,z_=0,q_=0,V_=0,j_=0,W_=0,Y_=0,K_=0,G_=0,X_=0,Z_=0,J_=0,Q_=0,$_=0,ep=0;var rp=0,ip=0,tp=0,np=0,ap=0,op=0,sp=0,lp=0,fp=0,up=0,cp=0,hp=0,dp=0,vp=0,mp=0,Ep=0,wp=0,bp=0,_p=0,pp=0;var kp=0,Sp=0,gp=0,yp=0,Mp=0,Fp=0,Op=0,Ap=0,Rp=0,Tp=0,Np=0,Dp=0,Pp=0,Lp=0,Cp=0,Bp=0,Ip=0,Hp=0,xp=0,Up=0;var zp=0,qp=0,Vp=0,jp=0,Wp=0,Yp=0,Kp=0,Gp=0,Xp=0,Zp=0,Jp=0,Qp=0,$p=0,ek=0,rk=0,ik=0,tk=0,nk=0,ak=0,ok=0;var sk=0,lk=0,fk=0,uk=0,ck=0,hk=0,dk=0,vk=0,mk=0,Ek=0,wk=0,bk=0,_k=0,pk=0,kk=0,Sk=0,gk=0,yk=0,Mk=0,Fk=0;var Ok=0,Ak=0,Rk=0,Tk=0,Nk=0,Dk=0,Pk=0,Lk=0,Ck=0,Bk=0,Ik=0,Hk=0,xk=0,Uk=0,zk=0,qk=0,Vk=0,jk=0,Wk=0,Yk=0;var Kk=0,Gk=0,Xk=0,Zk=0,Jk=0,Qk=0,$k=0,eS=0,rS=0,iS=0,tS=0,nS=0,aS=0,oS=0,sS=0,lS=0,fS=0,uS=0,cS=0,hS=0;var dS=0,vS=0,mS=0,ES=0,wS=0,bS=0,_S=0,pS=0,kS=0,SS=0,gS=0,yS=0,MS=0,FS=0,OS=0,AS=0,RS=0,TS=0,NS=0,DS=0;var PS=0,LS=0,CS=0,BS=0,IS=0,HS=0,xS=0,US=0,zS=0,qS=0,VS=0,jS=0,WS=0,YS=0,KS=0,GS=0,XS=0,ZS=0,JS=0,QS=0;var $S=0,eg=0,rg=0,ig=0,tg=0,ng=0,ag=0,og=0,sg=0,lg=0,fg=0,ug=0,cg=0,hg=0,dg=0,vg=0,mg=0,Eg=0,wg=0,bg=0;var _g=0,pg=0,kg=0,Sg=0,gg=0,yg=0,Mg=0,Fg=0,Og=0,Ag=0,Rg=0,Tg=0,Ng=0,Dg=0,Pg=0,Lg=0,Cg=0,Bg=0,Ig=0,Hg=0;var xg=0,Ug=0,zg=0,qg=0,Vg=0,jg=0,Wg=0,Yg=0,Kg=0,Gg=0,Xg=0,Zg=0,Jg=0,Qg=0,$g=0,ey=0,ry=0,iy=0,ty=0,ny=0;var ay=0,oy=0,sy=0,ly=0,fy=0,uy=0,cy=0,hy=0,dy=0,vy=0,my=0,Ey=0,wy=0,by=0,_y=0,py=0,ky=0,Sy=0,gy=0,yy=0;var My=0,Fy=0,Oy=0,Ay=0,Ry=0,Ty=0,Ny=0,Dy=0,Py=0,Ly=0,Cy=0,By=0,Iy=0,Hy=0,xy=0,Uy=0,zy=0,qy=0,Vy=0,jy=0;var Wy=0,Yy=0,Ky=0,Gy=0,Xy=0,Zy=0,Jy=0,Qy=0,$y=0,eM=0,rM=0,iM=0,tM=0,nM=0,aM=0,oM=0,sM=0,lM=0,fM=0,uM=0;var cM=0,hM=0,dM=0,vM=0,mM=0,EM=0,wM=0,bM=0,_M=0,pM=0,kM=0,SM=0,gM=0,yM=0,MM=0,FM=0,OM=0,AM=0,RM=0,TM=0;var NM=0,DM=0,PM=0,LM=0,CM=0,BM=0,IM=0,HM=0,xM=0,UM=0,zM=0,qM=0,VM=0,jM=0,WM=0,YM=0,KM=0,GM=0,XM=0,ZM=0;var JM=0,QM=0,$M=0,eF=0,rF=0,iF=0,tF=0,nF=0,aF=0,oF=0,sF=0,lF=0,fF=0,uF=0,cF=0,hF=0,dF=0,vF=0,mF=0,EF=0;var wF=0,bF=0,_F=0,pF=0,kF=0,SF=0,gF=0,yF=0,MF=0,FF=0,OF=0,AF=0,RF=0,TF=0,NF=0,DF=0,PF=0,LF=0,CF=0,BF=0;var IF=0,HF=0,xF=0,UF=0,zF=0,qF=0,VF=0,jF=0,WF=0,YF=0,KF=0,GF=0,XF=0,ZF=0,JF=0,QF=0,$F=0,eO=0,rO=0,iO=0;var tO=0,nO=0,aO=0,oO=0,sO=0,lO=0,fO=0,uO=0,cO=0,hO=0,dO=0,vO=0,mO=0,EO=0,wO=0,bO=0,_O=0,pO=0,kO=0,SO=0;var gO=0,yO=0,MO=0,FO=0,OO=0,AO=0,RO=0,TO=0,NO=0,DO=0,PO=0,LO=0,CO=0,BO=0,IO=0,HO=0,xO=0,UO=0,zO=0,qO=0;var VO=0,jO=0,WO=0,YO=0,KO=0,GO=0,XO=0,ZO=0,JO=0,QO=0,$O=0,eA=0,rA=0,iA=0,tA=0,nA=0,aA=0,oA=0,sA=0,lA=0;var fA=0,uA=0,cA=0,hA=0,dA=0,vA=0,mA=0,EA=0,wA=0,bA=0,_A=0,pA=0,kA=0,SA=0,gA=0,yA=0,MA=0,FA=0,OA=0,AA=0;var RA=0,TA=0,NA=0,DA=0,PA=0,LA=0,CA=0,BA=0,IA=0,HA=0,xA=0,UA=0,zA=0,qA=0,VA=0,jA=0,WA=0,YA=0,KA=0,GA=0;var XA=0,ZA=0,JA=0,QA=0,$A=0,eR=0,rR=0,iR=0,tR=0,nR=0,aR=0,oR=0,sR=0,lR=0,fR=0,uR=0,cR=0,hR=0,dR=0,vR=0;var mR=0,ER=0,wR=0,bR=0,_R=0,pR=0,kR=0,SR=0,gR=0,yR=0,MR=0,FR=0,OR=0,AR=0,RR=0,TR=0,NR=0,DR=0,PR=0,LR=0;var CR=0,BR=0,IR=0,HR=0,xR=0,UR=0,zR=0,qR=0,VR=0,jR=0,WR=0,YR=0,KR=0,GR=0,XR=0,ZR=0,JR=0,QR=0,$R=0,eT=0;var rT=0,iT=0,tT=0,nT=0,aT=0,oT=0,sT=0,lT=0,fT=0,uT=0,cT=0,hT=0,dT=0,vT=0,mT=0,ET=0,wT=0,bT=0,_T=0,pT=0;var kT=0,ST=0,gT=0,yT=0,MT=0,FT=0,OT=0,AT=0,RT=0,TT=0,NT=0,DT=0,PT=0,LT=0,CT=0,BT=0,IT=0,HT=0,xT=0,UT=0;var zT=0,qT=0,VT=0,jT=0,WT=0,YT=0,KT=0,GT=0,XT=0,ZT=0,JT=0,QT=0,$T=0,eN=0,rN=0,iN=0,tN=0,nN=0,aN=0,oN=0;var sN=0,lN=0,fN=0,uN=0,cN=0,hN=0,dN=0,vN=0,mN=0,EN=0,wN=0,bN=0,_N=0,pN=0,kN=0,SN=0,gN=0,yN=0,MN=0,FN=0;var ON=0,AN=0,RN=0,TN=0,NN=0,DN=0,PN=0,LN=0,CN=0,BN=0,IN=0,HN=0,xN=0,UN=0,zN=0,qN=0,VN=0,jN=0,WN=0,YN=0;var KN=0,GN=0,XN=0,ZN=0,JN=0,QN=0,$N=0,eD=0,rD=0,iD=0,tD=0,nD=0,aD=0,oD=0,sD=0,lD=0,fD=0,uD=0,cD=0,hD=0;var dD=0,vD=0,mD=0,ED=0,wD=0,bD=0,_D=0,pD=0,kD=0,SD=0,gD=0,yD=0,MD=0,FD=0,OD=0,AD=0,RD=0,TD=0,ND=0,DD=0;var PD=0,LD=0,CD=0,BD=0,ID=0,HD=0,xD=0,UD=0,zD=0,qD=0,VD=0,jD=0,WD=0,YD=0,KD=0,GD=0,XD=0,ZD=0,JD=0,QD=0;var $D=0,eP=0,rP=0,iP=0,tP=0,nP=0,aP=0,oP=0,sP=0,lP=0,fP=0,uP=0,cP=0,hP=0,dP=0,vP=0,mP=0,EP=0,wP=0,bP=0;var _P=0,pP=0,kP=0,SP=0,gP=0,yP=0,MP=0,FP=0,OP=0,AP=0,RP=0,TP=0,NP=0,DP=0,PP=0,LP=0,CP=0,BP=0,IP=0,HP=0;var xP=0,UP=0,zP=0,qP=0,VP=0,jP=0,WP=0,YP=0,KP=0,GP=0,XP=0,ZP=0,JP=0,QP=0,$P=0,eL=0,rL=0,iL=0,tL=0,nL=0;var aL=0,oL=0,sL=0,lL=0,fL=0,uL=0,cL=0,hL=0,dL=0,vL=0,mL=0,EL=0,wL=0,bL=0,_L=0,pL=0,kL=0,SL=0,gL=0,yL=0;var ML=0,FL=0,OL=0,AL=0,RL=0,TL=0,NL=0,DL=0,PL=0,LL=0,CL=0,BL=0,IL=0,HL=0,xL=0,UL=0,zL=0,qL=0,VL=0,jL=0;var WL=0,YL=0,KL=0,GL=0,XL=0,ZL=0,JL=0,QL=0,$L=0,eC=0,rC=0,iC=0,tC=0,nC=0,aC=0,oC=0,sC=0,lC=0,fC=0,uC=0;var cC=0,hC=0,dC=0,vC=0,mC=0,EC=0,wC=0,bC=0,_C=0,pC=0,kC=0,SC=0,gC=0,yC=0,MC=0,FC=0,OC=0,AC=0,RC=0,TC=0;var NC=0,DC=0,PC=0,LC=0,CC=0,BC=0,IC=0,HC=0,xC=0,UC=0,zC=0,qC=0,VC=0,jC=0,WC=0,YC=0,KC=0,GC=0,XC=0,ZC=0;var JC=0,QC=0,$C=0,eB=0,rB=0,iB=0,tB=0,nB=0,aB=0,oB=0,sB=0,lB=0,fB=0,uB=0,cB=0,hB=0,dB=0,vB=0,mB=0,EB=0;var wB=0,bB=0,_B=0,pB=0,kB=0,SB=0,gB=0,yB=0,MB=0,FB=0,OB=0,AB=0,RB=0,TB=0,NB=0,DB=0,PB=0,LB=0,CB=0,BB=0;var IB=0,HB=0,xB=0,UB=0,zB=0,qB=0,VB=0,jB=0,WB=0,YB=0,KB=0,GB=0,XB=0,ZB=0,JB=0,QB=0,$B=0,eI=0,rI=0,iI=0;var tI=0,nI=0,aI=0,oI=0,sI=0,lI=0,fI=0,uI=0,cI=0,hI=0,dI=0,vI=0,mI=0,EI=0,wI=0,bI=0,_I=0,pI=0,kI=0,SI=0;var gI=0,yI=0,MI=0,FI=0,OI=0,AI=0,RI=0,TI=0,NI=0,DI=0,PI=0,LI=0,CI=0,BI=0,II=0,HI=0,xI=0,UI=0,zI=0,qI=0;var VI=0,jI=0,WI=0,YI=0,KI=0,GI=0,XI=0,ZI=0,JI=0,QI=0,$I=0,eH=0,rH=0,iH=0,tH=0,nH=0,aH=0,oH=0,sH=0,lH=0;var fH=0,uH=0,cH=0,hH=0,dH=0,vH=0,mH=0,EH=0,wH=0,bH=0,_H=0,pH=0,kH=0,SH=0,gH=0,yH=0,MH=0,FH=0,OH=0,AH=0;var RH=0,TH=0,NH=0,DH=0,PH=0,LH=0,CH=0,BH=0,IH=0,HH=0,xH=0,UH=0,zH=0,qH=0,VH=0,jH=0,WH=0,YH=0,KH=0,GH=0;var XH=0,ZH=0,JH=0,QH=0,$H=0,ex=0,rx=0,ix=0,tx=0,nx=0,ax=0,ox=0,sx=0,lx=0,fx=0,ux=0,cx=0,hx=0,dx=0,vx=0;var mx=0,Ex=0,wx=0,bx=0,_x=0,px=0,kx=0,Sx=0,gx=0,yx=0,Mx=0,Fx=0,Ox=0,Ax=0,Rx=0,Tx=0,Nx=0,Dx=0,Px=0,Lx=0;var Cx=0,Bx=0,Ix=0,Hx=0,xx=0,Ux=0,zx=0,qx=0,Vx=0,jx=0,Wx=0,Yx=0,Kx=0,Gx=0,Xx=0,Zx=0,Jx=0,Qx=0,$x=0,eU=0;var rU=0,iU=0,tU=0,nU=0,aU=0,oU=0,sU=0,lU=0,fU=0,uU=0,cU=0,hU=0,dU=0,vU=0,mU=0,EU=0,wU=0,bU=0,_U=0,pU=0;var kU=0,SU=0,gU=0,yU=0,MU=0,FU=0,OU=0,AU=0,RU=0,TU=0,NU=0,DU=0,PU=0,LU=0,CU=0,BU=0,IU=0,HU=0,xU=0,UU=0;var zU=0,qU=0,VU=0,jU=0,WU=0,YU=0,KU=0,GU=0,XU=0,ZU=0,JU=0,QU=0,$U=0,ez=0,rz=0,iz=0,tz=0,nz=0,az=0,oz=0;var sz=0,lz=0,fz=0,uz=0,cz=0,hz=0,dz=0,vz=0,mz=0,Ez=0,wz=0,bz=0,_z=0,pz=0,kz=0,Sz=0,gz=0,yz=0,Mz=0,Fz=0;var Oz=0,Az=0,Rz=0,Tz=0,Nz=0,Dz=0,Pz=0,Lz=0,Cz=0,Bz=0,Iz=0,Hz=0,xz=0,Uz=0,zz=0,qz=0,Vz=0,jz=0,Wz=0,Yz=0;var Kz=0,Gz=0,Xz=0,Zz=0,Jz=0,Qz=0,$z=0,eq=0,rq=0,iq=0,tq=0,nq=0,aq=0,oq=0,sq=0,lq=0,fq=0,uq=0,cq=0,hq=0;var dq=0,vq=0,mq=0,Eq=0,wq=0,bq=0,_q=0,pq=0,kq=0,Sq=0,gq=0,yq=0,Mq=0,Fq=0,Oq=0,Aq=0,Rq=0,Tq=0,Nq=0,Dq=0;var Pq=0,Lq=0,Cq=0,Bq=0,Iq=0,Hq=0,xq=0,Uq=0,zq=0,qq=0,Vq=0,jq=0,Wq=0,Yq=0,Kq=0,Gq=0,Xq=0,Zq=0,Jq=0,Qq=0;var $q=0,eV=0,rV=0,iV=0,tV=0,nV=0,aV=0,oV=0,sV=0;sV=c;c=c+96|0;Xq=sV+88|0;Gq=sV+80|0;Kq=sV+72|0;Yq=sV+64|0;Jq=sV+24|0;Zq=sV+16|0;Wq=sV+8|0;jq=sV;Co=e+16|0;Bo=e+84744|0;iy=a[Bo>>2]|0;aF=(iy|0)==0;if(aF){vD=e+120|0;ei=a[Co>>2]|0;Qr=ei;AU=vD}else{lA=a[Co>>2]|0;cT=(83944+(lA<<6)|0)+(iy<<2)|0;Qr=lA;AU=cT}FU=a[AU>>2]|0;wL=e+84752|0;pB=a[wL>>2]|0;ii=e+64|0;ti=a[ii>>2]|0;gH=Qr*72000|0;Io=gH+72000|0;Ul=ie(Io,FU)|0;ju=(Ul|0)/(ti|0)&-1;Kh=ju+pB|0;Zv=Kh<<3;$E=e+21320|0;i_=a[$E>>2]|0;Rr(e,i_);ak=e+52128|0;lg=a[ak>>2]|0;Wg=((e+39840|0)+(lg*48|0)|0)+4|0;a[Wg>>2]=0;ty=((e+39840|0)+(lg*48|0)|0)+8|0;vy=e+24|0;My=a[vy>>2]|0;pn(ty|0,0,My|0)|0;By=a[ii>>2]|0;Ky=(By|0)<16000;nM=a[ak>>2]|0;mM=((e+39840|0)+(nM*48|0)|0)+4|0;FM=a[mM>>2]|0;if(Ky){Le=12;RO=nM;nz=FM;while(1){IM=nz&7;GM=8-IM|0;oF=(Le|0)<(GM|0);f=oF?Le:GM;wF=Le-f|0;AF=4094>>>wF;xF=GM-f|0;ZF=AF<>3;bO=(((e+39840|0)+(RO*48|0)|0)+8|0)+sO|0;UO=t[bO>>0]|0;JO=UO&255;fA=ZF|JO;pA=fA&255;t[bO>>0]=pA;NA=f+nz|0;qA=(wF|0)>0;Pt=a[ak>>2]|0;if(qA){Le=wF;RO=Pt;nz=NA}else{Et=NA;Lt=Pt;break}}$A=((e+39840|0)+(Lt*48|0)|0)+4|0;a[$A>>2]=Et;GS=Et;XS=Lt}else{Ce=12;iN=nM;_z=FM;while(1){uR=_z&7;kR=8-uR|0;DR=(Ce|0)<(kR|0);U=DR?Ce:kR;VR=Ce-U|0;eT=4095>>>VR;hT=kR-U|0;gT=eT<>3;WT=(((e+39840|0)+(iN*48|0)|0)+8|0)+LT|0;dN=t[WT>>0]|0;yN=dN&255;CN=gT|yN;YN=CN&255;t[WT>>0]=YN;tD=U+_z|0;mD=(VR|0)>0;Pa=a[ak>>2]|0;if(mD){Ce=VR;iN=Pa;_z=tD}else{wt=tD;La=Pa;break}}FD=((e+39840|0)+(La*48|0)|0)+4|0;a[FD>>2]=wt;GS=wt;XS=La}ID=e+16|0;GD=a[ID>>2]|0;zr=1;JL=XS;lq=GS;while(1){aP=lq&7;EP=8-aP|0;OP=(zr|0)<(EP|0);pe=OP?zr:EP;HP=zr-pe|0;XP=GD>>HP;oL=EP-pe|0;bL=XP<>3;UL=(((e+39840|0)+(JL*48|0)|0)+8|0)+RL|0;lC=t[UL>>0]|0;_C=lC&255;TC=bL|_C;zC=TC&255;t[UL>>0]=zC;QC=pe+lq|0;fB=(HP|0)>0;Za=a[ak>>2]|0;if(fB){zr=HP;JL=Za;lq=QC}else{mt=QC;Ja=Za;break}}kB=((e+39840|0)+(Ja*48|0)|0)+4|0;a[kB>>2]=mt;Ur=2;yH=Ja;sq=mt;while(1){DB=sq&7;VB=8-DB|0;eI=(Ur|0)<(VB|0);_e=eI?Ur:VB;cI=Ur-_e|0;SI=1>>>cI;PI=VB-_e|0;jI=SI<>3;hH=(((e+39840|0)+(yH*48|0)|0)+8|0)+rH|0;CH=t[hH>>0]|0;YH=CH&255;tx=jI|YH;vx=tx&255;t[hH>>0]=vx;Mx=_e+sq|0;Bx=(cI|0)>0;Ga=a[ak>>2]|0;if(Bx){Ur=cI;yH=Ga;sq=Mx}else{vt=Mx;Xa=Ga;break}}Kx=((e+39840|0)+(Xa*48|0)|0)+4|0;a[Kx>>2]=vt;nU=e+160|0;mU=a[nU>>2]|0;Ho=(mU|0)==0;Xo=Ho&1;xr=1;Ql=Xa;oq=vt;while(1){os=oq&7;ws=8-os|0;As=(xr|0)<(ws|0);be=As?xr:ws;xs=xr-be|0;Zs=Xo>>>xs;sl=ws-be|0;bl=Zs<>3;zl=(((e+39840|0)+(Ql*48|0)|0)+8|0)+Rl|0;uf=t[zl>>0]|0;kf=uf&255;Df=bl|kf;Vf=Df&255;t[zl>>0]=Vf;eu=be+oq|0;cu=(xs|0)>0;Ya=a[ak>>2]|0;if(cu){xr=xs;Ql=Ya;oq=eu}else{dt=eu;Ka=Ya;break}}Su=((e+39840|0)+(Ka*48|0)|0)+4|0;a[Su>>2]=dt;Pu=a[Bo>>2]|0;Hr=4;Bh=Ka;aq=dt;while(1){Wu=aq&7;ic=8-Wu|0;dc=(Hr|0)<(ic|0);we=dc?Hr:ic;yc=Hr-we|0;Cc=Pu>>yc;Yc=ic-we|0;th=Cc<>3;Mh=(((e+39840|0)+(Bh*48|0)|0)+8|0)+vh|0;Gh=t[Mh>>0]|0;ad=Gh&255;Ed=th|ad;Od=Ed&255;t[Mh>>0]=Od;Hd=we+aq|0;Xd=(yc|0)>0;ja=a[ak>>2]|0;if(Xd){Hr=yc;Bh=ja;aq=Hd}else{ht=Hd;Wa=ja;break}}ov=((e+39840|0)+(Wa*48|0)|0)+4|0;a[ov>>2]=ht;wv=e+20|0;Av=a[wv>>2]|0;Ir=2;NE=Wa;nq=ht;while(1){xv=nq&7;Jv=8-xv|0;lm=(Ir|0)<(Jv|0);Ee=lm?Ir:Jv;_m=Ir-Ee|0;Tm=Av>>_m;zm=Jv-Ee|0;Qm=Tm<>3;pE=(((e+39840|0)+(NE*48|0)|0)+8|0)+fE|0;qE=t[pE>>0]|0;ew=qE&255;cw=Qm|ew;Sw=cw&255;t[pE>>0]=Sw;Pw=Ee+nq|0;jw=(_m|0)>0;Ua=a[ak>>2]|0;if(jw){Ir=_m;NE=Ua;nq=Pw}else{ct=Pw;za=Ua;break}}rb=((e+39840|0)+(za*48|0)|0)+4|0;a[rb>>2]=ct;hb=a[wL>>2]|0;Br=1;mp=za;tq=ct;while(1){gb=tq&7;Lb=8-gb|0;Wb=(Br|0)<(Lb|0);ve=Wb?Br:Lb;t_=Br-ve|0;v_=hb>>t_;M_=Lb-ve|0;B_=v_<>3;np=(((e+39840|0)+(mp*48|0)|0)+8|0)+K_|0;Fp=t[np>>0]|0;Ip=Fp&255;Gp=B_|Ip;ok=Gp&255;t[np>>0]=ok;wk=ve+tq|0;Ak=(t_|0)>0;Ha=a[ak>>2]|0;if(Ak){Br=t_;mp=Ha;tq=wk}else{ut=wk;xa=Ha;break}}xk=((e+39840|0)+(xa*48|0)|0)+4|0;a[xk>>2]=ut;Zk=e+172|0;sS=a[Zk>>2]|0;Cr=1;Ug=xa;rq=ut;while(1){bS=rq&7;RS=8-bS|0;US=(Cr|0)<(RS|0);de=US?Cr:RS;JS=Cr-de|0;fg=sS>>JS;pg=RS-de|0;Ng=fg<>3;xg=(((e+39840|0)+(Ug*48|0)|0)+8|0)+Hg|0;zg=t[xg>>0]|0;qg=zg&255;Vg=Ng|qg;jg=Vg&255;t[xg>>0]=jg;Yg=de+rq|0;Kg=(JS|0)>0;Ba=a[ak>>2]|0;if(Kg){Cr=JS;Ug=Ba;rq=Yg}else{ft=Yg;Ia=Ba;break}}Gg=((e+39840|0)+(Ia*48|0)|0)+4|0;a[Gg>>2]=ft;Xg=e+180|0;Zg=a[Xg>>2]|0;Pr=2;ly=Ia;eq=ft;while(1){Jg=eq&7;Qg=8-Jg|0;$g=(Pr|0)<(Qg|0);he=$g?Pr:Qg;ey=Pr-he|0;ry=Zg>>ey;ny=Qg-he|0;ay=ry<>3;sy=(((e+39840|0)+(ly*48|0)|0)+8|0)+oy|0;fy=t[sy>>0]|0;uy=fy&255;cy=ay|uy;hy=cy&255;t[sy>>0]=hy;dy=he+eq|0;my=(ey|0)>0;Na=a[ak>>2]|0;if(my){Pr=ey;ly=Na;eq=dy}else{lt=dy;Da=Na;break}}Ey=((e+39840|0)+(Da*48|0)|0)+4|0;a[Ey>>2]=lt;wy=e+84756|0;by=a[wy>>2]|0;Dr=2;Ry=Da;$z=lt;while(1){_y=$z&7;py=8-_y|0;ky=(Dr|0)<(py|0);ce=ky?Dr:py;Sy=Dr-ce|0;gy=by>>Sy;yy=py-ce|0;Fy=gy<>3;Ay=(((e+39840|0)+(Ry*48|0)|0)+8|0)+Oy|0;Ty=t[Ay>>0]|0;Ny=Ty&255;Dy=Fy|Ny;Py=Dy&255;t[Ay>>0]=Py;Ly=ce+$z|0;Cy=(Sy|0)>0;Ra=a[ak>>2]|0;if(Cy){Dr=Sy;Ry=Ra;$z=Ly}else{st=Ly;Ta=Ra;break}}Iy=((e+39840|0)+(Ta*48|0)|0)+4|0;a[Iy>>2]=st;Hy=e+164|0;xy=a[Hy>>2]|0;Ar=1;Zy=Ta;Qz=st;while(1){Uy=Qz&7;zy=8-Uy|0;qy=(Ar|0)<(zy|0);ue=qy?Ar:zy;Vy=Ar-ue|0;jy=xy>>Vy;Wy=zy-ue|0;Yy=jy<>3;Xy=(((e+39840|0)+(Zy*48|0)|0)+8|0)+Gy|0;Jy=t[Xy>>0]|0;Qy=Jy&255;$y=Yy|Qy;eM=$y&255;t[Xy>>0]=eM;rM=ue+Qz|0;iM=(Vy|0)>0;Oa=a[ak>>2]|0;if(iM){Ar=Vy;Zy=Oa;Qz=rM}else{ot=rM;Aa=Oa;break}}tM=((e+39840|0)+(Aa*48|0)|0)+4|0;a[tM>>2]=ot;aM=e+168|0;oM=a[aM>>2]|0;Or=1;wM=Aa;Jz=ot;while(1){sM=Jz&7;lM=8-sM|0;fM=(Or|0)<(lM|0);fe=fM?Or:lM;uM=Or-fe|0;cM=oM>>uM;hM=lM-fe|0;dM=cM<>3;EM=(((e+39840|0)+(wM*48|0)|0)+8|0)+vM|0;bM=t[EM>>0]|0;_M=bM&255;pM=dM|_M;kM=pM&255;t[EM>>0]=kM;SM=fe+Jz|0;gM=(uM|0)>0;Ma=a[ak>>2]|0;if(gM){Or=uM;wM=Ma;Jz=SM}else{at=SM;Fa=Ma;break}}yM=((e+39840|0)+(Fa*48|0)|0)+4|0;a[yM>>2]=at;MM=e+176|0;OM=a[MM>>2]|0;Fr=2;HM=Fa;Zz=at;while(1){AM=Zz&7;RM=8-AM|0;TM=(Fr|0)<(RM|0);le=TM?Fr:RM;NM=Fr-le|0;DM=OM>>NM;PM=RM-le|0;LM=DM<>3;BM=(((e+39840|0)+(HM*48|0)|0)+8|0)+CM|0;xM=t[BM>>0]|0;UM=xM&255;zM=LM|UM;qM=zM&255;t[BM>>0]=qM;VM=le+Zz|0;jM=(NM|0)>0;ga=a[ak>>2]|0;if(jM){Fr=NM;HM=ga;Zz=VM}else{nt=VM;ya=ga;break}}WM=((e+39840|0)+(ya*48|0)|0)+4|0;a[WM>>2]=nt;YM=a[nU>>2]|0;KM=(YM|0)==0;if(KM){ZS=nt}else{Mr=16;Xz=nt;while(1){XM=Xz&7;ZM=8-XM|0;JM=(Mr|0)<(ZM|0);se=JM?Mr:ZM;QM=Mr-se|0;$M=se+Xz|0;eF=(QM|0)>0;if(eF){Mr=QM;Xz=$M}else{tt=$M;break}}a[WM>>2]=tt;ZS=tt}rF=a[ID>>2]|0;iF=(rF|0)==1;tF=e+21312|0;nF=a[tF>>2]|0;do{if(iF){yr=9;EF=ya;Gz=ZS;while(1){sF=Gz&7;lF=8-sF|0;fF=(yr|0)<(lF|0);ae=fF?yr:lF;uF=yr-ae|0;cF=nF>>uF;hF=lF-ae|0;dF=cF<>3;mF=(((e+39840|0)+(EF*48|0)|0)+8|0)+vF|0;bF=t[mF>>0]|0;_F=bF&255;pF=dF|_F;kF=pF&255;t[mF>>0]=kF;SF=ae+Gz|0;gF=(uF|0)>0;_a=a[ak>>2]|0;if(gF){yr=uF;EF=_a;Gz=SF}else{Li=SF;pa=_a;break}}yF=((e+39840|0)+(pa*48|0)|0)+4|0;a[yF>>2]=Li;MF=e+72|0;FF=a[MF>>2]|0;OF=(FF|0)==2;RF=e+21316|0;TF=a[RF>>2]|0;if(OF){Sr=3;zF=pa;Yz=Li;while(1){NF=Yz&7;DF=8-NF|0;PF=(Sr|0)<(DF|0);ne=PF?Sr:DF;LF=Sr-ne|0;CF=TF>>LF;BF=DF-ne|0;IF=CF<>3;UF=(((e+39840|0)+(zF*48|0)|0)+8|0)+HF|0;qF=t[UF>>0]|0;VF=qF&255;jF=IF|VF;WF=jF&255;t[UF>>0]=WF;YF=ne+Yz|0;KF=(LF|0)>0;wa=a[ak>>2]|0;if(KF){Sr=LF;zF=wa;Yz=YF}else{Di=YF;ba=wa;break}}GF=((e+39840|0)+(ba*48|0)|0)+4|0;a[GF>>2]=Di;To=Di;QS=ba}else{pr=5;aO=pa;Wz=Li;while(1){XF=Wz&7;JF=8-XF|0;QF=(pr|0)<(JF|0);te=QF?pr:JF;$F=pr-te|0;eO=TF>>$F;rO=JF-te|0;iO=eO<>3;nO=(((e+39840|0)+(aO*48|0)|0)+8|0)+tO|0;oO=t[nO>>0]|0;lO=oO&255;fO=iO|lO;uO=fO&255;t[nO>>0]=uO;cO=te+Wz|0;hO=($F|0)>0;ma=a[ak>>2]|0;if(hO){pr=$F;aO=ma;Wz=cO}else{Pi=cO;Ea=ma;break}}dO=((e+39840|0)+(Ea*48|0)|0)+4|0;a[dO>>2]=Pi;To=Pi;QS=Ea}vO=a[MF>>2]|0;mO=(vO|0)>0;if(mO){$S=To;eg=QS;NU=0;while(1){EO=(e+21328|0)+(NU<<4)|0;wO=a[EO>>2]|0;_r=1;AO=eg;jz=$S;while(1){_O=jz&7;pO=8-_O|0;kO=(_r|0)<(pO|0);re=kO?_r:pO;SO=_r-re|0;gO=wO>>SO;yO=pO-re|0;MO=gO<>3;OO=(((e+39840|0)+(AO*48|0)|0)+8|0)+FO|0;TO=t[OO>>0]|0;NO=TO&255;DO=MO|NO;PO=DO&255;t[OO>>0]=PO;LO=re+jz|0;CO=(SO|0)>0;da=a[ak>>2]|0;if(CO){_r=SO;AO=da;jz=LO}else{Ai=LO;va=da;break}}BO=((e+39840|0)+(va*48|0)|0)+4|0;a[BO>>2]=Ai;IO=((e+21328|0)+(NU<<4)|0)+4|0;HO=a[IO>>2]|0;Er=1;Rc=va;zz=Ai;while(1){_c=zz&7;pc=8-_c|0;kc=(Er|0)<(pc|0);Q=kc?Er:pc;Sc=Er-Q|0;gc=HO>>Sc;Mc=pc-Q|0;Fc=gc<>3;Ac=(((e+39840|0)+(Rc*48|0)|0)+8|0)+Oc|0;Tc=t[Ac>>0]|0;Nc=Tc&255;Dc=Fc|Nc;Pc=Dc&255;t[Ac>>0]=Pc;Lc=Q+zz|0;Bc=(Sc|0)>0;sa=a[ak>>2]|0;if(Bc){Er=Sc;Rc=sa;zz=Lc}else{Ri=Lc;la=sa;break}}Ic=((e+39840|0)+(la*48|0)|0)+4|0;a[Ic>>2]=Ri;Hc=((e+21328|0)+(NU<<4)|0)+8|0;xc=a[Hc>>2]|0;wr=1;Zc=la;qz=Ri;while(1){Uc=qz&7;zc=8-Uc|0;qc=(wr|0)<(zc|0);$=qc?wr:zc;Vc=wr-$|0;jc=xc>>Vc;Wc=zc-$|0;Kc=jc<>3;Xc=(((e+39840|0)+(Zc*48|0)|0)+8|0)+Gc|0;Jc=t[Xc>>0]|0;Qc=Jc&255;$c=Kc|Qc;eh=$c&255;t[Xc>>0]=eh;rh=$+qz|0;ih=(Vc|0)>0;fa=a[ak>>2]|0;if(ih){wr=Vc;Zc=fa;qz=rh}else{Ti=rh;ua=fa;break}}nh=((e+39840|0)+(ua*48|0)|0)+4|0;a[nh>>2]=Ti;ah=((e+21328|0)+(NU<<4)|0)+12|0;oh=a[ah>>2]|0;br=1;wh=ua;Vz=Ti;while(1){sh=Vz&7;lh=8-sh|0;fh=(br|0)<(lh|0);ee=fh?br:lh;uh=br-ee|0;ch=oh>>uh;hh=lh-ee|0;dh=ch<>3;Eh=(((e+39840|0)+(wh*48|0)|0)+8|0)+mh|0;bh=t[Eh>>0]|0;_h=bh&255;ph=dh|_h;kh=ph&255;t[Eh>>0]=kh;Sh=ee+Vz|0;gh=(uh|0)>0;ca=a[ak>>2]|0;if(gh){br=uh;wh=ca;Vz=Sh}else{Ni=Sh;ha=ca;break}}yh=((e+39840|0)+(ha*48|0)|0)+4|0;a[yh>>2]=Ni;Fh=NU+1|0;Oh=a[MF>>2]|0;Ah=(Fh|0)<(Oh|0);if(Ah){$S=Ni;eg=ha;NU=Fh}else{xO=Oh;qO=ha;ez=0;break}}}else{xO=vO;qO=QS;ez=0}while(1){zO=(xO|0)>0;if(zO){At=((e+39840|0)+(qO*48|0)|0)+4|0;No=a[At>>2]|0;tg=No;ng=qO;DU=0;while(1){VO=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4768|0;jO=a[VO>>2]|0;WO=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4844|0;YO=a[WO>>2]|0;KO=YO+jO|0;mr=12;nA=ng;Uz=tg;while(1){GO=Uz&7;XO=8-GO|0;ZO=(mr|0)<(XO|0);J=ZO?mr:XO;QO=mr-J|0;$O=KO>>QO;eA=XO-J|0;rA=$O<>3;tA=(((e+39840|0)+(nA*48|0)|0)+8|0)+iA|0;aA=t[tA>>0]|0;oA=aA&255;sA=rA|oA;uA=sA&255;t[tA>>0]=uA;cA=J+Uz|0;hA=(QO|0)>0;aa=a[ak>>2]|0;if(hA){mr=QO;nA=aa;Uz=cA}else{si=cA;oa=aa;break}}dA=((e+39840|0)+(oa*48|0)|0)+4|0;a[dA>>2]=si;vA=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4772|0;mA=a[vA>>2]|0;EA=(mA|0)/2&-1;vr=9;OA=oa;xz=si;while(1){wA=xz&7;bA=8-wA|0;_A=(vr|0)<(bA|0);Z=_A?vr:bA;kA=vr-Z|0;SA=EA>>kA;gA=bA-Z|0;yA=SA<>3;FA=(((e+39840|0)+(OA*48|0)|0)+8|0)+MA|0;AA=t[FA>>0]|0;RA=AA&255;TA=yA|RA;DA=TA&255;t[FA>>0]=DA;PA=Z+xz|0;LA=(kA|0)>0;ta=a[ak>>2]|0;if(LA){vr=kA;OA=ta;xz=PA}else{li=PA;na=ta;break}}CA=((e+39840|0)+(na*48|0)|0)+4|0;a[CA>>2]=li;BA=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4780|0;IA=a[BA>>2]|0;dr=8;GA=na;Hz=li;while(1){HA=Hz&7;xA=8-HA|0;UA=(dr|0)<(xA|0);X=UA?dr:xA;zA=dr-X|0;VA=IA>>zA;jA=xA-X|0;WA=VA<>3;KA=(((e+39840|0)+(GA*48|0)|0)+8|0)+YA|0;XA=t[KA>>0]|0;ZA=XA&255;JA=WA|ZA;QA=JA&255;t[KA>>0]=QA;eR=X+Hz|0;rR=(zA|0)>0;ra=a[ak>>2]|0;if(rR){dr=zA;GA=ra;Hz=eR}else{fi=eR;ia=ra;break}}iR=((e+39840|0)+(ia*48|0)|0)+4|0;a[iR>>2]=fi;tR=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4784|0;nR=a[tR>>2]|0;hr=4;mR=ia;Iz=fi;while(1){aR=Iz&7;oR=8-aR|0;sR=(hr|0)<(oR|0);G=sR?hr:oR;lR=hr-G|0;fR=nR>>lR;cR=oR-G|0;hR=fR<>3;vR=(((e+39840|0)+(mR*48|0)|0)+8|0)+dR|0;ER=t[vR>>0]|0;wR=ER&255;bR=hR|wR;_R=bR&255;t[vR>>0]=_R;pR=G+Iz|0;SR=(lR|0)>0;Jn=a[ak>>2]|0;if(SR){hr=lR;mR=Jn;Iz=pR}else{ui=pR;Qn=Jn;break}}gR=((e+39840|0)+(Qn*48|0)|0)+4|0;a[gR>>2]=ui;yR=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4788|0;MR=a[yR>>2]|0;FR=(MR|0)==0;if(FR){ir=1;Oz=ui;while(1){CD=Oz&7;BD=8-CD|0;HD=(ir|0)<(BD|0);C=HD?ir:BD;xD=ir-C|0;UD=C+Oz|0;zD=(xD|0)>0;if(zD){ir=xD;Oz=UD}else{_i=UD;break}}a[gR>>2]=_i;qD=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4796|0;VD=a[qD>>2]|0;jD=(VD|0)==14;if(jD){a[qD>>2]=16;go=a[ak>>2]|0;Mt=((e+39840|0)+(go*48|0)|0)+4|0;yo=a[Mt>>2]|0;dg=yo;vg=go;JD=16}else{dg=_i;vg=Qn;JD=VD}rr=5;iP=vg;Mz=dg;while(1){WD=Mz&7;YD=8-WD|0;KD=(rr|0)<(YD|0);L=KD?rr:YD;XD=rr-L|0;ZD=JD>>XD;QD=YD-L|0;$D=ZD<>3;rP=(((e+39840|0)+(iP*48|0)|0)+8|0)+eP|0;tP=t[rP>>0]|0;nP=tP&255;oP=$D|nP;sP=oP&255;t[rP>>0]=sP;lP=L+Mz|0;fP=(XD|0)>0;Tn=a[ak>>2]|0;if(fP){rr=XD;iP=Tn;Mz=lP}else{pi=lP;Nn=Tn;break}}uP=((e+39840|0)+(Nn*48|0)|0)+4|0;a[uP>>2]=pi;cP=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4800|0;hP=a[cP>>2]|0;dP=(hP|0)==14;if(dP){a[cP>>2]=16;Mo=a[ak>>2]|0;Ft=((e+39840|0)+(Mo*48|0)|0)+4|0;Fo=a[Ft>>2]|0;mg=Fo;Eg=Mo;pP=16}else{mg=pi;Eg=Nn;pP=hP}$e=5;MP=Eg;yz=mg;while(1){vP=yz&7;mP=8-vP|0;wP=($e|0)<(mP|0);P=wP?$e:mP;bP=$e-P|0;_P=pP>>bP;kP=mP-P|0;SP=_P<>3;yP=(((e+39840|0)+(MP*48|0)|0)+8|0)+gP|0;FP=t[yP>>0]|0;AP=FP&255;RP=SP|AP;TP=RP&255;t[yP>>0]=TP;NP=P+yz|0;DP=(bP|0)>0;An=a[ak>>2]|0;if(DP){$e=bP;MP=An;yz=NP}else{ki=NP;Rn=An;break}}PP=((e+39840|0)+(Rn*48|0)|0)+4|0;a[PP>>2]=ki;LP=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4804|0;CP=a[LP>>2]|0;BP=(CP|0)==14;if(BP){a[LP>>2]=16;Oo=a[ak>>2]|0;Ot=((e+39840|0)+(Oo*48|0)|0)+4|0;Ao=a[Ot>>2]|0;wg=Ao;bg=Oo;VP=16}else{wg=ki;bg=Rn;VP=CP}Qe=5;GP=bg;gz=wg;while(1){IP=gz&7;xP=8-IP|0;UP=(Qe|0)<(xP|0);N=UP?Qe:xP;zP=Qe-N|0;qP=VP>>zP;jP=xP-N|0;WP=qP<>3;KP=(((e+39840|0)+(GP*48|0)|0)+8|0)+YP|0;ZP=t[KP>>0]|0;JP=ZP&255;QP=WP|JP;$P=QP&255;t[KP>>0]=$P;eL=N+gz|0;rL=(zP|0)>0;Fn=a[ak>>2]|0;if(rL){Qe=zP;GP=Fn;gz=eL}else{Si=eL;On=Fn;break}}iL=((e+39840|0)+(On*48|0)|0)+4|0;a[iL>>2]=Si;tL=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4824|0;nL=a[tL>>2]|0;Je=4;mL=On;Sz=Si;while(1){aL=Sz&7;sL=8-aL|0;lL=(Je|0)<(sL|0);T=lL?Je:sL;fL=Je-T|0;uL=nL>>fL;cL=sL-T|0;hL=uL<>3;vL=(((e+39840|0)+(mL*48|0)|0)+8|0)+dL|0;EL=t[vL>>0]|0;_L=EL&255;pL=hL|_L;kL=pL&255;t[vL>>0]=kL;SL=T+Sz|0;gL=(fL|0)>0;gn=a[ak>>2]|0;if(gL){Je=fL;mL=gn;Sz=SL}else{gi=SL;Mn=gn;break}}yL=((e+39840|0)+(Mn*48|0)|0)+4|0;a[yL>>2]=gi;ML=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4828|0;FL=a[ML>>2]|0;Ze=3;IL=Mn;kz=gi;while(1){OL=kz&7;AL=8-OL|0;TL=(Ze|0)<(AL|0);R=TL?Ze:AL;NL=Ze-R|0;DL=FL>>NL;PL=AL-R|0;LL=DL<>3;BL=(((e+39840|0)+(IL*48|0)|0)+8|0)+CL|0;HL=t[BL>>0]|0;xL=HL&255;zL=LL|xL;qL=zL&255;t[BL>>0]=qL;VL=R+kz|0;jL=(NL|0)>0;_n=a[ak>>2]|0;if(jL){Ze=NL;IL=_n;kz=VL}else{yi=VL;kn=_n;break}}WL=((e+39840|0)+(kn*48|0)|0)+4|0;a[WL>>2]=yi;cg=yi;hg=kn}else{cr=1;IR=Qn;Bz=ui;while(1){OR=Bz&7;AR=8-OR|0;RR=(cr|0)<(AR|0);Y=RR?cr:AR;TR=cr-Y|0;NR=1>>>TR;PR=AR-Y|0;LR=NR<>3;BR=(((e+39840|0)+(IR*48|0)|0)+8|0)+CR|0;HR=t[BR>>0]|0;xR=HR&255;UR=LR|xR;zR=UR&255;t[BR>>0]=zR;qR=Y+Bz|0;jR=(TR|0)>0;Xn=a[ak>>2]|0;if(jR){cr=TR;IR=Xn;Bz=qR}else{ci=qR;Zn=Xn;break}}WR=((e+39840|0)+(Zn*48|0)|0)+4|0;a[WR>>2]=ci;YR=a[yR>>2]|0;ur=2;tT=Zn;Lz=ci;while(1){KR=Lz&7;GR=8-KR|0;XR=(ur|0)<(GR|0);W=XR?ur:GR;ZR=ur-W|0;JR=YR>>ZR;QR=GR-W|0;$R=JR<>3;iT=(((e+39840|0)+(tT*48|0)|0)+8|0)+rT|0;nT=t[iT>>0]|0;aT=nT&255;oT=$R|aT;sT=oT&255;t[iT>>0]=sT;lT=W+Lz|0;fT=(ZR|0)>0;Kn=a[ak>>2]|0;if(fT){ur=ZR;tT=Kn;Lz=lT}else{hi=lT;Gn=Kn;break}}uT=((e+39840|0)+(Gn*48|0)|0)+4|0;a[uT>>2]=hi;dT=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4792|0;vT=a[dT>>2]|0;lr=1;MT=Gn;Pz=hi;while(1){mT=Pz&7;ET=8-mT|0;wT=(lr|0)<(ET|0);j=wT?lr:ET;bT=lr-j|0;_T=vT>>bT;pT=ET-j|0;kT=_T<>3;yT=(((e+39840|0)+(MT*48|0)|0)+8|0)+ST|0;FT=t[yT>>0]|0;OT=FT&255;AT=kT|OT;RT=AT&255;t[yT>>0]=RT;TT=j+Pz|0;NT=(bT|0)>0;Wn=a[ak>>2]|0;if(NT){lr=bT;MT=Wn;Pz=TT}else{di=TT;Yn=Wn;break}}DT=((e+39840|0)+(Yn*48|0)|0)+4|0;a[DT>>2]=di;PT=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4796|0;CT=a[PT>>2]|0;BT=(CT|0)==14;if(BT){a[PT>>2]=16;_o=a[ak>>2]|0;gt=((e+39840|0)+(_o*48|0)|0)+4|0;po=a[gt>>2]|0;ag=po;og=_o;qT=16}else{ag=di;og=Yn;qT=CT}sr=5;GT=og;Dz=ag;while(1){IT=Dz&7;HT=8-IT|0;xT=(sr|0)<(HT|0);V=xT?sr:HT;UT=sr-V|0;zT=qT>>UT;VT=HT-V|0;jT=zT<>3;KT=(((e+39840|0)+(GT*48|0)|0)+8|0)+YT|0;XT=t[KT>>0]|0;ZT=XT&255;JT=jT|ZT;QT=JT&255;t[KT>>0]=QT;$T=V+Dz|0;eN=(UT|0)>0;Vn=a[ak>>2]|0;if(eN){sr=UT;GT=Vn;Dz=$T}else{vi=$T;jn=Vn;break}}rN=((e+39840|0)+(jn*48|0)|0)+4|0;a[rN>>2]=vi;tN=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4800|0;nN=a[tN>>2]|0;aN=(nN|0)==14;if(aN){a[tN>>2]=16;ko=a[ak>>2]|0;yt=((e+39840|0)+(ko*48|0)|0)+4|0;So=a[yt>>2]|0;sg=So;ug=ko;cN=16}else{sg=vi;ug=jn;cN=nN}or=5;wN=ug;Nz=sg;while(1){oN=Nz&7;sN=8-oN|0;lN=(or|0)<(sN|0);q=lN?or:sN;fN=or-q|0;uN=cN>>fN;hN=sN-q|0;vN=uN<>3;EN=(((e+39840|0)+(wN*48|0)|0)+8|0)+mN|0;bN=t[EN>>0]|0;_N=bN&255;pN=vN|_N;kN=pN&255;t[EN>>0]=kN;SN=q+Nz|0;gN=(fN|0)>0;zn=a[ak>>2]|0;if(gN){or=fN;wN=zn;Nz=SN}else{mi=SN;qn=zn;break}}MN=((e+39840|0)+(qn*48|0)|0)+4|0;a[MN>>2]=mi;FN=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4808|0;ON=a[FN>>2]|0;ar=3;HN=qn;Tz=mi;while(1){AN=Tz&7;RN=8-AN|0;TN=(ar|0)<(RN|0);x=TN?ar:RN;NN=ar-x|0;DN=ON>>NN;PN=RN-x|0;LN=DN<>3;IN=(((e+39840|0)+(HN*48|0)|0)+8|0)+BN|0;xN=t[IN>>0]|0;UN=xN&255;zN=LN|UN;qN=zN&255;t[IN>>0]=qN;VN=x+Tz|0;jN=(NN|0)>0;xn=a[ak>>2]|0;if(jN){ar=NN;HN=xn;Tz=VN}else{Ei=VN;Un=xn;break}}WN=((e+39840|0)+(Un*48|0)|0)+4|0;a[WN>>2]=Ei;KN=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4812|0;GN=a[KN>>2]|0;nr=3;aD=Un;Rz=Ei;while(1){XN=Rz&7;ZN=8-XN|0;JN=(nr|0)<(ZN|0);H=JN?nr:ZN;QN=nr-H|0;$N=GN>>QN;eD=ZN-H|0;rD=$N<>3;nD=(((e+39840|0)+(aD*48|0)|0)+8|0)+iD|0;oD=t[nD>>0]|0;sD=oD&255;lD=rD|sD;fD=lD&255;t[nD>>0]=fD;uD=H+Rz|0;cD=(QN|0)>0;In=a[ak>>2]|0;if(cD){nr=QN;aD=In;Rz=uD}else{wi=uD;Hn=In;break}}hD=((e+39840|0)+(Hn*48|0)|0)+4|0;a[hD>>2]=wi;dD=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4816|0;ED=a[dD>>2]|0;tr=3;OD=Hn;Az=wi;while(1){wD=Az&7;bD=8-wD|0;_D=(tr|0)<(bD|0);I=_D?tr:bD;pD=tr-I|0;kD=ED>>pD;SD=bD-I|0;gD=kD<>3;MD=(((e+39840|0)+(OD*48|0)|0)+8|0)+yD|0;AD=t[MD>>0]|0;RD=AD&255;TD=gD|RD;ND=TD&255;t[MD>>0]=ND;DD=I+Az|0;PD=(pD|0)>0;Dn=a[ak>>2]|0;if(PD){tr=pD;OD=Dn;Az=DD}else{bi=DD;Pn=Dn;break}}LD=((e+39840|0)+(Pn*48|0)|0)+4|0;a[LD>>2]=bi;cg=bi;hg=Pn}YL=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4832|0;KL=a[YL>>2]|0;Xe=1;nC=hg;pz=cg;while(1){GL=pz&7;XL=8-GL|0;ZL=(Xe|0)<(XL|0);A=ZL?Xe:XL;QL=Xe-A|0;$L=KL>>QL;eC=XL-A|0;rC=$L<>3;tC=(((e+39840|0)+(nC*48|0)|0)+8|0)+iC|0;aC=t[tC>>0]|0;oC=aC&255;sC=rC|oC;fC=sC&255;t[tC>>0]=fC;uC=A+pz|0;cC=(QL|0)>0;wn=a[ak>>2]|0;if(cC){Xe=QL;nC=wn;pz=uC}else{Mi=uC;bn=wn;break}}hC=((e+39840|0)+(bn*48|0)|0)+4|0;a[hC>>2]=Mi;dC=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4836|0;vC=a[dC>>2]|0;Ge=1;MC=bn;bz=Mi;while(1){mC=bz&7;EC=8-mC|0;wC=(Ge|0)<(EC|0);O=wC?Ge:EC;bC=Ge-O|0;pC=vC>>bC;kC=EC-O|0;SC=pC<>3;yC=(((e+39840|0)+(MC*48|0)|0)+8|0)+gC|0;FC=t[yC>>0]|0;OC=FC&255;AC=SC|OC;RC=AC&255;t[yC>>0]=RC;NC=O+bz|0;DC=(bC|0)>0;dn=a[ak>>2]|0;if(DC){Ge=bC;MC=dn;bz=NC}else{Fi=NC;vn=dn;break}}PC=((e+39840|0)+(vn*48|0)|0)+4|0;a[PC>>2]=Fi;LC=(((e+304|0)+(ez*10504|0)|0)+(DU*5252|0)|0)+4840|0;CC=a[LC>>2]|0;Ke=1;YC=vn;wz=Fi;while(1){BC=wz&7;IC=8-BC|0;HC=(Ke|0)<(IC|0);y=HC?Ke:IC;xC=Ke-y|0;UC=CC>>xC;qC=IC-y|0;VC=UC<>3;WC=(((e+39840|0)+(YC*48|0)|0)+8|0)+jC|0;KC=t[WC>>0]|0;GC=KC&255;XC=VC|GC;ZC=XC&255;t[WC>>0]=ZC;JC=y+wz|0;$C=(xC|0)>0;cn=a[ak>>2]|0;if($C){Ke=xC;YC=cn;wz=JC}else{Oi=JC;hn=cn;break}}eB=((e+39840|0)+(hn*48|0)|0)+4|0;a[eB>>2]=Oi;rB=DU+1|0;iB=a[MF>>2]|0;tB=(rB|0)<(iB|0);if(tB){tg=Oi;ng=hn;DU=rB}else{rg=hn;ig=iB;break}}}else{rg=qO;ig=xO}nB=ez+1|0;YU=(nB|0)==2;if(YU){oc=rg;break}else{xO=ig;qO=rg;ez=nB}}}else{Ye=8;mB=ya;mz=ZS;while(1){aB=mz&7;oB=8-aB|0;sB=(Ye|0)<(oB|0);g=sB?Ye:oB;lB=Ye-g|0;uB=nF>>lB;cB=oB-g|0;hB=uB<>3;vB=(((e+39840|0)+(mB*48|0)|0)+8|0)+dB|0;EB=t[vB>>0]|0;wB=EB&255;bB=hB|wB;_B=bB&255;t[vB>>0]=_B;SB=g+mz|0;gB=(lB|0)>0;fn=a[ak>>2]|0;if(gB){Ye=lB;mB=fn;mz=SB}else{it=SB;un=fn;break}}yB=((e+39840|0)+(un*48|0)|0)+4|0;a[yB>>2]=it;MB=e+21316|0;FB=a[MB>>2]|0;OB=e+72|0;AB=a[OB>>2]|0;RB=(AB|0)>0;if(RB){je=AB;UB=un;vz=it}else{a[yB>>2]=it;oc=un;break}while(1){TB=vz&7;NB=8-TB|0;PB=(je|0)<(NB|0);S=PB?je:NB;LB=je-S|0;CB=FB>>LB;BB=NB-S|0;IB=CB<>3;xB=(((e+39840|0)+(UB*48|0)|0)+8|0)+HB|0;zB=t[xB>>0]|0;qB=zB&255;jB=IB|qB;WB=jB&255;t[xB>>0]=WB;YB=S+vz|0;KB=(LB|0)>0;on=a[ak>>2]|0;if(KB){je=LB;UB=on;vz=YB}else{rt=YB;sn=on;break}}Dt=a[OB>>2]|0;GB=((e+39840|0)+(sn*48|0)|0)+4|0;a[GB>>2]=rt;XB=(Dt|0)>0;if(XB){_g=rt;kg=sn;LU=0;while(1){ZB=((e+304|0)+(LU*5252|0)|0)+4768|0;JB=a[ZB>>2]|0;QB=((e+304|0)+(LU*5252|0)|0)+4844|0;$B=a[QB>>2]|0;rI=$B+JB|0;Ve=12;hI=kg;dz=_g;while(1){iI=dz&7;tI=8-iI|0;nI=(Ve|0)<(tI|0);k=nI?Ve:tI;aI=Ve-k|0;oI=rI>>aI;sI=tI-k|0;lI=oI<>3;uI=(((e+39840|0)+(hI*48|0)|0)+8|0)+fI|0;dI=t[uI>>0]|0;vI=dI&255;mI=lI|vI;EI=mI&255;t[uI>>0]=EI;wI=k+dz|0;bI=(aI|0)>0;nn=a[ak>>2]|0;if(bI){Ve=aI;hI=nn;dz=wI}else{Ci=wI;an=nn;break}}_I=((e+39840|0)+(an*48|0)|0)+4|0;a[_I>>2]=Ci;pI=((e+304|0)+(LU*5252|0)|0)+4772|0;kI=a[pI>>2]|0;gI=(kI|0)/2&-1;qe=9;LI=an;hz=Ci;while(1){yI=hz&7;MI=8-yI|0;FI=(qe|0)<(MI|0);p=FI?qe:MI;OI=qe-p|0;AI=gI>>OI;RI=MI-p|0;TI=AI<>3;DI=(((e+39840|0)+(LI*48|0)|0)+8|0)+NI|0;CI=t[DI>>0]|0;BI=CI&255;II=TI|BI;HI=II&255;t[DI>>0]=HI;xI=p+hz|0;UI=(OI|0)>0;rn=a[ak>>2]|0;if(UI){qe=OI;LI=rn;hz=xI}else{Bi=xI;tn=rn;break}}zI=((e+39840|0)+(tn*48|0)|0)+4|0;a[zI>>2]=Bi;qI=((e+304|0)+(LU*5252|0)|0)+4780|0;VI=a[qI>>2]|0;ze=8;eH=tn;cz=Bi;while(1){WI=cz&7;YI=8-WI|0;KI=(ze|0)<(YI|0);_=KI?ze:YI;GI=ze-_|0;XI=VI>>GI;ZI=YI-_|0;JI=XI<>3;$I=(((e+39840|0)+(eH*48|0)|0)+8|0)+QI|0;iH=t[$I>>0]|0;tH=iH&255;nH=JI|tH;aH=nH&255;t[$I>>0]=aH;oH=_+cz|0;sH=(GI|0)>0;$t=a[ak>>2]|0;if(sH){ze=GI;eH=$t;cz=oH}else{Ii=oH;en=$t;break}}lH=((e+39840|0)+(en*48|0)|0)+4|0;a[lH>>2]=Ii;fH=((e+304|0)+(LU*5252|0)|0)+4784|0;uH=a[fH>>2]|0;Ue=9;kH=en;uz=Ii;while(1){cH=uz&7;dH=8-cH|0;vH=(Ue|0)<(dH|0);w=vH?Ue:dH;mH=Ue-w|0;EH=uH>>mH;wH=dH-w|0;bH=EH<>3;pH=(((e+39840|0)+(kH*48|0)|0)+8|0)+_H|0;SH=t[pH>>0]|0;MH=SH&255;FH=bH|MH;OH=FH&255;t[pH>>0]=OH;AH=w+uz|0;RH=(mH|0)>0;Jt=a[ak>>2]|0;if(RH){Ue=mH;kH=Jt;uz=AH}else{Hi=AH;Qt=Jt;break}}TH=((e+39840|0)+(Qt*48|0)|0)+4|0;a[TH>>2]=Hi;NH=((e+304|0)+(LU*5252|0)|0)+4788|0;DH=a[NH>>2]|0;PH=(DH|0)==0;if(PH){Vr=1;uq=Hi;while(1){$s=uq&7;el=8-$s|0;rl=(Vr|0)<(el|0);ge=rl?Vr:el;il=Vr-ge|0;tl=ge+uq|0;nl=(il|0)>0;if(nl){Vr=il;uq=tl}else{Ki=tl;break}}a[TH>>2]=Ki;al=((e+304|0)+(LU*5252|0)|0)+4796|0;ol=a[al>>2]|0;ll=(ol|0)==14;if(ll){a[al>>2]=16;ho=a[ak>>2]|0;pt=((e+39840|0)+(ho*48|0)|0)+4|0;vo=a[pt>>2]|0;vl=16;Ag=vo;Rg=ho}else{vl=ol;Ag=Ki;Rg=Qt}qr=5;pl=Rg;fq=Ag;while(1){fl=fq&7;ul=8-fl|0;cl=(qr|0)<(ul|0);ke=cl?qr:ul;hl=qr-ke|0;dl=vl>>hl;ml=ul-ke|0;El=dl<>3;_l=(((e+39840|0)+(pl*48|0)|0)+8|0)+wl|0;kl=t[_l>>0]|0;Sl=kl&255;gl=El|Sl;yl=gl&255;t[_l>>0]=yl;Ml=ke+fq|0;Fl=(hl|0)>0;Qa=a[ak>>2]|0;if(Fl){qr=hl;pl=Qa;fq=Ml}else{Gi=Ml;$a=Qa;break}}Ol=((e+39840|0)+($a*48|0)|0)+4|0;a[Ol>>2]=Gi;Al=((e+304|0)+(LU*5252|0)|0)+4800|0;Tl=a[Al>>2]|0;Nl=(Tl|0)==14;if(Nl){a[Al>>2]=16;mo=a[ak>>2]|0;kt=((e+39840|0)+(mo*48|0)|0)+4|0;Eo=a[kt>>2]|0;Il=16;Tg=Eo;Dg=mo}else{Il=Tl;Tg=Gi;Dg=$a}Lr=5;jl=Dg;iq=Tg;while(1){Dl=iq&7;Pl=8-Dl|0;Ll=(Lr|0)<(Pl|0);me=Ll?Lr:Pl;Cl=Lr-me|0;Bl=Il>>Cl;Hl=Pl-me|0;xl=Bl<>3;Vl=(((e+39840|0)+(jl*48|0)|0)+8|0)+ql|0;Wl=t[Vl>>0]|0;Yl=Wl&255;Kl=xl|Yl;Gl=Kl&255;t[Vl>>0]=Gl;Xl=me+iq|0;Zl=(Cl|0)>0;qa=a[ak>>2]|0;if(Zl){Lr=Cl;jl=qa;iq=Xl}else{Xi=Xl;Va=qa;break}}Jl=((e+39840|0)+(Va*48|0)|0)+4|0;a[Jl>>2]=Xi;$l=((e+304|0)+(LU*5252|0)|0)+4804|0;ef=a[$l>>2]|0;rf=(ef|0)==14;if(rf){a[$l>>2]=16;wo=a[ak>>2]|0;St=((e+39840|0)+(wo*48|0)|0)+4|0;bo=a[St>>2]|0;lf=16;Pg=bo;Lg=wo}else{lf=ef;Pg=Xi;Lg=Va}kr=5;vf=Lg;Kz=Pg;while(1){tf=Kz&7;nf=8-tf|0;af=(kr|0)<(nf|0);oe=af?kr:nf;of=kr-oe|0;sf=lf>>of;ff=nf-oe|0;cf=sf<>3;df=(((e+39840|0)+(vf*48|0)|0)+8|0)+hf|0;mf=t[df>>0]|0;Ef=mf&255;wf=cf|Ef;bf=wf&255;t[df>>0]=bf;_f=oe+Kz|0;pf=(of|0)>0;ka=a[ak>>2]|0;if(pf){kr=of;vf=ka;Kz=_f}else{Zi=_f;Sa=ka;break}}Sf=((e+39840|0)+(Sa*48|0)|0)+4|0;a[Sf>>2]=Zi;gf=((e+304|0)+(LU*5252|0)|0)+4824|0;yf=a[gf>>2]|0;fr=4;Cf=Sa;Cz=Zi;while(1){Mf=Cz&7;Ff=8-Mf|0;Of=(fr|0)<(Ff|0);K=Of?fr:Ff;Af=fr-K|0;Rf=yf>>Af;Tf=Ff-K|0;Nf=Rf<>3;Lf=(((e+39840|0)+(Cf*48|0)|0)+8|0)+Pf|0;Bf=t[Lf>>0]|0;If=Bf&255;Hf=Nf|If;xf=Hf&255;t[Lf>>0]=xf;Uf=K+Cz|0;zf=(Af|0)>0;$n=a[ak>>2]|0;if(zf){fr=Af;Cf=$n;Cz=Uf}else{Ji=Uf;ea=$n;break}}qf=((e+39840|0)+(ea*48|0)|0)+4|0;a[qf>>2]=Ji;jf=((e+304|0)+(LU*5252|0)|0)+4828|0;Wf=a[jf>>2]|0;er=3;iu=ea;Fz=Ji;while(1){Yf=Fz&7;Kf=8-Yf|0;Gf=(er|0)<(Kf|0);B=Gf?er:Kf;Xf=er-B|0;Zf=Wf>>Xf;Jf=Kf-B|0;Qf=Zf<>3;ru=(((e+39840|0)+(iu*48|0)|0)+8|0)+$f|0;tu=t[ru>>0]|0;nu=tu&255;au=Qf|nu;ou=au&255;t[ru>>0]=ou;su=B+Fz|0;lu=(Xf|0)>0;Ln=a[ak>>2]|0;if(lu){er=Xf;iu=Ln;Fz=su}else{Qi=su;Cn=Ln;break}}fu=((e+39840|0)+(Cn*48|0)|0)+4|0;a[fu>>2]=Qi;Fg=Qi;Og=Cn}else{xe=1;jH=Qt;fz=Hi;while(1){LH=fz&7;BH=8-LH|0;IH=(xe|0)<(BH|0);E=IH?xe:BH;HH=xe-E|0;xH=1>>>HH;UH=BH-E|0;zH=xH<>3;VH=(((e+39840|0)+(jH*48|0)|0)+8|0)+qH|0;WH=t[VH>>0]|0;KH=WH&255;GH=zH|KH;XH=GH&255;t[VH>>0]=XH;ZH=E+fz|0;JH=(HH|0)>0;Xt=a[ak>>2]|0;if(JH){xe=HH;jH=Xt;fz=ZH}else{xi=ZH;Zt=Xt;break}}QH=((e+39840|0)+(Zt*48|0)|0)+4|0;a[QH>>2]=xi;$H=a[NH>>2]|0;He=2;ux=Zt;lz=xi;while(1){ex=lz&7;rx=8-ex|0;ix=(He|0)<(rx|0);m=ix?He:rx;nx=He-m|0;ax=$H>>nx;ox=rx-m|0;sx=ax<>3;fx=(((e+39840|0)+(ux*48|0)|0)+8|0)+lx|0;cx=t[fx>>0]|0;hx=cx&255;dx=sx|hx;mx=dx&255;t[fx>>0]=mx;Ex=m+lz|0;wx=(nx|0)>0;jt=a[ak>>2]|0;if(wx){He=nx;ux=jt;lz=Ex}else{Ui=Ex;Wt=jt;break}}bx=((e+39840|0)+(Wt*48|0)|0)+4|0;a[bx>>2]=Ui;_x=((e+304|0)+(LU*5252|0)|0)+4792|0;px=a[_x>>2]|0;Ie=1;Nx=Wt;sz=Ui;while(1){kx=sz&7;Sx=8-kx|0;gx=(Ie|0)<(Sx|0);v=gx?Ie:Sx;yx=Ie-v|0;Fx=px>>yx;Ox=Sx-v|0;Ax=Fx<>3;Tx=(((e+39840|0)+(Nx*48|0)|0)+8|0)+Rx|0;Dx=t[Tx>>0]|0;Px=Dx&255;Lx=Ax|Px;Cx=Lx&255;t[Tx>>0]=Cx;Ix=v+sz|0;Hx=(yx|0)>0;qt=a[ak>>2]|0;if(Hx){Ie=yx;Nx=qt;sz=Ix}else{zi=Ix;Vt=qt;break}}xx=((e+39840|0)+(Vt*48|0)|0)+4|0;a[xx>>2]=zi;Ux=((e+304|0)+(LU*5252|0)|0)+4796|0;zx=a[Ux>>2]|0;qx=(zx|0)==14;if(qx){a[Ux>>2]=16;lo=a[ak>>2]|0;bt=((e+39840|0)+(lo*48|0)|0)+4|0;fo=a[bt>>2]|0;Sg=fo;gg=lo;Xx=16}else{Sg=zi;gg=Vt;Xx=zx}Be=5;eU=gg;oz=Sg;while(1){Vx=oz&7;jx=8-Vx|0;Wx=(Be|0)<(jx|0);h=Wx?Be:jx;Yx=Be-h|0;Gx=Xx>>Yx;Zx=jx-h|0;Jx=Gx<>3;$x=(((e+39840|0)+(eU*48|0)|0)+8|0)+Qx|0;rU=t[$x>>0]|0;iU=rU&255;tU=Jx|iU;aU=tU&255;t[$x>>0]=aU;oU=h+oz|0;sU=(Yx|0)>0;Ut=a[ak>>2]|0;if(sU){Be=Yx;eU=Ut;oz=oU}else{qi=oU;zt=Ut;break}}lU=((e+39840|0)+(zt*48|0)|0)+4|0;a[lU>>2]=qi;fU=((e+304|0)+(LU*5252|0)|0)+4800|0;uU=a[fU>>2]|0;cU=(uU|0)==14;if(cU){a[fU>>2]=16;uo=a[ak>>2]|0;_t=((e+39840|0)+(uo*48|0)|0)+4|0;co=a[_t>>2]|0;yg=co;Mg=uo;bU=16}else{yg=qi;Mg=zt;bU=uU}Gr=5;gU=Mg;vq=yg;while(1){hU=vq&7;dU=8-hU|0;vU=(Gr|0)<(dU|0);Oe=vU?Gr:dU;EU=Gr-Oe|0;wU=bU>>EU;_U=dU-Oe|0;pU=wU<<_U;kU=vq>>3;SU=(((e+39840|0)+(gU*48|0)|0)+8|0)+kU|0;yU=t[SU>>0]|0;MU=yU&255;xo=pU|MU;Uo=xo&255;t[SU>>0]=Uo;zo=Oe+vq|0;qo=(EU|0)>0;It=a[ak>>2]|0;if(qo){Gr=EU;gU=It;vq=zo}else{Vi=zo;Ht=It;break}}Vo=((e+39840|0)+(Ht*48|0)|0)+4|0;a[Vo>>2]=Vi;jo=((e+304|0)+(LU*5252|0)|0)+4808|0;Wo=a[jo>>2]|0;Yr=3;is=Ht;dq=Vi;while(1){Yo=dq&7;Ko=8-Yo|0;Go=(Yr|0)<(Ko|0);Fe=Go?Yr:Ko;Zo=Yr-Fe|0;Jo=Wo>>Zo;Qo=Ko-Fe|0;$o=Jo<>3;rs=(((e+39840|0)+(is*48|0)|0)+8|0)+es|0;ts=t[rs>>0]|0;ns=ts&255;as=$o|ns;ss=as&255;t[rs>>0]=ss;ls=Fe+dq|0;fs=(Zo|0)>0;no=a[ak>>2]|0;if(fs){Yr=Zo;is=no;dq=ls}else{ji=ls;ao=no;break}}us=((e+39840|0)+(ao*48|0)|0)+4|0;a[us>>2]=ji;cs=((e+304|0)+(LU*5252|0)|0)+4812|0;hs=a[cs>>2]|0;Wr=3;gs=ao;hq=ji;while(1){ds=hq&7;vs=8-ds|0;ms=(Wr|0)<(vs|0);Me=ms?Wr:vs;Es=Wr-Me|0;bs=hs>>Es;_s=vs-Me|0;ps=bs<<_s;ks=hq>>3;Ss=(((e+39840|0)+(gs*48|0)|0)+8|0)+ks|0;ys=t[Ss>>0]|0;Ms=ys&255;Fs=ps|Ms;Os=Fs&255;t[Ss>>0]=Os;Rs=Me+hq|0;Ts=(Es|0)>0;io=a[ak>>2]|0;if(Ts){Wr=Es;gs=io;hq=Rs}else{Wi=Rs;to=io;break}}Ns=((e+39840|0)+(to*48|0)|0)+4|0;a[Ns>>2]=Wi;Ds=((e+304|0)+(LU*5252|0)|0)+4816|0;Ps=a[Ds>>2]|0;jr=3;js=to;cq=Wi;while(1){Ls=cq&7;Cs=8-Ls|0;Bs=(jr|0)<(Cs|0);ye=Bs?jr:Cs;Is=jr-ye|0;Hs=Ps>>Is;Us=Cs-ye|0;zs=Hs<>3;Vs=(((e+39840|0)+(js*48|0)|0)+8|0)+qs|0;Ws=t[Vs>>0]|0;Ys=Ws&255;Ks=zs|Ys;Gs=Ks&255;t[Vs>>0]=Gs;Xs=ye+cq|0;Js=(Is|0)>0;eo=a[ak>>2]|0;if(Js){jr=Is;js=eo;cq=Xs}else{Yi=Xs;ro=eo;break}}Qs=((e+39840|0)+(ro*48|0)|0)+4|0;a[Qs>>2]=Yi;Fg=Yi;Og=ro}uu=((e+304|0)+(LU*5252|0)|0)+4836|0;hu=a[uu>>2]|0;We=1;gu=Og;Ez=Fg;while(1){du=Ez&7;vu=8-du|0;mu=(We|0)<(vu|0);M=mu?We:vu;Eu=We-M|0;wu=hu>>Eu;bu=vu-M|0;_u=wu<>3;ku=(((e+39840|0)+(gu*48|0)|0)+8|0)+pu|0;yu=t[ku>>0]|0;Mu=yu&255;Fu=_u|Mu;Ou=Fu&255;t[ku>>0]=Ou;Au=M+Ez|0;Ru=(Eu|0)>0;mn=a[ak>>2]|0;if(Ru){We=Eu;gu=mn;Ez=Au}else{$i=Au;En=mn;break}}Tu=((e+39840|0)+(En*48|0)|0)+4|0;a[Tu>>2]=$i;Nu=((e+304|0)+(LU*5252|0)|0)+4840|0;Du=a[Nu>>2]|0;Kr=1;Vu=En;az=$i;while(1){Lu=az&7;Cu=8-Lu|0;Bu=(Kr|0)<(Cu|0);d=Bu?Kr:Cu;Iu=Kr-d|0;Hu=Du>>Iu;xu=Cu-d|0;Uu=Hu<>3;qu=(((e+39840|0)+(Vu*48|0)|0)+8|0)+zu|0;Yu=t[qu>>0]|0;Ku=Yu&255;Gu=Uu|Ku;Xu=Gu&255;t[qu>>0]=Xu;Zu=d+az|0;Ju=(Iu|0)>0;Yt=a[ak>>2]|0;if(Ju){Kr=Iu;Vu=Yt;az=Zu}else{et=Zu;Kt=Yt;break}}Qu=((e+39840|0)+(Kt*48|0)|0)+4|0;a[Qu>>2]=et;$u=LU+1|0;ec=a[OB>>2]|0;rc=($u|0)<(ec|0);if(rc){_g=et;kg=Kt;LU=$u}else{oc=Kt;break}}}else{oc=sn}}}while(0);tc=a[nU>>2]|0;nc=(tc|0)==0;if(nc){lc=oc}else{ac=((e+39840|0)+(oc*48|0)|0)+8|0;gr(e,ac);Ro=a[ak>>2]|0;lc=Ro}sc=lc+1|0;fc=sc&255;a[ak>>2]=fc;uc=(e+39840|0)+(lc*48|0)|0;cc=a[uc>>2]|0;hc=cc+Zv|0;vc=(e+39840|0)+(fc*48|0)|0;a[vc>>2]=hc;mc=a[ak>>2]|0;Ec=e+52132|0;wc=a[Ec>>2]|0;bc=(mc|0)==(wc|0);if(bc){xt(e,1112,jq)}Rh=a[vy>>2]|0;Th=Rh<<3;Nh=a[ID>>2]|0;Dh=(Nh|0)==1;Ph=e+72|0;do{if(Dh){qh=e+300|0;Vh=e+296|0;jh=e+292|0;Wh=e+284|0;Yh=e+21464|0;Bt=a[Ph>>2]|0;Xh=Bt;$U=0;xq=0;while(1){Zh=(Xh|0)>0;if(Zh){TU=0;zq=xq;while(1){Jh=((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0;Qh=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4784|0;$h=a[Qh>>2]|0;ed=88648+($h<<2)|0;rd=a[ed>>2]|0;id=88712+($h<<2)|0;td=a[id>>2]|0;nd=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4868|0;od=a[nd>>2]|0;sd=(od|0)>0;e:do{if(sd){ld=(rd|0)>0;if(ld){Bg=od;HU=0;Fq=0}else{IU=0;Mq=0;while(1){hv=((((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4608|0)+(Mq<<2)|0;dv=a[hv>>2]|0;vv=(dv|0)==-1;mv=vv?0:rd;BU=mv+IU|0;Ev=Mq+1|0;GU=(Ev|0)==(od|0);if(GU){CU=BU;yq=od;break e}else{IU=BU;Mq=Ev}}}while(1){fd=((((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4608|0)+(Fq<<2)|0;ud=a[fd>>2]|0;cd=(ud|0)==-1;if(cd){sv=Bg;xU=HU}else{Ae=rd;while(1){hd=a[qh>>2]|0;dd=(hd|0)==0;if(dd){a[qh>>2]=8;vd=a[Vh>>2]|0;md=vd+1|0;a[Vh>>2]=md;wd=a[Ec>>2]|0;bd=(e+39840|0)+(wd*48|0)|0;_d=a[bd>>2]|0;pd=a[jh>>2]|0;kd=(_d|0)==(pd|0);if(kd){Sd=a[Wh>>2]|0;gd=Sd+md|0;yd=((e+39840|0)+(wd*48|0)|0)+8|0;Md=a[vy>>2]|0;yn(gd|0,yd|0,Md|0)|0;Fd=a[vy>>2]|0;Ad=a[Vh>>2]|0;Rd=Ad+Fd|0;a[Vh>>2]=Rd;Td=Fd<<3;Nd=a[jh>>2]|0;Dd=Nd+Td|0;a[jh>>2]=Dd;Pd=a[Ec>>2]|0;Ld=Pd+1|0;Cd=Ld&255;a[Ec>>2]=Cd;xd=Rd}else{xd=md}Bd=a[Wh>>2]|0;Id=Bd+xd|0;t[Id>>0]=0;Ct=a[qh>>2]|0;zd=Ct}else{zd=hd}Ud=(Ae|0)<(zd|0);u=Ud?Ae:zd;qd=Ae-u|0;Vd=zd-u|0;a[qh>>2]=Vd;jd=ud>>qd;Wd=jd<>2]|0;Kd=a[Wh>>2]|0;Gd=Kd+Yd|0;Zd=t[Gd>>0]|0;Jd=Zd&255;Qd=Wd|Jd;$d=Qd&255;t[Gd>>0]=$d;ev=a[jh>>2]|0;rv=ev+u|0;a[jh>>2]=rv;iv=(qd|0)>0;if(iv){Ae=qd}else{break}}Do=a[nd>>2]|0;tv=HU+rd|0;sv=Do;xU=tv}nv=Fq+1|0;av=(nv|0)<(sv|0);if(av){Bg=sv;HU=xU;Fq=nv}else{CU=xU;yq=nv;break}}}else{CU=0;yq=0}}while(0);lv=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4860|0;fv=a[lv>>2]|0;uv=(yq|0)<(fv|0);if(uv){cv=(td|0)>0;Ig=fv;zU=CU;Oq=yq;while(1){bv=((((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4608|0)+(Oq<<2)|0;_v=a[bv>>2]|0;pv=(_v|0)==-1;if(pv){Em=Ig;qU=zU}else{if(cv){Pe=td;while(1){kv=a[qh>>2]|0;Sv=(kv|0)==0;if(Sv){a[qh>>2]=8;gv=a[Vh>>2]|0;yv=gv+1|0;a[Vh>>2]=yv;Mv=a[Ec>>2]|0;Fv=(e+39840|0)+(Mv*48|0)|0;Ov=a[Fv>>2]|0;Rv=a[jh>>2]|0;Tv=(Ov|0)==(Rv|0);if(Tv){Nv=a[Wh>>2]|0;Dv=Nv+yv|0;Pv=((e+39840|0)+(Mv*48|0)|0)+8|0;Lv=a[vy>>2]|0;yn(Dv|0,Pv|0,Lv|0)|0;Cv=a[vy>>2]|0;Bv=a[Vh>>2]|0;Iv=Bv+Cv|0;a[Vh>>2]=Iv;Hv=Cv<<3;Uv=a[jh>>2]|0;zv=Uv+Hv|0;a[jh>>2]=zv;qv=a[Ec>>2]|0;Vv=qv+1|0;jv=Vv&255;a[Ec>>2]=jv;Kv=Iv}else{Kv=yv}Wv=a[Wh>>2]|0;Yv=Wv+Kv|0;t[Yv>>0]=0;Ca=a[qh>>2]|0;Xv=Ca}else{Xv=kv}Gv=(Pe|0)<(Xv|0);Se=Gv?Pe:Xv;Qv=Pe-Se|0;$v=Xv-Se|0;a[qh>>2]=$v;em=_v>>Qv;rm=em<<$v;im=a[Vh>>2]|0;tm=a[Wh>>2]|0;nm=tm+im|0;am=t[nm>>0]|0;om=am&255;sm=rm|om;fm=sm&255;t[nm>>0]=fm;um=a[jh>>2]|0;cm=um+Se|0;a[jh>>2]=cm;hm=(Qv|0)>0;if(hm){Pe=Qv}else{break}}Lo=a[lv>>2]|0;Po=Lo}else{Po=Ig}dm=zU+td|0;Em=Po;qU=dm}vm=Oq+1|0;mm=(vm|0)<(Em|0);if(mm){Ig=Em;zU=qU;Oq=vm}else{UU=qU;break}}}else{UU=CU}wm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4788|0;bm=a[wm>>2]|0;pm=(bm|0)==2;if(pm){km=a[Yh>>2]|0;Sm=km*3|0;gm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4772|0;ym=a[gm>>2]|0;Mm=(Sm|0)>(ym|0);s=Mm?ym:Sm;Fm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4796|0;Om=a[Fm>>2]|0;Am=Tr(e,Om,0,s,Jh)|0;Rm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4800|0;Nm=a[Rm>>2]|0;Dm=a[gm>>2]|0;Pm=Tr(e,Nm,s,Dm,Jh)|0;Lm=Pm+Am|0;Rt=Lm}else{Cm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4772|0;Bm=a[Cm>>2]|0;Im=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4824|0;Hm=a[Im>>2]|0;xm=Hm+1|0;Um=(e+21360|0)+(xm<<2)|0;qm=a[Um>>2]|0;Vm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4828|0;jm=a[Vm>>2]|0;Wm=Hm+2|0;Ym=Wm+jm|0;Km=(e+21360|0)+(Ym<<2)|0;Gm=a[Km>>2]|0;Xm=(qm|0)>(Bm|0);l=Xm?Bm:qm;Zm=(Gm|0)>(Bm|0);Eq=Zm?Bm:Gm;Jm=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4796|0;$m=a[Jm>>2]|0;eE=Tr(e,$m,0,l,Jh)|0;rE=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4800|0;iE=a[rE>>2]|0;tE=Tr(e,iE,l,Eq,Jh)|0;nE=tE+eE|0;aE=(((e+304|0)+($U*10504|0)|0)+(TU*5252|0)|0)+4804|0;oE=a[aE>>2]|0;sE=Tr(e,oE,Eq,Bm,Jh)|0;lE=nE+sE|0;Rt=lE}uE=Nr(e,Jh)|0;VU=UU+zq|0;cE=VU+Rt|0;hE=cE+uE|0;dE=TU+1|0;vE=a[Ph>>2]|0;mE=(dE|0)<(vE|0);if(mE){TU=dE;zq=hE}else{Cg=vE;Uq=hE;break}}}else{Cg=Xh;Uq=xq}EE=$U+1|0;KU=(EE|0)==2;if(KU){oo=jh;Vq=Uq;break}else{Xh=Cg;$U=EE;xq=Uq}}}else{Lh=a[Ph>>2]|0;Ch=(Lh|0)>0;if(!Ch){so=e+292|0;oo=so;Vq=0;break}Ih=e+300|0;Hh=e+296|0;xh=e+292|0;Uh=e+284|0;zh=e+21464|0;PU=0;qq=0;while(1){wE=(e+304|0)+(PU*5252|0)|0;bE=((e+304|0)+(PU*5252|0)|0)+4788|0;_E=a[bE>>2]|0;kE=(_E|0)==2;SE=((e+304|0)+(PU*5252|0)|0)+5188|0;if(kE){wq=0;Aq=0;Lq=0;while(1){gE=a[SE>>2]|0;yE=gE+(Lq<<2)|0;ME=a[yE>>2]|0;FE=(ME|0)/3&-1;OE=(((e+304|0)+(PU*5252|0)|0)+5192|0)+(Lq<<2)|0;AE=a[OE>>2]|0;RE=(ME|0)>2;if(RE){TE=(AE|0)>0;DE=(FE|0)>1;Bq=DE?FE:1;rz=0;Tq=Aq;while(1){PE=Tq*3|0;LE=(((e+304|0)+(PU*5252|0)|0)+4608|0)+(PE<<2)|0;CE=a[LE>>2]|0;BE=(CE|0)>0;o=BE?CE:0;if(TE){Re=AE;while(1){IE=a[Ih>>2]|0;HE=(IE|0)==0;if(HE){a[Ih>>2]=8;xE=a[Hh>>2]|0;UE=xE+1|0;a[Hh>>2]=UE;zE=a[Ec>>2]|0;VE=(e+39840|0)+(zE*48|0)|0;jE=a[VE>>2]|0;WE=a[xh>>2]|0;YE=(jE|0)==(WE|0);if(YE){KE=a[Uh>>2]|0;GE=KE+UE|0;XE=((e+39840|0)+(zE*48|0)|0)+8|0;ZE=a[vy>>2]|0;yn(GE|0,XE|0,ZE|0)|0;JE=a[vy>>2]|0;QE=a[Hh>>2]|0;rw=QE+JE|0;a[Hh>>2]=rw;iw=JE<<3;tw=a[xh>>2]|0;nw=tw+iw|0;a[xh>>2]=nw;aw=a[Ec>>2]|0;ow=aw+1|0;sw=ow&255;a[Ec>>2]=sw;uw=rw}else{uw=UE}lw=a[Uh>>2]|0;fw=lw+uw|0;t[fw>>0]=0;Gt=a[Ih>>2]|0;dw=Gt}else{dw=IE}hw=(Re|0)<(dw|0);b=hw?Re:dw;vw=Re-b|0;mw=dw-b|0;a[Ih>>2]=mw;Ew=o>>vw;ww=Ew<>2]|0;_w=a[Uh>>2]|0;pw=_w+bw|0;kw=t[pw>>0]|0;gw=kw&255;yw=ww|gw;Mw=yw&255;t[pw>>0]=Mw;Fw=a[xh>>2]|0;Ow=Fw+b|0;a[xh>>2]=Ow;Aw=(vw|0)>0;if(Aw){Re=vw}else{ai=Ow;break}}Rw=PE+1|0;Tw=(((e+304|0)+(PU*5252|0)|0)+4608|0)+(Rw<<2)|0;Nw=a[Tw>>2]|0;Dw=(Nw|0)>0;Lw=Dw?Nw:0;Te=AE;Vw=ai;while(1){Cw=a[Ih>>2]|0;Bw=(Cw|0)==0;if(Bw){a[Ih>>2]=8;Iw=a[Hh>>2]|0;Hw=Iw+1|0;a[Hh>>2]=Hw;xw=a[Ec>>2]|0;Uw=(e+39840|0)+(xw*48|0)|0;zw=a[Uw>>2]|0;qw=(zw|0)==(Vw|0);if(qw){Ww=a[Uh>>2]|0;Yw=Ww+Hw|0;Kw=((e+39840|0)+(xw*48|0)|0)+8|0;Gw=a[vy>>2]|0;yn(Yw|0,Kw|0,Gw|0)|0;Xw=a[vy>>2]|0;Zw=a[Hh>>2]|0;Jw=Zw+Xw|0;a[Hh>>2]=Jw;Qw=Xw<<3;$w=a[xh>>2]|0;eb=$w+Qw|0;a[xh>>2]=eb;ib=a[Ec>>2]|0;tb=ib+1|0;nb=tb&255;a[Ec>>2]=nb;sb=Jw}else{sb=Hw}ab=a[Uh>>2]|0;ob=ab+sb|0;t[ob>>0]=0;ln=a[Ih>>2]|0;fb=ln}else{fb=Cw}lb=(Te|0)<(fb|0);F=lb?Te:fb;ub=Te-F|0;cb=fb-F|0;a[Ih>>2]=cb;db=Lw>>ub;vb=db<>2]|0;Eb=a[Uh>>2]|0;wb=Eb+mb|0;bb=t[wb>>0]|0;_b=bb&255;pb=vb|_b;kb=pb&255;t[wb>>0]=kb;Sb=a[xh>>2]|0;yb=Sb+F|0;a[xh>>2]=yb;Mb=(ub|0)>0;if(Mb){Te=ub;Vw=yb}else{oi=yb;break}}Fb=PE+2|0;Ob=(((e+304|0)+(PU*5252|0)|0)+4608|0)+(Fb<<2)|0;Ab=a[Ob>>2]|0;Rb=(Ab|0)>0;Zr=Rb?Ab:0;Ne=AE;xb=oi;while(1){Tb=a[Ih>>2]|0;Nb=(Tb|0)==0;if(Nb){a[Ih>>2]=8;Db=a[Hh>>2]|0;Pb=Db+1|0;a[Hh>>2]=Pb;Cb=a[Ec>>2]|0;Bb=(e+39840|0)+(Cb*48|0)|0;Ib=a[Bb>>2]|0;Hb=(Ib|0)==(xb|0);if(Hb){Ub=a[Uh>>2]|0;zb=Ub+Pb|0;qb=((e+39840|0)+(Cb*48|0)|0)+8|0;Vb=a[vy>>2]|0;yn(zb|0,qb|0,Vb|0)|0;jb=a[vy>>2]|0;Yb=a[Hh>>2]|0;Kb=Yb+jb|0;a[Hh>>2]=Kb;Gb=jb<<3;Xb=a[xh>>2]|0;Zb=Xb+Gb|0;a[xh>>2]=Zb;Jb=a[Ec>>2]|0;Qb=Jb+1|0;$b=Qb&255;a[Ec>>2]=$b;n_=Kb}else{n_=Pb}e_=a[Uh>>2]|0;r_=e_+n_|0;t[r_>>0]=0;Sn=a[Ih>>2]|0;o_=Sn}else{o_=Tb}a_=(Ne|0)<(o_|0);D=a_?Ne:o_;s_=Ne-D|0;l_=o_-D|0;a[Ih>>2]=l_;f_=Zr>>s_;u_=f_<>2]|0;h_=a[Uh>>2]|0;d_=h_+c_|0;m_=t[d_>>0]|0;E_=m_&255;w_=u_|E_;b_=w_&255;t[d_>>0]=b_;__=a[xh>>2]|0;p_=__+D|0;a[xh>>2]=p_;k_=(s_|0)>0;if(k_){Ne=s_;xb=p_}else{break}}}S_=rz+1|0;g_=Tq+1|0;y_=(S_|0)<(FE|0);if(y_){rz=S_;Tq=g_}else{break}}F_=AE*3|0;O_=ie(F_,Bq)|0;A_=Bq+Aq|0;R_=O_+wq|0;bq=R_;Rq=A_}else{bq=wq;Rq=Aq}T_=Lq+1|0;JU=(T_|0)==4;if(JU){_q=bq;break}else{wq=bq;Aq=Rq;Lq=T_}}N_=a[zh>>2]|0;D_=N_*3|0;P_=((e+304|0)+(PU*5252|0)|0)+4772|0;L_=a[P_>>2]|0;C_=(D_|0)>(L_|0);n=C_?L_:D_;I_=((e+304|0)+(PU*5252|0)|0)+4796|0;H_=a[I_>>2]|0;x_=Tr(e,H_,0,n,wE)|0;U_=((e+304|0)+(PU*5252|0)|0)+4800|0;z_=a[U_>>2]|0;q_=a[P_>>2]|0;V_=Tr(e,z_,n,q_,wE)|0;j_=V_+x_|0;jU=j_;gq=_q}else{pq=0;Nq=0;Cq=0;while(1){W_=a[SE>>2]|0;Y_=W_+(Cq<<2)|0;G_=a[Y_>>2]|0;X_=(((e+304|0)+(PU*5252|0)|0)+5192|0)+(Cq<<2)|0;Z_=a[X_>>2]|0;J_=(G_|0)>0;if(J_){Q_=(Z_|0)>0;if(Q_){tz=0;Pq=Nq;while(1){$_=(((e+304|0)+(PU*5252|0)|0)+4608|0)+(Pq<<2)|0;ep=a[$_>>2]|0;rp=(ep|0)>0;Jr=rp?ep:0;De=Z_;while(1){ip=a[Ih>>2]|0;tp=(ip|0)==0;if(tp){a[Ih>>2]=8;ap=a[Hh>>2]|0;op=ap+1|0;a[Hh>>2]=op;sp=a[Ec>>2]|0;lp=(e+39840|0)+(sp*48|0)|0;fp=a[lp>>2]|0;up=a[xh>>2]|0;cp=(fp|0)==(up|0);if(cp){hp=a[Uh>>2]|0;dp=hp+op|0;vp=((e+39840|0)+(sp*48|0)|0)+8|0;Ep=a[vy>>2]|0;yn(dp|0,vp|0,Ep|0)|0;wp=a[vy>>2]|0;bp=a[Hh>>2]|0;_p=bp+wp|0;a[Hh>>2]=_p;pp=wp<<3;kp=a[xh>>2]|0;Sp=kp+pp|0;a[xh>>2]=Sp;gp=a[Ec>>2]|0;yp=gp+1|0;Mp=yp&255;a[Ec>>2]=Mp;Rp=_p}else{Rp=op}Op=a[Uh>>2]|0;Ap=Op+Rp|0;t[Ap>>0]=0;Bn=a[Ih>>2]|0;Np=Bn}else{Np=ip}Tp=(De|0)<(Np|0);z=Tp?De:Np;Dp=De-z|0;Pp=Np-z|0;a[Ih>>2]=Pp;Lp=Jr>>Dp;Cp=Lp<>2]|0;Hp=a[Uh>>2]|0;xp=Hp+Bp|0;Up=t[xp>>0]|0;zp=Up&255;qp=Cp|zp;Vp=qp&255;t[xp>>0]=Vp;jp=a[xh>>2]|0;Wp=jp+z|0;a[xh>>2]=Wp;Yp=(Dp|0)>0;if(Yp){De=Dp}else{break}}Kp=tz+1|0;Xp=Pq+1|0;XU=(Kp|0)==(G_|0);if(XU){break}else{tz=Kp;Pq=Xp}}}Tt=ie(Z_,G_)|0;Hq=Tt+pq|0;Iq=G_+Nq|0;kq=Hq;Dq=Iq}else{kq=pq;Dq=Nq}Zp=Cq+1|0;ZU=(Zp|0)==4;if(ZU){Sq=kq;break}else{pq=kq;Nq=Dq;Cq=Zp}}Jp=((e+304|0)+(PU*5252|0)|0)+4772|0;Qp=a[Jp>>2]|0;$p=((e+304|0)+(PU*5252|0)|0)+4824|0;ek=a[$p>>2]|0;rk=ek+1|0;ik=(e+21360|0)+(rk<<2)|0;tk=a[ik>>2]|0;nk=((e+304|0)+(PU*5252|0)|0)+4828|0;sk=a[nk>>2]|0;lk=ek+2|0;fk=lk+sk|0;uk=(e+21360|0)+(fk<<2)|0;ck=a[uk>>2]|0;hk=(tk|0)>(Qp|0);i=hk?Qp:tk;dk=(ck|0)>(Qp|0);mq=dk?Qp:ck;vk=((e+304|0)+(PU*5252|0)|0)+4796|0;mk=a[vk>>2]|0;Ek=Tr(e,mk,0,i,wE)|0;bk=((e+304|0)+(PU*5252|0)|0)+4800|0;_k=a[bk>>2]|0;pk=Tr(e,_k,i,mq,wE)|0;kk=pk+Ek|0;Sk=((e+304|0)+(PU*5252|0)|0)+4804|0;gk=a[Sk>>2]|0;yk=Tr(e,gk,mq,Qp,wE)|0;Mk=kk+yk|0;jU=Mk;gq=Sq}Fk=Nr(e,wE)|0;Ok=gq+qq|0;Rk=Ok+jU|0;Tk=Rk+Fk|0;Nk=PU+1|0;Dk=a[Ph>>2]|0;Pk=(Nk|0)<(Dk|0);if(Pk){PU=Nk;qq=Tk}else{oo=xh;Vq=Tk;break}}}}while(0);Lk=Vq+Th|0;Ck=e+21324|0;Bk=a[Ck>>2]|0;Rr(e,Bk);Ik=a[Ck>>2]|0;Hk=Lk+Ik|0;Uk=Zv-Hk|0;zk=(Uk|0)/8&-1;qk=a[tF>>2]|0;Vk=qk+zk|0;a[tF>>2]=Vk;jk=a[Ec>>2]|0;Wk=a[ak>>2]|0;Yk=Wk+-1|0;Kk=(Wk|0)==0;r=Kk?255:Yk;Gk=(e+39840|0)+(r*48|0)|0;Xk=a[Gk>>2]|0;Jk=a[oo>>2]|0;Qk=Xk-Jk|0;$k=(Qk|0)>-1;if($k){eS=1-jk|0;rS=r+eS|0;iS=(r|0)<(jk|0);tS=rS+256|0;Xr=iS?tS:rS;nS=Xr<<3;aS=a[vy>>2]|0;oS=ie(nS,aS)|0;lS=Qk-oS|0;QU=lS}else{QU=Qk}fS=a[Bo>>2]|0;uS=(fS|0)==0;if(uS){dS=e+120|0;ri=a[Co>>2]|0;$r=ri;RU=dS}else{cS=a[Co>>2]|0;hS=(83944+(cS<<6)|0)+(fS<<2)|0;$r=cS;RU=hS}OU=a[RU>>2]|0;vS=a[wL>>2]|0;ni=a[ii>>2]|0;mS=$r*72000|0;ES=mS+72000|0;wS=ie(ES,OU)|0;_S=(wS|0)/(ni|0)&-1;pS=_S+vS|0;kS=pS<<3;SS=kS+QU|0;gS=(SS|0)<0;if(gS){xt(e,1072,Wq)}yS=e+52140|0;MS=a[yS>>2]|0;FS=(SS|0)==(MS|0);if(FS){NS=SS}else{xt(e,1168,Zq);Nt=a[yS>>2]|0;NS=Nt}OS=a[tF>>2]|0;AS=OS<<3;TS=(AS|0)==(NS|0);if(!TS){DS=a[Ck>>2]|0;PS=a[$E>>2]|0;LS=a[vy>>2]|0;CS=LS<<3;BS=Hk-DS|0;IS=BS-CS|0;HS=(Hk|0)%8&-1;a[Jq>>2]=AS;tV=Jq+4|0;a[tV>>2]=NS;nV=Jq+8|0;a[nV>>2]=DS;aV=Jq+12|0;a[aV>>2]=PS;Qq=Jq+16|0;a[Qq>>2]=CS;$q=Jq+20|0;a[$q>>2]=IS;eV=Jq+24|0;a[eV>>2]=Hk;rV=Jq+28|0;a[rV>>2]=HS;iV=Jq+32|0;a[iV>>2]=Zv;xt(e,1224,Jq);xt(e,1504,Yq);xt(e,1560,Kq);xt(e,1640,Gq);xt(e,1680,Xq);xS=a[tF>>2]|0;zS=xS<<3;a[yS>>2]=zS}qS=a[oo>>2]|0;VS=(qS|0)>1000000000;if(VS){iz=0}else{c=sV;return 0}while(1){jS=(e+39840|0)+(iz*48|0)|0;WS=a[jS>>2]|0;YS=WS-qS|0;a[jS>>2]=YS;KS=iz+1|0;WU=(KS|0)==256;if(WU){break}else{iz=KS}}a[oo>>2]=0;c=sV;return 0}function Or(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0.0,l=0.0,u=0.0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0.0,H=0,x=0.0,U=0.0,z=0,q=0,V=0,j=0,W=0,Y=0;var K=0.0,G=0,X=0.0,Z=0.0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0.0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0;pe=c;c=c+9216|0;be=pe;h=e+296|0;d=a[h>>2]|0;y=d+1|0;C=(d|0)<0;if(C){o=0;c=pe;return o|0}Y=(i|0)==0;te=(d|0)<(i|0);we=Y|te;if(!we){o=-1;c=pe;return o|0}le=e+284|0;fe=a[le>>2]|0;yn(r|0,fe|0,y|0)|0;a[h>>2]=-1;ue=e+300|0;a[ue>>2]=0;ce=(t|0)==0;if(ce){o=y;c=pe;return o|0}v=e+85752|0;_r(v,r,y);m=e+85788|0;E=a[m>>2]|0;w=E+y|0;a[m>>2]=w;b=e+136|0;_=a[b>>2]|0;p=(_|0)==0;if(p){o=y;c=pe;return o|0}k=e+85808|0;S=be+4608|0;g=e+132|0;M=e+128|0;F=e+85676|0;O=e+72|0;A=e+85684|0;Ee=y;while(1){R=a[k>>2]|0;T=Xe(R|0,r|0,Ee|0,be|0,S|0)|0;N=(T|0)==-1;n=N?0:T;D=(n|0)>0;if(D){P=a[g>>2]|0;L=(P|0)==0;if(!L){s=+f[A>>2];x=s;ve=0;while(1){B=be+(ve<<2)|0;I=+f[B>>2];H=I>x;if(H){f[A>>2]=I;l=I}else{U=-I;z=x>2]=U;l=U}else{l=x}}q=ve+1|0;he=(q|0)==(n|0);if(he){u=l;break}else{x=l;ve=q}}V=a[O>>2]|0;j=(V|0)>1;if(j){X=u;me=0;while(1){W=(be+4608|0)+(me<<2)|0;K=+f[W>>2];G=K>X;if(G){f[A>>2]=K;se=K}else{Z=-K;J=X>2]=Z;se=Z}else{se=X}}Q=me+1|0;de=(Q|0)==(n|0);if(de){break}else{X=se;me=Q}}}}$=a[M>>2]|0;ee=($|0)==0;if(!ee){re=a[F>>2]|0;ie=a[O>>2]|0;ne=We(re|0,be|0,S|0,n|0,ie|0)|0;ae=(ne|0)==0;if(ae){_e=24;break}}}oe=(n|0)==0;if(oe){_e=23;break}else{Ee=0}}if((_e|0)==23){o=y;c=pe;return o|0}else if((_e|0)==24){o=-6;c=pe;return o|0}return 0|0}function Ar(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0;d=c;r=e+52132|0;a[r>>2]=0;i=e+52128|0;a[i>>2]=0;t=e+39840|0;a[t>>2]=0;n=mn(147456)|0;o=e+284|0;a[o>>2]=n;s=e+288|0;a[s>>2]=147456;l=e+296|0;a[l>>2]=-1;f=e+300|0;a[f>>2]=0;u=e+292|0;a[u>>2]=0;return}function Rr(e,r){e=e|0;r=r|0;var i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0;var Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0;var ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0;var gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0;var Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0;var ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0;var Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Gt=0,Xt=0;var Zt=0,Jt=0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0;var wn=0,bn=0,_n=0,pn=0,Sn=0,gn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0;var xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0;ta=c;N=(r|0)>7;if(N){P=e+300|0;j=e+296|0;re=e+52132|0;he=e+292|0;ge=e+284|0;Le=e+24|0;u=8;while(1){We=a[P>>2]|0;ir=(We|0)==0;if(ir){a[P>>2]=8;dr=a[j>>2]|0;yr=dr+1|0;a[j>>2]=yr;Br=a[re>>2]|0;Kr=(e+39840|0)+(Br*48|0)|0;ni=a[Kr>>2]|0;mi=a[he>>2]|0;Fi=(ni|0)==(mi|0);if(Fi){Ii=a[ge>>2]|0;Gi=Ii+yr|0;at=((e+39840|0)+(Br*48|0)|0)+8|0;Et=a[Le>>2]|0;yn(Gi|0,at|0,Et|0)|0;Ot=a[Le>>2]|0;Rt=a[j>>2]|0;Tt=Rt+Ot|0;a[j>>2]=Tt;Nt=Ot<<3;Dt=a[he>>2]|0;Pt=Dt+Nt|0;a[he>>2]=Pt;Lt=a[re>>2]|0;Ct=Lt+1|0;Bt=Ct&255;a[re>>2]=Bt;Ut=Tt}else{Ut=yr}It=a[ge>>2]|0;Ht=It+Ut|0;t[Ht>>0]=0;M=a[P>>2]|0;qt=M}else{qt=We}zt=(u|0)<(qt|0);i=zt?u:qt;Vt=u-i|0;jt=qt-i|0;a[P>>2]=jt;Wt=76>>>Vt;Yt=Wt<>2]|0;Xt=a[ge>>2]|0;Zt=Xt+Gt|0;Qt=t[Zt>>0]|0;$t=Qt&255;en=Yt|$t;rn=en&255;t[Zt>>0]=rn;tn=a[he>>2]|0;nn=tn+i|0;a[he>>2]=nn;an=(Vt|0)>0;if(an){u=Vt}else{g=nn;break}}on=r+-8|0;sn=(on|0)>7;if(sn){v=8;wn=g;while(1){ln=a[P>>2]|0;un=(ln|0)==0;if(un){a[P>>2]=8;cn=a[j>>2]|0;hn=cn+1|0;a[j>>2]=hn;dn=a[re>>2]|0;vn=(e+39840|0)+(dn*48|0)|0;mn=a[vn>>2]|0;En=(mn|0)==(wn|0);if(En){bn=a[ge>>2]|0;_n=bn+hn|0;Sn=((e+39840|0)+(dn*48|0)|0)+8|0;gn=a[Le>>2]|0;yn(_n|0,Sn|0,gn|0)|0;Mn=a[Le>>2]|0;Fn=a[j>>2]|0;On=Fn+Mn|0;a[j>>2]=On;An=Mn<<3;Rn=a[he>>2]|0;Tn=Rn+An|0;a[he>>2]=Tn;Nn=a[re>>2]|0;Dn=Nn+1|0;Ln=Dn&255;a[re>>2]=Ln;In=On}else{In=hn}Cn=a[ge>>2]|0;Bn=Cn+In|0;t[Bn>>0]=0;A=a[P>>2]|0;xn=A}else{xn=ln}Hn=(v|0)<(xn|0);s=Hn?v:xn;Un=v-s|0;zn=xn-s|0;a[P>>2]=zn;qn=65>>>Un;Vn=qn<>2]|0;Yn=a[ge>>2]|0;Kn=Yn+Wn|0;Gn=t[Kn>>0]|0;Xn=Gn&255;Zn=Vn|Xn;Jn=Zn&255;t[Kn>>0]=Jn;Qn=a[he>>2]|0;$n=Qn+s|0;a[he>>2]=$n;ea=(Un|0)>0;if(ea){v=Un;wn=$n}else{S=$n;break}}L=r+-16|0;C=(L|0)>7;if(C){d=8;W=S;while(1){B=a[P>>2]|0;I=(B|0)==0;if(I){a[P>>2]=8;H=a[j>>2]|0;x=H+1|0;a[j>>2]=x;U=a[re>>2]|0;z=(e+39840|0)+(U*48|0)|0;q=a[z>>2]|0;V=(q|0)==(W|0);if(V){Y=a[ge>>2]|0;K=Y+x|0;G=((e+39840|0)+(U*48|0)|0)+8|0;X=a[Le>>2]|0;yn(K|0,G|0,X|0)|0;Z=a[Le>>2]|0;J=a[j>>2]|0;Q=J+Z|0;a[j>>2]=Q;$=Z<<3;ee=a[he>>2]|0;ie=ee+$|0;a[he>>2]=ie;te=a[re>>2]|0;ne=te+1|0;ae=ne&255;a[re>>2]=ae;le=Q}else{le=x}oe=a[ge>>2]|0;se=oe+le|0;t[se>>0]=0;O=a[P>>2]|0;ue=O}else{ue=B}fe=(d|0)<(ue|0);o=fe?d:ue;ce=d-o|0;de=ue-o|0;a[P>>2]=de;ve=77>>>ce;me=ve<>2]|0;we=a[ge>>2]|0;be=we+Ee|0;_e=t[be>>0]|0;pe=_e&255;ke=me|pe;Se=ke&255;t[be>>0]=Se;ye=a[he>>2]|0;Me=ye+o|0;a[he>>2]=Me;Fe=(ce|0)>0;if(Fe){d=ce;W=Me}else{k=Me;break}}Oe=r+-24|0;Ae=(Oe|0)>7;if(Ae){E=8;He=k;while(1){Re=a[P>>2]|0;Te=(Re|0)==0;if(Te){a[P>>2]=8;Ne=a[j>>2]|0;De=Ne+1|0;a[j>>2]=De;Pe=a[re>>2]|0;Ce=(e+39840|0)+(Pe*48|0)|0;Be=a[Ce>>2]|0;Ie=(Be|0)==(He|0);if(Ie){xe=a[ge>>2]|0;Ue=xe+De|0;ze=((e+39840|0)+(Pe*48|0)|0)+8|0;qe=a[Le>>2]|0;yn(Ue|0,ze|0,qe|0)|0;Ve=a[Le>>2]|0;je=a[j>>2]|0;Ye=je+Ve|0;a[j>>2]=Ye;Ke=Ve<<3;Ge=a[he>>2]|0;Xe=Ge+Ke|0;a[he>>2]=Xe;Ze=a[re>>2]|0;Je=Ze+1|0;Qe=Je&255;a[re>>2]=Qe;rr=Ye}else{rr=De}$e=a[ge>>2]|0;er=$e+rr|0;t[er>>0]=0;F=a[P>>2]|0;nr=F}else{nr=Re}tr=(E|0)<(nr|0);n=tr?E:nr;ar=E-n|0;or=nr-n|0;a[P>>2]=or;sr=69>>>ar;lr=sr<>2]|0;ur=a[ge>>2]|0;cr=ur+fr|0;hr=t[cr>>0]|0;vr=hr&255;mr=lr|vr;Er=mr&255;t[cr>>0]=Er;wr=a[he>>2]|0;br=wr+n|0;a[he>>2]=br;_r=(ar|0)>0;if(_r){E=ar;He=br}else{break}}pr=r+-32|0;kr=(pr|0)>31;if(kr){Sr=Kt()|0;gr=kn(Sr|0)|0;Mr=(gr|0)>0;if(Mr){w=pr;ra=0;while(1){Fr=Sr+ra|0;Or=t[Fr>>0]|0;Ar=Or<<24>>24;m=8;while(1){Rr=a[P>>2]|0;Tr=(Rr|0)==0;if(Tr){a[P>>2]=8;Nr=a[j>>2]|0;Dr=Nr+1|0;a[j>>2]=Dr;Pr=a[re>>2]|0;Lr=(e+39840|0)+(Pr*48|0)|0;Ir=a[Lr>>2]|0;Hr=a[he>>2]|0;xr=(Ir|0)==(Hr|0);if(xr){Ur=a[ge>>2]|0;zr=Ur+Dr|0;qr=((e+39840|0)+(Pr*48|0)|0)+8|0;Vr=a[Le>>2]|0;yn(zr|0,qr|0,Vr|0)|0;jr=a[Le>>2]|0;Wr=a[j>>2]|0;Yr=Wr+jr|0;a[j>>2]=Yr;Gr=jr<<3;Xr=a[he>>2]|0;Zr=Xr+Gr|0;a[he>>2]=Zr;Jr=a[re>>2]|0;Qr=Jr+1|0;$r=Qr&255;a[re>>2]=$r;ii=Yr}else{ii=Dr}ei=a[ge>>2]|0;ri=ei+ii|0;t[ri>>0]=0;T=a[P>>2]|0;ai=T}else{ai=Rr}ti=(m|0)<(ai|0);f=ti?m:ai;oi=m-f|0;si=ai-f|0;a[P>>2]=si;li=Ar>>oi;fi=li<>2]|0;ci=a[ge>>2]|0;hi=ci+ui|0;di=t[hi>>0]|0;vi=di&255;Ei=fi|vi;wi=Ei&255;t[hi>>0]=wi;bi=a[he>>2]|0;_i=bi+f|0;a[he>>2]=_i;pi=(oi|0)>0;if(pi){m=oi}else{break}}ki=w+-8|0;Si=ra+1|0;gi=kn(Sr|0)|0;yi=(Si|0)<(gi|0);Mi=(ki|0)>7;Oi=Mi&yi;if(Oi){w=ki;ra=Si}else{b=ki;ia=2;break}}}else{_=pr}}else{b=pr;ia=2}}else{b=Oe;ia=2}}else{b=L;ia=2}}else{b=on;ia=2}}else{b=r;ia=2}if((ia|0)==2){D=(b|0)>0;if(D){_=b}else{return}}Cr=e+52136|0;At=e+300|0;xt=e+296|0;Jt=e+52132|0;fn=e+292|0;pn=e+284|0;Pn=e+24|0;jn=e+144|0;y=a[Cr>>2]|0;p=_;st=y;while(1){h=1;while(1){Ai=a[At>>2]|0;Ri=(Ai|0)==0;if(Ri){a[At>>2]=8;Ti=a[xt>>2]|0;Ni=Ti+1|0;a[xt>>2]=Ni;Di=a[Jt>>2]|0;Pi=(e+39840|0)+(Di*48|0)|0;Li=a[Pi>>2]|0;Ci=a[fn>>2]|0;Bi=(Li|0)==(Ci|0);if(Bi){Hi=a[pn>>2]|0;xi=Hi+Ni|0;Ui=((e+39840|0)+(Di*48|0)|0)+8|0;zi=a[Pn>>2]|0;yn(xi|0,Ui|0,zi|0)|0;qi=a[Pn>>2]|0;Vi=a[xt>>2]|0;ji=Vi+qi|0;a[xt>>2]=ji;Wi=qi<<3;Yi=a[fn>>2]|0;Ki=Yi+Wi|0;a[fn>>2]=Ki;Xi=a[Jt>>2]|0;Zi=Xi+1|0;Ji=Zi&255;a[Jt>>2]=Ji;et=ji}else{et=Ni}Qi=a[pn>>2]|0;$i=Qi+et|0;t[$i>>0]=0;R=a[At>>2]|0;it=R}else{it=Ai}rt=(h|0)<(it|0);l=rt?h:it;tt=h-l|0;nt=it-l|0;a[At>>2]=nt;ot=st>>tt;lt=ot<>2]|0;ut=a[pn>>2]|0;ct=ut+ft|0;ht=t[ct>>0]|0;dt=ht&255;vt=lt|dt;mt=vt&255;t[ct>>0]=mt;wt=a[fn>>2]|0;bt=wt+l|0;a[fn>>2]=bt;_t=(tt|0)>0;if(_t){h=tt}else{break}}pt=a[jn>>2]|0;kt=(pt|0)==0;St=kt&1;gt=a[Cr>>2]|0;yt=St^gt;a[Cr>>2]=yt;Mt=p+-1|0;Ft=(p|0)>1;if(Ft){p=Mt;st=yt}else{break}}return}function Tr(e,r,i,o,s){e=e|0;r=r|0;i=i|0;o=o|0;s=s|0;var l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0;var T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0,X=0;var Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0;var we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0.0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0;var Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0.0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0;var tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0;var gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0;var Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0;var fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0;Ai=c;w=82272+(r<<4)|0;b=a[w>>2]|0;Se=(r|0)!=0;Pe=(i|0)<(o|0);di=Se&Pe;if(!di){l=0;return l|0}je=r>>>0>15;rr=b&65535;hr=(82272+(r<<4)|0)+12|0;gr=a[hr>>2]|0;Lr=(82272+(r<<4)|0)+8|0;Wr=a[Lr>>2]|0;_=e+300|0;T=e+296|0;z=e+52132|0;Q=e+292|0;ue=e+284|0;we=e+24|0;ii=0;hi=i;while(1){be=(s+2304|0)+(hi<<2)|0;_e=a[be>>2]|0;pe=hi+1|0;ke=(s+2304|0)+(pe<<2)|0;ge=a[ke>>2]|0;ye=(_e|0)==0;if(ye){ti=0;oi=0}else{Me=s+(hi<<2)|0;Fe=+f[Me>>2];Oe=Fe<0.0;ai=Oe&1;ti=-1;oi=ai}if(je){Ae=_e>>>0>14;if(Ae){Re=_e<<1;Te=Re+131042|0;Ne=Te&131070;De=oi|Ne;si=De;vi=15;pi=rr}else{si=oi;vi=_e;pi=0}Le=ge>>>0>14;if(Le){Ce=ge+65521|0;Be=si<>2];Ke=Ye<0.0;Ge=Ke&1;ui=Ge|Ve;Xe=ti+-1<<16>>16;ni=Xe;ci=ui;wi=Ei;_i=bi;gi=Si;Fi=Mi}Ze=ie(Fi,wi)|0;Je=Ze+_i|0;Qe=ni<<16>>16;$e=gi&65535;er=$e-Qe|0;ir=gr+Je|0;tr=t[ir>>0]|0;nr=tr&255;ar=nr+Qe|0;or=Wr+(Je<<1)|0;sr=n[or>>1]|0;lr=sr&65535;fr=(ar|0)>0;if(fr){d=ar;while(1){ur=a[_>>2]|0;cr=(ur|0)==0;if(cr){a[_>>2]=8;dr=a[T>>2]|0;vr=dr+1|0;a[T>>2]=vr;mr=a[z>>2]|0;Er=(e+39840|0)+(mr*48|0)|0;wr=a[Er>>2]|0;br=a[Q>>2]|0;_r=(wr|0)==(br|0);if(_r){pr=a[ue>>2]|0;kr=pr+vr|0;Sr=((e+39840|0)+(mr*48|0)|0)+8|0;yr=a[we>>2]|0;yn(kr|0,Sr|0,yr|0)|0;Mr=a[we>>2]|0;Fr=a[T>>2]|0;Or=Fr+Mr|0;a[T>>2]=Or;Ar=Mr<<3;Rr=a[Q>>2]|0;Tr=Rr+Ar|0;a[Q>>2]=Tr;Nr=a[z>>2]|0;Dr=Nr+1|0;Pr=Dr&255;a[z>>2]=Pr;Ir=Or}else{Ir=vr}Cr=a[ue>>2]|0;Br=Cr+Ir|0;t[Br>>0]=0;m=a[_>>2]|0;xr=m}else{xr=ur}Hr=(d|0)<(xr|0);u=Hr?d:xr;Ur=d-u|0;zr=xr-u|0;a[_>>2]=zr;qr=lr>>>Ur;Vr=qr<>2]|0;Yr=a[ue>>2]|0;Kr=Yr+jr|0;Gr=t[Kr>>0]|0;Xr=Gr&255;Zr=Vr|Xr;Jr=Zr&255;t[Kr>>0]=Jr;Qr=a[Q>>2]|0;$r=Qr+u|0;a[Q>>2]=$r;ei=(Ur|0)>0;if(ei){d=Ur}else{break}}}ri=er&65535;p=(ri|0)==0;if(!p){v=ri;while(1){k=a[_>>2]|0;S=(k|0)==0;if(S){a[_>>2]=8;g=a[T>>2]|0;y=g+1|0;a[T>>2]=y;M=a[z>>2]|0;F=(e+39840|0)+(M*48|0)|0;O=a[F>>2]|0;A=a[Q>>2]|0;R=(O|0)==(A|0);if(R){N=a[ue>>2]|0;D=N+y|0;P=((e+39840|0)+(M*48|0)|0)+8|0;L=a[we>>2]|0;yn(D|0,P|0,L|0)|0;C=a[we>>2]|0;B=a[T>>2]|0;I=B+C|0;a[T>>2]=I;H=C<<3;x=a[Q>>2]|0;U=x+H|0;a[Q>>2]=U;q=a[z>>2]|0;V=q+1|0;j=V&255;a[z>>2]=j;K=I}else{K=y}W=a[ue>>2]|0;Y=W+K|0;t[Y>>0]=0;E=a[_>>2]|0;X=E}else{X=k}G=(v|0)<(X|0);h=G?v:X;Z=v-h|0;J=X-h|0;a[_>>2]=J;$=ci>>Z;ee=$<>2]|0;te=a[ue>>2]|0;ne=te+re|0;ae=t[ne>>0]|0;oe=ae&255;se=ee|oe;le=se&255;t[ne>>0]=le;fe=a[Q>>2]|0;ce=fe+h|0;a[Q>>2]=ce;he=(Z|0)>0;if(he){v=Z}else{break}}}de=ri+ii|0;ve=de+ar|0;me=hi+2|0;Ee=(me|0)<(o|0);if(Ee){ii=ve;hi=me}else{l=ve;break}}return l|0}function Nr(e,r){e=e|0;r=r|0;var i=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0.0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0.0;var K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0.0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0.0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0;var Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;var $e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0;Fr=c;u=r+4840|0;h=a[u>>2]|0;D=h+32|0;V=r+4772|0;ee=a[V>>2]|0;ce=r+4776|0;Se=a[ce>>2]|0;Pe=Se-ee|0;je=(Pe|0)>3;if(!je){hr=0;return hr|0}rr=(Pe|0)/4&-1;d=r+(ee<<2)|0;g=(r+2304|0)+(ee<<2)|0;y=(82272+(D<<4)|0)+8|0;M=a[y>>2]|0;F=(82272+(D<<4)|0)+12|0;O=a[F>>2]|0;A=e+300|0;R=e+296|0;T=e+52132|0;N=e+292|0;P=e+284|0;L=e+24|0;dr=0;br=rr;_r=g;yr=d;while(1){C=a[_r>>2]|0;B=(C|0)==0;if(B){vr=0;pr=0}else{I=+f[yr>>2];H=I<0.0;if(H){vr=1;pr=8}else{vr=0;pr=8}}x=_r+4|0;U=a[x>>2]|0;z=(U|0)==0;if(z){mr=vr;kr=pr}else{q=pr|4;j=vr<<1;W=yr+4|0;Y=+f[W>>2];K=Y<0.0;if(K){G=j|1;mr=G;kr=q}else{mr=j;kr=q}}X=_r+8|0;Z=a[X>>2]|0;J=(Z|0)==0;if(J){Er=mr;Sr=kr}else{Q=kr+2|0;$=mr<<1;re=yr+8|0;ie=+f[re>>2];te=ie<0.0;if(te){ne=$|1;Er=ne;Sr=Q}else{Er=$;Sr=Q}}ae=_r+12|0;oe=a[ae>>2]|0;se=(oe|0)==0;if(se){wr=Er;gr=Sr}else{le=Sr+1|0;fe=Er<<1;ue=yr+12|0;he=+f[ue>>2];de=he<0.0;if(de){ve=fe|1;wr=ve;gr=le}else{wr=fe;gr=le}}me=_r+16|0;Ee=yr+16|0;we=M+(gr<<1)|0;be=n[we>>1]|0;_e=be&65535;pe=_e+wr|0;ke=O+gr|0;ge=t[ke>>0]|0;ye=ge<<24>>24==0;if(ye){_=0}else{Me=ge&255;o=Me;while(1){Fe=a[A>>2]|0;Oe=(Fe|0)==0;if(Oe){a[A>>2]=8;Ae=a[R>>2]|0;Re=Ae+1|0;a[R>>2]=Re;Te=a[T>>2]|0;Ne=(e+39840|0)+(Te*48|0)|0;De=a[Ne>>2]|0;Le=a[N>>2]|0;Ce=(De|0)==(Le|0);if(Ce){Be=a[P>>2]|0;Ie=Be+Re|0;He=((e+39840|0)+(Te*48|0)|0)+8|0;xe=a[L>>2]|0;yn(Ie|0,He|0,xe|0)|0;Ue=a[L>>2]|0;ze=a[R>>2]|0;qe=ze+Ue|0;a[R>>2]=qe;Ve=Ue<<3;We=a[N>>2]|0;Ye=We+Ve|0;a[N>>2]=Ye;Ke=a[T>>2]|0;Ge=Ke+1|0;Xe=Ge&255;a[T>>2]=Xe;Qe=qe}else{Qe=Re}Ze=a[P>>2]|0;Je=Ze+Qe|0;t[Je>>0]=0;l=a[A>>2]|0;er=l}else{er=Fe}$e=(o|0)<(er|0);i=$e?o:er;ir=o-i|0;tr=er-i|0;a[A>>2]=tr;nr=pe>>ir;ar=nr<>2]|0;sr=a[P>>2]|0;lr=sr+or|0;fr=t[lr>>0]|0;ur=fr&255;cr=ar|ur;v=cr&255;t[lr>>0]=v;m=a[N>>2]|0;E=m+i|0;a[N>>2]=E;w=(ir|0)>0;if(w){o=ir}else{break}}s=t[ke>>0]|0;_=s}b=_&255;p=b+dr|0;k=br+-1|0;S=(br|0)>1;if(S){dr=p;br=k;_r=me;yr=Ee}else{hr=p;break}}return hr|0}function Dr(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;var o=0,s=0,l=0,h=0.0,v=0,m=0.0,E=0.0,w=0.0,b=0.0,_=0,p=0.0,k=0.0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0;var T=0,N=0,D=0,P=0,L=0.0,C=0,B=0.0,I=0,H=0,x=0,U=0,z=0.0,q=0,V=0,j=0.0,W=0,Y=0,K=0,G=0.0,X=0;var Z=0.0,J=0.0,Q=0.0,$=0,ee=0,re=0,te=0.0,ne=0,ae=0,oe=0.0,se=0,le=0.0,fe=0.0,ue=0.0,ce=0.0,he=0,de=0,ve=0.0,me=0,Ee=0.0;var we=0.0,be=0.0,_e=0.0,pe=0.0,ke=0.0,Se=0,ge=0,ye=0,Me=0.0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0;var Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0.0,Ge=0.0,Xe=0,Ze=0.0,Je=0.0,Qe=0,$e=0,er=0,rr=0,ir=0;var tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0;var yr=0,Mr=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0.0,Pr=0.0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0.0,jr=0.0,Wr=0;var Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,$r=0,ei=0,ri=0.0,ii=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0;var vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0;var Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0;var rt=0,it=0,tt=0,nt=0,at=0.0,ot=0.0,st=0.0,lt=0.0,ft=0.0,ut=0.0,ct=0,ht=0.0,dt=0.0,vt=0.0,mt=0.0,Et=0.0,wt=0.0,bt=0.0,_t=0.0,pt=0.0;var kt=0.0,St=0,gt=0.0,yt=0.0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0.0,Dt=0.0,Pt=0,Lt=0,Ct=0,Bt=0.0,It=0.0,Ht=0.0,xt=0.0,Ut=0.0;var zt=0.0,qt=0.0,Vt=0.0,jt=0,Wt=0,Yt=0.0,Kt=0.0,Gt=0.0,Xt=0.0,Zt=0.0,Jt=0.0,Qt=0.0,$t=0.0,en=0.0,rn=0.0,tn=0,nn=0.0,an=0.0,on=0.0,sn=0.0;var ln=0.0,fn=0.0,un=0.0,cn=0.0,hn=0.0,dn=0,vn=0,mn=0,En=0.0,wn=0.0,bn=0,_n=0,kn=0,Sn=0,gn=0.0,Mn=0.0,Fn=0,On=0,An=0,Rn=0;var Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0;var Jn=0,Qn=0.0,$n=0,ea=0,ra=0,ia=0,ta=0.0,na=0.0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0;var wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0;var Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0;var to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0,ho=0,vo=0,mo=0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0;var yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0,Do=0,Po=0,Lo=0,Co=0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0;var jo=0,Wo=0,Yo=0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0,Qo=0,$o=0,es=0,rs=0,is=0,ts=0,ns=0,as=0,os=0.0,ss=0,ls=0.0,fs=0;var us=0.0,cs=0,hs=0,ds=0.0,vs=0,ms=0,Es=0,ws=0,bs=0,_s=0,ps=0,ks=0,Ss=0,gs=0,ys=0,Ms=0,Fs=0,Os=0,As=0,Rs=0;var Ts=0,Ns=0,Ds=0,Ps=0,Ls=0,Cs=0,Bs=0,Is=0,Hs=0,xs=0,Us=0,zs=0,qs=0,Vs=0,js=0,Ws=0.0,Ys=0.0,Ks=0.0,Gs=0,Xs=0;var Zs=0,Js=0,Qs=0,$s=0,el=0,rl=0.0,il=0,tl=0,nl=0,al=0,ol=0,sl=0,ll=0,fl=0,ul=0,cl=0.0,hl=0.0,dl=0,vl=0,ml=0;var El=0,wl=0,bl=0,_l=0,pl=0.0,kl=0.0,Sl=0.0,gl=0.0,yl=0,Ml=0,Fl=0;Fl=c;c=c+20112|0;bl=Fl+12056|0;_l=Fl+4000|0;ll=Fl+2048|0;fl=Fl+96|0;tl=Fl+88|0;yl=Fl+56|0;dl=Fl+8|0;El=Fl+40|0;wl=Fl+24|0;Ds=Fl;Ns=Fl+16|0;T=dl;N=T;a[N>>2]=1056964608;Hr=T+4|0;jt=Hr;a[jt>>2]=1056964608;a[El>>2]=0|0;a[El+4>>2]=0|0;a[El+8>>2]=0|0;a[El+12>>2]=0|0;a[wl>>2]=0|0;a[wl+4>>2]=0|0;a[wl+8>>2]=0|0;a[wl+12>>2]=0|0;a[tl>>2]=r;Ja=tl+4|0;a[Ja>>2]=i;To=e+4|0;zo=a[To>>2]|0;Qo=(zo|0)==0;if(Qo){fs=e+76|0;ps=a[fs>>2]|0;D=ps*576|0;a[To>>2]=1;pn(bl|0,0,8056)|0;pn(_l|0,0,8056)|0;V=D+862|0;ee=(V|0)>0;if(ee){he=e+72|0;il=0;al=0;while(1){We=(il|0)<(D|0);if(We){ir=bl+(il<<2)|0;f[ir>>2]=0.0;dr=a[he>>2]|0;Mr=(dr|0)==2;if(Mr){xr=_l+(il<<2)|0;f[xr>>2]=0.0;ol=al}else{ol=al}}else{Zr=r+(al<<2)|0;fi=a[Zr>>2]|0;pi=bl+(il<<2)|0;a[pi>>2]=fi;Di=a[he>>2]|0;Vi=(Di|0)==2;if(Vi){et=i+(al<<2)|0;ct=a[et>>2]|0;St=_l+(il<<2)|0;a[St>>2]=ct}Pt=al+1|0;ol=Pt}Wt=il+1|0;js=(Wt|0)==(V|0);if(js){break}else{il=Wt;al=ol}}}ge=(ps|0)>0;if(ge){Le=e+72|0;g=a[Le>>2]|0;tn=g;Eo=ps;Gs=0;while(1){vn=(tn|0)>0;if(vn){Ps=0;while(1){On=(((e+304|0)+(Gs*10504|0)|0)+(Ps*5252|0)|0)+4788|0;a[On>>2]=2;Hn=Ps+1|0;Xn=a[Le>>2]|0;sa=(Hn|0)<(Xn|0);if(sa){Ps=Hn}else{_=Xn;break}}O=a[fs>>2]|0;Ua=O;wo=_}else{Ua=Eo;wo=tn}ba=Gs+1|0;Ra=(ba|0)<(Ua|0);if(Ra){tn=wo;Eo=Ua;Gs=ba}else{break}}}Qr(e,bl,_l)}Qa=e+84752|0;a[Qa>>2]=0;fo=e+39832|0;ko=a[fo>>2]|0;go=e+39836|0;yo=a[go>>2]|0;Mo=yo-ko|0;a[go>>2]=Mo;Fo=(Mo|0)<0;if(Fo){Oo=e+64|0;Ao=a[Oo>>2]|0;Ro=Ao+Mo|0;a[go>>2]=Ro;a[Qa>>2]=1}No=Ds;Do=No;a[Do>>2]=0;Po=No+4|0;Lo=Po;a[Lo>>2]=0;Co=e+76|0;Bo=a[Co>>2]|0;Io=(Bo|0)>0;e:do{if(Io){Ho=e+72|0;xo=e+180|0;Zs=0;while(1){Uo=a[Ho>>2]|0;qo=(Uo|0)>0;if(qo){Vo=Zs*576|0;jo=Vo+304|0;Cs=0;while(1){Wo=tl+(Cs<<2)|0;Yo=a[Wo>>2]|0;Ko=Yo+(jo<<2)|0;Go=Ds+(Cs<<2)|0;a[Go>>2]=Ko;Xo=Cs+1|0;Zo=(Xo|0)<(Uo|0);if(Zo){Cs=Xo}else{break}}}Jo=El+(Zs<<3)|0;$o=wl+(Zs<<3)|0;es=yl+(Zs<<4)|0;rs=ti(e,Ds,Zs,ll,fl,Jo,$o,es,Ns)|0;is=(rs|0)==0;if(!is){s=-4;break}ts=a[xo>>2]|0;ns=(ts|0)==1;if(ns){as=(yl+(Zs<<4)|0)+8|0;os=+f[as>>2];ss=(yl+(Zs<<4)|0)+12|0;ls=+f[ss>>2];us=ls+os;cs=dl+(Zs<<2)|0;f[cs>>2]=us;hs=us>0.0;if(hs){ds=ls/us;f[cs>>2]=ds}}vs=a[Ho>>2]|0;ms=(vs|0)>0;if(ms){Bs=0;while(1){Es=Ns+(Bs<<2)|0;ws=a[Es>>2]|0;bs=(((e+304|0)+(Zs*10504|0)|0)+(Bs*5252|0)|0)+4788|0;a[bs>>2]=ws;_s=(((e+304|0)+(Zs*10504|0)|0)+(Bs*5252|0)|0)+4792|0;a[_s>>2]=0;ks=Bs+1|0;Ss=(ks|0)<(vs|0);if(Ss){Bs=ks}else{break}}}gs=Zs+1|0;ys=a[Co>>2]|0;Ms=(gs|0)<(ys|0);if(Ms){Zs=gs}else{W=ys;break e}}c=Fl;return s|0}else{W=Bo}}while(0);Fs=e+85796|0;Os=a[Fs>>2]|0;As=a[Os>>2]|0;Rs=(As|0)==0;do{if(Rs){Ts=Os+8|0;f[Ts>>2]=1.0}else{P=e+27804|0;L=+f[P>>2];C=e+27812|0;B=+f[C>>2];I=e+72|0;H=a[I>>2]|0;x=(H|0)==2;if(x){U=e+27808|0;z=+f[U>>2];q=e+27816|0;j=+f[q>>2];p=z;k=j}else{p=L;k=B}rl=B+k;cl=L+p;Y=(W|0)==2;K=cl>rl;G=K?cl:rl;hl=Y?G:cl;X=Os+4|0;Z=+f[X>>2];J=Z*0.5;Q=J*hl;$=Q>0.03125;if($){re=Os+8|0;te=+f[re>>2];ne=!(te>=1.0);if(ne){ae=Os+12|0;oe=+f[ae>>2];se=te>2]=oe;F=ae}else{F=ae}}else{f[re>>2]=1.0;y=Os+12|0;F=y}f[F>>2]=1.0;break}le=Q;fe=le*31.98;ue=fe+6.2500000000000001E-4;ce=ue;de=Os+8|0;ve=+f[de>>2];me=!(ve>=ce);do{if(me){ye=Os+12|0;Me=+f[ye>>2];Fe=!(Me>=ce);if(!Fe){f[de>>2]=ce;break}Oe=ve>2]=Me}}else{Ee=ce;we=Ee*0.074999999999999997;be=we+0.92500000000000004;_e=ve;pe=_e*be;ke=pe;f[de>>2]=ke;Se=ke>2]=ce}}}while(0);Ae=Os+12|0;f[Ae>>2]=ce}}while(0);Re=a[tl>>2]|0;Qr(e,Re,i);Te=e+84756|0;a[Te>>2]=0;Ne=e+80|0;De=a[Ne>>2]|0;Pe=(De|0)==0;do{if(Pe){Ce=e+180|0;Be=a[Ce>>2]|0;Ie=(Be|0)==1;if(Ie){He=a[Co>>2]|0;xe=(He|0)>0;if(xe){Ue=e+72|0;ze=a[Ue>>2]|0;qe=(ze|0)>0;if(qe){Js=0;pl=0.0;Sl=0.0;while(1){Is=0;kl=pl;gl=Sl;while(1){Ye=(wl+(Js<<3)|0)+(Is<<2)|0;Ke=+f[Ye>>2];Ge=Ke+gl;Xe=(El+(Js<<3)|0)+(Is<<2)|0;Ze=+f[Xe>>2];Je=Ze+kl;Qe=Is+1|0;$e=(Qe|0)<(ze|0);if($e){Is=Qe;kl=Je;gl=Ge}else{m=Ge;w=Je;break}}Ve=Js+1|0;je=(Ve|0)<(He|0);if(je){Js=Ve;pl=w;Sl=m}else{E=m;b=w;break}}er=!(E<=b);if(er){vr=0;break}}}rr=He+-1|0;tr=e+5092|0;nr=a[tr>>2]|0;ar=e+10344|0;or=a[ar>>2]|0;sr=(nr|0)==(or|0);if(sr){lr=((e+304|0)+(rr*10504|0)|0)+4788|0;fr=a[lr>>2]|0;ur=((e+304|0)+(rr*10504|0)|0)+10040|0;cr=a[ur>>2]|0;hr=(fr|0)==(cr|0);if(hr){a[Te>>2]=2;vr=1}else{vr=0}}else{vr=0}}else{vr=0}}else{a[Te>>2]=2;vr=1}}while(0);ul=vr?fl:ll;mr=vr?wl:El;Er=e+140|0;br=a[Er>>2]|0;_r=(br|0)==0;if(!_r){pr=e+85804|0;kr=a[pr>>2]|0;Sr=(kr|0)==(0|0);if(!Sr){gr=a[Co>>2]|0;yr=(gr|0)>0;if(yr){Ar=e+72|0;S=a[Ar>>2]|0;Rr=S;bo=gr;Qs=0;while(1){Tr=(Rr|0)>0;if(Tr){Nr=dl+(Qs<<2)|0;Dr=+f[Nr>>2];Pr=Dr;Hs=0;while(1){Lr=a[pr>>2]|0;Cr=(Lr+90904|0)+(Qs<<3)|0;u[Cr>>3]=0.0;Br=(Lr+90920|0)+(Qs<<3)|0;u[Br>>3]=Pr;Ir=(((e+304|0)+(Qs*10504|0)|0)+(Hs*5252|0)|0)+4788|0;Ur=a[Ir>>2]|0;zr=((Lr+203288|0)+(Qs<<3)|0)+(Hs<<2)|0;a[zr>>2]=Ur;qr=(mr+(Qs<<3)|0)+(Hs<<2)|0;Vr=+f[qr>>2];jr=Vr;Wr=((Lr+189240|0)+(Qs<<5)|0)+(Hs<<3)|0;u[Wr>>3]=jr;Yr=((Lr+54040|0)+(Qs*9216|0)|0)+(Hs*4608|0)|0;Kr=((e+304|0)+(Qs*10504|0)|0)+(Hs*5252|0)|0;yn(Yr|0,Kr|0,2304)|0;Gr=a[Te>>2]|0;Xr=(Gr|0)==2;if(Xr){Jr=Hs+2|0;$r=a[pr>>2]|0;ei=(($r+197144|0)+(Qs<<5)|0)+(Jr<<3)|0;ri=+u[ei>>3];ii=(($r+197144|0)+(Qs<<5)|0)+(Hs<<3)|0;u[ii>>3]=ri;ni=(($r+123704|0)+(Qs<<15)|0)+(Hs<<13)|0;ai=(($r+123704|0)+(Qs<<15)|0)+(Jr<<13)|0;yn(ni|0,ai|0,8192)|0}oi=Hs+1|0;si=a[Ar>>2]|0;li=(oi|0)<(si|0);if(li){Hs=oi}else{v=si;break}}R=a[Co>>2]|0;hi=R;_o=v}else{hi=bo;_o=Rr}ui=Qs+1|0;ci=(ui|0)<(hi|0);if(ci){Rr=_o;bo=hi;Qs=ui}else{break}}}}}di=e+104|0;vi=a[di>>2]|0;if((vi|0)==3|(vi|0)==0){mi=e+39760|0;Ei=a[mi>>2]|0;wi=e+39756|0;a[wi>>2]=Ei;bi=e+39764|0;_i=a[bi>>2]|0;a[mi>>2]=_i;ki=e+39768|0;Si=a[ki>>2]|0;a[bi>>2]=Si;gi=e+39772|0;yi=a[gi>>2]|0;a[ki>>2]=yi;Fi=e+39776|0;Oi=a[Fi>>2]|0;a[gi>>2]=Oi;Ai=e+39780|0;Ri=a[Ai>>2]|0;a[Fi>>2]=Ri;Ti=e+39784|0;Ni=a[Ti>>2]|0;a[Ai>>2]=Ni;Pi=e+39788|0;Li=a[Pi>>2]|0;a[Ti>>2]=Li;Ci=e+39792|0;Bi=a[Ci>>2]|0;a[Pi>>2]=Bi;Ii=e+39796|0;Hi=a[Ii>>2]|0;a[Ci>>2]=Hi;xi=e+39800|0;Ui=a[xi>>2]|0;a[Ii>>2]=Ui;zi=e+39804|0;qi=a[zi>>2]|0;a[xi>>2]=qi;ji=e+39808|0;Wi=a[ji>>2]|0;a[zi>>2]=Wi;Yi=e+39812|0;Ki=a[Yi>>2]|0;a[ji>>2]=Ki;Gi=e+39816|0;Xi=a[Gi>>2]|0;a[Yi>>2]=Xi;Zi=e+39820|0;Ji=a[Zi>>2]|0;a[Gi>>2]=Ji;Qi=e+39824|0;$i=a[Qi>>2]|0;a[Zi>>2]=$i;rt=e+39828|0;it=a[rt>>2]|0;a[Qi>>2]=it;tt=a[Co>>2]|0;nt=(tt|0)>0;at=(a[d>>2]=Hi,+f[d>>2]);ot=(a[d>>2]=Ei,+f[d>>2]);st=(a[d>>2]=_i,+f[d>>2]);lt=(a[d>>2]=it,+f[d>>2]);ft=(a[d>>2]=Si,+f[d>>2]);ut=(a[d>>2]=$i,+f[d>>2]);ht=(a[d>>2]=yi,+f[d>>2]);dt=(a[d>>2]=Ji,+f[d>>2]);vt=(a[d>>2]=Oi,+f[d>>2]);mt=(a[d>>2]=Xi,+f[d>>2]);Et=(a[d>>2]=Ri,+f[d>>2]);wt=(a[d>>2]=Ki,+f[d>>2]);bt=(a[d>>2]=Ni,+f[d>>2]);_t=(a[d>>2]=Wi,+f[d>>2]);pt=(a[d>>2]=Li,+f[d>>2]);kt=(a[d>>2]=qi,+f[d>>2]);gt=(a[d>>2]=Bi,+f[d>>2]);yt=(a[d>>2]=Ui,+f[d>>2]);Mt=e+72|0;Ft=a[Mt>>2]|0;Ot=(Ft|0)>0;vl=nt&Ot;if(vl){Ys=0.0;$s=0;while(1){xs=0;Ks=Ys;while(1){Tt=(mr+($s<<3)|0)+(xs<<2)|0;Nt=+f[Tt>>2];Dt=Nt+Ks;Lt=xs+1|0;Ct=(Lt|0)<(Ft|0);if(Ct){xs=Lt;Ks=Dt}else{h=Dt;break}}At=$s+1|0;Rt=(At|0)<(tt|0);if(Rt){Ys=h;$s=At}else{Ws=h;break}}}else{Ws=0.0}f[rt>>2]=Ws;Bt=Ws+ot;It=Bt*-0.10394349694252014;Ht=It+at;xt=lt+st;Ut=xt*-0.18920649588108063;zt=Ut+Ht;qt=ut+ft;Vt=qt*-0.21623599529266357;Yt=Vt+zt;Kt=dt+ht;Gt=Kt*-0.15591500699520111;Xt=Gt+Yt;Zt=mt+vt;Jt=Zt*3.8980449615198001E-17;Qt=Jt+Xt;$t=wt+Et;en=$t*0.23387250304222107;rn=en+Qt;nn=_t+bt;an=nn*0.50454998016357422;on=an+rn;sn=kt+pt;ln=sn*0.75682497024536133;fn=ln+on;un=yt+gt;cn=un*0.93549001216888427;hn=cn+fn;dn=tt*3350|0;mn=ie(dn,Ft)|0;En=+(mn|0);wn=En/hn;bn=(Ft|0)>0;ml=nt&bn;if(ml){el=0;while(1){Us=0;while(1){Sn=(mr+(el<<3)|0)+(Us<<2)|0;gn=+f[Sn>>2];Mn=gn*wn;f[Sn>>2]=Mn;Fn=Us+1|0;An=(Fn|0)<(Ft|0);if(An){Us=Fn}else{break}}_n=el+1|0;kn=(_n|0)<(tt|0);if(kn){el=_n}else{break}}}}Rn=e+85812|0;Tn=a[Rn>>2]|0;Zn[Tn&7](e,mr,dl,ul);Fr(e)|0;Nn=Or(e,t,n,1)|0;Dn=e+156|0;Pn=a[Dn>>2]|0;Ln=(Pn|0)==0;if(!Ln){wr(e)}Cn=a[Er>>2]|0;Bn=(Cn|0)==0;if(!Bn){In=e+85804|0;xn=a[In>>2]|0;Un=(xn|0)==(0|0);if(!Un){zn=a[Co>>2]|0;qn=zn*576|0;Vn=e+72|0;jn=a[Vn>>2]|0;Wn=(jn|0)>0;if(Wn){zs=0;while(1){nl=0;while(1){Gn=nl+qn|0;Jn=((xn+24|0)+(zs*12800|0)|0)+(Gn<<3)|0;Qn=+u[Jn>>3];$n=((xn+24|0)+(zs*12800|0)|0)+(nl<<3)|0;u[$n>>3]=Qn;ea=nl+1|0;qs=(ea|0)==272;if(qs){break}else{nl=ea}}Yn=tl+(zs<<2)|0;Kn=a[Yn>>2]|0;sl=272;while(1){ra=sl+-272|0;ia=Kn+(ra<<2)|0;ta=+f[ia>>2];na=ta;aa=((xn+24|0)+(zs*12800|0)|0)+(sl<<3)|0;u[aa>>3]=na;oa=sl+1|0;Vs=(oa|0)==1600;if(Vs){break}else{sl=oa}}la=zs+1|0;fa=(la|0)<(jn|0);if(fa){zs=la}else{break}}}ua=e+84908|0;f[ua>>2]=1.0;Mi(e,ul)}}ca=e+84748|0;ha=a[ca>>2]|0;da=ha+1|0;a[ca>>2]=da;va=e+84744|0;ma=a[va>>2]|0;Ea=((e+84040|0)+(ma*20|0)|0)+16|0;wa=a[Ea>>2]|0;_a=wa+1|0;a[Ea>>2]=_a;pa=e+84356|0;ka=a[pa>>2]|0;Sa=ka+1|0;a[pa>>2]=Sa;ga=e+72|0;ya=a[ga>>2]|0;Ma=(ya|0)==2;if(Ma){Fa=a[Te>>2]|0;Oa=a[va>>2]|0;Aa=((e+84040|0)+(Oa*20|0)|0)+(Fa<<2)|0;Ta=a[Aa>>2]|0;Na=Ta+1|0;a[Aa>>2]=Na;Da=a[Te>>2]|0;Pa=(e+84340|0)+(Da<<2)|0;La=a[Pa>>2]|0;Ca=La+1|0;a[Pa>>2]=Ca}Ba=a[Co>>2]|0;Ia=(Ba|0)>0;if(!Ia){s=Nn;c=Fl;return s|0}Ha=e+84740|0;M=a[ga>>2]|0;xa=M;po=Ba;Xs=0;while(1){za=(xa|0)>0;if(za){Ls=0;while(1){qa=(((e+304|0)+(Xs*10504|0)|0)+(Ls*5252|0)|0)+4788|0;Va=a[qa>>2]|0;ja=(((e+304|0)+(Xs*10504|0)|0)+(Ls*5252|0)|0)+4792|0;Wa=a[ja>>2]|0;Ya=(Wa|0)==0;o=Ya?Va:4;Ka=a[va>>2]|0;Ga=((e+84360|0)+(Ka*24|0)|0)+(o<<2)|0;Xa=a[Ga>>2]|0;Za=Xa+1|0;a[Ga>>2]=Za;$a=a[va>>2]|0;eo=((e+84360|0)+($a*24|0)|0)+20|0;ro=a[eo>>2]|0;io=ro+1|0;a[eo>>2]=io;to=(e+84720|0)+(o<<2)|0;no=a[to>>2]|0;ao=no+1|0;a[to>>2]=ao;oo=a[Ha>>2]|0;so=oo+1|0;a[Ha>>2]=so;lo=Ls+1|0;uo=a[ga>>2]|0;co=(lo|0)<(uo|0);if(co){Ls=lo}else{l=uo;break}}A=a[Co>>2]|0;mo=A;So=l}else{mo=po;So=xa}ho=Xs+1|0;vo=(ho|0)<(mo|0);if(vo){xa=So;po=mo;Xs=ho}else{s=Nn;break}}c=Fl;return s|0}function Pr(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,u=0.0,h=0,d=0,v=0.0,m=0.0,E=0,w=0,b=0.0,_=0,p=0,k=0,S=0.0,g=0.0,y=0.0,M=0.0,F=0,O=0;var A=0.0,R=0,T=0,N=0.0,D=0,P=0.0,L=0,C=0,B=0.0,I=0,H=0,x=0.0,U=0.0,z=0.0,q=0.0,V=0,j=0,W=0.0,Y=0.0,K=0;var G=0.0,X=0,Z=0.0,J=0,Q=0,$=0,ee=0,re=0.0,te=0,ne=0,ae=0.0,oe=0.0,se=0,le=0,fe=0.0,ue=0,ce=0,he=0,de=0.0,ve=0.0;var me=0.0,Ee=0.0,we=0,be=0,_e=0.0,pe=0,ke=0,Se=0.0,ge=0,ye=0.0,Me=0,Fe=0,Oe=0.0,Ae=0,Re=0,Te=0.0,Ne=0.0,De=0.0,Pe=0.0,Le=0;var Ce=0.0,Be=0,Ie=0.0,He=0,xe=0.0,Ue=0,ze=0.0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0;var rr=0;rr=c;s=n+(i<<2)|0;l=e+85820|0;Ke=0;Xe=r;while(1){k=(r+(Ke<<10)|0)+512|0;D=Ke+1|0;Qe=ie(D,12582912)|0;V=Qe>>16;o=a[s>>2]|0;Ze=31;$e=k;while(1){ee=Ze<<2;he=1720+ee|0;ge=t[he>>0]|0;Le=ge&255;We=1848+(Le<<2)|0;u=+f[We>>2];h=Le+V|0;d=o+(h<<2)|0;v=+f[d>>2];m=v*u;E=127-Le|0;w=1848+(E<<2)|0;b=+f[w>>2];_=h+128|0;p=o+(_<<2)|0;S=+f[p>>2];g=S*b;y=m-g;M=g+m;F=Le+64|0;O=1848+(F<<2)|0;A=+f[O>>2];R=h+64|0;T=o+(R<<2)|0;N=+f[T>>2];P=N*A;L=63-Le|0;C=1848+(L<<2)|0;B=+f[C>>2];I=h+192|0;H=o+(I<<2)|0;x=+f[H>>2];U=x*B;z=P-U;q=U+P;j=$e+-16|0;W=q+M;f[j>>2]=W;Y=M-q;K=$e+-8|0;f[K>>2]=Y;G=z+y;X=$e+-12|0;f[X>>2]=G;Z=y-z;J=$e+-4|0;f[J>>2]=Z;Q=Le+1|0;$=1848+(Q<<2)|0;re=+f[$>>2];te=h+1|0;ne=o+(te<<2)|0;ae=+f[ne>>2];oe=ae*re;se=126-Le|0;le=1848+(se<<2)|0;fe=+f[le>>2];ue=h+129|0;ce=o+(ue<<2)|0;de=+f[ce>>2];ve=de*fe;me=oe-ve;Ee=ve+oe;we=Le+65|0;be=1848+(we<<2)|0;_e=+f[be>>2];pe=h+65|0;ke=o+(pe<<2)|0;Se=+f[ke>>2];ye=Se*_e;Me=62-Le|0;Fe=1848+(Me<<2)|0;Oe=+f[Fe>>2];Ae=h+193|0;Re=o+(Ae<<2)|0;Te=+f[Re>>2];Ne=Te*Oe;De=ye-Ne;Pe=Ne+ye;Ce=Pe+Ee;Be=$e+496|0;f[Be>>2]=Ce;Ie=Ee-Pe;He=$e+504|0;f[He>>2]=Ie;xe=De+me;Ue=$e+500|0;f[Ue>>2]=xe;ze=me-De;qe=$e+508|0;f[qe>>2]=ze;Ve=Ze+-1|0;je=(Ze|0)>0;if(je){Ze=Ve;$e=j}else{break}}Ye=a[l>>2]|0;Gn[Ye&3](Xe,128);Je=Xe+1024|0;Ge=(D|0)==3;if(Ge){break}else{Ke=D;Xe=Je}}return}function Lr(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,u=0,h=0,d=0,v=0.0,m=0,E=0.0,w=0.0,b=0.0,_=0.0,p=0,k=0,S=0,g=0.0,y=0,M=0.0,F=0.0,O=0;var A=0,R=0.0,T=0,N=0.0,D=0.0,P=0,L=0.0,C=0.0,B=0,I=0.0,H=0.0,x=0,U=0.0,z=0,q=0.0,V=0,j=0,W=0,Y=0,K=0.0;var G=0,X=0.0,Z=0.0,J=0,Q=0,$=0.0,ee=0,re=0,ie=0.0,te=0.0,ne=0.0,ae=0.0,oe=0,se=0,le=0.0,fe=0,ue=0.0,ce=0.0,he=0.0,de=0;var ve=0,me=0.0,Ee=0,we=0.0,be=0.0,_e=0.0,pe=0.0,ke=0.0,Se=0,ge=0,ye=0.0,Me=0,Fe=0.0,Oe=0,Ae=0.0,Re=0,Te=0,Ne=0,De=0,Pe=0;var Le=0.0,Ce=0.0,Be=0,Ie=0,He=0;He=c;l=r+2048|0;u=n+(i<<2)|0;s=a[u>>2]|0;o=l;Be=127;while(1){S=1720+Be|0;P=t[S>>0]|0;j=P&255;re=2360+(j<<2)|0;he=+f[re>>2];ge=s+(j<<2)|0;Le=+f[ge>>2];Ce=Le*he;h=j|512;d=2360+(h<<2)|0;v=+f[d>>2];m=s+(h<<2)|0;E=+f[m>>2];w=E*v;b=Ce-w;_=w+Ce;p=j|256;k=2360+(p<<2)|0;g=+f[k>>2];y=s+(p<<2)|0;M=+f[y>>2];F=M*g;O=j|768;A=2360+(O<<2)|0;R=+f[A>>2];T=s+(O<<2)|0;N=+f[T>>2];D=N*R;L=F-D;C=D+F;B=o+-16|0;I=C+_;f[B>>2]=I;H=_-C;x=o+-8|0;f[x>>2]=H;U=L+b;z=o+-12|0;f[z>>2]=U;q=b-L;V=o+-4|0;f[V>>2]=q;W=j+1|0;Y=2360+(W<<2)|0;K=+f[Y>>2];G=s+(W<<2)|0;X=+f[G>>2];Z=X*K;J=j+513|0;Q=2360+(J<<2)|0;$=+f[Q>>2];ee=s+(J<<2)|0;ie=+f[ee>>2];te=ie*$;ne=Z-te;ae=te+Z;oe=j+257|0;se=2360+(oe<<2)|0;le=+f[se>>2];fe=s+(oe<<2)|0;ue=+f[fe>>2];ce=ue*le;de=j+769|0;ve=2360+(de<<2)|0;me=+f[ve>>2];Ee=s+(de<<2)|0;we=+f[Ee>>2];be=we*me;_e=ce-be;pe=be+ce;ke=pe+ae;Se=o+2032|0;f[Se>>2]=ke;ye=ae-pe;Me=o+2040|0;f[Me>>2]=ye;Fe=_e+ne;Oe=o+2036|0;f[Oe>>2]=Fe;Ae=ne-_e;Re=o+2044|0;f[Re>>2]=Ae;Te=Be+-1|0;Ne=(Be|0)>0;if(Ne){o=B;Be=Te}else{break}}De=e+85820|0;Pe=a[De>>2]|0;Gn[Pe&3](r,512);return}function Cr(e){e=e|0;var r=0.0,i=0.0,t=0.0,n=0,o=0,s=0.0,l=0.0,u=0.0,h=0.0,d=0.0,v=0.0,m=0.0,E=0.0,w=0,b=0,_=0,p=0.0,k=0.0,S=0.0,g=0.0;var y=0.0,M=0.0,F=0.0,O=0,A=0,R=0,T=0,N=0,D=0;D=c;R=0;while(1){r=+(R|0);i=r+0.5;E=i*0.0061359231515425647;p=+Y(+E);k=p*0.5;S=0.41999999999999998-k;g=i*0.012271846303085129;y=+Y(+g);M=y*0.080000000000000002;F=S+M;t=F;n=2360+(R<<2)|0;f[n>>2]=t;o=R+1|0;A=(o|0)==1024;if(A){T=0;break}else{R=o}}while(1){s=+(T|0);l=s+0.5;u=l*0.024543692606170259;h=+Y(+u);d=1.0-h;v=d*0.5;m=v;w=1848+(T<<2)|0;f[w>>2]=m;b=T+1|0;O=(b|0)==128;if(O){break}else{T=b}}_=e+85820|0;a[_>>2]=1;return}function Br(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,a=0.0,o=0.0,s=0.0,l=0.0,u=0.0,h=0.0,d=0.0,v=0.0,m=0.0,E=0,w=0,b=0.0,_=0,p=0.0,k=0.0,S=0.0,g=0.0;var y=0.0,M=0.0,F=0.0,O=0.0,A=0,R=0,T=0,N=0,D=0,P=0.0,L=0,C=0.0,B=0.0,I=0.0,H=0.0,x=0.0,U=0,z=0.0,q=0.0,V=0.0;var j=0,W=0.0,Y=0.0,K=0.0,G=0,X=0.0,Z=0.0,J=0,Q=0.0,$=0.0,ee=0,re=0.0,ie=0.0,te=0.0,ne=0.0,ae=0.0,oe=0.0,se=0.0,le=0,fe=0.0;var ue=0,ce=0,he=0,de=0,ve=0,me=0.0,Ee=0.0,we=0.0,be=0.0,_e=0,pe=0.0,ke=0.0,Se=0,ge=0,ye=0,Me=0.0,Fe=0.0,Oe=0,Ae=0.0,Re=0.0;var Te=0,Ne=0.0,De=0.0,Pe=0.0,Le=0.0,Ce=0.0,Be=0.0,Ie=0.0,He=0.0,xe=0.0,Ue=0.0,ze=0.0,qe=0,Ve=0.0,je=0.0,We=0,Ye=0.0,Ke=0.0,Ge=0.0,Xe=0.0;var Ze=0.0,Je=0.0,Qe=0,$e=0,er=0.0,rr=0.0,ir=0.0,tr=0,nr=0.0,ar=0.0,or=0.0,sr=0.0,lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0.0,dr=0.0,vr=0.0,mr=0.0;var Er=0.0,wr=0.0,br=0.0,_r=0.0,pr=0.0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0.0,Ar=0,Rr=0,Tr=0;Tr=c;t=r<<1;n=e+(t<<2)|0;Fr=4;Ar=6456;while(1){U=Fr>>1;J=Fr<<1;le=Fr*3|0;_e=Fr<<2;Te=e+(U<<2)|0;kr=e;gr=Te;while(1){ze=+f[kr>>2];Qe=kr+(Fr<<2)|0;fr=+f[Qe>>2];a=ze-fr;b=fr+ze;R=kr+(J<<2)|0;P=+f[R>>2];L=kr+(le<<2)|0;C=+f[L>>2];B=P-C;I=C+P;H=b-I;f[R>>2]=H;x=I+b;f[kr>>2]=x;z=a-B;f[L>>2]=z;q=B+a;f[Qe>>2]=q;V=+f[gr>>2];j=gr+(Fr<<2)|0;W=+f[j>>2];Y=V-W;K=W+V;G=gr+(le<<2)|0;X=+f[G>>2];Z=X;Q=Z*1.4142135623730951;$=Q;ee=gr+(J<<2)|0;re=+f[ee>>2];ie=re;te=ie*1.4142135623730951;ne=te;ae=K-ne;f[ee>>2]=ae;oe=ne+K;f[gr>>2]=oe;se=Y-$;f[G>>2]=se;fe=$+Y;f[j>>2]=fe;ue=gr+(_e<<2)|0;ce=kr+(_e<<2)|0;he=ce>>>0>>0;if(he){kr=ce;gr=ue}else{break}}de=Ar+4|0;ve=(Fr|0)>2;if(ve){me=+f[de>>2];Ee=+f[Ar>>2];pr=Ee;Mr=1;Or=me;while(1){we=Or*2.0;be=we*Or;pe=1.0-be;ke=we*pr;Se=e+(Mr<<2)|0;i=Fr-Mr|0;ge=e+(i<<2)|0;Sr=Se;yr=ge;while(1){ye=Sr+(Fr<<2)|0;Me=+f[ye>>2];Fe=Me*ke;Oe=yr+(Fr<<2)|0;Ae=+f[Oe>>2];Re=Ae*pe;Ne=Fe-Re;De=Me*pe;Pe=Ae*ke;Le=Pe+De;Ce=+f[Sr>>2];Be=Ce-Le;Ie=Le+Ce;He=+f[yr>>2];xe=He-Ne;Ue=He+Ne;qe=Sr+(le<<2)|0;Ve=+f[qe>>2];je=Ve*ke;We=yr+(le<<2)|0;Ye=+f[We>>2];Ke=Ye*pe;Ge=je-Ke;Xe=Ve*pe;Ze=Ye*ke;Je=Ze+Xe;$e=Sr+(J<<2)|0;er=+f[$e>>2];rr=er-Je;ir=Je+er;tr=yr+(J<<2)|0;nr=+f[tr>>2];ar=nr-Ge;or=nr+Ge;sr=ir*Or;lr=ar*pr;ur=sr-lr;cr=ir*pr;hr=ar*Or;dr=cr+hr;vr=Ie-dr;f[$e>>2]=vr;mr=dr+Ie;f[Sr>>2]=mr;Er=xe-ur;f[We>>2]=Er;wr=ur+xe;f[Oe>>2]=wr;br=or*pr;_r=rr*Or;o=br-_r;s=or*Or;l=rr*pr;u=s+l;h=Ue-u;f[tr>>2]=h;d=u+Ue;f[yr>>2]=d;v=Be-o;f[qe>>2]=v;m=o+Be;f[ye>>2]=m;E=yr+(_e<<2)|0;w=Sr+(_e<<2)|0;_=w>>>0>>0;if(_){Sr=w;yr=E}else{break}}p=+f[Ar>>2];k=p*pr;S=+f[de>>2];g=S*Or;y=k-g;M=S*pr;F=p*Or;O=M+F;A=Mr+1|0;T=(A|0)<(U|0);if(T){pr=y;Mr=A;Or=O}else{break}}}N=Ar+8|0;D=(_e|0)<(t|0);if(D){Fr=_e;Ar=N}else{break}}return}function Ir(e,r,i){e=e|0;r=r|0;i=i|0;var o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0;var K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0;var Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;var $e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0;var xr=0,Ur=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0;var oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0;var Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0;var Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0;var ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0;var Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0;var Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,_n=0;var Sn=0,gn=0,yn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0;var qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0;var la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0;var Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0;var Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0,ho=0,vo=0;var mo=0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0,Do=0,Po=0,Lo=0;var Co=0.0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0.0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0,Qo=0,$o=0,es=0;var rs=0,is=0,ts=0,ns=0,as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0,Es=0,ws=0,bs=0,_s=0,ps=0;var ks=0,Ss=0,gs=0,ys=0,Ms=0,Fs=0.0,Os=0,As=0,Rs=0,Ts=0,Ns=0,Ds=0,Ps=0,Ls=0,Cs=0,Bs=0,Is=0.0,Hs=0,xs=0,Us=0;var zs=0,qs=0,Vs=0,js=0,Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0,Qs=0,$s=0,el=0,rl=0,il=0,tl=0,nl=0,al=0,ol=0;var sl=0,ll=0,fl=0,ul=0,cl=0,hl=0,dl=0,vl=0,ml=0,El=0,wl=0,bl=0,_l=0,pl=0,kl=0,Sl=0,gl=0,yl=0,Ml=0,Fl=0;var Ol=0,Al=0,Rl=0,Tl=0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0,Hl=0,xl=0,Ul=0,zl=0,ql=0,Vl=0,jl=0,Wl=0,Yl=0;var Kl=0,Gl=0,Xl=0,Zl=0,Jl=0,Ql=0,$l=0,ef=0,rf=0,tf=0,nf=0,af=0,of=0,sf=0,lf=0,ff=0,uf=0,cf=0,hf=0,df=0;var vf=0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0,Ff=0,Of=0,Af=0,Rf=0,Tf=0,Nf=0,Df=0,Pf=0;var Lf=0,Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0,Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0,Xf=0,Zf=0,Jf=0,Qf=0,$f=0;var eu=0,ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0,du=0,vu=0,mu=0,Eu=0,wu=0,bu=0,_u=0;var pu=0,ku=0,Su=0,gu=0,yu=0,Mu=0,Fu=0,Ou=0,Au=0,Ru=0,Tu=0,Nu=0,Du=0,Pu=0,Lu=0,Cu=0,Bu=0,Iu=0,Hu=0,xu=0;var Uu=0,zu=0,qu=0,Vu=0,ju=0,Wu=0,Yu=0,Ku=0,Gu=0,Xu=0,Zu=0,Ju=0,Qu=0,$u=0,ec=0,rc=0,ic=0,tc=0,nc=0,ac=0;var oc=0,sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0,mc=0,Ec=0,wc=0,bc=0,_c=0,pc=0,kc=0,Sc=0,gc=0,yc=0,Mc=0;var Fc=0,Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0,Ic=0,Hc=0,xc=0,Uc=0,zc=0,qc=0,Vc=0,jc=0,Wc=0;var Yc=0,Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0,eh=0,rh=0,ih=0,th=0,nh=0,ah=0,oh=0,sh=0,lh=0,fh=0,uh=0,ch=0;var hh=0;hh=c;c=c+1040|0;uh=hh;Ku=hh+8|0;fr=(e|0)==(0|0);if(fr){f=0;c=hh;return f|0}ur=e+288|0;vt=a[ur>>2]|0;ka=(vt|0)==(0|0);if(ka){f=0;c=hh;return f|0}xe=vt+85696|0;Ue=a[xe>>2]|0;qe=Ue&4;Ms=(qe|0)==0;if(!Ms){f=0;c=hh;return f|0}Rf=Ue&10;ru=vt+85704|0;hu=a[ru>>2]|0;gu=(hu|0)==(0|0);if(gu){It=0}else{Lu=kn(hu|0)|0;It=Lu}cr=vt+85708|0;Sr=a[cr>>2]|0;Pr=(Sr|0)==(0|0);if(Pr){on=0}else{Wr=kn(Sr|0)|0;on=Wr}ii=vt+85712|0;di=a[ii>>2]|0;yi=(di|0)==(0|0);if(yi){Nn=0}else{Ci=kn(di|0)|0;Nn=Ci}Yi=vt+85716|0;tt=a[Yi>>2]|0;mt=(tt|0)==(0|0);if(mt){$n=0}else{Ft=kn(tt|0)|0;$n=Ft}Gt=It>>>0>30;bn=on>>>0>30;Fc=Gt|bn;qn=Nn>>>0>30;Oc=Fc|qn;ua=$n>>>0>30;Rc=Oc|ua;if(!Rc){Sa=vt+85720|0;Pa=a[Sa>>2]|0;yc=(Pa|0)==0;Mc=$n>>>0<29;Tc=Mc|yc;ja=(Rf|0)==0;Nc=ja&Tc;if(Nc){f=0;c=hh;return f|0}}ro=e+4|0;ho=a[ro>>2]|0;yo=(ho|0)==-1;if(!yo){Co=+(ho>>>0);Yo=Co*1000.0;ts=vt+60|0;vs=a[ts>>2]|0;Fs=+(vs|0);Is=Yo/Fs;Gs=Is>4294967295.0;if(Gs){qc=-1}else{al=Is<0.0;if(al){qc=0}else{El=~~Is>>>0;qc=El}}a[uh>>2]=qc;ln(Ku,6496,uh)|0;Ol=a[ur>>2]|0;Hl=(Ol|0)==(0|0);if(!Hl){Xl=Ol+85696|0;sf=a[Xl>>2]|0;zr(e,1414284622,6488,0,Ku)|0;a[Xl>>2]=sf}}bf=vt+85728|0;Tf=a[bf>>2]|0;zf=(Tf|0)==(0|0);do{if(zf){Yu=0;ah=10}else{Kf=vt+85732|0;Gf=a[Kf>>2]|0;Xf=(Gf|0)==0;if(Xf){Yu=0;ah=10}else{Zf=vt+85740|0;Jf=a[Zf>>2]|0;if((Jf|0)==2){Wu=6504}else if((Jf|0)==3){Wu=6520}else if((Jf|0)==1){Wu=6536}else{Yu=0;ah=10;break}Qf=kn(Wu|0)|0;$f=Qf+24|0;eu=$f+Gf|0;Yu=Wu;ah=eu}}}while(0);iu=vt+85744|0;tu=a[iu>>2]|0;nu=(tu|0)==(0|0);if(nu){lh=ah}else{Sc=tu;oh=ah;while(1){au=Sc+4|0;ou=a[au>>2]|0;do{if((ou|0)==1431520594|(ou|0)==1129270605){su=Sc+20|0;lu=a[su>>2]|0;$u=(lu|0)==1;fu=Sc+16|0;uu=a[fu>>2]|0;cu=uu<<1;du=cu+16|0;vu=uu+15|0;wc=$u?du:vu;mu=Sc+32|0;Eu=a[mu>>2]|0;tc=(Eu|0)==1;wu=Sc+28|0;bu=a[wu>>2]|0;if(tc){pu=bu<<1;ku=wc+pu|0;je=ku;break}else{_u=wc+bu|0;je=_u;break}}else{Su=ou&-16777216;if(!((Su|0)==0|(Su|0)==1459617792)){zu=Sc+32|0;qu=a[zu>>2]|0;Gu=(qu|0)==1;Vu=Sc+16|0;ju=a[Vu>>2]|0;hr=(ju|0)!=0;dr=Sc+28|0;vr=a[dr>>2]|0;if(Gu){wr=ju<<1;br=wr+13|0;bc=hr?br:11;_r=vr<<1;pr=bc+_r|0;je=pr;break}else{mr=ju+12|0;o=hr?mr:11;Er=o+vr|0;je=Er;break}}yu=Sc+16|0;Mu=a[yu>>2]|0;Fu=(Mu|0)==0;do{if(Fu){vc=10}else{Ou=Sc+20|0;Au=a[Ou>>2]|0;Qu=(Au|0)==1;if(Qu){Tu=Mu<<1;Nu=Tu+13|0;vc=Nu;break}else{Ru=Mu+12|0;vc=Ru;break}}}while(0);Du=Sc+28|0;Pu=a[Du>>2]|0;Cu=(Pu|0)==0;if(Cu){je=vc}else{Bu=Sc+32|0;Iu=a[Bu>>2]|0;ec=(Iu|0)==1;if(ec){xu=vc+-1|0;Uu=xu+Pu|0;je=Uu;break}else{Hu=Pu+vc|0;je=Hu;break}}}}while(0);sh=je+oh|0;kr=a[Sc>>2]|0;gr=(kr|0)==(0|0);if(gr){lh=sh;break}else{Sc=kr;oh=sh}}}He=a[xe>>2]|0;Ve=He&32;yr=(Ve|0)==0;if(yr){fh=lh}else{Mr=vt+85736|0;Fr=a[Mr>>2]|0;Or=Fr+lh|0;fh=Or}Ar=fh>>>0>i>>>0;if(Ar){f=fh;c=hh;return f|0}Rr=(r|0)==(0|0);if(Rr){f=0;c=hh;return f|0}Tr=r+1|0;t[r>>0]=73;Nr=r+2|0;t[Tr>>0]=68;Dr=r+3|0;t[Nr>>0]=51;Lr=r+4|0;t[Dr>>0]=3;Cr=r+5|0;t[Lr>>0]=0;Br=r+6|0;t[Cr>>0]=0;Ir=fh+-10|0;Hr=Ir>>>21;xr=Hr&127;Ur=xr&255;qr=r+7|0;t[Br>>0]=Ur;Vr=Ir>>>14;jr=Vr&127;Yr=jr&255;Kr=r+8|0;t[qr>>0]=Yr;Gr=Ir>>>7;Xr=Gr&127;Zr=Xr&255;Jr=r+9|0;t[Kr>>0]=Zr;Qr=Ir&127;$r=Qr&255;ei=r+10|0;t[Jr>>0]=$r;ri=a[iu>>2]|0;ti=(ri|0)==(0|0);if(ti){Lc=ei}else{gc=ri;Dc=ei;while(1){ni=gc+4|0;ai=a[ni>>2]|0;do{if((ai|0)==1431520594|(ai|0)==1129270605){oi=gc+20|0;si=a[oi>>2]|0;Ju=(si|0)==1;li=gc+16|0;fi=a[li>>2]|0;ui=fi<<1;ci=ui+16|0;hi=fi+15|0;Ec=Ju?ci:hi;vi=gc+32|0;mi=a[vi>>2]|0;ic=(mi|0)==1;Ei=gc+28|0;wi=a[Ei>>2]|0;bi=ic&1;rr=wi<>>0>10;if(pi){ki=ai&255;Si=Dc+3|0;t[Si>>0]=ki;gi=ai>>>8;Mi=gi&255;Fi=Dc+2|0;t[Fi>>0]=Mi;Oi=ai>>>16;Ai=Oi&255;Ri=Dc+1|0;t[Ri>>0]=Ai;Ti=ai>>>24;Ni=Ti&255;t[Dc>>0]=Ni;Di=Dc+4|0;Pi=_i+-10|0;Li=Pi&255;Bi=Dc+7|0;t[Bi>>0]=Li;Ii=Pi>>>8;Hi=Ii&255;xi=Dc+6|0;t[xi>>0]=Hi;Ui=Pi>>>16;zi=Ui&255;qi=Dc+5|0;t[qi>>0]=zi;Vi=Pi>>>24;ji=Vi&255;t[Di>>0]=ji;Wi=Dc+8|0;Ki=Dc+9|0;t[Wi>>0]=0;Gi=Dc+10|0;t[Ki>>0]=0;Xi=gc+24|0;Zi=a[vi>>2]|0;Ji=(Zi|0)==1;Qi=Ji&1;$i=Dc+11|0;t[Gi>>0]=Qi;et=gc+8|0;rt=t[et>>0]|0;it=Dc+12|0;t[$i>>0]=rt;nt=gc+9|0;at=t[nt>>0]|0;ot=Dc+13|0;t[it>>0]=at;st=gc+10|0;lt=t[st>>0]|0;ft=Dc+14|0;t[ot>>0]=lt;ut=gc+12|0;ct=a[oi>>2]|0;ht=(ct|0)==1;if(ht){gt=a[ut>>2]|0;yt=a[li>>2]|0;Mt=(yt|0)==0;if(Mt){Ce=ft;qt=15;Yf=16}else{Ot=n[gt>>1]|0;At=Ot<<16>>16==-2;Rt=yt<<1;Tt=yt+-1|0;dc=(Ot&65535)>>>8;D=At?dc:Ot;S=D&255;Nt=dc&255;x=At?-2:Nt;Dt=Dc+15|0;t[ft>>0]=S;t[Dt>>0]=x;Pt=(Tt|0)==0;if(!Pt){ae=ft;Xe=gt;Ht=Tt;while(1){Lt=Xe+2|0;Ct=ae+2|0;er=n[Lt>>1]|0;Bt=Ht+-1|0;cc=(er&65535)>>>8;T=At?cc:er;p=T&255;K=At?er:cc;I=K&255;xt=ae+3|0;t[Ct>>0]=p;t[xt>>0]=I;Ut=(Bt|0)==0;if(Ut){break}else{ae=Ct;Xe=Lt;Ht=Bt}}}lr=Rt+14|0;Jc=Dc+lr|0;Uc=Rt+15|0;zc=Rt+16|0;Ce=Jc;qt=Uc;Yf=zc}zt=Dc+qt|0;t[Ce>>0]=0;t[zt>>0]=0;sr=Yf}else{dt=a[li>>2]|0;Et=(dt|0)==0;if(Et){me=ft;Wf=15}else{wt=a[ut>>2]|0;ce=wt;ke=ft;Ae=dt;while(1){bt=Ae+-1|0;_t=ce+1|0;pt=t[ce>>0]|0;kt=ke+1|0;t[ke>>0]=pt;St=(bt|0)==0;if(St){break}else{ce=_t;ke=kt;Ae=bt}}nr=dt+14|0;ih=Dc+nr|0;Ic=dt+15|0;me=ih;Wf=Ic}t[me>>0]=0;sr=Wf}J=Dc+sr|0;Vt=a[vi>>2]|0;jt=(Vt|0)==1;if(jt){en=a[Xi>>2]|0;rn=a[Ei>>2]|0;tn=(rn|0)==0;if(tn){Pc=J;break}nn=n[en>>1]|0;an=nn<<16>>16==-2;sn=rn<<1;fn=rn+-1|0;fc=(nn&65535)>>>8;A=an?fc:nn;b=A&255;un=fc&255;q=an?-2:un;ee=sr+1|0;cn=Dc+ee|0;t[J>>0]=b;t[cn>>0]=q;hn=(fn|0)==0;if(!hn){oe=J;Ke=en;En=fn;while(1){dn=Ke+2|0;vn=oe+2|0;Qe=n[dn>>1]|0;mn=En+-1|0;oc=(Qe&65535)>>>8;M=an?oc:Qe;m=M&255;W=an?Qe:oc;C=W&255;wn=oe+3|0;t[vn>>0]=m;t[wn>>0]=C;_n=(mn|0)==0;if(_n){break}else{oe=vn;Ke=dn;En=mn}}}$=sn+sr|0;Yc=Dc+$|0;Pc=Yc;break}else{Wt=a[Ei>>2]|0;Yt=(Wt|0)==0;if(Yt){Pc=J;break}Kt=a[Xi>>2]|0;fe=Kt;_e=J;Fe=Wt;while(1){Xt=Fe+-1|0;Zt=fe+1|0;Jt=t[fe>>0]|0;Qt=_e+1|0;t[_e>>0]=Jt;$t=(Xt|0)==0;if($t){break}else{fe=Zt;_e=Qt;Fe=Xt}}Q=Wt+sr|0;Gc=Dc+Q|0;Pc=Gc;break}}else{Pc=Dc}}else{Sn=ai&-16777216;if(!((Sn|0)==0|(Sn|0)==1459617792)){zo=gc+32|0;qo=a[zo>>2]|0;Xu=(qo|0)==1;Vo=gc+16|0;jo=a[Vo>>2]|0;Wo=(jo|0)!=0;Ko=gc+28|0;Go=a[Ko>>2]|0;if(Xu){Jo=jo<<1;Qo=Jo+13|0;_c=Wo?Qo:11;$o=Go<<1;es=_c+$o|0;kc=es}else{Xo=jo+12|0;s=Wo?Xo:11;Zo=s+Go|0;kc=Zo}rs=kc>>>0>10;if(!rs){Pc=Dc;break}is=ai&255;ns=Dc+3|0;t[ns>>0]=is;as=ai>>>8;os=as&255;ss=Dc+2|0;t[ss>>0]=os;ls=ai>>>16;fs=ls&255;us=Dc+1|0;t[us>>0]=fs;cs=ai>>>24;hs=cs&255;t[Dc>>0]=hs;ds=Dc+4|0;ms=kc+-10|0;Es=ms&255;ws=Dc+7|0;t[ws>>0]=Es;bs=ms>>>8;_s=bs&255;ps=Dc+6|0;t[ps>>0]=_s;ks=ms>>>16;Ss=ks&255;gs=Dc+5|0;t[gs>>0]=Ss;ys=ms>>>24;Os=ys&255;t[ds>>0]=Os;As=Dc+8|0;Rs=Dc+9|0;t[As>>0]=0;Ts=Dc+10|0;t[Rs>>0]=0;Ns=gc+24|0;Ds=a[zo>>2]|0;Ps=(Ds|0)==1;Ls=Ps&1;Cs=Dc+11|0;t[Ts>>0]=Ls;Bs=a[Vo>>2]|0;Hs=(Bs|0)==0;do{if(Hs){h=Cs}else{xs=gc+20|0;Us=a[xs>>2]|0;zs=(Us|0)==1;qs=gc+12|0;if(zs){Js=a[qs>>2]|0;Qs=n[Js>>1]|0;$s=Qs<<16>>16==-2;el=Bs<<1;rl=Bs+-1|0;hc=(Qs&65535)>>>8;N=$s?hc:Qs;k=N&255;il=hc&255;H=$s?-2:il;tl=Dc+12|0;t[Cs>>0]=k;t[tl>>0]=H;nl=(rl|0)==0;if(!nl){ne=Cs;Ge=Js;fl=rl;while(1){ol=Ge+2|0;sl=ne+2|0;$e=n[ol>>1]|0;ll=fl+-1|0;uc=($e&65535)>>>8;R=$s?uc:$e;_=R&255;Y=$s?$e:uc;B=Y&255;ul=ne+3|0;t[sl>>0]=_;t[ul>>0]=B;cl=(ll|0)==0;if(cl){break}else{ne=sl;Ge=ol;fl=ll}}}or=el+11|0;Zc=Dc+or|0;Qc=el+12|0;hl=Dc+Qc|0;t[Zc>>0]=0;$c=el+13|0;dl=Dc+$c|0;t[hl>>0]=0;h=dl;break}else{Vs=a[qs>>2]|0;ue=Vs;pe=Cs;Oe=Bs;while(1){js=Oe+-1|0;Ws=ue+1|0;Ys=t[ue>>0]|0;Ks=pe+1|0;t[pe>>0]=Ys;Xs=(js|0)==0;if(Xs){break}else{ue=Ws;pe=Ks;Oe=js}}ir=Bs+11|0;rh=Dc+ir|0;th=Bs+12|0;Zs=Dc+th|0;t[rh>>0]=0;h=Zs;break}}}while(0);vl=a[zo>>2]|0;ml=(vl|0)==1;if(ml){Ml=a[Ns>>2]|0;Fl=a[Ko>>2]|0;Al=(Fl|0)==0;if(Al){Pc=h;break}Rl=n[Ml>>1]|0;Tl=Rl<<16>>16==-2;Nl=Fl<<1;Dl=Fl+-1|0;lc=(Rl&65535)>>>8;O=Tl?lc:Rl;w=O&255;Pl=lc&255;z=Tl?-2:Pl;Ll=h+1|0;t[h>>0]=w;t[Ll>>0]=z;Cl=(Dl|0)==0;if(!Cl){te=h;We=Ml;Ul=Dl;while(1){Bl=We+2|0;Il=te+2|0;Ze=n[Bl>>1]|0;xl=Ul+-1|0;nc=(Ze&65535)>>>8;g=Tl?nc:Ze;d=g&255;V=Tl?Ze:nc;P=V&255;zl=te+3|0;t[Il>>0]=d;t[zl>>0]=P;ql=(xl|0)==0;if(ql){break}else{te=Il;We=Bl;Ul=xl}}}jc=h+Nl|0;Pc=jc;break}else{wl=a[Ko>>2]|0;bl=(wl|0)==0;if(bl){Pc=h;break}_l=a[Ns>>2]|0;se=_l;we=h;ye=wl;while(1){pl=ye+-1|0;kl=se+1|0;Sl=t[se>>0]|0;gl=we+1|0;t[we>>0]=Sl;yl=(pl|0)==0;if(yl){break}else{se=kl;we=gl;ye=pl}}Kc=h+wl|0;Pc=Kc;break}}gn=gc+16|0;yn=a[gn>>2]|0;Mn=(yn|0)==0;do{if(Mn){mc=10}else{Fn=gc+20|0;On=a[Fn>>2]|0;Zu=(On|0)==1;if(Zu){Rn=yn<<1;Tn=Rn+13|0;mc=Tn;break}else{An=yn+12|0;mc=An;break}}}while(0);Dn=gc+28|0;Pn=a[Dn>>2]|0;Ln=(Pn|0)==0;do{if(Ln){pc=mc}else{Cn=gc+32|0;Bn=a[Cn>>2]|0;rc=(Bn|0)==1;if(rc){Hn=mc+-1|0;xn=Hn+Pn|0;pc=xn;break}else{In=Pn+mc|0;pc=In;break}}}while(0);Un=pc>>>0>10;if(!Un){Pc=Dc;break}zn=ai&255;Vn=Dc+3|0;t[Vn>>0]=zn;jn=ai>>>8;Wn=jn&255;Yn=Dc+2|0;t[Yn>>0]=Wn;Kn=ai>>>16;Gn=Kn&255;Xn=Dc+1|0;t[Xn>>0]=Gn;Zn=ai>>>24;Jn=Zn&255;t[Dc>>0]=Jn;Qn=Dc+4|0;ea=pc+-10|0;ra=ea&255;ia=Dc+7|0;t[ia>>0]=ra;ta=ea>>>8;na=ta&255;aa=Dc+6|0;t[aa>>0]=na;oa=ea>>>16;sa=oa&255;la=Dc+5|0;t[la>>0]=sa;fa=ea>>>24;ca=fa&255;t[Qn>>0]=ca;ha=Dc+8|0;da=Dc+9|0;t[ha>>0]=0;va=Dc+10|0;t[da>>0]=0;ma=a[gn>>2]|0;Ea=(ma|0)==0;do{if(Ea){G=va}else{wa=gc+20|0;ba=a[wa>>2]|0;_a=(ba|0)==1;pa=_a&1;ga=Dc+11|0;t[va>>0]=pa;ya=a[wa>>2]|0;Ma=(ya|0)==1;Fa=gc+12|0;if(Ma){Ha=a[Fa>>2]|0;xa=a[gn>>2]|0;Ua=(xa|0)==0;if(Ua){Be=ga;to=12;ao=13}else{za=n[Ha>>1]|0;qa=za<<16>>16==-2;Va=xa<<1;Wa=xa+-1|0;sc=(za&65535)>>>8;F=qa?sc:za;E=F&255;Ya=sc&255;U=qa?-2:Ya;Ka=Dc+12|0;t[ga>>0]=E;t[Ka>>0]=U;Ga=(Wa|0)==0;if(!Ga){ie=ga;Ye=Ha;Qa=Wa;while(1){Xa=Ye+2|0;Za=ie+2|0;Je=n[Xa>>1]|0;Ja=Qa+-1|0;ac=(Je&65535)>>>8;y=qa?ac:Je;v=y&255;j=qa?Je:ac;L=j&255;$a=ie+3|0;t[Za>>0]=v;t[$a>>0]=L;eo=(Ja|0)==0;if(eo){break}else{ie=Za;Ye=Xa;Qa=Ja}}}ar=Va+11|0;nh=Dc+ar|0;Hc=Va+12|0;xc=Va+13|0;Be=nh;to=Hc;ao=xc}io=Dc+to|0;t[Be>>0]=0;no=Dc+ao|0;t[io>>0]=0;G=no;break}else{Oa=a[gn>>2]|0;Aa=(Oa|0)==0;if(Aa){ve=ga;Ia=12}else{Ra=a[Fa>>2]|0;he=Ra;Se=ga;Re=Oa;while(1){Ta=Re+-1|0;Na=he+1|0;Da=t[he>>0]|0;La=Se+1|0;t[Se>>0]=Da;Ca=(Ta|0)==0;if(Ca){break}else{he=Na;Se=La;Re=Ta}}tr=Oa+11|0;Xc=Dc+tr|0;Bc=Oa+12|0;ve=Xc;Ia=Bc}Ba=Dc+Ia|0;t[ve>>0]=0;G=Ba;break}}}while(0);oo=gc+24|0;so=gc+32|0;lo=a[so>>2]|0;fo=(lo|0)==1;if(!fo){uo=a[Dn>>2]|0;co=(uo|0)==0;if(co){Pc=G;break}vo=a[oo>>2]|0;le=vo;be=G;Me=uo;while(1){mo=Me+-1|0;Eo=le+1|0;wo=t[le>>0]|0;bo=be+1|0;t[be>>0]=wo;_o=(mo|0)==0;if(_o){break}else{le=Eo;be=bo;Me=mo}}eh=G+uo|0;Pc=eh;break}po=a[oo>>2]|0;ko=a[Dn>>2]|0;So=(ko|0)==0;if(So){Pc=G;break}go=n[po>>1]|0;if(go<<16>>16==-257|go<<16>>16==-2){Mo=po+2|0;Fo=ko+-1|0;Oo=(Fo|0)==0;if(Oo){Pc=G;break}else{re=Mo;Ee=Fo}}else{re=po;Ee=ko}Ao=go<<16>>16==-2;de=re;Ne=G;ze=Ee;while(1){Ro=ze+-1|0;To=de+2|0;No=n[de>>1]|0;if(Ao){Do=No&65535;Po=Do<<8;Lo=Do>>>8;Bo=Po|Lo;Io=Bo&65535;X=Io}else{X=No}Z=X+-32<<16>>16;Ho=(Z&65535)>223;xo=X&255;l=Ho?32:xo;u=Ne+1|0;t[Ne>>0]=l;Uo=(Ro|0)==0;if(Uo){break}else{de=To;Ne=u;ze=Ro}}Wc=G+Ee|0;Pc=Wc}}while(0);Vl=a[gc>>2]|0;jl=(Vl|0)==(0|0);if(jl){Lc=Pc;break}else{gc=Vl;Dc=Pc}}}Wl=(Yu|0)==(0|0);if(Wl){Cc=Lc}else{Yl=a[bf>>2]|0;Kl=vt+85732|0;Gl=a[Kl>>2]|0;Zl=(Yl|0)!=(0|0);Jl=(Gl|0)!=0;Ac=Zl&Jl;if(Ac){Ql=Lc+3|0;t[Ql>>0]=67;$l=Lc+2|0;t[$l>>0]=73;ef=Lc+1|0;t[ef>>0]=80;t[Lc>>0]=65;rf=Lc+4|0;tf=kn(Yu|0)|0;nf=Gl+4|0;af=nf+tf|0;of=af&255;lf=Lc+7|0;t[lf>>0]=of;ff=af>>>8;uf=ff&255;cf=Lc+6|0;t[cf>>0]=uf;hf=af>>>16;df=hf&255;vf=Lc+5|0;t[vf>>0]=df;mf=af>>>24;Ef=mf&255;t[rf>>0]=Ef;wf=Lc+8|0;_f=Lc+9|0;t[wf>>0]=0;pf=Lc+10|0;t[_f>>0]=0;kf=Lc+11|0;t[pf>>0]=0;Sf=t[Yu>>0]|0;gf=Sf<<24>>24==0;if(gf){De=kf}else{Te=Yu;Pe=kf;Ff=Sf;while(1){yf=Te+1|0;Mf=Pe+1|0;t[Pe>>0]=Ff;Of=t[yf>>0]|0;Af=Of<<24>>24==0;if(Af){De=Mf;break}else{Te=yf;Pe=Mf;Ff=Of}}}Nf=De+1|0;t[De>>0]=0;Df=De+2|0;t[Nf>>0]=0;t[Df>>0]=0;Pf=De+3|0;ge=Yl;Le=Gl;Ie=Pf;while(1){Lf=Le+-1|0;Cf=ge+1|0;Bf=t[ge>>0]|0;If=Ie+1|0;t[Ie>>0]=Bf;Hf=(Lf|0)==0;if(Hf){break}else{ge=Cf;Le=Lf;Ie=If}}xf=Gl+3|0;Vc=De+xf|0;Cc=Vc}else{Cc=Lc}}Uf=Cc;qf=r;Vf=fh+qf|0;jf=Vf-Uf|0;pn(Cc|0,0,jf|0)|0;f=fh;c=hh;return f|0}function Hr(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;g=c;o=e+288|0;s=a[o>>2]|0;i=s+85696|0;n=a[i>>2]|0;h=n&5;d=(h|0)==1;if(!d){r=0;return r|0}v=Ir(e,0,0)|0;m=wn(v,1)|0;E=(m|0)==(0|0);if(E){r=-1;return r|0}w=Ir(e,m,v)|0;b=w>>>0>v>>>0;if(b){En(m);r=-1;return r|0}_=(w|0)==0;if(!_){k=0;while(1){l=m+k|0;f=t[l>>0]|0;Mr(s,f,1);u=k+1|0;p=(u|0)==(w|0);if(p){break}else{k=u}}}En(m);r=w;return r|0}function xr(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0;var he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0;var De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0;var Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0;var br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0;Ir=c;c=c+16|0;Lr=Ir;Cr=Ir+4|0;re=(e|0)==(0|0);if(re){n=0;c=Ir;return n|0}ie=i>>>0<128;if(ie){n=128;c=Ir;return n|0}de=e+288|0;ye=a[de>>2]|0;Ce=(ye|0)==(0|0);Ye=(r|0)==(0|0);Dr=Ye|Ce;if(Dr){n=0;c=Ir;return n|0}P=ye+85696|0;L=a[P>>2]|0;tr=L&9;vr=(tr|0)==1;if(!vr){n=0;c=Ir;return n|0}Mr=L<<1;Nr=Mr&32;te=r+1|0;t[r>>0]=84;ne=r+2|0;t[te>>0]=65;ae=r+3|0;t[ne>>0]=71;oe=ye+85704|0;se=a[oe>>2]|0;le=Nr&255;m=ae;p=se;x=30;e:while(1){fe=(p|0)==(0|0);R=m;V=x;while(1){ue=V+-1|0;if(!fe){ce=t[p>>0]|0;he=ce<<24>>24==0;if(!he){T=R;$=ue;ee=ce;break}}we=R+1|0;t[R>>0]=le;be=(ue|0)==0;if(be){u=we;break e}else{R=we;V=ue}}ve=p+1|0;me=T+1|0;t[T>>0]=ee;Ee=($|0)==0;if(Ee){u=me;break}else{m=me;p=ve;x=$}}_e=ye+85708|0;pe=a[_e>>2]|0;v=u;_=pe;I=30;e:while(1){ke=(_|0)==(0|0);O=v;q=I;while(1){Se=q+-1|0;if(!ke){ge=t[_>>0]|0;Me=ge<<24>>24==0;if(!Me){A=O;J=Se;Q=ge;break}}Re=O+1|0;t[O>>0]=le;Te=(Se|0)==0;if(Te){f=Re;break e}else{O=Re;q=Se}}Fe=_+1|0;Oe=A+1|0;t[A>>0]=Q;Ae=(J|0)==0;if(Ae){f=Oe;break}else{v=Oe;_=Fe;I=J}}Ne=ye+85712|0;De=a[Ne>>2]|0;d=f;b=De;B=30;e:while(1){Pe=(b|0)==(0|0);y=d;z=B;while(1){Le=z+-1|0;if(!Pe){Be=t[b>>0]|0;Ie=Be<<24>>24==0;if(!Ie){M=y;X=Le;Z=Be;break}}ze=y+1|0;t[y>>0]=le;qe=(Le|0)==0;if(qe){l=ze;break e}else{y=ze;z=Le}}He=b+1|0;xe=M+1|0;t[M>>0]=Z;Ue=(X|0)==0;if(Ue){l=xe;break}else{d=xe;b=He;B=X}}Ve=ye+85700|0;je=a[Ve>>2]|0;a[Lr>>2]=je;ln(Cr,6552,Lr)|0;We=a[Ve>>2]|0;Ke=(We|0)!=0;Ge=Ke?Cr:0;E=l;k=Ge;H=4;e:while(1){Xe=(k|0)==(0|0);N=E;j=H;while(1){Ze=j+-1|0;if(!Xe){Je=t[k>>0]|0;Qe=Je<<24>>24==0;if(!Qe){D=N;K=Ze;G=Je;break}}ir=N+1|0;t[N>>0]=le;nr=(Ze|0)==0;if(nr){s=ir;break e}else{N=ir;j=Ze}}$e=k+1|0;er=D+1|0;t[D>>0]=G;rr=(K|0)==0;if(rr){s=er;break}else{E=er;k=$e;H=K}}ar=ye+85716|0;or=a[ar>>2]|0;sr=ye+85720|0;lr=a[sr>>2]|0;fr=(lr|0)!=0;ur=fr?28:30;h=s;w=or;C=ur;e:while(1){cr=(w|0)==(0|0);S=h;U=C;while(1){hr=U+-1|0;if(!cr){dr=t[w>>0]|0;mr=dr<<24>>24==0;if(!mr){g=S;W=hr;Y=dr;break}}_r=S+1|0;t[S>>0]=le;pr=(hr|0)==0;if(pr){o=_r;F=S;break e}else{S=_r;U=hr}}Er=w+1|0;wr=g+1|0;t[g>>0]=Y;br=(W|0)==0;if(br){o=wr;F=g;break}else{h=wr;w=Er;C=W}}kr=a[sr>>2]|0;Sr=(kr|0)==0;if(Sr){Pr=o}else{gr=F+2|0;t[o>>0]=0;yr=a[sr>>2]|0;Fr=yr&255;Or=F+3|0;t[gr>>0]=Fr;Pr=Or}Ar=ye+85724|0;Rr=a[Ar>>2]|0;Tr=Rr&255;t[Pr>>0]=Tr;n=128;c=Ir;return n|0}function Ur(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0;w=c;c=c+128|0;m=w;i=e+288|0;n=a[i>>2]|0;o=xr(e,m,128)|0;s=o+-1|0;l=s>>>0>127;if(l){r=0;c=w;return r|0}else{v=0}while(1){f=m+v|0;u=t[f>>0]|0;Mr(n,u,1);h=v+1|0;d=(h|0)==(o|0);if(d){r=o;break}else{v=h}}c=w;return r|0}function zr(e,r,i,n,o){e=e|0;r=r|0;i=i|0;n=n|0;o=o|0;var s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0;var A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0;var G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0;var ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0;var Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0;var er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0;var pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0;Tr=c;m=(e|0)==(0|0);if(m){s=-255;return s|0}E=e+288|0;R=a[E>>2]|0;U=(R|0)==(0|0);if(U){s=-255;return s|0}J=R+85744|0;pr=a[J>>2]|0;le=(pr|0)==(0|0);e:do{if(le){l=0}else{gr=pr;while(1){_e=gr+4|0;Te=a[_e>>2]|0;ze=(Te|0)==(r|0);if(ze){l=gr;break e}Er=a[gr>>2]|0;Qe=(Er|0)==(0|0);if(Qe){l=0;break}else{gr=Er}}}}while(0);e:do{if((r|0)==1347570006|(r|0)==1196575044|(r|0)==1162756946|(r|0)==1279872587|(r|0)==1095061059|(r|0)==1346588244|(r|0)==1195724610|(r|0)==1095780675|(r|0)==1398361172|(r|0)==1129270605|(r|0)==1465407576|(r|0)==1415075928){w=(l|0)==(0|0);if(w){Rr=25}else{p=(n|0)==(0|0);if(p){_r=l;r:while(1){k=_r+8|0;S=qr(k,i)|0;g=(S|0)==0;if(!g){y=_r+16|0;M=a[y>>2]|0;F=(M|0)==0;if(F){Or=_r;break e}}Sr=a[_r>>2]|0;O=(Sr|0)==(0|0);if(O){Rr=25;break e}else{Mr=Sr}while(1){A=Mr+4|0;T=a[A>>2]|0;N=(T|0)==(r|0);if(N){_r=Mr;continue r}br=a[Mr>>2]|0;D=(br|0)==(0|0);if(D){Rr=25;break e}else{Mr=br}}}}else{mr=l}r:while(1){P=mr+8|0;L=qr(P,i)|0;C=(L|0)==0;i:do{if(!C){B=mr+20|0;I=a[B>>2]|0;H=(I|0)==1;x=mr+16|0;z=a[x>>2]|0;q=(z|0)==0;if(H){if(q){Or=mr;break e}else{break}}if(q){Or=mr;break e}V=mr+12|0;j=a[V>>2]|0;ur=0;while(1){K=j+ur|0;G=t[K>>0]|0;X=n+ur|0;Z=t[X>>0]|0;Q=G<<24>>24==Z<<24>>24;W=ur+1|0;if(!Q){break i}Y=W>>>0>>0;if(Y){ur=W}else{Fr=mr;Rr=24;break e}}}}while(0);$=(mr|0)==(0|0);h=$?J:mr;kr=a[h>>2]|0;ee=(kr|0)==(0|0);if(ee){Rr=25;break e}else{yr=kr}while(1){re=yr+4|0;ie=a[re>>2]|0;te=(ie|0)==(r|0);if(te){mr=yr;continue r}wr=a[yr>>2]|0;ne=(wr|0)==(0|0);if(ne){Rr=25;break e}else{yr=wr}}}}}else{Fr=l;Rr=24}}while(0);if((Rr|0)==24){ae=(Fr|0)==(0|0);if(ae){Rr=25}else{Or=Fr}}if((Rr|0)==25){oe=wn(1,36)|0;se=(oe|0)==(0|0);if(se){s=-254;return s|0}fe=R+85748|0;ue=a[fe>>2]|0;ce=(ue|0)==(0|0);if(ce){Rr=28}else{he=a[J>>2]|0;de=(he|0)==(0|0);if(de){Rr=28}else{a[ue>>2]=oe}}if((Rr|0)==28){a[J>>2]=oe}a[fe>>2]=oe;Or=oe}ve=Or+4|0;a[ve>>2]=r;me=Or+8|0;Ee=(i|0)==(0|0);do{if(Ee){Rr=33}else{we=t[i>>0]|0;be=we<<24>>24==0;if(be){Rr=33}else{t[me>>0]=we;Fe=t[i>>0]|0;Oe=Fe<<24>>24==0;if(Oe){fr=1}else{Ae=i+1|0;Re=t[Ae>>0]|0;Ne=Or+9|0;t[Ne>>0]=Re;De=t[i>>0]|0;Pe=De<<24>>24==0;if(Pe){fr=2}else{Se=i+2|0;ge=t[Se>>0]|0;ye=Or+10|0;t[ye>>0]=ge;break}}Ar=(Or+8|0)+fr|0;Me=fr^3;pn(Ar|0,32,Me|0)|0}}}while(0);if((Rr|0)==33){t[me>>0]=88;pe=Or+9|0;t[pe>>0]=88;ke=Or+10|0;t[ke>>0]=88}Le=Or+12|0;Ce=a[Le>>2]|0;En(Ce);a[Le>>2]=0;Be=(n|0)==(0|0);if(Be){u=0}else{dr=0;while(1){Ie=n+dr|0;He=t[Ie>>0]|0;xe=He<<24>>24==0;Ue=dr+1|0;if(xe){v=Ue;vr=dr;break}else{dr=Ue}}qe=(vr|0)==0;if(qe){u=0}else{Ve=wn(v,1)|0;a[Le>>2]=Ve;je=(Ve|0)==(0|0);if(je){u=0}else{yn(Ve|0,n|0,vr|0)|0;We=Ve+vr|0;t[We>>0]=0;u=vr}}}Ye=Or+16|0;a[Ye>>2]=u;Ke=Or+20|0;a[Ke>>2]=0;Ge=Or+24|0;Xe=a[Ge>>2]|0;En(Xe);a[Ge>>2]=0;Ze=(o|0)==(0|0);if(Ze){f=0}else{cr=0;while(1){Je=o+cr|0;$e=t[Je>>0]|0;er=$e<<24>>24==0;rr=cr+1|0;if(er){d=rr;hr=cr;break}else{cr=rr}}ir=(hr|0)==0;if(ir){f=0}else{tr=wn(d,1)|0;a[Ge>>2]=tr;nr=(tr|0)==(0|0);if(nr){f=0}else{yn(tr|0,o|0,hr|0)|0;ar=tr+hr|0;t[ar>>0]=0;f=hr}}}or=Or+28|0;a[or>>2]=f;sr=Or+32|0;a[sr>>2]=0;lr=R+85696|0;b=a[lr>>2]|0;_=b|3;a[lr>>2]=_;s=0;return s|0}function qr(e,r){e=e|0;r=r|0;var i=0,n=0,a=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0;oe=c;v=(r|0)==(0|0);if(v){w=88;T=88;V=88}else{m=t[r>>0]|0;F=m<<24>>24==0;if(F){w=88;T=88;V=88}else{I=r+1|0;G=t[I>>0]|0;J=r+2|0;Q=t[J>>0]|0;w=m;T=G;V=Q}}$=t[e>>0]|0;ee=$<<24>>24;re=Jt(ee)|0;E=w<<24>>24;b=Jt(E)|0;_=re&255;p=_<<24>>24<32;i=p?32:re;k=b&255;S=k<<24>>24<32;ie=S?32:b;u=ie^i;s=u&255;g=(s|0)==0;if(!g){return 0}y=e+1|0;M=t[y>>0]|0;O=M<<24>>24;A=Jt(O)|0;R=T<<24>>24;N=Jt(R)|0;D=A&255;P=D<<24>>24<32;n=P?32:A;L=N&255;C=L<<24>>24<32;te=C?32:N;h=te^n;l=h&255;B=(l|0)==0;if(B){H=e+2|0;x=t[H>>0]|0;U=x<<24>>24;z=Jt(U)|0;q=V<<24>>24;j=Jt(q)|0;W=z&255;Y=W<<24>>24<32;a=Y?32:z;K=j&255;X=K<<24>>24<32;ne=X?32:j;d=ne^a;f=d&255;Z=(f|0)==0;o=Z&1;return o|0}else{return 0}return 0|0}function Vr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=(e|0)==(0|0);if(t){i=0;return i|0}n=a[e>>2]|0;o=(n|0)==-487877;r=o&1;i=r;return i|0}function jr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,u=0,h=0,v=0,m=0,E=0,w=0,b=0.0,_=0.0,p=0,k=0,S=0,g=0.0,y=0;var M=0.0,F=0,O=0,A=0.0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,j=0,K=0;var G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0;var me=0,Ee=0,we=0,be=0,_e=0,pe=0,Se=0,ge=0,ye=0.0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Le=0,Ce=0,Ie=0;var He=0,xe=0,Ue=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,nr=0,or=0;var sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,_r=0,pr=0,kr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Rr=0;var Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0;var Jr=0,Qr=0,$r=0,ri=0,ii=0,ti=0,ai=0,oi=0,si=0.0,li=0.0,fi=0.0,ui=0.0,ci=0.0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0;var pi=0,ki=0,Si=0,gi=0,yi=0.0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0.0,Pi=0,Li=0,Ci=0,Ui=0.0,Vi=0,ji=0,Wi=0;var Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0.0,tt=0,nt=0,at=0.0,ot=0,st=0.0,lt=0.0,ft=0,ut=0,ct=0,vt=0;var mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,At=0,Rt=0,Ct=0,Bt=0,It=0,xt=0,jt=0,Wt=0;var Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0.0,en=0,rn=0,tn=0.0,nn=0.0,an=0,on=0,sn=0.0,ln=0,fn=0,un=0,cn=0.0,hn=0.0;var dn=0,vn=0,mn=0.0,En=0,bn=0,_n=0.0,kn=0,Sn=0.0,gn=0,yn=0,Mn=0.0,Fn=0,On=0,An=0.0,Rn=0.0,Tn=0.0,Nn=0,Dn=0,Pn=0.0,Ln=0;var Cn=0.0,Bn=0.0,In=0,Hn=0.0,xn=0.0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0.0,Yn=0.0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0;var ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0;var ka=0,Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0.0,xa=0.0,Ua=0;var za=0.0,qa=0,Va=0,ja=0,Wa=0,Ya=0.0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0.0,eo=0.0,ro=0,io=0,to=0,no=0,ao=0,oo=0;var so=0,lo=0,fo=0.0,uo=0.0,co=0.0,ho=0,vo=0.0,mo=0.0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0;var Ao=0,Ro=0,To=0,No=0,Do=0,Po=0,Lo=0,Co=0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0,Ko=0;var Go=0,Xo=0.0,Zo=0,Jo=0.0,Qo=0.0,$o=0,es=0,rs=0,is=0,ts=0,ns=0,as=0,os=0.0,ss=0,ls=0.0,fs=0.0,us=0,cs=0.0,hs=0.0,ds=0.0;var vs=0,ms=0,Es=0,ws=0.0,bs=0.0,_s=0.0,ps=0,ks=0,Ss=0.0,gs=0,ys=0,Ms=0.0,Fs=0,Os=0,As=0.0,Rs=0,Ts=0.0,Ns=0,Ds=0.0,Ps=0.0;var Ls=0.0,Cs=0.0,Bs=0.0,Is=0,Hs=0.0,xs=0.0,Us=0,zs=0.0,qs=0.0,Vs=0.0,js=0,Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0,Qs=0,$s=0;var el=0,rl=0,il=0,tl=0,nl=0,al=0,ol=0,sl=0.0,ll=0,fl=0,ul=0,cl=0,hl=0,dl=0,vl=0.0,ml=0,El=0,wl=0,bl=0,_l=0;var pl=0,kl=0.0,Sl=0,gl=0,yl=0,Ml=0.0,Fl=0,Ol=0,Al=0.0,Rl=0.0,Tl=0.0,Nl=0.0,Dl=0.0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0,Hl=0,xl=0.0;var Ul=0,zl=0,ql=0,Vl=0.0,jl=0,Wl=0.0,Yl=0.0,Kl=0.0,Gl=0.0,Xl=0,Zl=0.0,Jl=0,Ql=0,$l=0,ef=0,rf=0,tf=0.0,nf=0,af=0,of=0;var sf=0,lf=0.0,ff=0,uf=0.0,cf=0.0,hf=0.0,df=0.0,vf=0.0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0.0,kf=0.0,Sf=0,gf=0.0,yf=0,Mf=0,Ff=0;var Of=0,Af=0,Rf=0,Tf=0,Nf=0,Df=0,Pf=0,Lf=0,Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0,Vf=0,jf=0,Wf=0,Yf=0;var Kf=0,Gf=0,Xf=0,Zf=0,Jf=0,Qf=0,$f=0,eu=0,ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0;var du=0,vu=0,mu=0,Eu=0,wu=0,bu=0,_u=0,pu=0,ku=0,Su=0,gu=0,yu=0.0,Mu=0,Fu=0,Ou=0.0,Au=0.0,Ru=0.0,Tu=0.0,Nu=0,Du=0;var Pu=0,Lu=0,Cu=0,Bu=0.0,Iu=0,Hu=0,xu=0.0,Uu=0.0,zu=0.0,qu=0,Vu=0.0,ju=0,Wu=0,Yu=0,Ku=0,Gu=0,Xu=0,Zu=0,Ju=0,Qu=0;var $u=0,ec=0,rc=0,ic=0,tc=0,nc=0,ac=0,oc=0,sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0,mc=0,Ec=0,wc=0,bc=0;var _c=0,pc=0,kc=0,Sc=0,gc=0,yc=0,Mc=0,Fc=0,Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0,Ic=0,Hc=0;var xc=0,Uc=0,zc=0,qc=0,Vc=0,jc=0,Wc=0,Yc=0,Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0.0,eh=0,rh=0,ih=0,th=0.0,nh=0.0;var ah=0.0,oh=0.0,sh=0,lh=0,fh=0,uh=0,ch=0.0,hh=0,dh=0,vh=0,mh=0.0,Eh=0.0,wh=0.0,bh=0.0,_h=0,ph=0,kh=0,Sh=0,gh=0,yh=0;var Mh=0,Fh=0.0,Oh=0.0,Ah=0.0,Rh=0,Th=0,Nh=0,Dh=0,Ph=0,Lh=0,Ch=0.0,Bh=0.0,Ih=0.0,Hh=0,xh=0.0,Uh=0.0,zh=0.0,qh=0,Vh=0,jh=0;var Wh=0,Yh=0,Kh=0,Gh=0,Xh=0,Zh=0.0,Jh=0.0,Qh=0.0,$h=0,ed=0,rd=0,id=0,td=0,nd=0.0,ad=0.0,od=0.0,sd=0,ld=0.0,fd=0.0,ud=0.0;var cd=0.0,hd=0,dd=0,vd=0.0,md=0.0,Ed=0.0,wd=0,bd=0,_d=0,pd=0,kd=0,Sd=0,gd=0,yd=0,Md=0,Fd=0,Od=0,Ad=0.0,Rd=0.0,Td=0.0;var Nd=0,Dd=0,Pd=0.0,Ld=0.0,Cd=0,Bd=0,Id=0,Hd=0,xd=0.0,Ud=0.0,zd=0.0,qd=0.0,Vd=0.0,jd=0,Wd=0,Yd=0,Kd=0,Gd=0,Xd=0,Zd=0;var Jd=0,Qd=0,$d=0.0,ev=0.0,rv=0.0,iv=0,tv=0.0,nv=0,av=0.0,ov=0.0,sv=0.0,lv=0.0,fv=0.0,uv=0.0,cv=0.0,hv=0.0,dv=0.0,vv=0,mv=0,Ev=0.0;var wv=0.0,bv=0.0,_v=0.0,pv=0.0,kv=0.0,Sv=0.0,gv=0.0,yv=0.0,Mv=0,Fv=0,Ov=0,Av=0.0,Rv=0.0,Tv=0.0,Nv=0.0,Dv=0.0,Pv=0,Lv=0.0,Cv=0.0,Bv=0.0;var Iv=0,Hv=0.0,xv=0.0,Uv=0.0,zv=0.0,qv=0.0,Vv=0,jv=0,Wv=0.0,Yv=0.0,Kv=0.0,Gv=0,Xv=0.0,Zv=0,Jv=0,Qv=0,$v=0,em=0,rm=0,im=0;var tm=0,nm=0,am=0,om=0,sm=0,lm=0,fm=0,um=0,cm=0,hm=0,dm=0,vm=0,mm=0,Em=0,wm=0,bm=0,_m=0,pm=0,km=0,Sm=0;var gm=0,ym=0,Mm=0,Fm=0,Om=0,Am=0,Rm=0,Tm=0,Nm=0,Dm=0,Pm=0,Lm=0,Cm=0,Bm=0,Im=0,Hm=0,xm=0,Um=0,zm=0,qm=0;var Vm=0,jm=0,Wm=0,Ym=0,Km=0,Gm=0,Xm=0,Zm=0,Jm=0,Qm=0,$m=0,eE=0,rE=0,iE=0,tE=0,nE=0,aE=0,oE=0,sE=0,lE=0;var fE=0,uE=0,cE=0,hE=0,dE=0,vE=0,mE=0,EE=0,wE=0,bE=0,_E=0,pE=0,kE=0,SE=0,gE=0,yE=0,ME=0,FE=0,OE=0,AE=0;var RE=0,TE=0,NE=0,DE=0,PE=0,LE=0,CE=0,BE=0,IE=0,HE=0,xE=0,UE=0,zE=0,qE=0,VE=0,jE=0,WE=0,YE=0,KE=0,GE=0;var XE=0,ZE=0,JE=0,QE=0,$E=0,ew=0,rw=0,iw=0,tw=0,nw=0,aw=0,ow=0,sw=0,lw=0,fw=0,uw=0,cw=0,hw=0,dw=0,vw=0;var mw=0,Ew=0,ww=0,bw=0,_w=0,pw=0,kw=0,Sw=0,gw=0,yw=0,Mw=0,Fw=0,Ow=0,Aw=0,Rw=0,Tw=0,Nw=0,Dw=0,Pw=0,Lw=0;var Cw=0,Bw=0,Iw=0,Hw=0,xw=0,Uw=0,zw=0,qw=0,Vw=0,jw=0,Ww=0,Yw=0,Kw=0,Gw=0,Xw=0,Zw=0,Jw=0,Qw=0,$w=0,eb=0;var rb=0,ib=0,tb=0,nb=0,ab=0,ob=0,sb=0,lb=0,fb=0,ub=0,cb=0,hb=0,db=0,vb=0,mb=0,Eb=0,wb=0,bb=0,_b=0,pb=0;var kb=0,Sb=0,gb=0,yb=0,Mb=0,Fb=0,Ob=0,Ab=0,Rb=0,Tb=0,Nb=0,Db=0,Pb=0,Lb=0,Cb=0,Bb=0,Ib=0,Hb=0,xb=0,Ub=0;var zb=0,qb=0,Vb=0,jb=0,Wb=0,Yb=0.0,Kb=0,Gb=0,Xb=0,Zb=0.0,Jb=0,Qb=0,$b=0,e_=0,r_=0.0,i_=0,t_=0,n_=0,a_=0.0,o_=0;var s_=0,l_=0,f_=0.0,u_=0,c_=0,h_=0,d_=0,v_=0.0,m_=0,E_=0,w_=0,b_=0.0,__=0,p_=0,k_=0,S_=0,g_=0.0,y_=0,M_=0,F_=0;var O_=0.0,A_=0,R_=0,T_=0,N_=0.0,D_=0,P_=0,L_=0,C_=0,B_=0,I_=0.0,H_=0,x_=0,U_=0,z_=0.0,q_=0,V_=0,j_=0,W_=0,Y_=0.0;var K_=0,G_=0,X_=0,Z_=0.0,J_=0,Q_=0,$_=0,ep=0.0,rp=0,ip=0,tp=0,np=0,ap=0.0,op=0,sp=0,lp=0,fp=0.0,up=0,cp=0,hp=0;var dp=0,vp=0.0,mp=0,Ep=0,wp=0,bp=0.0,_p=0,pp=0,kp=0,Sp=0,gp=0,yp=0,Mp=0,Fp=0,Op=0,Ap=0,Rp=0,Tp=0,Np=0,Dp=0;var Pp=0,Lp=0,Cp=0,Bp=0,Ip=0,Hp=0,xp=0,Up=0,zp=0,qp=0,Vp=0,jp=0,Wp=0,Yp=0,Kp=0,Gp=0,Xp=0,Zp=0,Jp=0,Qp=0;var $p=0,ek=0,rk=0,ik=0,tk=0,nk=0,ak=0,ok=0,sk=0,lk=0,fk=0,uk=0,ck=0,hk=0,dk=0,vk=0,mk=0,Ek=0,wk=0,bk=0;var _k=0,pk=0,kk=0,Sk=0,gk=0,yk=0,Mk=0,Fk=0,Ok=0,Ak=0,Rk=0,Tk=0,Nk=0,Dk=0,Pk=0,Lk=0.0,Ck=0.0,Bk=0,Ik=0,Hk=0;var xk=0.0,Uk=0.0,zk=0.0,qk=0,Vk=0,jk=0,Wk=0,Yk=0,Kk=0,Gk=0,Xk=0,Zk=0,Jk=0,Qk=0,$k=0,eS=0,rS=0,iS=0,tS=0,nS=0;var aS=0,oS=0,sS=0,lS=0,fS=0,uS=0,cS=0,hS=0,dS=0,vS=0,mS=0,ES=0,wS=0,bS=0,_S=0,pS=0,kS=0,SS=0,gS=0,yS=0;var MS=0,FS=0,OS=0,AS=0,RS=0,TS=0,NS=0,DS=0,PS=0,LS=0,CS=0,BS=0,IS=0,HS=0,xS=0,US=0,zS=0,qS=0,VS=0,jS=0;var WS=0,YS=0,KS=0,GS=0,XS=0,ZS=0,JS=0,QS=0,$S=0,eg=0,rg=0,ig=0,tg=0,ng=0,ag=0,og=0,sg=0,lg=0,fg=0,ug=0;var cg=0,hg=0,dg=0,vg=0,mg=0,Eg=0,wg=0,bg=0,_g=0,pg=0,kg=0,Sg=0,gg=0,yg=0,Mg=0,Fg=0,Og=0,Ag=0,Rg=0,Tg=0;var Ng=0,Dg=0,Pg=0,Lg=0,Cg=0,Bg=0,Ig=0,Hg=0,xg=0,Ug=0,zg=0,qg=0,Vg=0,jg=0,Wg=0.0,Yg=0.0,Kg=0.0,Gg=0,Xg=0,Zg=0;var Jg=0,Qg=0,$g=0,ey=0,ry=0,iy=0,ty=0.0,ny=0.0,ay=0.0,oy=0,sy=0,ly=0,fy=0,uy=0,cy=0,hy=0,dy=0,vy=0,my=0,Ey=0.0;var wy=0.0,by=0.0,_y=0.0,py=0.0,ky=0.0,Sy=0.0,gy=0.0,yy=0,My=0,Fy=0,Oy=0,Ay=0,Ry=0,Ty=0,Ny=0,Dy=0;Dy=c;c=c+16|0;Ty=Dy;Le=e+288|0;Ce=a[Le>>2]|0;vs=Ce+16|0;a[Ce>>2]=0;bf=e+180|0;kc=a[bf>>2]|0;yd=Ce+124|0;a[yd>>2]=kc;Om=e+32|0;Tw=a[Om>>2]|0;P_=Ce+140|0;a[P_>>2]=Tw;Bk=(Tw|0)==0;if(!Bk){Ie=e+36|0;a[Ie>>2]=0}tt=Ce+85804|0;Sa=a[tt>>2]|0;ja=(Sa|0)==(0|0);if(!ja){ro=e+36|0;a[ro>>2]=0}ho=e+272|0;yo=a[ho>>2]|0;Co=Ce+85828|0;a[Co>>2]=yo;Yo=e+276|0;ts=a[Yo>>2]|0;ms=Ce+85832|0;a[ms>>2]=ts;Fs=e+280|0;Is=a[Fs>>2]|0;Gs=Ce+85836|0;a[Gs>>2]=Is;al=e+296|0;El=a[al>>2]|0;Ol=(El|0)==0;if(Ol){fu=Ce+85756|0;pu=a[fu>>2]|0;Nu=pu&-3;a[fu>>2]=Nu;id=Nu}else{Hl=zt()|0;Xl=Ce+85756|0;sf=a[Xl>>2]|0;_f=Hl<<1;Tf=_f&2;zf=sf&-3;Qf=zf|Tf;a[Xl>>2]=Qf;id=Qf}qu=e+292|0;$u=a[qu>>2]|0;uc=($u|0)==0;if(uc){Lh=Ce+85756|0;Wh=id&-2;a[Lh>>2]=Wh;JE=Wh}else{Sc=Ut()|0;Pc=Ce+85756|0;jc=a[Pc>>2]|0;rh=Sc&1;hh=jc&-2;gh=hh|rh;a[Pc>>2]=gh;JE=gh}dd=e+300|0;Md=a[dd>>2]|0;Bd=(Md|0)==0;if(Bd){RE=Ce+85756|0;UE=JE&-13;a[RE>>2]=UE}else{Kd=qt()|0;nv=Ce+85756|0;mv=a[nv>>2]|0;Fv=Kd<<2;Iv=Fv&4;Gv=mv&-5;am=Gv|Iv;a[nv>>2]=am;Em=Vt()|0;Am=a[nv>>2]|0;xm=Em<<3;Zm=xm&8;sE=Am&-9;bE=sE|Zm;a[nv>>2]=bE}lw=Ce+85796|0;_w=a[lw>>2]|0;Nw=(_w|0)==(0|0);if(Nw){qw=wn(1,2772)|0;a[lw>>2]=qw;$w=(qw|0)==(0|0);if($w){t=-2;c=Dy;return t|0}}ub=Ce+85676|0;kb=a[ub>>2]|0;Db=(kb|0)==(0|0);if(Db){Vb=wn(1,134792)|0;a[ub>>2]=Vb;e_=(Vb|0)==(0|0);if(e_){Ot(Ce);a[Le>>2]=0;t=-2;c=Dy;return t|0}}c_=e+120|0;S_=a[c_>>2]|0;L_=Ce+160|0;a[L_>>2]=S_;W_=e+104|0;ip=a[W_>>2]|0;dp=Ce+164|0;a[dp>>2]=ip;yp=e+108|0;Cp=a[yp>>2]|0;Yp=Ce+168|0;a[Yp>>2]=Cp;tk=e+112|0;vk=a[tk>>2]|0;Mk=Ce+172|0;a[Mk>>2]=vk;Ik=e+116|0;Gk=a[Ik>>2]|0;aS=Ce+176|0;a[aS>>2]=Gk;ES=e+8|0;OS=a[ES>>2]|0;HS=Ce+68|0;a[HS>>2]=OS;XS=(OS|0)==1;og=e+48|0;if(XS){a[og>>2]=3;wg=Ce+72|0;a[wg>>2]=1;Ra=wg;Ta=1;Ny=23}else{y=a[og>>2]|0;Ag=(y|0)==3;He=Ag?1:2;Ze=Ce+72|0;a[Ze>>2]=He;if(Ag){Ra=Ze;Ta=He;Ny=23}else{p=e+52|0;F=a[p>>2]|0;Lr=F;Na=He;no=Ze}}if((Ny|0)==23){fr=e+52|0;a[fr>>2]=0;Lr=0;Na=Ta;no=Ra}kr=Ce+80|0;a[kr>>2]=Lr;Yr=e+156|0;ai=a[Yr>>2]|0;if((ai|0)==4|(ai|0)==1){Ny=29}else if((ai|0)==0){Ei=e+168|0;Ai=a[Ei>>2]|0;Wi=(Ai|0)==128;if(!Wi){nt=e+96|0;wt=a[nt>>2]|0;Rt=(wt|0)==0;if(Rt){a[nt>>2]=Ai}}Vn=e+56|0;ea=a[Vn>>2]|0;ca=Ce+152|0;a[ca>>2]=ea;ga=e+96|0;La=a[ga>>2]|0;Ba=(La|0)==0;do{if(Ba){Ia=e+100|0;Ha=+f[Ia>>2];Wg=+V(+Ha);xa=Wg;Ua=Ha!=Ha|0.0!=0.0|Ha==0.0;if(Ua){Va=Ha==0.0;if(!Va){break}}else{za=xa*9.9999999747524271E-7;qa=!(xa<=za);if(qa){break}}f[Ia>>2]=11.024999618530273}}while(0);Wa=e+100|0;Ya=+f[Wa>>2];Ka=Ya>0.0;if(Ka){Ga=e+16|0;Xa=a[Ga>>2]|0;Za=(Xa|0)==0;if(Za){Ja=e+12|0;Qa=a[Ja>>2]|0;$a=+(Qa|0);eo=$a*0.96999999999999997;io=~~eo;to=Dt(io)|0;a[Ga>>2]=to;O=a[no>>2]|0;A=+f[Wa>>2];oo=to;lo=O;co=A}else{oo=Xa;lo=Na;co=Ya}ao=oo<<4;so=ie(ao,lo)|0;fo=+(so|0);uo=co;vo=uo*1000.0;mo=fo/vo;Eo=~~mo;a[ga>>2]=Eo;wo=Lt(oo,vs)|0;bo=Ce+20|0;a[bo>>2]=wo;_o=a[ca>>2]|0;po=(_o|0)==0;if(po){ko=a[ga>>2]|0;So=a[vs>>2]|0;go=a[Ga>>2]|0;Mo=Tt(ko,So,go)|0;a[ga>>2]=Mo;om=ca}else{om=ca}}else{om=ca}}else{Zt=e+56|0;a[Zt>>2]=0;Ny=29}if((Ny|0)==29){ln=e+56|0;kn=a[ln>>2]|0;Dn=Ce+152|0;a[Dn>>2]=kn;om=Dn}Fo=e+16|0;Oo=a[Fo>>2]|0;Ao=(Oo|0)==0;e:do{if(Ao){Wo=a[Yr>>2]|0;if((Wo|0)==4|(Wo|0)==1){Ko=e+164|0;Go=a[Ko>>2]|0;Xo=+(Go|0);Zo=e+160|0;Jo=+f[Zo>>2];Qo=Xo+Jo;$o=e+12|0;es=a[$o>>2]|0;Jg=2;while(1){rs=6560+(Jg*24|0)|0;is=a[rs>>2]|0;ns=(es|0)==(is|0);if(ns){as=(6560+(Jg*24|0)|0)+4|0;os=+f[as>>2];ss=Qo>2];hs=cs;ds=hs*fs;Es=~~ds;a[Ko>>2]=Es;ws=+(Es|0);bs=ds-ws;_s=bs;f[Zo>>2]=_s}}ps=(es|0)<(is|0);if(!ps){ks=(6560+(Jg*24|0)|0)+4|0;Ss=+f[ks>>2];gs=!(Ss<=Qo);if(!gs){ys=(6560+(Jg*24|0)|0)+8|0;Ms=+f[ys>>2];Os=Qo>2];Ns=(6560+(Qg*24|0)|0)+12|0;Ds=+f[Ns>>2];Ps=Ts-Ds;Ls=Qo-b;Cs=Ps*Ls;Bs=Cs/As;Hs=Bs+Ds;xs=Hs;Us=~~Hs;a[Ko>>2]=Us;zs=+(Us|0);qs=xs-zs;Vs=qs;f[Zo>>2]=Vs;a[Fo>>2]=w;js=e+184|0;Ws=a[js>>2]|0;Ys=(Ws|0)==0;if(Ys){a[js>>2]=-1;Da=w}else{Da=w}}else{Da=0}}else{Ro=(Oo|0)<16000;if(Ro){To=e+168|0;No=a[To>>2]|0;Do=(No|0)>8;r=Do?No:8;Po=(r|0)<64;Lo=Po?r:64;a[To>>2]=Lo;Da=Oo;break}Bo=(Oo|0)<32000;Io=e+168|0;Ho=a[Io>>2]|0;if(Bo){xo=(Ho|0)>8;v=xo?Ho:8;Uo=(v|0)<160;zo=Uo?v:160;a[Io>>2]=zo;Da=Oo;break}else{qo=(Ho|0)>32;m=qo?Ho:32;Vo=(m|0)<320;jo=Vo?m:320;a[Io>>2]=jo;Da=Oo;break}}}while(0);Zs=e+184|0;Js=a[Zs>>2]|0;Qs=(Js|0)==0;if(Qs){$s=a[Yr>>2]|0;switch($s|0){case 0:{el=e+96|0;rl=a[el>>2]|0;il=rl&65535;tl=Nt(il)|0;nl=(6776+(tl<<3)|0)+4|0;ol=a[nl>>2]|0;sl=+(ol|0);kf=sl;break}case 3:{ll=e+168|0;fl=a[ll>>2]|0;ul=fl&65535;cl=Nt(ul)|0;hl=(6776+(cl<<3)|0)+4|0;dl=a[hl>>2]|0;vl=+(dl|0);kf=vl;break}case 2:{ml=e+164|0;wl=a[ml>>2]|0;bl=wl>>>0<10;if(bl){_l=6912+(wl<<2)|0;pl=a[_l>>2]|0;kl=+(pl|0);Sl=wl+1|0;gl=6912+(Sl<<2)|0;yl=a[gl>>2]|0;Ml=+(yl|0);Fl=e+160|0;Al=+f[Fl>>2];Rl=Al;Tl=Ml-kl;Nl=Tl*Rl;Dl=Nl+kl;kf=Dl}else{kf=19500.0}break}case 1:case 4:{Pl=e+164|0;Ll=a[Pl>>2]|0;Cl=Ll>>>0<10;if(Cl){Bl=6960+(Ll<<2)|0;Il=a[Bl>>2]|0;xl=+(Il|0);Ul=Ll+1|0;zl=6960+(Ul<<2)|0;ql=a[zl>>2]|0;Vl=+(ql|0);jl=e+160|0;Wl=+f[jl>>2];Yl=Wl;Kl=Vl-xl;Gl=Kl*Yl;Zl=Gl+xl;kf=Zl}else{kf=21500.0}break}default:{Jl=e+164|0;Ql=a[Jl>>2]|0;$l=Ql>>>0<10;if($l){ef=7008+(Ql<<2)|0;rf=a[ef>>2]|0;tf=+(rf|0);nf=Ql+1|0;af=7008+(nf<<2)|0;of=a[af>>2]|0;lf=+(of|0);ff=e+160|0;uf=+f[ff>>2];cf=uf;hf=lf-tf;df=hf*cf;vf=df+tf;kf=vf}else{kf=19500.0}}}mf=a[og>>2]|0;Ef=(mf|0)==3;if(Ef){wf=a[Yr>>2]|0;if((wf|0)==3|(wf|0)==0){pf=kf*1.5;gf=pf}else{gf=kf}}else{gf=kf}Sf=~~gf;a[Zs>>2]=Sf;R=a[Fo>>2]|0;yf=R;Of=Sf}else{yf=Da;Of=Js}Mf=(yf|0)==0;if(Mf){Ff=Of<<1;Af=e+12|0;Rf=a[Af>>2]|0;Nf=(Ff|0)>(Rf|0);if(Nf){Df=(Rf|0)/2&-1;a[Zs>>2]=Df;Vf=Df}else{Vf=Of}Pf=(Rf|0)>47999;do{if(Pf){yy=48000}else{Lf=(Rf|0)>44099;if(Lf){yy=44100}else{Cf=(Rf|0)>31999;if(Cf){yy=32000}else{Bf=(Rf|0)>23999;if(Bf){yy=24000}else{If=(Rf|0)>22049;if(If){yy=22050}else{Hf=(Rf|0)>15999;if(Hf){yy=16000}else{xf=(Rf|0)>11999;if(xf){yy=12000;break}Uf=(Rf|0)>11024;if(Uf){yy=11025;break}qf=(Rf|0)>7999;i=qf?8000:44100;yy=i}}}}}}}while(0);jf=(Vf|0)==-1;do{if(jf){n=yy}else{Wf=(Vf|0)<15961;Re=Wf?44100:yy;Yf=(Vf|0)<15251;My=Yf?32000:Re;Kf=(Vf|0)<11221;Te=Kf?24000:My;Gf=(Vf|0)<9971;Fy=Gf?22050:Te;Xf=(Vf|0)<7231;Ne=Xf?16000:Fy;Zf=(Vf|0)<5421;Oy=Zf?12000:Ne;Jf=(Vf|0)<4511;De=Jf?11025:Oy;$f=(Vf|0)<3971;Ay=$f?8000:De;eu=(Ay|0)>(Rf|0);if(eu){ru=(Rf|0)>44100;if(ru){n=48000}else{iu=(Rf|0)>32000;if(iu){n=44100}else{tu=(Rf|0)>24000;if(tu){n=32000}else{nu=(Rf|0)>22050;if(nu){n=24000;break}au=(Rf|0)>16000;if(au){n=22050;break}ou=(Rf|0)>12000;if(ou){n=16000;break}su=(Rf|0)>11025;if(su){n=12000;break}lu=(Rf|0)>8000;o=lu?11025:8000;n=o}}}}else{n=Ay}}}while(0);a[Fo>>2]=n;cu=Vf;vu=n}else{cu=Of;vu=yf}uu=a[Yr>>2]|0;do{if((uu|0)==4|(uu|0)==1){hu=(cu|0)>24000;E=hu?24000:cu;du=(vu|0)/2&-1;mu=(du|0)<(E|0);Ae=mu?du:E;a[Zs>>2]=Ae;Eu=(uu|0)==3;if(Eu){Ny=98}}else{wu=(cu|0)>20500;s=wu?20500:cu;bu=(vu|0)/2&-1;_u=(bu|0)<(s|0);Oe=_u?bu:s;a[Zs>>2]=Oe;if((uu|0)==3){Ny=98;break}else if(!((uu|0)==0)){break}ku=vu<<4;Su=a[no>>2]|0;gu=ie(ku,Su)|0;yu=+(gu|0);Mu=e+96|0;Fu=a[Mu>>2]|0;Ou=+(Fu|0);Au=Ou*1000.0;Ru=yu/Au;Tu=Ru;Du=e+100|0;f[Du>>2]=Tu}}while(0);if((Ny|0)==98){Pu=vu<<4;Lu=a[no>>2]|0;Cu=ie(Pu,Lu)|0;Bu=+(Cu|0);Iu=e+168|0;Hu=a[Iu>>2]|0;xu=+(Hu|0);Uu=xu*1000.0;zu=Bu/Uu;Vu=zu;ju=e+100|0;f[ju>>2]=Vu}Wu=e+36|0;Yu=a[Wu>>2]|0;Ku=(Yu|0)==0;Gu=e+60|0;if(Ku){a[Gu>>2]=0;Xu=e+64|0;a[Xu>>2]=0;Zu=Ce+132|0;a[Zu>>2]=0;Ju=Ce+128|0;a[Ju>>2]=0;Qu=Ce+136|0;a[Qu>>2]=0}else{T=a[Gu>>2]|0;k=e+64|0;N=a[k>>2]|0;ec=Ce+128|0;a[ec>>2]=T;rc=Ce+136|0;a[rc>>2]=N;ic=(N|0)==0;if(ic){Pa=0}else{tc=Ce+132|0;a[tc>>2]=1;Pa=N}nc=(T|0)==0;do{if(nc){lc=Pa}else{ac=a[ub>>2]|0;oc=Pe(ac|0,vu|0)|0;sc=(oc|0)==0;if(!sc){D=a[rc>>2]|0;lc=D;break}Ot(Ce);a[Le>>2]=0;t=-6;c=Dy;return t|0}}while(0);fc=(lc|0)==0;if(!fc){cc=e+40|0;hc=a[cc>>2]|0;dc=(hc|0)==0;if(dc){vc=Ce+85808|0;mc=a[vc>>2]|0;Ec=(mc|0)==(0|0);if(!Ec){Be(mc|0)|0}wc=ar()|0;a[vc>>2]=wc;bc=a[Fs>>2]|0;ze(wc|0,bc|0);_c=a[vc>>2]|0;pc=a[Yo>>2]|0;ke(_c|0,pc|0);gc=a[vc>>2]|0;yc=a[ho>>2]|0;tr(gc|0,yc|0)}}}Mc=e+128|0;Fc=a[Mc>>2]|0;Oc=Ce+144|0;a[Oc>>2]=Fc;Ac=a[Zs>>2]|0;Rc=Ce+52|0;a[Rc>>2]=Ac;Tc=e+188|0;Nc=a[Tc>>2]|0;Dc=Ce+56|0;a[Dc>>2]=Nc;Lc=e+12|0;Cc=a[Lc>>2]|0;Bc=Ce+60|0;a[Bc>>2]=Cc;Ic=a[Fo>>2]|0;Hc=Ce+64|0;a[Hc>>2]=Ic;xc=(Ic|0)<24001;Uc=xc?1:2;zc=Ce+76|0;a[zc>>2]=Uc;qc=Ce+84760|0;a[qc>>2]=576;Vc=a[Yr>>2]|0;if((Vc|0)==4|(Vc|0)==2|(Vc|0)==1){Wc=e+164|0;Yc=a[Wc>>2]|0;Kc=7056+(Yc<<2)|0;Gc=a[Kc>>2]|0;Xc=e+100|0;a[Xc>>2]=Gc}else if((Vc|0)==3){Zc=Ic<<4;Jc=a[no>>2]|0;Qc=ie(Zc,Jc)|0;$c=+(Qc|0);eh=e+168|0;ih=a[eh>>2]|0;th=+(ih|0);nh=th*1000.0;ah=$c/nh;oh=ah;sh=e+100|0;f[sh>>2]=oh}else{lh=Ic<<4;fh=a[no>>2]|0;uh=ie(lh,fh)|0;ch=+(uh|0);dh=e+96|0;vh=a[dh>>2]|0;mh=+(vh|0);Eh=mh*1000.0;wh=ch/Eh;bh=wh;_h=e+100|0;f[_h>>2]=bh}ph=a[og>>2]|0;kh=(ph|0)==4;if(kh){a[og>>2]=1;yh=1}else{yh=ph}Sh=Ce+180|0;a[Sh>>2]=yh;Mh=(Nc|0)>0;if(Mh){Fh=+(Nc|0);Oh=Fh*2.0;Ah=Oh;Rh=Ce+256|0;f[Rh>>2]=Ah;Th=e+196|0;Nh=a[Th>>2]|0;Dh=(Nh|0)>-1;if(Dh){Ph=Nc+Nh|0;Ch=+(Ph|0);Bh=Ch*2.0;Ih=Bh;ye=Ih}else{ye=Ah}Hh=Ce+260|0;xh=+(Ic|0);Uh=Ah/xh;f[Rh>>2]=Uh;zh=ye/xh;f[Hh>>2]=zh;Pd=zh}else{qh=Ce+256|0;f[qh>>2]=0.0;Vh=Ce+260|0;f[Vh>>2]=0.0;Pd=0.0}jh=Ce+248|0;f[jh>>2]=0.0;Yh=Ce+252|0;f[Yh>>2]=0.0;Kh=(Ac|0)>0;Gh=(Ic|0)/2&-1;Xh=(Ac|0)<(Gh|0);hy=Kh&Xh;if(hy){Zh=+(Ac|0);Jh=Zh*2.0;Qh=Jh;f[Yh>>2]=Qh;$h=e+192|0;ed=a[$h>>2]|0;rd=(ed|0)>-1;if(rd){td=Ac-ed|0;nd=+(td|0);ad=nd*2.0;od=ad;f[jh>>2]=od;sd=od<0.0;if(sd){f[jh>>2]=0.0;ud=0.0}else{ud=od}}else{f[jh>>2]=Qh;ud=Qh}ld=+(Ic|0);fd=ud/ld;f[jh>>2]=fd;cd=Qh/ld;f[Yh>>2]=cd;hd=fd>0.0;if(hd){xg=0;ey=32;fy=999;while(1){vd=+(xg|0);md=vd*0.032258064516129031;Ed=md;wd=!(Ed>=cd);bd=(ey|0)<(xg|0);_d=bd|wd;ry=_d?ey:xg;pd=fd>2]=Ey;Ad=+(iy|0);Rd=Ad*0.032258064516129031;Td=Rd;f[Yh>>2]=Td}}Nd=Ce+260|0;Dd=Pd>0.0;Ld=Pd;Cd=Ld<0.021774193548387097;dy=Dd&Cd;Id=Ce+256|0;if(dy){f[Id>>2]=0.0;f[Nd>>2]=0.0;Ht(Ce,7096,Ty);g=+f[Nd>>2];xd=g}else{xd=Pd}Hd=xd>0.0;do{if(Hd){Ud=+f[Id>>2];Ug=0;Gg=-1;oy=-1;while(1){zd=+(Ug|0);qd=zd*0.032258064516129031;Vd=qd;jd=!(Vd<=Ud);Wd=(Gg|0)>(Ug|0);Yd=Wd|jd;Xg=Yd?Gg:Ug;Gd=Ud(Ug|0);Jd=Zd?oy:Ug;sy=vy?Jd:oy;Qd=Ug+1|0;Vg=(Qd|0)==32;if(Vg){Zg=Xg;ly=sy;break}else{Ug=Qd;Gg=Xg;oy=sy}}$d=+(Zg|0);ev=$d*0.032258064516129031;rv=ev;f[Id>>2]=rv;iv=(ly|0)==-1;if(iv){tv=$d+0.75;av=tv*0.032258064516129031;ov=av;f[Nd>>2]=ov;Ev=ov;zg=0;break}else{sv=+(ly|0);lv=sv+0.75;fv=lv*0.032258064516129031;uv=fv;f[Nd>>2]=uv;Ev=uv;zg=0;break}}else{Ev=xd;zg=0}}while(0);while(1){cv=+(zg|0);hv=cv*0.032258063554763794;dv=+f[Id>>2];vv=Ev>dv;do{if(vv){wv=Ev-hv;bv=wv;_v=Ev-dv;pv=_v;kv=pv+9.9999999999999995E-21;Sv=bv/kv;gv=Sv;yv=gv;Mv=gv>1.0;if(Mv){Yg=0.0;break}Ov=!(gv<=0.0);if(!Ov){Yg=1.0;break}Av=yv*1.5707963267948966;Rv=+Y(+Av);Tv=Rv;Yg=Tv}else{Yg=1.0}}while(0);Nv=+f[Yh>>2];Dv=+f[jh>>2];Pv=Nv>Dv;do{if(Pv){Lv=hv-Dv;Cv=Lv;Bv=Nv-Dv;Hv=Bv;xv=Hv+9.9999999999999995E-21;Uv=Cv/xv;zv=Uv;qv=zv;Vv=zv>1.0;if(Vv){Kg=0.0;break}jv=!(zv<=0.0);if(!jv){Kg=1.0;break}Wv=qv*1.5707963267948966;Yv=+Y(+Wv);Kv=Yv;Kg=Kv}else{Kg=1.0}}while(0);Xv=Kg*Yg;Zv=(Ce+37040|0)+(zg<<2)|0;f[Zv>>2]=Xv;Jv=zg+1|0;qg=(Jv|0)==32;if(qg){break}M=+f[Nd>>2];Ev=M;zg=Jv}Qv=a[Hc>>2]|0;$v=Lt(Qv,vs)|0;em=Ce+20|0;a[em>>2]=$v;rm=($v|0)<0;if(rm){Ot(Ce);a[Le>>2]=0;t=-1;c=Dy;return t|0}im=a[Yr>>2]|0;tm=(im|0)==0;do{if(tm){nm=a[om>>2]|0;sm=(nm|0)==0;if(!sm){lm=Ce+84744|0;a[lm>>2]=0;break}fm=e+96|0;um=a[fm>>2]|0;cm=a[vs>>2]|0;hm=a[Hc>>2]|0;dm=Tt(um,cm,hm)|0;a[fm>>2]=dm;vm=a[vs>>2]|0;mm=a[Hc>>2]|0;wm=Pt(dm,vm,mm)|0;bm=Ce+84744|0;a[bm>>2]=wm;_m=(wm|0)<1;if(!_m){break}Ot(Ce);a[Le>>2]=0;t=-1;c=Dy;return t|0}else{pm=Ce+84744|0;a[pm>>2]=1}}while(0);Ar(Ce);km=a[em>>2]|0;Sm=a[vs>>2]|0;gm=Sm*3|0;ym=gm+km|0;Mm=a[Hc>>2]|0;Fm=(Mm|0)<16000;Rm=Fm?6:0;Tm=ym+Rm|0;Nm=12200+(Tm*204|0)|0;Dm=a[Nm>>2]|0;Pm=Ce+21360|0;a[Pm>>2]=Dm;Lm=(12200+(Tm*204|0)|0)+4|0;Cm=a[Lm>>2]|0;Bm=Ce+21364|0;a[Bm>>2]=Cm;Im=(12200+(Tm*204|0)|0)+8|0;Hm=a[Im>>2]|0;Um=Ce+21368|0;a[Um>>2]=Hm;zm=(12200+(Tm*204|0)|0)+12|0;qm=a[zm>>2]|0;Vm=Ce+21372|0;a[Vm>>2]=qm;jm=(12200+(Tm*204|0)|0)+16|0;Wm=a[jm>>2]|0;Ym=Ce+21376|0;a[Ym>>2]=Wm;Km=(12200+(Tm*204|0)|0)+20|0;Gm=a[Km>>2]|0;Xm=Ce+21380|0;a[Xm>>2]=Gm;Jm=(12200+(Tm*204|0)|0)+24|0;Qm=a[Jm>>2]|0;$m=Ce+21384|0;a[$m>>2]=Qm;eE=(12200+(Tm*204|0)|0)+28|0;rE=a[eE>>2]|0;iE=Ce+21388|0;a[iE>>2]=rE;tE=(12200+(Tm*204|0)|0)+32|0;nE=a[tE>>2]|0;aE=Ce+21392|0;a[aE>>2]=nE;oE=(12200+(Tm*204|0)|0)+36|0;lE=a[oE>>2]|0;fE=Ce+21396|0;a[fE>>2]=lE;uE=(12200+(Tm*204|0)|0)+40|0;cE=a[uE>>2]|0;hE=Ce+21400|0;a[hE>>2]=cE;dE=(12200+(Tm*204|0)|0)+44|0;vE=a[dE>>2]|0;mE=Ce+21404|0;a[mE>>2]=vE;EE=(12200+(Tm*204|0)|0)+48|0;wE=a[EE>>2]|0;_E=Ce+21408|0;a[_E>>2]=wE;pE=(12200+(Tm*204|0)|0)+52|0;kE=a[pE>>2]|0;SE=Ce+21412|0;a[SE>>2]=kE;gE=(12200+(Tm*204|0)|0)+56|0;yE=a[gE>>2]|0;ME=Ce+21416|0;a[ME>>2]=yE;FE=(12200+(Tm*204|0)|0)+60|0;OE=a[FE>>2]|0;AE=Ce+21420|0;a[AE>>2]=OE;TE=(12200+(Tm*204|0)|0)+64|0;NE=a[TE>>2]|0;DE=Ce+21424|0;a[DE>>2]=NE;PE=(12200+(Tm*204|0)|0)+68|0;LE=a[PE>>2]|0;CE=Ce+21428|0;a[CE>>2]=LE;BE=(12200+(Tm*204|0)|0)+72|0;IE=a[BE>>2]|0;HE=Ce+21432|0;a[HE>>2]=IE;xE=(12200+(Tm*204|0)|0)+76|0;zE=a[xE>>2]|0;qE=Ce+21436|0;a[qE>>2]=zE;VE=(12200+(Tm*204|0)|0)+80|0;jE=a[VE>>2]|0;WE=Ce+21440|0;a[WE>>2]=jE;YE=(12200+(Tm*204|0)|0)+84|0;KE=a[YE>>2]|0;GE=Ce+21444|0;a[GE>>2]=KE;XE=(12200+(Tm*204|0)|0)+88|0;ZE=a[XE>>2]|0;QE=Ce+21448|0;a[QE>>2]=ZE;$E=ZE-KE|0;ew=($E|0)/6&-1;rw=Ce+21508|0;a[rw>>2]=KE;iw=ew+KE|0;tw=Ce+21512|0;a[tw>>2]=iw;nw=ew<<1;aw=nw+KE|0;ow=Ce+21516|0;a[ow>>2]=aw;sw=ew*3|0;fw=sw+KE|0;uw=Ce+21520|0;a[uw>>2]=fw;cw=ew<<2;hw=cw+KE|0;dw=Ce+21524|0;a[dw>>2]=hw;vw=ew*5|0;mw=vw+KE|0;Ew=Ce+21528|0;a[Ew>>2]=mw;ww=Ce+21532|0;a[ww>>2]=576;bw=(12200+(Tm*204|0)|0)+92|0;pw=a[bw>>2]|0;kw=Ce+21452|0;a[kw>>2]=pw;Sw=(12200+(Tm*204|0)|0)+96|0;gw=a[Sw>>2]|0;yw=Ce+21456|0;a[yw>>2]=gw;Mw=(12200+(Tm*204|0)|0)+100|0;Fw=a[Mw>>2]|0;Ow=Ce+21460|0;a[Ow>>2]=Fw;Aw=(12200+(Tm*204|0)|0)+104|0;Rw=a[Aw>>2]|0;Dw=Ce+21464|0;a[Dw>>2]=Rw;Pw=(12200+(Tm*204|0)|0)+108|0;Lw=a[Pw>>2]|0;Cw=Ce+21468|0;a[Cw>>2]=Lw;Bw=(12200+(Tm*204|0)|0)+112|0;Iw=a[Bw>>2]|0;Hw=Ce+21472|0;a[Hw>>2]=Iw;xw=(12200+(Tm*204|0)|0)+116|0;Uw=a[xw>>2]|0;zw=Ce+21476|0;a[zw>>2]=Uw;Vw=(12200+(Tm*204|0)|0)+120|0;jw=a[Vw>>2]|0;Ww=Ce+21480|0;a[Ww>>2]=jw;Yw=(12200+(Tm*204|0)|0)+124|0;Kw=a[Yw>>2]|0;Gw=Ce+21484|0;a[Gw>>2]=Kw;Xw=(12200+(Tm*204|0)|0)+128|0;Zw=a[Xw>>2]|0;Jw=Ce+21488|0;a[Jw>>2]=Zw;Qw=(12200+(Tm*204|0)|0)+132|0;eb=a[Qw>>2]|0;rb=Ce+21492|0;a[rb>>2]=eb;ib=(12200+(Tm*204|0)|0)+136|0;tb=a[ib>>2]|0;nb=Ce+21496|0;a[nb>>2]=tb;ab=(12200+(Tm*204|0)|0)+140|0;ob=a[ab>>2]|0;sb=Ce+21500|0;a[sb>>2]=ob;lb=(12200+(Tm*204|0)|0)+144|0;fb=a[lb>>2]|0;cb=Ce+21504|0;a[cb>>2]=fb;hb=fb-ob|0;db=(hb|0)/6&-1;vb=Ce+21536|0;a[vb>>2]=ob;mb=db+ob|0;Eb=Ce+21540|0;a[Eb>>2]=mb;wb=db<<1;bb=wb+ob|0;_b=Ce+21544|0;a[_b>>2]=bb;pb=db*3|0;Sb=pb+ob|0;gb=Ce+21548|0;a[gb>>2]=Sb;yb=db<<2;Mb=yb+ob|0;Fb=Ce+21552|0;a[Fb>>2]=Mb;Ob=db*5|0;Ab=Ob+ob|0;Rb=Ce+21556|0;a[Rb>>2]=Ab;Tb=Ce+21560|0;a[Tb>>2]=192;Nb=a[zc>>2]|0;Pb=(Nb|0)==2;Lb=a[no>>2]|0;Cb=(Lb|0)==1;Bb=Cb?13:21;Ib=Cb?21:36;Hb=Pb?Ib:Bb;xb=Ce+24|0;a[xb>>2]=Hb;Ub=a[L_>>2]|0;zb=(Ub|0)==0;if(!zb){qb=Hb|2;a[xb>>2]=qb}a[Ce>>2]=-487877;jb=Nb*700|0;Wb=ie(jb,Lb)|0;Yb=+(Wb|0);Kb=Ce+39756|0;f[Kb>>2]=Yb;P=a[zc>>2]|0;ee=a[no>>2]|0;Gb=P*700|0;Xb=ie(Gb,ee)|0;Zb=+(Xb|0);Jb=Ce+39760|0;f[Jb>>2]=Zb;L=a[zc>>2]|0;re=a[no>>2]|0;Qb=L*700|0;$b=ie(Qb,re)|0;r_=+($b|0);i_=Ce+39764|0;f[i_>>2]=r_;j=a[zc>>2]|0;ce=a[no>>2]|0;t_=j*700|0;n_=ie(t_,ce)|0;a_=+(n_|0);o_=Ce+39768|0;f[o_>>2]=a_;K=a[zc>>2]|0;he=a[no>>2]|0;s_=K*700|0;l_=ie(s_,he)|0;f_=+(l_|0);u_=Ce+39772|0;f[u_>>2]=f_;G=a[zc>>2]|0;de=a[no>>2]|0;h_=G*700|0;d_=ie(h_,de)|0;v_=+(d_|0);m_=Ce+39776|0;f[m_>>2]=v_;X=a[zc>>2]|0;ve=a[no>>2]|0;E_=X*700|0;w_=ie(E_,ve)|0;b_=+(w_|0);__=Ce+39780|0;f[__>>2]=b_;Z=a[zc>>2]|0;me=a[no>>2]|0;p_=Z*700|0;k_=ie(p_,me)|0;g_=+(k_|0);y_=Ce+39784|0;f[y_>>2]=g_;J=a[zc>>2]|0;Ee=a[no>>2]|0;M_=J*700|0;F_=ie(M_,Ee)|0;O_=+(F_|0);A_=Ce+39788|0;f[A_>>2]=O_;Q=a[zc>>2]|0;we=a[no>>2]|0;R_=Q*700|0;T_=ie(R_,we)|0;N_=+(T_|0);D_=Ce+39792|0;f[D_>>2]=N_;$=a[zc>>2]|0;be=a[no>>2]|0;C_=$*700|0;B_=ie(C_,be)|0;I_=+(B_|0);H_=Ce+39796|0;f[H_>>2]=I_;C=a[zc>>2]|0;te=a[no>>2]|0;x_=C*700|0;U_=ie(x_,te)|0;z_=+(U_|0);q_=Ce+39800|0;f[q_>>2]=z_;B=a[zc>>2]|0;ne=a[no>>2]|0;V_=B*700|0;j_=ie(V_,ne)|0;Y_=+(j_|0);K_=Ce+39804|0;f[K_>>2]=Y_;I=a[zc>>2]|0;ae=a[no>>2]|0;G_=I*700|0;X_=ie(G_,ae)|0;Z_=+(X_|0);J_=Ce+39808|0;f[J_>>2]=Z_;H=a[zc>>2]|0;oe=a[no>>2]|0;Q_=H*700|0;$_=ie(Q_,oe)|0;ep=+($_|0);rp=Ce+39812|0;f[rp>>2]=ep;x=a[zc>>2]|0;se=a[no>>2]|0;tp=x*700|0;np=ie(tp,se)|0;ap=+(np|0);op=Ce+39816|0;f[op>>2]=ap;U=a[zc>>2]|0;le=a[no>>2]|0;sp=U*700|0;lp=ie(sp,le)|0;fp=+(lp|0);up=Ce+39820|0;f[up>>2]=fp;z=a[zc>>2]|0;fe=a[no>>2]|0;cp=z*700|0;hp=ie(cp,fe)|0;vp=+(hp|0);mp=Ce+39824|0;f[mp>>2]=vp;q=a[zc>>2]|0;ue=a[no>>2]|0;Ep=q*700|0;wp=ie(Ep,ue)|0;bp=+(wp|0);_p=Ce+39828|0;f[_p>>2]=bp;pp=e+220|0;kp=a[pp>>2]|0;Sp=(kp|0)==-1;if(Sp){a[pp>>2]=4}gp=a[Yr>>2]|0;do{if((gp|0)==4|(gp|0)==1){Mp=e+124|0;Fp=a[Mp>>2]|0;Op=(Fp|0)<0;if(Op){a[Mp>>2]=2}Ap=e+244|0;Rp=a[Ap>>2]|0;Tp=(Rp|0)<0;if(Tp){a[Ap>>2]=0}Np=e+164|0;Dp=a[Np>>2]|0;Pp=ie(Dp,-10)|0;Lp=Pp+500|0;ei(e,Lp,0)|0;Bp=e+44|0;Ip=a[Bp>>2]|0;Hp=(Ip|0)<0;do{if(Hp){a[Bp>>2]=3;Ny=169}else{xp=(Ip|0)<5;if(xp){Ny=169;break}Up=(Ip|0)>7;if(!Up){break}a[Bp>>2]=7}}while(0);if((Ny|0)==169){a[Bp>>2]=0}zp=e+140|0;qp=a[zp>>2]|0;Vp=(qp|0)==0;if(Vp){jp=a[Hc>>2]|0;Wp=(jp|0)>44000;Kp=Wp&1;Me=Kp}else{Me=0}Gp=Ce+85092|0;a[Gp>>2]=Me;Xp=Ce+85812|0;a[Xp>>2]=1}else if((gp|0)==2){Zp=e+164|0;Jp=a[Zp>>2]|0;Qp=ie(Jp,-10)|0;$p=Qp+500|0;ei(e,$p,0)|0;ek=e+140|0;rk=a[ek>>2]|0;ik=(rk|0)==0;if(ik){nk=a[Hc>>2]|0;ak=(nk|0)>44000;ok=ak&1;Fe=ok}else{Fe=0}sk=Ce+85092|0;a[sk>>2]=Fe;lk=e+44|0;fk=a[lk>>2]|0;uk=(fk|0)>6;do{if(uk){a[lk>>2]=6}else{ck=(fk|0)<0;if(!ck){break}a[lk>>2]=3}}while(0);hk=Ce+85812|0;a[hk>>2]=2}else{dk=Ce+85092|0;a[dk>>2]=0;mk=e+44|0;Ek=a[mk>>2]|0;wk=(Ek|0)<0;if(wk){a[mk>>2]=3}bk=(gp|0)==0;if(bk){_k=e+96|0;pk=a[_k>>2]|0;Yi(e,pk)|0}kk=e+168|0;Sk=a[kk>>2]|0;ei(e,Sk,0)|0;a[Yr>>2]=gp;gk=Ce+85812|0;if(bk){a[gk>>2]=3;break}else{a[gk>>2]=4;break}}}while(0);yk=e+200|0;Fk=a[yk>>2]|0;Ok=Ce+84912|0;a[Ok>>2]=Fk;Ak=e+204|0;Rk=a[Ak>>2]|0;Tk=Ce+84916|0;a[Tk>>2]=Rk;Nk=e+256|0;Dk=a[Nk>>2]|0;Pk=(Dk|0)==0;if(!Pk){Lk=(a[d>>2]=Rk,+f[d>>2]);Ck=(a[d>>2]=Fk,+f[d>>2]);Hk=e+260|0;xk=+f[Hk>>2];Uk=Ck+xk;f[Ok>>2]=Uk;zk=Lk+xk;f[Tk>>2]=zk}qk=a[Yr>>2]|0;Vk=(qk|0)==0;if(Vk){S=e+168|0;ge=a[S>>2]|0;CS=0;eg=ge}else{jk=Ce+112|0;a[jk>>2]=1;Wk=Ce+116|0;Yk=a[Hc>>2]|0;Kk=(Yk|0)<16000;l=Kk?8:14;a[Wk>>2]=l;Xk=e+172|0;Zk=a[Xk>>2]|0;Jk=(Zk|0)==0;do{if(Jk){Ca=1}else{Qk=a[vs>>2]|0;$k=Tt(Zk,Qk,Yk)|0;a[Xk>>2]=$k;eS=a[vs>>2]|0;rS=a[Hc>>2]|0;iS=Pt($k,eS,rS)|0;a[jk>>2]=iS;tS=(iS|0)<0;if(tS){t=-1}else{Ca=iS;break}c=Dy;return t|0}}while(0);nS=e+176|0;oS=a[nS>>2]|0;sS=(oS|0)==0;do{if(sS){pe=a[Wk>>2]|0;bS=Ca;kS=pe}else{lS=a[vs>>2]|0;fS=a[Hc>>2]|0;uS=Tt(oS,lS,fS)|0;a[nS>>2]=uS;cS=a[vs>>2]|0;hS=a[Hc>>2]|0;dS=Pt(uS,cS,hS)|0;a[Wk>>2]=dS;vS=(dS|0)<0;if(vS){t=-1;c=Dy;return t|0}else{_e=a[jk>>2]|0;bS=_e;kS=dS;break}}}while(0);mS=a[vs>>2]|0;wS=(83944+(mS<<6)|0)+(bS<<2)|0;_S=a[wS>>2]|0;a[Xk>>2]=_S;pS=(83944+(mS<<6)|0)+(kS<<2)|0;SS=a[pS>>2]|0;a[nS>>2]=SS;gS=e+168|0;yS=a[gS>>2]|0;MS=(SS|0)<(yS|0);u=MS?SS:yS;FS=(_S|0)>(u|0);AS=FS?_S:u;a[gS>>2]=AS;Se=a[Yr>>2]|0;CS=Se;eg=AS}RS=e+152|0;TS=a[RS>>2]|0;NS=Ce+100|0;a[NS>>2]=TS;DS=a[Wu>>2]|0;PS=Ce+156|0;a[PS>>2]=DS;LS=Ce+104|0;a[LS>>2]=CS;BS=e+80|0;IS=a[BS>>2]|0;xS=Ce+85096|0;a[xS>>2]=IS;US=e+84|0;zS=a[US>>2]|0;qS=Ce+28|0;a[qS>>2]=zS;VS=e+88|0;jS=a[VS>>2]|0;WS=Ce+32|0;a[WS>>2]=jS;YS=e+92|0;KS=a[YS>>2]|0;GS=Ce+36|0;a[GS>>2]=KS;ZS=e+96|0;JS=a[ZS>>2]|0;QS=Ce+120|0;a[QS>>2]=JS;$S=Ce+108|0;a[$S>>2]=eg;rg=e+100|0;ig=a[rg>>2]|0;tg=Ce+244|0;a[tg>>2]=ig;ng=a[Le>>2]|0;ag=e+44|0;sg=a[ag>>2]|0;switch(sg|0){case 6:{vg=ng+28|0;mg=a[vg>>2]|0;Eg=(mg|0)==0;if(Eg){a[vg>>2]=1}bg=ng+40|0;a[bg>>2]=0;_g=ng+44|0;a[_g>>2]=0;pg=ng+32|0;kg=a[pg>>2]|0;Sg=(kg|0)==-1;if(Sg){a[pg>>2]=1}gg=ng+36|0;a[gg>>2]=0;yg=ng+48|0;a[yg>>2]=0;break}case 5:{Mg=ng+28|0;Fg=a[Mg>>2]|0;Og=(Fg|0)==0;if(Og){a[Mg>>2]=1}Rg=ng+40|0;a[Rg>>2]=0;Tg=ng+44|0;a[Tg>>2]=0;Ng=ng+32|0;Dg=a[Ng>>2]|0;Pg=(Dg|0)==-1;if(Pg){a[Ng>>2]=1}Lg=ng+36|0;a[Lg>>2]=0;Cg=ng+48|0;a[Cg>>2]=0;break}case 8:{a[ag>>2]=7;Ny=203;break}case 7:{Ny=203;break}case 3:{Ke=ng+28|0;Ge=a[Ke>>2]|0;Xe=(Ge|0)==0;if(Xe){a[Ke>>2]=1}Je=ng+40|0;a[Je>>2]=1;Qe=ng+44|0;a[Qe>>2]=1;$e=ng+32|0;er=a[$e>>2]|0;rr=(er|0)==-1;if(rr){a[$e>>2]=1}ir=ng+36|0;a[ir>>2]=1;nr=ng+48|0;a[nr>>2]=0;break}case 4:{Bg=ng+28|0;Ig=a[Bg>>2]|0;Hg=(Ig|0)==0;if(Hg){a[Bg>>2]=1}xe=ng+40|0;a[xe>>2]=0;Ue=ng+44|0;a[Ue>>2]=0;qe=ng+32|0;Ve=a[qe>>2]|0;je=(Ve|0)==-1;if(je){a[qe>>2]=1}We=ng+36|0;a[We>>2]=1;Ye=ng+48|0;a[Ye>>2]=0;break}case 1:{gr=ng+28|0;yr=a[gr>>2]|0;Mr=(yr|0)==0;if(Mr){a[gr>>2]=1}Fr=ng+85096|0;Or=a[Fr>>2]|0;Rr=(Or|0)==0;if(Rr){a[Fr>>2]=2}Tr=ng+40|0;a[Tr>>2]=2;Nr=ng+44|0;a[Nr>>2]=1;Dr=ng+32|0;Pr=a[Dr>>2]|0;Cr=(Pr|0)==-1;if(Cr){a[Dr>>2]=1}Br=ng+36|0;a[Br>>2]=1;Ir=ng+48|0;a[Ir>>2]=0;break}case 2:{or=ng+28|0;sr=a[or>>2]|0;lr=(sr|0)==0;if(lr){a[or>>2]=1}ur=ng+85096|0;cr=a[ur>>2]|0;hr=(cr|0)==0;if(hr){a[ur>>2]=2}dr=ng+40|0;a[dr>>2]=1;vr=ng+44|0;a[vr>>2]=1;mr=ng+32|0;Er=a[mr>>2]|0;wr=(Er|0)==-1;if(wr){a[mr>>2]=1}_r=ng+36|0;a[_r>>2]=1;pr=ng+48|0;a[pr>>2]=0;break}case 0:{xr=ng+28|0;Ur=a[xr>>2]|0;zr=(Ur|0)==0;if(zr){a[xr>>2]=1}qr=ng+85096|0;Vr=a[qr>>2]|0;jr=(Vr|0)==0;if(jr){a[qr>>2]=2}Wr=ng+40|0;a[Wr>>2]=2;Kr=ng+44|0;a[Kr>>2]=1;Gr=ng+32|0;Xr=a[Gr>>2]|0;Zr=(Xr|0)==-1;if(Zr){a[Gr>>2]=1}Jr=ng+36|0;a[Jr>>2]=1;Qr=ng+48|0;a[Qr>>2]=1;break}default:{lg=ng+28|0;a[lg>>2]=0;fg=ng+36|0;a[fg>>2]=0|0;a[fg+4>>2]=0|0;a[fg+8>>2]=0|0;a[fg+12>>2]=0|0}}do{if((Ny|0)==203){ug=ng+28|0;a[ug>>2]=0;cg=ng+36|0;hg=ng+48|0;a[cg>>2]=0|0;a[cg+4>>2]=0|0;a[cg+8>>2]=0|0;a[cg+12>>2]=0|0;dg=a[Yr>>2]|0;if(!((dg|0)==4|(dg|0)==1)){break}a[hg>>2]=-1}}while(0);$r=e+232|0;ri=a[$r>>2]|0;ii=(ri|0)<0;ti=a[lw>>2]|0;h=ii?3:ri;a[ti>>2]=h;oi=e+236|0;si=+f[oi>>2];li=si;fi=li*-0.10000000000000001;ui=+W(10.0,+fi);ci=ui;hi=ti+4|0;f[hi>>2]=ci;di=e+240|0;vi=a[di>>2]|0;if((vi|0)==-1){a[di>>2]=0;Ny=248}else if((vi|0)==0){Ny=248}else{bi=vi}do{if((Ny|0)==248){mi=a[Sh>>2]|0;Ry=mi>>>0<2;if(!Ry){bi=0;break}a[di>>2]=1;bi=1}}while(0);wi=Ce+184|0;a[wi>>2]=bi;pi=Hi(e)|0;ki=(pi|0)<0;if(ki){Bi(e,1)|0}Si=xi(e)|0;gi=(Si|0)<0;if(gi){Ii(e,0)|0}yi=+dt(e);Mi=yi<0.0;if(Mi){ht(e,0.0)}Fi=qi(e)|0;Oi=Fi|1;zi(e,Oi)|0;Ri=a[pp>>2]|0;Ti=(Ri|0)<0;if(Ti){a[pp>>2]=4;mt=4}else{mt=Ri}Ni=e+224|0;Di=+f[Ni>>2];Pi=Di<0.0;Li=(f[d>>2]=Di,a[d>>2]|0);if(Pi){f[Ni>>2]=4.0;ct=1082130432}else{ct=Li}Ci=e+248|0;Ui=+f[Ci>>2];Vi=Ui<0.0;ji=(f[d>>2]=Ui,a[d>>2]|0);if(Vi){f[Ci>>2]=0.0;Ji=0}else{Ji=ji}Ki=e+244|0;Gi=a[Ki>>2]|0;Xi=(Gi|0)<0;if(Xi){a[Ki>>2]=1;Wt=1}else{Wt=Gi}Zi=Ce+188|0;a[Zi>>2]=Ji;Qi=e+252|0;$i=a[Qi>>2]|0;et=Ce+192|0;a[et>>2]=$i;rt=e+228|0;it=+f[rt>>2];at=-it;ot=Ce+196|0;f[ot>>2]=at;st=it*-0.10000000149011612;lt=+W(10.0,+st);ft=Ce+200|0;f[ft>>2]=lt;ut=Ce+204|0;a[ut>>2]=ct;vt=Ce+208|0;a[vt>>2]=mt;Et=e+208|0;bt=a[Et>>2]|0;_t=Ce+212|0;a[_t>>2]=bt;pt=e+212|0;kt=a[pt>>2]|0;St=Ce+216|0;a[St>>2]=kt;gt=e+216|0;yt=a[gt>>2]|0;Mt=Ce+220|0;a[Mt>>2]=yt;Ft=e+132|0;At=a[Ft>>2]|0;Ct=Ce+84|0;a[Ct>>2]=At;Bt=e+136|0;It=a[Bt>>2]|0;xt=Ce+88|0;a[xt>>2]=It;jt=Ce+92|0;a[jt>>2]=Wt;Yt=e+148|0;Kt=a[Yt>>2]|0;Gt=Kt&2;Xt=Ce+96|0;a[Xt>>2]=Gt;Jt=Kt>>>2;Qt=Jt&63;$t=+(Qt|0);en=Ce+232|0;rn=!($t>=32.0);tn=$t+-64.0;gy=rn?$t:tn;nn=gy*0.25;f[en>>2]=nn;an=Kt>>>8;on=an&63;sn=+(on|0);fn=Ce+228|0;un=!(sn>=32.0);cn=sn+-64.0;Sy=un?sn:cn;hn=Sy*0.25;f[fn>>2]=hn;dn=Kt>>>14;vn=dn&63;mn=+(vn|0);En=Ce+236|0;bn=!(mn>=32.0);_n=mn+-64.0;ky=bn?mn:_n;Sn=ky*0.25;f[En>>2]=Sn;gn=Kt>>>20;yn=gn&63;Mn=+(yn|0);Fn=Ce+240|0;On=!(Mn>=32.0);An=Mn+-64.0;py=On?Mn:An;Rn=py+ky;Tn=Rn*0.25;f[Fn>>2]=Tn;Nn=e+20|0;Pn=+f[Nn>>2];Ln=e+24|0;Cn=+f[Ln>>2];Bn=Cn*Pn;In=e+28|0;Hn=+f[In>>2];xn=Hn*Pn;Un=a[HS>>2]|0;zn=(Un|0)==2;do{if(zn){qn=a[no>>2]|0;jn=(qn|0)==1;if(!jn){ty=Bn;ny=xn;ay=0.0;break}Wn=Bn*0.5;Yn=xn*0.5;ty=Wn;ny=0.0;ay=Yn}else{ty=Bn;ny=xn;ay=0.0}}while(0);Kn=Ce+264|0;f[Kn>>2]=ty;Gn=Ce+268|0;f[Gn>>2]=ay;Xn=Ce+272|0;f[Xn>>2]=0.0;Zn=Ce+276|0;f[Zn>>2]=ny;Jn=Ce+39832|0;a[Jn>>2]=0;Qn=Ce+39836|0;a[Qn>>2]=0;$n=a[LS>>2]|0;ra=($n|0)==0;if(ra){ia=a[vs>>2]|0;ta=ia*72000|0;na=ta+72000|0;aa=a[QS>>2]|0;oa=ie(na,aa)|0;sa=a[Hc>>2]|0;la=(oa|0)%(sa|0)&-1;a[Jn>>2]=la;a[Qn>>2]=la}fa=a[e>>2]|0;ua=(fa|0)==-487877;do{if(ua){ha=a[Le>>2]|0;da=(ha|0)==(0|0);if(da){break}va=ha+84040|0;ma=ha+84748|0;a[ma>>2]=0;Ea=e+68|0;wa=a[Ea>>2]|0;ba=(wa|0)==0;if(!ba){Hr(e)|0}_a=ha+85684|0;f[_a>>2]=0.0;pa=ha+156|0;pn(va|0,0,704)|0;ka=a[pa>>2]|0;ya=(ka|0)==0;if(ya){break}br(e)|0}}while(0);_i(Ce);ni(e)|0;Ma=e+124|0;Fa=a[Ma>>2]|0;Oa=Sr(vs,Fa)|0;Aa=Ce+148|0;a[Aa>>2]=Oa;t=0;c=Dy;return t|0}function Wr(e,r,i,t,n,a){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;a=a|0;var o=0,s=0,l=0;l=c;o=Xr(e,r,i,t,n,a,3,1,32767.0)|0;return o|0}function Yr(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0.0,L=0,C=0,B=0.0,I=0.0,H=0.0,x=0.0,U=0.0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0.0,ae=0.0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0.0,We=0,Ye=0,Ke=0;Ke=c;c=c+4608|0;Ue=Ke;_=(e|0)==(0|0);if(_){o=-3;c=Ke;return o|0}p=a[e>>2]|0;N=(p|0)==-487877;if(!N){o=-3;c=Ke;return o|0}q=e+288|0;$=a[q>>2]|0;ue=($|0)==(0|0);if(ue){o=-3;c=Ke;return o|0}ke=a[$>>2]|0;De=(ke|0)==-487877;if(!De){o=-3;c=Ke;return o|0}He=$+84032|0;xe=a[He>>2]|0;k=(xe|0)<1;if(k){o=0;c=Ke;return o|0}S=$+16|0;g=$+76|0;y=a[g>>2]|0;M=y*576|0;F=M+752|0;O=xe+-1152|0;pn(Ue|0,0,4608)|0;A=Ct(S)|0;R=(A|0)==0;if(R){je=1.0;We=O}else{T=$+60|0;D=a[T>>2]|0;P=+(D|0);L=$+64|0;C=a[L>>2]|0;B=+(C|0);I=P/B;H=16.0/I;x=+(O|0);U=H+x;z=~~U;je=I;We=z}V=(We|0)%(M|0)&-1;j=M-V|0;W=(j|0)<576;Y=W?M:0;d=Y+j|0;K=$+84764|0;a[K>>2]=d;G=d+We|0;X=(G|0)/(M|0)&-1;Z=(X|0)>0;if(Z){J=$+84748|0;Q=$+84036|0;ee=(i|0)==0;re=Ue+2304|0;b=a[J>>2]|0;l=r;me=b;ze=X;Ve=0;while(1){ie=a[Q>>2]|0;te=F-ie|0;ne=+(te|0);ae=ne*je;oe=~~ae;se=(oe|0)>1152;t=se?1152:oe;le=(t|0)<1;n=le?1:t;fe=i-Ve|0;f=ee?0:fe;ce=Xr(e,Ue,re,n,l,f,0,1,1.0)|0;he=l+ce|0;de=ce+Ve|0;ve=a[J>>2]|0;Ee=(me|0)!=(ve|0);we=Ee&1;be=ze-we|0;_e=(be|0)>0;pe=(ce|0)>-1;Se=_e&pe;if(Se){l=he;me=ve;ze=be;Ve=de}else{m=ce;E=he;w=de;break}}a[He>>2]=0;ge=(m|0)<0;if(ge){o=m;c=Ke;return o|0}else{s=E;qe=w}}else{a[He>>2]=0;s=r;qe=0}ye=i-qe|0;Me=(i|0)==0;u=Me?0:ye;yr($);Fe=Or($,s,u,1)|0;Zr($);Oe=(Fe|0)<0;if(Oe){o=Fe;c=Ke;return o|0}Ae=Fe+qe|0;Re=e+68|0;Te=a[Re>>2]|0;Ne=(Te|0)==0;if(Ne){o=Ae;c=Ke;return o|0}Pe=i-Ae|0;h=Me?0:Pe;Le=s+Fe|0;Ur(e)|0;Ce=Or($,Le,h,0)|0;Be=(Ce|0)<0;Ie=Be?0:Ae;v=Ie+Ce|0;o=v;c=Ke;return o|0}function Kr(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0;b=c;i=(e|0)==(0|0);if(i){E=0;return E|0}t=a[e>>2]|0;o=(t|0)==-487877;if(!o){E=0;return E|0}s=e+288|0;l=a[s>>2]|0;a[e>>2]=0;f=(l|0)==(0|0);if(f){m=-3}else{u=a[l>>2]|0;h=(u|0)==-487877;r=h?0:-3;a[l>>2]=0;Ot(l);a[s>>2]=0;m=r}d=e+284|0;v=a[d>>2]|0;n=(v|0)==0;if(n){E=m;return E|0}En(e);E=m;return E|0}function Gr(){var e=0,r=0,i=0,t=0,n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0;var fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0;we=c;Wt();r=wn(1,304)|0;i=(r|0)==(0|0);if(i){e=0;return e|0}pn(r|0,0,304)|0;a[r>>2]=-487877;E=wn(1,85840)|0;O=r+288|0;a[O>>2]=E;H=(E|0)==(0|0);if(H){En(r);e=0;return e|0}else{X=r+124|0;a[X>>2]=2;oe=r+48|0;a[oe>>2]=4;de=r+108|0;a[de>>2]=1;ve=r+12|0;a[ve>>2]=44100;me=r+8|0;a[me>>2]=2;t=r+4|0;a[t>>2]=-1;n=r+36|0;a[n>>2]=1;o=r+44|0;a[o>>2]=-1;s=r+240|0;a[s>>2]=-1;l=r+88|0;a[l>>2]=-1;u=r+184|0;a[u>>2]=0;h=r+188|0;a[h>>2]=0;d=r+192|0;a[d>>2]=-1;v=r+196|0;a[v>>2]=-1;m=r+156|0;a[m>>2]=0;w=r+164|0;a[w>>2]=4;b=r+224|0;f[b>>2]=-1.0;_=r+168|0;a[_>>2]=128;p=r+172|0;a[p>>2]=0;k=r+176|0;a[k>>2]=0;S=r+180|0;a[S>>2]=0;g=E+112|0;a[g>>2]=1;y=E+116|0;a[y>>2]=13;M=r+132|0;a[M>>2]=-1;F=r+136|0;a[F>>2]=-1;A=r+252|0;f[A>>2]=-1.0;R=E+84920|0;a[R>>2]=180;T=E+84924|0;a[T>>2]=180;N=E+84928|0;a[N>>2]=4;D=E+84932|0;a[D>>2]=4;P=E+84908|0;f[P>>2]=1.0;L=r+264|0;f[L>>2]=-1.0;C=r+268|0;f[C>>2]=-1.0;B=r+20|0;f[B>>2]=1.0;I=r+24|0;f[I>>2]=1.0;x=r+28|0;f[x>>2]=1.0;U=r+232|0;a[U>>2]=-1;z=r+220|0;a[z>>2]=-1;q=r+236|0;f[q>>2]=0.0;V=r+244|0;a[V>>2]=-1;j=r+248|0;f[j>>2]=-1.0;W=E+84032|0;a[W>>2]=1728;Y=E+84764|0;a[Y>>2]=0;K=E+84036|0;a[K>>2]=528;G=r+60|0;a[G>>2]=0;Z=r+64|0;a[Z>>2]=0;J=E+136|0;a[J>>2]=0;Q=E+128|0;a[Q>>2]=0;$=E+132|0;a[$>>2]=0;ee=E+85680|0;re=E+85688|0;a[re>>2]=0;ie=E+85692|0;a[ie>>2]=0;f[ee>>2]=-1.0;te=r+292|0;a[te>>2]=1;ne=r+296|0;a[ne>>2]=1;ae=r+300|0;a[ae>>2]=1;se=r+152|0;a[se>>2]=0;le=r+68|0;a[le>>2]=1;fe=r+276|0;a[fe>>2]=2;ue=r+280|0;a[ue>>2]=2;ce=r+272|0;a[ce>>2]=2;he=r+284|0;a[he>>2]=1;e=r;return e|0}return 0|0}function Xr(e,r,i,t,n,o,s,l,f){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;s=s|0;l=l|0;f=+f;var u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0;var N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0;var J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0;var be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0;var He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0;var ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0;var Mr=0,Fr=0,Ar=0,Rr=0,Tr=0,Nr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0;var Kr=0,Gr=0,Xr=0,Zr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0;var vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0;var Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0;var et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0;ft=c;c=c+32|0;st=ft;$i=ft+24|0;Qi=ft+16|0;it=ft+8|0;tt=ft+4|0;L=(e|0)==(0|0);if(L){u=-3;c=ft;return u|0}C=a[e>>2]|0;$e=(C|0)==-487877;if(!$e){u=-3;c=ft;return u|0}ur=e+288|0;kr=a[ur>>2]|0;Lr=(kr|0)==(0|0);if(Lr){u=-3;c=ft;return u|0}Wr=a[kr>>2]|0;ti=(Wr|0)==-487877;if(!ti){u=-3;c=ft;return u|0}vi=(t|0)==0;if(vi){u=0;c=ft;return u|0}Mi=kr+52152|0;B=a[Mi>>2]|0;K=(B|0)==(0|0);do{if(K){lt=10}else{ae=kr+52148|0;Ee=a[ae>>2]|0;Oe=(Ee|0)<(t|0);if(Oe){En(B);lt=10;break}else{A=kr+52156|0;T=a[A>>2]|0;R=B;D=A;ir=T;lt=13;break}}}while(0);if((lt|0)==10){He=kr+52156|0;Xe=a[He>>2]|0;Ze=(Xe|0)==(0|0);if(!Ze){En(Xe)}Je=wn(t,4)|0;a[Mi>>2]=Je;Qe=wn(t,4)|0;a[He>>2]=Qe;er=kr+52148|0;a[er>>2]=t;rr=(Je|0)==(0|0);if(rr){N=He;nr=Qe}else{R=Je;D=He;ir=Qe;lt=13}}do{if((lt|0)==13){tr=(ir|0)==(0|0);if(tr){En(R);P=a[D>>2]|0;N=D;nr=P;break}sr=kr+68|0;lr=a[sr>>2]|0;fr=(lr|0)>1;cr=(r|0)==(0|0);do{if(fr){hr=(i|0)==(0|0);nt=cr|hr;if(nt){u=0;c=ft;return u|0}else{Jr(kr,r,i,t,s,l,f);break}}else{if(cr){u=0;c=ft;return u|0}else{Jr(kr,r,r,t,s,l,f);break}}}while(0);dr=kr+76|0;vr=a[dr>>2]|0;mr=vr*576|0;Er=a[kr>>2]|0;wr=(Er|0)==-487877;e:do{if(wr){br=Or(kr,n,o,0)|0;_r=(br|0)<0;if(_r){h=br}else{pr=n+br|0;Sr=a[Mi>>2]|0;gr=a[D>>2]|0;_=a[dr>>2]|0;yr=_*576|0;Mr=yr+752|0;Fr=kr+52160|0;a[$i>>2]=Fr;Ar=kr+68096|0;Rr=$i+4|0;a[Rr>>2]=Ar;Tr=Qi+4|0;Nr=kr+128|0;Pr=kr+72|0;Cr=kr+84036|0;Br=kr+84032|0;Ir=kr+136|0;Hr=kr+85676|0;xr=(o|0)==0;Ur=ie(vr,-576)|0;if(xr){E=t;b=pr;Ki=Sr;Ji=gr;rt=br;r:while(1){v=E;Wi=Ki;Xi=Ji;while(1){zr=(v|0)>0;if(!zr){h=rt;break e}a[it>>2]=0;a[tt>>2]=0;a[Qi>>2]=Wi;a[Tr>>2]=Xi;Bt(kr,$i,Qi,v,it,tt);qr=a[Nr>>2]|0;Vr=(qr|0)==0;if(!Vr){jr=a[Ir>>2]|0;Yr=(jr|0)==0;if(Yr){Kr=a[Hr>>2]|0;Gr=a[Cr>>2]|0;Xr=a[$i>>2]|0;Zr=Xr+(Gr<<2)|0;Qr=a[Rr>>2]|0;$r=Qr+(Gr<<2)|0;ei=a[tt>>2]|0;ri=a[Pr>>2]|0;ii=We(Kr|0,Zr|0,$r|0,ei|0,ri|0)|0;ni=(ii|0)==0;if(ni){h=-6;break e}}}ai=a[it>>2]|0;oi=v-ai|0;si=Wi+(ai<<2)|0;li=a[Pr>>2]|0;fi=(li|0)==2;ui=Xi+(ai<<2)|0;S=fi?ui:Xi;ci=a[tt>>2]|0;hi=a[Cr>>2]|0;di=hi+ci|0;a[Cr>>2]=di;mi=a[Br>>2]|0;Ei=(mi|0)<1;if(Ei){a[Br>>2]=1728;bi=1728}else{bi=mi}wi=bi+ci|0;a[Br>>2]=wi;_i=(di|0)<(Mr|0);if(_i){v=oi;Wi=si;Xi=S}else{g=S;y=oi;M=si;break}}pi=a[$i>>2]|0;ki=a[Rr>>2]|0;Si=Dr(kr,pi,ki,b,0)|0;gi=(Si|0)<0;if(gi){h=Si;break e}yi=b+Si|0;Fi=Si+rt|0;Oi=a[Cr>>2]|0;Ai=Oi-mr|0;a[Cr>>2]=Ai;Ri=a[Br>>2]|0;Ti=Ri-mr|0;a[Br>>2]=Ti;Ni=a[Pr>>2]|0;Di=(Ni|0)>0;Pi=(Ai|0)>0;ot=Pi&Di;if(!ot){E=y;b=yi;Ki=M;Ji=g;rt=Fi;continue}q=Ur+Oi|0;Ii=0;while(1){Li=$i+(Ii<<2)|0;Ci=a[Li>>2]|0;Vi=0;while(1){I=Vi+mr|0;H=Ci+(I<<2)|0;x=a[H>>2]|0;U=Ci+(Vi<<2)|0;a[U>>2]=x;z=Vi+1|0;Ui=(z|0)==(q|0);if(Ui){break}else{Vi=z}}V=Ii+1|0;zi=(V|0)==(Ni|0);if(zi){E=y;b=yi;Ki=M;Ji=g;rt=Fi;continue r}else{Ii=V}}}}else{m=t;w=pr;Yi=Sr;Zi=gr;et=br;r:while(1){d=m;ji=Yi;Gi=Zi;while(1){j=(d|0)>0;if(!j){h=et;break e}a[it>>2]=0;a[tt>>2]=0;a[Qi>>2]=ji;a[Tr>>2]=Gi;Bt(kr,$i,Qi,d,it,tt);W=a[Nr>>2]|0;Y=(W|0)==0;if(!Y){G=a[Ir>>2]|0;X=(G|0)==0;if(X){Z=a[Hr>>2]|0;J=a[Cr>>2]|0;Q=a[$i>>2]|0;$=Q+(J<<2)|0;ee=a[Rr>>2]|0;re=ee+(J<<2)|0;te=a[tt>>2]|0;ne=a[Pr>>2]|0;oe=We(Z|0,$|0,re|0,te|0,ne|0)|0;se=(oe|0)==0;if(se){h=-6;break e}}}le=a[it>>2]|0;fe=d-le|0;ue=ji+(le<<2)|0;ce=a[Pr>>2]|0;he=(ce|0)==2;de=Gi+(le<<2)|0;p=he?de:Gi;ve=a[tt>>2]|0;me=a[Cr>>2]|0;we=me+ve|0;a[Cr>>2]=we;be=a[Br>>2]|0;_e=(be|0)<1;if(_e){a[Br>>2]=1728;ke=1728}else{ke=be}pe=ke+ve|0;a[Br>>2]=pe;Se=(we|0)<(Mr|0);if(Se){d=fe;ji=ue;Gi=p}else{k=p;F=fe;O=ue;break}}ge=o-et|0;ye=a[$i>>2]|0;Me=a[Rr>>2]|0;Fe=Dr(kr,ye,Me,w,ge)|0;Ae=(Fe|0)<0;if(Ae){h=Fe;break e}Re=w+Fe|0;Te=Fe+et|0;Ne=a[Cr>>2]|0;De=Ne-mr|0;a[Cr>>2]=De;Pe=a[Br>>2]|0;Le=Pe-mr|0;a[Br>>2]=Le;Ce=a[Pr>>2]|0;Be=(Ce|0)>0;Ie=(De|0)>0;at=Ie&Be;if(!at){m=F;w=Re;Yi=O;Zi=k;et=Te;continue}xe=Ur+Ne|0;Bi=0;while(1){Ge=$i+(Bi<<2)|0;Ve=a[Ge>>2]|0;qi=0;while(1){ze=qi+mr|0;qe=Ve+(ze<<2)|0;je=a[qe>>2]|0;Ye=Ve+(qi<<2)|0;a[Ye>>2]=je;Ke=qi+1|0;Hi=(Ke|0)==(xe|0);if(Hi){break}else{qi=Ke}}Ue=Bi+1|0;xi=(Ue|0)==(Ce|0);if(xi){m=F;w=Re;Yi=O;Zi=k;et=Te;continue r}else{Bi=Ue}}}}}}else{h=-3}}while(0);u=h;c=ft;return u|0}}while(0);ar=(nr|0)==(0|0);if(!ar){En(nr)}a[Mi>>2]=0;a[N>>2]=0;or=kr+52148|0;a[or>>2]=0;xt(kr,7168,st);u=-2;c=ft;return u|0}function Zr(e){e=e|0;var r=0,i=0,t=0.0,n=0.0,o=0.0,s=0,l=0,u=0.0,h=0.0,d=0.0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0.0,g=0.0;var y=0.0,M=0.0,F=0.0,O=0,A=0.0,R=0,T=0,N=0,D=0.0,P=0.0,L=0.0,C=0.0,B=0,I=0,H=0.0,x=0.0,U=0,z=0.0,j=0.0,W=0.0;var Y=0.0,K=0,G=0;G=c;r=e+85680|0;i=e+128|0;E=a[i>>2]|0;O=(E|0)==0;do{if(!O){B=e+85676|0;I=a[B>>2]|0;H=+Oe(I|0);x=H;j=+V(+H);U=j>24601.0;z=H+24601.0;W=+V(+z);t=W;if(U){n=j;o=n*9.9999999747524271E-7;s=!(t<=o);if(s){K=5}else{K=6}}else{l=!(t<=0.024600999937888446);if(l){K=5}else{K=6}}if((K|0)==5){u=x*10.0;h=u+0.5;d=+q(+h);v=~~d;m=e+85688|0;a[m>>2]=v;break}else if((K|0)==6){w=e+85688|0;a[w>>2]=0;break}}}while(0);b=e+132|0;_=a[b>>2]|0;p=(_|0)==0;if(p){return}k=e+85684|0;S=+f[k>>2];g=S;y=g*3.0518509475997192E-5;M=+rn(y);F=M*200.0;A=+re(+F);R=~~A;T=e+85692|0;a[T>>2]=R;N=(R|0)>0;if(N){D=3276700.0/S;Y=+q(+D);P=Y;L=P*0.01;C=L;f[r>>2]=C;return}else{f[r>>2]=-1.0;return}}function Jr(e,r,i,t,o,s,l){e=e|0;r=r|0;i=i|0;t=t|0;o=o|0;s=s|0;l=+l;var h=0,d=0,v=0,m=0.0,E=0.0,w=0,b=0.0,_=0.0,p=0,k=0,S=0.0,g=0,y=0,M=0.0,F=0.0,O=0.0,A=0.0,R=0.0,T=0.0,N=0.0;var D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0.0,z=0,q=0.0,V=0.0,j=0.0,W=0.0,Y=0,K=0.0,G=0.0,X=0.0,Z=0,J=0;var Q=0,$=0,ee=0,re=0,ie=0,te=0.0,ne=0.0,ae=0,oe=0.0,se=0.0,le=0.0,fe=0.0,ue=0.0,ce=0.0,he=0.0,de=0,ve=0.0,me=0,Ee=0,we=0;var be=0,_e=0,pe=0.0,ke=0.0,Se=0.0,ge=0.0,ye=0.0,Me=0,Fe=0.0,Oe=0.0,Ae=0.0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0.0,Be=0.0,Ie=0.0;var He=0.0,xe=0.0,Ue=0.0,ze=0.0,qe=0.0,Ve=0.0,je=0.0,We=0.0,Ye=0,Ke=0.0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0;var nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0;_r=c;h=e+52152|0;d=a[h>>2]|0;y=e+52156|0;C=a[y>>2]|0;Y=e+264|0;te=+f[Y>>2];ve=te*l;Me=e+268|0;Be=+f[Me>>2];Ke=Be*l;v=e+272|0;m=+f[v>>2];E=m*l;w=e+276|0;b=+f[w>>2];_=b*l;switch(o|0){case 4:{Le=(t|0)>0;if(!Le){return}rr=r;or=i;Er=0;while(1){Ce=+u[rr>>3];Ie=Ce;He=+u[or>>3];xe=He;Ue=Ie*ve;ze=xe*Ke;qe=ze+Ue;Ve=Ie*E;je=xe*_;We=je+Ve;Ye=d+(Er<<2)|0;f[Ye>>2]=qe;Ge=C+(Er<<2)|0;f[Ge>>2]=We;Xe=rr+(s<<3)|0;Ze=or+(s<<3)|0;Je=Er+1|0;hr=(Je|0)==(t|0);if(hr){break}else{rr=Xe;or=Ze;Er=Je}}return;break}case 0:{p=(t|0)>0;if(!p){return}Qe=r;tr=i;dr=0;while(1){k=n[Qe>>1]|0;S=+(k<<16>>16);g=n[tr>>1]|0;M=+(g<<16>>16);F=S*ve;O=M*Ke;A=O+F;R=S*E;T=M*_;N=T+R;D=d+(dr<<2)|0;f[D>>2]=A;P=C+(dr<<2)|0;f[P>>2]=N;L=Qe+(s<<1)|0;B=tr+(s<<1)|0;I=dr+1|0;lr=(I|0)==(t|0);if(lr){break}else{Qe=L;tr=B;dr=I}}return;break}case 3:{_e=(t|0)>0;if(!_e){return}er=r;nr=i;mr=0;while(1){pe=+f[er>>2];ke=+f[nr>>2];Se=pe*ve;ge=ke*Ke;ye=ge+Se;Fe=pe*E;Oe=ke*_;Ae=Oe+Fe;Re=d+(mr<<2)|0;f[Re>>2]=ye;Te=C+(mr<<2)|0;f[Te>>2]=Ae;Ne=er+(s<<2)|0;De=nr+(s<<2)|0;Pe=mr+1|0;cr=(Pe|0)==(t|0);if(cr){break}else{er=Ne;nr=De;mr=Pe}}return;break}case 2:{re=(t|0)>0;if(!re){return}ir=r;sr=i;vr=0;while(1){ie=a[ir>>2]|0;ne=+(ie|0);ae=a[sr>>2]|0;oe=+(ae|0);se=ne*ve;le=oe*Ke;fe=le+se;ue=ne*E;ce=oe*_;he=ce+ue;de=d+(vr<<2)|0;f[de>>2]=fe;me=C+(vr<<2)|0;f[me>>2]=he;Ee=ir+(s<<2)|0;we=sr+(s<<2)|0;be=vr+1|0;ur=(be|0)==(t|0);if(ur){break}else{ir=Ee;sr=we;vr=be}}return;break}case 1:{H=(t|0)>0;if(!H){return}$e=r;ar=i;wr=0;while(1){x=a[$e>>2]|0;U=+(x|0);z=a[ar>>2]|0;q=+(z|0);V=U*ve;j=q*Ke;W=j+V;K=U*E;G=q*_;X=G+K;Z=d+(wr<<2)|0;f[Z>>2]=W;J=C+(wr<<2)|0;f[J>>2]=X;Q=$e+(s<<2)|0;$=ar+(s<<2)|0;ee=wr+1|0;fr=(ee|0)==(t|0);if(fr){break}else{$e=Q;ar=$;wr=ee}}return;break}default:{return}}}function Qr(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0.0,l=0.0,u=0.0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0.0,W=0.0;var Y=0.0,K=0,G=0.0,X=0.0,Z=0.0,J=0,Q=0.0,$=0,ee=0.0,re=0.0,ie=0,te=0.0,ne=0.0,ae=0.0,oe=0,se=0.0,le=0.0,fe=0.0,ue=0,ce=0;var he=0.0,de=0.0,ve=0.0,me=0,Ee=0.0,we=0.0,be=0.0,_e=0,pe=0.0,ke=0,Se=0.0,ge=0.0,ye=0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0,Re=0.0,Te=0.0,Ne=0.0;var De=0,Pe=0,Le=0.0,Ce=0.0,Be=0.0,Ie=0,He=0.0,xe=0.0,Ue=0.0,ze=0,qe=0.0,Ve=0,je=0.0,We=0.0,Ye=0,Ke=0.0,Ge=0.0,Xe=0.0,Ze=0,Je=0.0;var Qe=0.0,$e=0.0,er=0,rr=0,ir=0.0,tr=0.0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0.0,ur=0,cr=0,hr=0,dr=0.0,vr=0.0,mr=0,Er=0,wr=0;var br=0.0,_r=0.0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0.0,Ar=0.0,Rr=0,Tr=0.0,Nr=0.0,Dr=0,Pr=0,Lr=0,Cr=0.0,Br=0.0,Ir=0.0;var Hr=0.0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0.0,Kr=0.0,Gr=0,Xr=0,Zr=0.0,Jr=0.0,Qr=0,ei=0,ri=0.0,ii=0.0,ti=0,ni=0.0;var ai=0.0,oi=0,si=0,li=0,fi=0.0,ui=0.0,ci=0,hi=0.0,di=0.0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0.0,pi=0.0,ki=0,Si=0.0,gi=0.0,yi=0.0;var Mi=0,Fi=0.0,Oi=0,Ai=0.0,Ri=0.0,Ti=0.0,Ni=0.0,Di=0.0,Pi=0.0,Li=0.0,Ci=0.0,Bi=0,Ii=0.0,Hi=0.0,xi=0,Ui=0.0,zi=0.0,qi=0,Vi=0.0,ji=0.0;var Wi=0.0,Yi=0.0,Ki=0,Gi=0.0,Xi=0.0,Zi=0.0,Ji=0.0,Qi=0.0,$i=0.0,et=0.0,rt=0.0,it=0.0,tt=0.0,nt=0,at=0.0,ot=0.0,st=0.0,lt=0.0,ft=0.0,ut=0.0;var ct=0.0,ht=0.0,dt=0.0,vt=0.0,mt=0,Et=0.0,wt=0.0,bt=0.0,_t=0.0,pt=0.0,kt=0.0,St=0.0,gt=0.0,yt=0.0,Mt=0.0,Ft=0,Ot=0.0,At=0.0,Rt=0.0,Tt=0.0;var Nt=0,Dt=0,Pt=0,Lt=0,Ct=0.0,Bt=0,It=0,Ht=0,xt=0,Ut=0.0,zt=0.0,qt=0,Vt=0,jt=0.0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0.0;var Jt=0.0,Qt=0.0,$t=0,en=0.0,rn=0,tn=0.0,nn=0.0,an=0,on=0,sn=0,ln=0.0,fn=0,un=0.0,cn=0.0,hn=0.0,dn=0,vn=0.0,mn=0.0,En=0.0,wn=0;var bn=0.0,_n=0.0,pn=0.0,kn=0,Sn=0,gn=0.0,Mn=0.0,Fn=0.0,On=0.0,An=0.0,Rn=0.0,Tn=0.0,Nn=0.0,Dn=0.0,Pn=0.0,Ln=0.0,Cn=0.0,Bn=0.0,In=0.0,Hn=0.0;var xn=0.0,Un=0.0,zn=0,qn=0.0,Vn=0.0,jn=0.0,Wn=0.0,Yn=0.0,Kn=0.0,Gn=0.0,Xn=0.0,Zn=0.0,Jn=0,Qn=0.0,$n=0.0,ea=0.0,ra=0.0,ia=0.0,ta=0.0,na=0.0;var aa=0.0,oa=0.0,sa=0,la=0.0,fa=0.0,ua=0,ca=0.0,ha=0.0,da=0.0,va=0.0,ma=0.0,Ea=0.0,wa=0.0,ba=0.0,_a=0.0,pa=0,ka=0.0,Sa=0.0,ga=0.0,ya=0.0;var Ma=0.0,Fa=0.0,Oa=0.0,Aa=0.0,Ra=0.0,Ta=0.0,Na=0.0,Da=0.0,Pa=0,La=0.0,Ca=0,Ba=0.0,Ia=0.0,Ha=0.0,xa=0.0,Ua=0.0,za=0.0,qa=0.0,Va=0.0,ja=0.0;var Wa=0.0,Ya=0.0,Ka=0.0,Ga=0.0,Xa=0.0,Za=0,Ja=0.0,Qa=0,$a=0,eo=0,ro=0.0,io=0.0,to=0.0,no=0.0,ao=0.0,oo=0.0,so=0.0,lo=0.0,fo=0.0,uo=0.0;var co=0.0,ho=0.0,vo=0.0,mo=0.0,Eo=0,wo=0.0,bo=0,_o=0.0,po=0.0,ko=0.0,So=0.0,go=0.0,yo=0.0,Mo=0.0,Fo=0.0,Oo=0.0,Ao=0.0,Ro=0.0,To=0.0,No=0.0;var Do=0.0,Po=0.0,Lo=0,Co=0.0,Bo=0.0,Io=0.0,Ho=0.0,xo=0.0,Uo=0.0,zo=0.0,qo=0.0,Vo=0.0,jo=0.0,Wo=0.0,Yo=0.0,Ko=0.0,Go=0.0,Xo=0.0,Zo=0.0,Jo=0.0;var Qo=0.0,$o=0.0,es=0.0,rs=0,is=0.0,ts=0.0,ns=0,as=0.0,os=0.0,ss=0.0,ls=0.0,fs=0.0,us=0.0,cs=0.0,hs=0.0,ds=0,vs=0.0,ms=0.0,Es=0.0,ws=0.0;var bs=0.0,_s=0.0,ps=0.0,ks=0.0,Ss=0.0,gs=0.0,ys=0.0,Ms=0.0,Fs=0.0,Os=0,As=0.0,Rs=0,Ts=0.0,Ns=0.0,Ds=0.0,Ps=0.0,Ls=0.0,Cs=0.0,Bs=0.0,Is=0.0;var Hs=0.0,xs=0.0,Us=0.0,zs=0.0,qs=0.0,Vs=0.0,js=0,Ws=0.0,Ys=0,Ks=0,Gs=0.0,Xs=0.0,Zs=0.0,Js=0.0,Qs=0.0,$s=0.0,el=0.0,rl=0.0,il=0.0,tl=0;var nl=0.0,al=0.0,ol=0.0,sl=0.0,ll=0.0,fl=0,ul=0.0,cl=0,hl=0,dl=0,vl=0,ml=0.0,El=0.0,wl=0,bl=0.0,_l=0.0,pl=0,kl=0,Sl=0.0,gl=0;var yl=0.0,Ml=0.0,Fl=0,Ol=0.0,Al=0.0,Rl=0.0,Tl=0.0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0.0,Hl=0,xl=0,Ul=0,zl=0,ql=0,Vl=0;var jl=0,Wl=0.0,Yl=0,Kl=0.0,Gl=0.0,Xl=0,Zl=0.0,Jl=0,Ql=0.0,$l=0,ef=0.0,rf=0.0,tf=0,nf=0.0,af=0.0,of=0,sf=0.0,lf=0.0,ff=0,uf=0;var cf=0.0,hf=0.0,df=0,vf=0.0,mf=0.0,Ef=0,wf=0.0,bf=0.0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0,Ff=0,Of=0,Af=0,Rf=0.0,Tf=0.0;var Nf=0,Df=0,Pf=0,Lf=0,Cf=0.0,Bf=0.0,If=0.0,Hf=0,xf=0.0,Uf=0.0,zf=0.0,qf=0,Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0,Xf=0,Zf=0;var Jf=0,Qf=0,$f=0,eu=0,ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0,du=0,vu=0;du=c;c=c+80|0;uu=du;U=e+72|0;z=a[U>>2]|0;jr=(z|0)>0;if(!jr){c=du;return}Gt=e+76|0;$a=uu+68|0;tl=uu+36|0;Jl=uu+60|0;ff=uu+44|0;pf=uu+56|0;Nf=uu+48|0;q=uu+32|0;$=uu+4|0;ue=uu+28|0;ke=uu+8|0;De=uu+24|0;Ve=uu+12|0;er=uu+20|0;cr=uu+16|0;Sr=uu+64|0;Pr=uu+40|0;Wr=uu+52|0;Vf=0;ou=r;while(1){ti=a[Gt>>2]|0;vi=(ti|0)>0;if(vi){su=ou+1144|0;Xf=0;lu=su;while(1){Mi=1-Xf|0;Bi=((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0;Zf=0;nu=Bi;fu=lu;while(1){$r(fu,nu);Ft=fu+128|0;It=nu+128|0;$r(Ft,It);Xt=nu+256|0;sn=nu+132|0;bn=+f[sn>>2];Tn=-bn;f[sn>>2]=Tn;zn=nu+140|0;Qn=+f[zn>>2];fa=-Qn;f[zn>>2]=fa;pa=nu+148|0;Na=+f[pa>>2];qa=-Na;f[pa>>2]=qa;eo=nu+156|0;co=+f[eo>>2];go=-co;f[eo>>2]=go;Lo=nu+164|0;Wo=+f[Lo>>2];is=-Wo;f[Lo>>2]=is;ds=nu+172|0;ys=+f[ds>>2];Cs=-ys;f[ds>>2]=Cs;Ys=nu+180|0;nl=+f[Ys>>2];ml=-nl;f[Ys>>2]=ml;Fl=nu+188|0;Il=+f[Fl>>2];Wl=-Il;f[Fl>>2]=Wl;Yl=nu+196|0;Kl=+f[Yl>>2];Gl=-Kl;f[Yl>>2]=Gl;Xl=nu+204|0;Zl=+f[Xl>>2];Ql=-Zl;f[Xl>>2]=Ql;$l=nu+212|0;ef=+f[$l>>2];rf=-ef;f[$l>>2]=rf;tf=nu+220|0;nf=+f[tf>>2];af=-nf;f[tf>>2]=af;of=nu+228|0;sf=+f[of>>2];lf=-sf;f[of>>2]=lf;uf=nu+236|0;cf=+f[uf>>2];hf=-cf;f[uf>>2]=hf;df=nu+244|0;vf=+f[df>>2];mf=-vf;f[df>>2]=mf;Ef=nu+252|0;wf=+f[Ef>>2];bf=-wf;f[Ef>>2]=bf;_f=fu+256|0;kf=Zf+1|0;jf=(kf|0)==9;if(jf){break}else{Zf=kf;nu=Xt;fu=_f}}Ki=((e+304|0)+(Xf*10504|0)|0)+(Vf*5252|0)|0;nt=(((e+304|0)+(Xf*10504|0)|0)+(Vf*5252|0)|0)+4788|0;mt=(((e+304|0)+(Xf*10504|0)|0)+(Vf*5252|0)|0)+4792|0;qf=0;ru=Ki;while(1){Sf=a[nt>>2]|0;gf=7208+(qf<<2)|0;yf=a[gf>>2]|0;Mf=a[mt>>2]|0;Ff=(Mf|0)!=0;Of=(qf|0)<2;iu=Of&Ff;t=iu?0:Sf;Af=(e+37040|0)+(qf<<2)|0;Rf=+f[Af>>2];Tf=Rf;Df=Tf<9.9999999999999998E-13;do{if(Df){cu=ru;vu=cu+72|0;do{a[cu>>2]=0|0;cu=cu+4|0}while((cu|0)<(vu|0))}else{Pf=Rf<1.0;if(Pf){Lf=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(yf<<2)|0;Cf=+f[Lf>>2];Bf=Cf*Rf;f[Lf>>2]=Bf;If=+f[Af>>2];_=yf+32|0;Hf=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(_<<2)|0;xf=+f[Hf>>2];Uf=xf*If;f[Hf>>2]=Uf;zf=+f[Af>>2];A=yf+64|0;V=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(A<<2)|0;j=+f[V>>2];W=j*zf;f[V>>2]=W;Y=+f[Af>>2];R=yf+96|0;K=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(R<<2)|0;G=+f[K>>2];X=G*Y;f[K>>2]=X;Z=+f[Af>>2];T=yf+128|0;J=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(T<<2)|0;Q=+f[J>>2];ee=Q*Z;f[J>>2]=ee;re=+f[Af>>2];N=yf+160|0;ie=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(N<<2)|0;te=+f[ie>>2];ne=te*re;f[ie>>2]=ne;ae=+f[Af>>2];D=yf+192|0;oe=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(D<<2)|0;se=+f[oe>>2];le=se*ae;f[oe>>2]=le;fe=+f[Af>>2];P=yf+224|0;ce=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(P<<2)|0;he=+f[ce>>2];de=he*fe;f[ce>>2]=de;ve=+f[Af>>2];L=yf+256|0;me=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(L<<2)|0;Ee=+f[me>>2];we=Ee*ve;f[me>>2]=we;be=+f[Af>>2];C=yf+288|0;_e=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(C<<2)|0;pe=+f[_e>>2];Se=pe*be;f[_e>>2]=Se;ge=+f[Af>>2];p=yf+320|0;ye=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(p<<2)|0;Me=+f[ye>>2];Fe=Me*ge;f[ye>>2]=Fe;Oe=+f[Af>>2];k=yf+352|0;Ae=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(k<<2)|0;Re=+f[Ae>>2];Te=Re*Oe;f[Ae>>2]=Te;Ne=+f[Af>>2];S=yf+384|0;Pe=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(S<<2)|0;Le=+f[Pe>>2];Ce=Le*Ne;f[Pe>>2]=Ce;Be=+f[Af>>2];g=yf+416|0;Ie=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(g<<2)|0;He=+f[Ie>>2];xe=He*Be;f[Ie>>2]=xe;Ue=+f[Af>>2];y=yf+448|0;ze=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(y<<2)|0;qe=+f[ze>>2];je=qe*Ue;f[ze>>2]=je;We=+f[Af>>2];M=yf+480|0;Ye=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(M<<2)|0;Ke=+f[Ye>>2];Ge=Ke*We;f[Ye>>2]=Ge;Xe=+f[Af>>2];F=yf+512|0;Ze=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(F<<2)|0;Je=+f[Ze>>2];Qe=Je*Xe;f[Ze>>2]=Qe;$e=+f[Af>>2];O=yf+544|0;rr=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(O<<2)|0;ir=+f[rr>>2];tr=ir*$e;f[rr>>2]=tr}nr=(t|0)==2;if(nr){ar=yf+288|0;or=yf+480|0;Jf=-3;while(1){sr=Jf+3|0;lr=7624+(sr<<2)|0;fr=+f[lr>>2];ur=Jf<<5;d=ar+ur|0;hr=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(d<<2)|0;dr=+f[hr>>2];vr=dr*fr;mr=8-Jf|0;Er=mr<<5;v=Er+yf|0;wr=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(v<<2)|0;br=+f[wr>>2];_r=vr-br;pr=Jf*3|0;kr=pr+9|0;gr=ru+(kr<<2)|0;f[gr>>2]=_r;yr=14-Jf|0;Mr=yr<<5;m=Mr+yf|0;Fr=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(m<<2)|0;Or=+f[Fr>>2];Ar=Or*fr;E=or+ur|0;Rr=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(E<<2)|0;Tr=+f[Rr>>2];Nr=Ar+Tr;Dr=pr+18|0;Lr=ru+(Dr<<2)|0;f[Lr>>2]=Nr;Cr=+f[Rr>>2];Br=Cr*fr;Ir=+f[Fr>>2];Hr=Br-Ir;xr=pr+10|0;Ur=ru+(xr<<2)|0;f[Ur>>2]=Hr;zr=2-Jf|0;qr=zr<<5;w=qr+yf|0;Vr=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(w<<2)|0;Yr=+f[Vr>>2];Kr=Yr*fr;Gr=sr<<5;b=Gr+yf|0;Xr=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(b<<2)|0;Zr=+f[Xr>>2];Jr=Kr+Zr;Qr=pr+19|0;ei=ru+(Qr<<2)|0;f[ei>>2]=Jr;ri=+f[Xr>>2];ii=ri*fr;ni=+f[Vr>>2];ai=ii-ni;oi=pr+11|0;si=ru+(oi<<2)|0;f[si>>2]=ai;li=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(v<<2)|0;fi=+f[li>>2];ui=fi*fr;ci=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(d<<2)|0;hi=+f[ci>>2];di=ui+hi;mi=pr+20|0;Ei=ru+(mi<<2)|0;f[Ei>>2]=di;wi=Jf+1|0;Kf=(wi|0)==0;if(Kf){n=ru;eu=0;break}else{Jf=wi}}while(1){bi=n+24|0;_i=+f[bi>>2];pi=_i*0.13165250420570374;ki=n+60|0;Si=+f[ki>>2];gi=pi-Si;yi=+f[n>>2];Fi=yi*0.76732701063156128;Oi=n+36|0;Ai=+f[Oi>>2];Ri=Fi-Ai;Ti=Ri+gi;Ni=gi-Ri;Di=Si*0.13165250420570374;Pi=Di+_i;Li=Ai*0.76732701063156128;Ci=Li+yi;Ii=Ci+Pi;Hi=Ci-Pi;xi=n+12|0;Ui=+f[xi>>2];zi=Ui*0.41421356797218323;qi=n+48|0;Vi=+f[qi>>2];ji=zi-Vi;Wi=ji;Yi=Wi*2.0699781119530891E-11;Gi=Yi;Xi=Vi*0.41421356797218323;Zi=Xi+Ui;Ji=Zi;Qi=Ji*2.0699781119530891E-11;$i=Qi;et=Ti;rt=et*1.9075251917372799E-11;it=Gi;tt=it+rt;at=tt;f[n>>2]=at;ot=-Ii;st=ot;lt=st*1.9075251917372799E-11;ft=$i;ut=ft+lt;ct=ut;f[ki>>2]=ct;ht=Ni;dt=ht*1.6519652744032674E-11;vt=dt;Et=Ii;wt=Et*9.5376259586864042E-12;bt=ft+wt;_t=bt;pt=vt-_t;f[xi>>2]=pt;kt=_t+vt;f[bi>>2]=kt;St=et*9.5376259586864042E-12;gt=St-it;yt=gt;Mt=Hi;Ot=Mt*1.6519652744032674E-11;At=Ot;Rt=yt+At;f[Oi>>2]=Rt;Tt=yt-At;f[qi>>2]=Tt;Nt=n+4|0;Dt=eu+1|0;Wf=(Dt|0)==3;if(Wf){break}else{n=Nt;eu=Dt}}}else{Qf=-9;while(1){Pt=Qf+27|0;Lt=(7336+(t*144|0)|0)+(Pt<<2)|0;Ct=+f[Lt>>2];Bt=Qf+9|0;Ht=Bt<<5;I=Ht+yf|0;xt=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(I<<2)|0;Ut=+f[xt>>2];zt=Ut*Ct;qt=Qf+36|0;Vt=(7336+(t*144|0)|0)+(qt<<2)|0;jt=+f[Vt>>2];Wt=8-Qf|0;Yt=Wt<<5;H=Yt+yf|0;Kt=(((e+27824|0)+(Vf*4608|0)|0)+(Mi*2304|0)|0)+(H<<2)|0;Zt=+f[Kt>>2];Jt=Zt*jt;Qt=Jt+zt;$t=(7336+(t*144|0)|0)+(Bt<<2)|0;en=+f[$t>>2];rn=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(I<<2)|0;tn=+f[rn>>2];nn=tn*en;an=Qf+18|0;on=(7336+(t*144|0)|0)+(an<<2)|0;ln=+f[on>>2];fn=(((e+27824|0)+(Vf*4608|0)|0)+(Xf*2304|0)|0)+(H<<2)|0;un=+f[fn>>2];cn=un*ln;hn=nn-cn;x=Qf+12|0;dn=7624+(x<<2)|0;vn=+f[dn>>2];mn=hn*vn;En=Qt-mn;wn=uu+(Bt<<2)|0;f[wn>>2]=En;_n=vn*Qt;pn=_n+hn;kn=uu+(an<<2)|0;f[kn>>2]=pn;Sn=Qf+1|0;Yf=(Sn|0)==0;if(Yf){break}else{Qf=Sn}}gn=+f[$a>>2];Mn=+f[tl>>2];Fn=gn-Mn;On=+f[Jl>>2];An=+f[ff>>2];Rn=On-An;Nn=+f[pf>>2];Dn=+f[Nf>>2];Pn=Nn-Dn;Ln=+f[uu>>2];Cn=+f[q>>2];Bn=Cn+Ln;In=+f[$>>2];Hn=+f[ue>>2];xn=Hn+In;Un=+f[ke>>2];qn=+f[De>>2];Vn=qn+Un;jn=+f[Ve>>2];Wn=+f[er>>2];Yn=Wn+jn;Kn=Vn+Bn;Gn=Kn-Yn;Xn=+f[cr>>2];u=Xn-xn;Zn=u+Gn;Jn=ru+68|0;f[Jn>>2]=Zn;$n=Gn*0.5;ea=+f[cr>>2];ra=xn-ea;ia=$n+ra;ta=Fn-Rn;na=ta-Pn;aa=na*0.86602538824081421;oa=ia+aa;sa=ru+20|0;f[sa>>2]=oa;la=aa-ia;ua=ru+24|0;f[ua>>2]=la;ca=+f[Sr>>2];ha=+f[Pr>>2];da=ca-ha;va=da*0.86602538824081421;ma=xn*0.5;Ea=+f[cr>>2];wa=Ea+ma;ba=Fn*0.98480772972106933;_a=Rn*0.6427876353263855;ka=Pn*0.34202015399932861;Sa=_a+ba;ga=Sa+ka;ya=ga+va;Ma=Bn*0.1736481785774231;Fa=Vn*0.76604443788528442;Oa=Yn*0.93969261646270751;Aa=Fa+Ma;Ra=Aa+Oa;Ta=Ra+wa;Da=ya+Ta;Pa=ru+4|0;f[Pa>>2]=Da;La=ya-Ta;Ca=ru+8|0;f[Ca>>2]=La;Ba=Fn*0.6427876353263855;Ia=Rn*0.34202015399932861;Ha=Pn*0.98480772972106933;xa=Ba-Ia;Ua=xa+Ha;za=Ua-va;Va=Bn*0.76604443788528442;ja=Vn*0.93969261646270751;Wa=Yn*0.1736481785774231;Ya=Va-ja;Ka=Ya-Wa;Ga=Ka+wa;Xa=za+Ga;Za=ru+36|0;f[Za>>2]=Xa;Ja=za-Ga;Qa=ru+40|0;f[Qa>>2]=Ja;ro=Fn*0.34202015399932861;io=Rn*0.98480772972106933;to=Pn*0.6427876353263855;no=io+ro;ao=no-to;oo=ao-va;so=Bn*0.93969261646270751;lo=Vn*0.1736481785774231;fo=Yn*0.76604443788528442;uo=so-lo;ho=uo+fo;vo=ho-wa;mo=vo+oo;Eo=ru+52|0;f[Eo>>2]=mo;wo=oo-vo;bo=ru+56|0;f[bo>>2]=wo;_o=+f[q>>2];po=+f[uu>>2];ko=_o-po;So=+f[De>>2];yo=+f[ke>>2];Mo=So-yo;Fo=+f[er>>2];Oo=+f[Ve>>2];Ao=Fo-Oo;Ro=+f[$a>>2];To=+f[tl>>2];No=To+Ro;Do=+f[Sr>>2];Po=+f[Pr>>2];Co=Po+Do;Bo=+f[Jl>>2];Io=+f[ff>>2];Ho=Io+Bo;xo=+f[pf>>2];Uo=+f[Nf>>2];zo=Uo+xo;qo=Ho+No;Vo=qo+zo;jo=+f[Wr>>2];Yo=jo+Co;Ko=Yo+Vo;f[ru>>2]=Ko;Go=Vo*0.5;Xo=+f[Wr>>2];s=-Co;l=s-Xo;Zo=l+Go;Jo=ko-Mo;Qo=Jo+Ao;$o=Qo*0.86602538824081421;es=Zo+$o;rs=ru+44|0;f[rs>>2]=es;ts=Zo-$o;ns=ru+48|0;f[ns>>2]=ts;as=+f[ue>>2];os=+f[$>>2];ss=as-os;ls=ss*0.86602538824081421;fs=+f[Wr>>2];us=Co*0.5;cs=fs-us;hs=No*0.93969261646270751;vs=Ho*0.1736481785774231;ms=zo*0.76604443788528442;Es=hs-vs;ws=Es-ms;bs=ws-cs;_s=ko*0.34202015399932861;ps=Mo*0.98480772972106933;ks=Ao*0.6427876353263855;Ss=ps+_s;gs=Ss+ks;Ms=gs+ls;Fs=bs+Ms;Os=ru+12|0;f[Os>>2]=Fs;As=bs-Ms;Rs=ru+16|0;f[Rs>>2]=As;Ts=No*0.76604443788528442;Ns=Ho*0.93969261646270751;Ds=zo*0.1736481785774231;Ps=Ts-Ns;Ls=Ps+Ds;Bs=Ls+cs;Is=ko*0.6427876353263855;Hs=Mo*0.34202015399932861;xs=Ao*0.98480772972106933;Us=Is-Hs;zs=Us-xs;qs=zs+ls;Vs=Bs+qs;js=ru+28|0;f[js>>2]=Vs;Ws=Bs-qs;Ks=ru+32|0;f[Ks>>2]=Ws;Gs=No*0.1736481785774231;Xs=Ho*0.76604443788528442;Zs=zo*0.93969261646270751;Js=Xs+Gs;Qs=Js-Zs;$s=Qs+cs;el=ko*0.98480772972106933;rl=Mo*0.6427876353263855;il=Ao*0.34202015399932861;al=rl+el;ol=al-il;sl=ol-ls;ll=$s+sl;fl=ru+60|0;f[fl>>2]=ll;ul=$s-sl;cl=ru+64|0;f[cl>>2]=ul;break}}}while(0);hl=(t|0)!=2;dl=(qf|0)!=0;tu=dl&hl;if(tu){$f=7;while(1){vl=ru+($f<<2)|0;El=+f[vl>>2];h=$f+20|0;wl=7624+(h<<2)|0;bl=+f[wl>>2];_l=bl*El;pl=$f^-1;kl=ru+(pl<<2)|0;Sl=+f[kl>>2];B=$f+28|0;gl=7624+(B<<2)|0;yl=+f[gl>>2];Ml=yl*Sl;Ol=Ml+_l;Al=yl*El;Rl=Sl*bl;Tl=Al-Rl;f[kl>>2]=Ol;f[vl>>2]=Tl;Nl=$f+-1|0;Dl=($f|0)>0;if(Dl){$f=Nl}else{break}}}Pl=qf+1|0;Ll=ru+72|0;Gf=(Pl|0)==32;if(Gf){break}else{qf=Pl;ru=Ll}}au=lu+2304|0;Cl=Xf+1|0;Bl=a[Gt>>2]|0;Hl=(Cl|0)<(Bl|0);if(Hl){Xf=Cl;lu=au}else{o=Bl;break}}xl=(o|0)==1;if(xl){Ul=(e+27824|0)+(Vf*4608|0)|0;zl=((e+27824|0)+(Vf*4608|0)|0)+2304|0;yn(Ul|0,zl|0,2304)|0}}ql=Vf+1|0;Vl=a[U>>2]|0;jl=(ql|0)<(Vl|0);if(jl){Vf=ql;ou=i}else{break}}c=du;return}function $r(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,a=0.0,o=0,s=0.0,l=0.0,u=0.0,h=0,d=0.0,v=0.0,m=0.0,E=0,w=0.0,b=0,_=0,p=0.0,k=0.0,S=0.0,g=0;var y=0.0,M=0.0,F=0.0,O=0,A=0.0,R=0.0,T=0.0,N=0.0,D=0.0,P=0.0,L=0.0,C=0.0,B=0,I=0.0,H=0,x=0.0,U=0.0,z=0.0,q=0.0,V=0;var j=0.0,W=0.0,Y=0.0,K=0,G=0.0,X=0,Z=0.0,J=0.0,Q=0.0,$=0.0,ee=0,re=0.0,ie=0.0,te=0.0,ne=0,ae=0.0,oe=0,se=0.0,le=0,fe=0.0;var ue=0.0,ce=0,he=0.0,de=0.0,ve=0.0,me=0,Ee=0.0,we=0.0,be=0.0,_e=0.0,pe=0.0,ke=0,Se=0,ge=0,ye=0,Me=0.0,Fe=0.0,Oe=0,Ae=0,Re=0;var Te=0.0,Ne=0,De=0,Pe=0,Le=0,Ce=0.0,Be=0.0,Ie=0,He=0.0,xe=0.0,Ue=0,ze=0.0,qe=0.0,Ve=0,je=0.0,We=0.0,Ye=0.0,Ke=0.0,Ge=0,Xe=0.0;var Ze=0.0,Je=0.0,Qe=0,$e=0,er=0.0,rr=0,ir=0.0,tr=0.0,nr=0.0,ar=0.0,or=0,sr=0.0,lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0,dr=0.0,vr=0,mr=0.0;var Er=0.0,wr=0.0,br=0.0,_r=0,pr=0.0,kr=0,Sr=0.0,gr=0.0,yr=0,Mr=0.0,Fr=0,Or=0.0,Ar=0.0,Rr=0.0,Tr=0.0,Nr=0,Dr=0.0,Pr=0.0,Lr=0.0,Cr=0.0;var Br=0,Ir=0.0,Hr=0,xr=0.0,Ur=0.0,zr=0.0,qr=0.0,Vr=0.0,jr=0,Wr=0.0,Yr=0.0,Kr=0.0,Gr=0,Xr=0.0,Zr=0,Jr=0.0,Qr=0.0,$r=0.0,ei=0.0,ri=0.0;var ii=0,ti=0.0,ni=0.0,ai=0.0,oi=0,si=0.0,li=0,fi=0.0,ui=0.0,ci=0,hi=0.0,di=0.0,vi=0,mi=0.0,Ei=0.0,wi=0.0,bi=0.0,_i=0,pi=0.0,ki=0;var Si=0.0,gi=0.0,yi=0.0,Mi=0.0,Fi=0,Oi=0.0,Ai=0,Ri=0.0,Ti=0.0,Ni=0,Di=0.0,Pi=0.0,Li=0.0,Ci=0.0,Bi=0.0,Ii=0.0,Hi=0,xi=0.0,Ui=0,zi=0.0;var qi=0.0,Vi=0.0,ji=0.0,Wi=0.0,Yi=0,Ki=0.0,Gi=0,Xi=0.0,Zi=0.0,Ji=0.0,Qi=0.0,$i=0,et=0.0,rt=0,it=0,tt=0.0,nt=0.0,at=0.0,ot=0.0,st=0;var lt=0.0,ft=0,ut=0.0,ct=0.0,ht=0,dt=0.0,vt=0.0,mt=0.0,Et=0,wt=0.0,bt=0,_t=0.0,pt=0.0,kt=0.0,St=0.0,gt=0,yt=0,Mt=0.0,Ft=0,Ot=0.0;var At=0.0,Rt=0.0,Tt=0.0,Nt=0.0,Dt=0.0,Pt=0,Lt=0.0,Ct=0.0,Bt=0,It=0.0,Ht=0.0,xt=0.0,Ut=0.0,zt=0.0,qt=0.0,Vt=0.0,jt=0.0,Wt=0.0,Yt=0.0,Kt=0.0;var Gt=0.0,Xt=0.0,Zt=0.0,Jt=0.0,Qt=0.0,$t=0.0,en=0.0,rn=0.0,tn=0.0,nn=0.0,an=0,on=0.0,sn=0,ln=0.0,fn=0.0,un=0.0,cn=0.0,hn=0,dn=0.0,vn=0;var mn=0,En=0.0,wn=0.0,bn=0.0,_n=0.0,pn=0,kn=0.0,Sn=0,gn=0.0,yn=0.0,Mn=0.0,Fn=0.0,On=0.0,An=0,Rn=0.0,Tn=0,Nn=0.0,Dn=0.0,Pn=0.0,Ln=0.0;var Cn=0,Bn=0.0,In=0.0,Hn=0,xn=0.0,Un=0.0,zn=0.0,qn=0.0,Vn=0,jn=0.0,Wn=0,Yn=0.0,Kn=0.0,Gn=0.0,Xn=0.0,Zn=0.0,Jn=0.0,Qn=0.0,$n=0.0,ea=0.0;var ra=0.0,ia=0.0,ta=0.0,na=0.0,aa=0,oa=0.0,sa=0.0,la=0.0,fa=0.0,ua=0.0,ca=0.0,ha=0.0,da=0.0,va=0.0,ma=0.0,Ea=0.0,wa=0.0,ba=0.0,_a=0.0,pa=0.0;var ka=0.0,Sa=0.0,ga=0.0,ya=0.0,Ma=0.0,Fa=0.0,Oa=0.0,Aa=0,Ra=0.0,Ta=0.0,Na=0.0,Da=0.0,Pa=0.0,La=0.0,Ca=0.0,Ba=0.0,Ia=0.0,Ha=0.0,xa=0.0,Ua=0.0;var za=0.0,qa=0.0,Va=0.0,ja=0.0,Wa=0.0,Ya=0.0,Ka=0.0,Ga=0.0,Xa=0.0,Za=0.0,Ja=0.0,Qa=0.0,$a=0.0,eo=0.0,ro=0.0,io=0.0,to=0.0,no=0.0,ao=0.0,oo=0.0;var so=0.0,lo=0.0,fo=0.0,uo=0.0,co=0.0,ho=0.0,vo=0.0,mo=0.0,Eo=0.0,wo=0.0,bo=0.0,_o=0,po=0.0,ko=0.0,So=0.0,go=0.0,yo=0.0,Mo=0.0,Fo=0.0,Oo=0.0;var Ao=0.0,Ro=0.0,To=0.0,No=0.0,Do=0.0,Po=0.0,Lo=0.0,Co=0.0,Bo=0.0,Io=0.0,Ho=0.0,xo=0.0,Uo=0.0,zo=0.0,qo=0.0,Vo=0.0,jo=0.0,Wo=0.0,Yo=0.0,Ko=0.0;var Go=0.0,Xo=0.0,Zo=0.0,Jo=0.0,Qo=0.0,$o=0.0,es=0.0,rs=0.0,is=0.0,ts=0.0,ns=0.0,as=0.0,os=0.0,ss=0.0,ls=0.0,fs=0,us=0.0,cs=0.0,hs=0.0,ds=0.0;var vs=0.0,ms=0.0,Es=0.0,ws=0.0,bs=0.0,_s=0.0,ps=0.0,ks=0.0,Ss=0.0,gs=0.0,ys=0.0,Ms=0.0,Fs=0.0,Os=0.0,As=0.0,Rs=0.0,Ts=0.0,Ns=0.0,Ds=0,Ps=0.0;var Ls=0.0,Cs=0.0,Bs=0.0,Is=0.0,Hs=0.0,xs=0.0,Us=0.0,zs=0.0,qs=0.0,Vs=0.0,js=0.0,Ws=0.0,Ys=0.0,Ks=0.0,Gs=0.0,Xs=0.0,Zs=0.0,Js=0.0,Qs=0.0,$s=0.0;var el=0.0,rl=0.0,il=0.0,tl=0.0,nl=0.0,al=0.0,ol=0.0,sl=0.0,ll=0.0,fl=0.0,ul=0.0,cl=0.0,hl=0.0,dl=0.0,vl=0.0,ml=0.0,El=0.0,wl=0.0,bl=0.0,_l=0.0;var pl=0.0,kl=0.0,Sl=0,gl=0.0,yl=0.0,Ml=0.0,Fl=0.0,Ol=0.0,Al=0.0,Rl=0.0,Tl=0.0,Nl=0.0,Dl=0.0,Pl=0.0,Ll=0.0,Cl=0.0,Bl=0.0,Il=0.0,Hl=0.0,xl=0.0;var Ul=0.0,zl=0.0,ql=0.0,Vl=0.0,jl=0.0,Wl=0.0,Yl=0.0,Kl=0.0,Gl=0.0,Xl=0.0,Zl=0.0,Jl=0.0,Ql=0.0,$l=0.0,ef=0.0,rf=0.0,tf=0.0,nf=0.0,af=0.0,of=0.0;var sf=0.0,lf=0.0,ff=0.0,uf=0.0,cf=0.0,hf=0.0,df=0,vf=0.0,mf=0.0,Ef=0.0,wf=0.0,bf=0.0,_f=0.0,pf=0.0,kf=0.0,Sf=0.0,gf=0.0,yf=0,Mf=0.0,Ff=0.0;var Of=0.0,Af=0.0,Rf=0.0,Tf=0.0,Nf=0.0,Df=0.0,Pf=0.0,Lf=0.0,Cf=0.0,Bf=0,If=0.0,Hf=0.0,xf=0.0,Uf=0.0,zf=0.0,qf=0,Vf=0.0,jf=0.0,Wf=0.0,Yf=0;var Kf=0.0,Gf=0.0,Xf=0,Zf=0.0,Jf=0.0,Qf=0.0,$f=0,eu=0.0,ru=0.0,iu=0.0,tu=0,nu=0.0,au=0.0,ou=0,su=0.0,lu=0.0,fu=0.0,uu=0,cu=0.0,hu=0.0;var du=0.0,vu=0,mu=0,Eu=0.0,wu=0,bu=0.0,_u=0.0,pu=0.0,ku=0,Su=0.0,gu=0.0,yu=0.0,Mu=0.0,Fu=0,Ou=0,Au=0,Ru=0,Tu=0,Nu=0;Nu=c;t=e+-248|0;i=e;Ou=-15;Au=7952;Ru=t;while(1){n=Au+-40|0;fr=+f[n>>2];ht=Ru+-896|0;Ea=+f[ht>>2];ps=Ea*fr;yf=i+896|0;Kf=+f[yf>>2];nu=Kf*fr;mu=Au+-36|0;a=+f[mu>>2];b=Ru+-640|0;R=+f[b>>2];U=R*a;J=U+ps;le=i+640|0;_e=+f[le>>2];Te=_e*a;ze=Te+nu;Qe=Au+-32|0;ur=+f[Qe>>2];kr=Ru+-384|0;Dr=+f[kr>>2];Vr=Dr*ur;ei=J+Vr;ci=i+384|0;Si=+f[ci>>2];Pi=Si*ur;ji=ze+Pi;rt=Au+-28|0;dt=+f[rt>>2];yt=Ru+-128|0;Ct=+f[yt>>2];Yt=Ct*dt;nn=ei+Yt;mn=i+128|0;Fn=+f[mn>>2];In=Fn*dt;Gn=ji+In;aa=Au+-24|0;wa=+f[aa>>2];Aa=Ru+128|0;xa=+f[Aa>>2];Za=xa*wa;so=nn+Za;_o=i+-128|0;To=+f[_o>>2];zo=To*wa;Qo=Gn+zo;fs=Au+-20|0;ks=+f[fs>>2];Ds=Ru+384|0;Vs=+f[Ds>>2];el=Vs*ks;cl=so+el;Sl=i+-384|0;Pl=+f[Sl>>2];jl=Pl*ks;rf=Qo+jl;df=Au+-16|0;Mf=+f[df>>2];Bf=Ru+640|0;xf=+f[Bf>>2];Uf=xf*Mf;zf=cl+Uf;qf=i+-640|0;Vf=+f[qf>>2];jf=Vf*Mf;Wf=rf+jf;Yf=Au+-12|0;Gf=+f[Yf>>2];Xf=Ru+896|0;Zf=+f[Xf>>2];Jf=Zf*Gf;Qf=zf+Jf;$f=i+-896|0;eu=+f[$f>>2];ru=eu*Gf;iu=Wf+ru;tu=Au+-8|0;au=+f[tu>>2];ou=i+-1024|0;su=+f[ou>>2];lu=su*au;fu=Qf+lu;uu=Ru+1024|0;cu=+f[uu>>2];hu=cu*au;du=iu-hu;vu=Au+-4|0;Eu=+f[vu>>2];wu=i+-768|0;bu=+f[wu>>2];_u=bu*Eu;pu=fu+_u;ku=Ru+768|0;Su=+f[ku>>2];gu=Su*Eu;yu=du-gu;Mu=+f[Au>>2];o=i+-512|0;s=+f[o>>2];l=s*Mu;u=pu+l;h=Ru+512|0;d=+f[h>>2];v=d*Mu;m=yu-v;E=Au+4|0;w=+f[E>>2];_=i+-256|0;p=+f[_>>2];k=p*w;S=u+k;g=Ru+256|0;y=+f[g>>2];M=y*w;F=m-M;O=Au+8|0;A=+f[O>>2];T=+f[i>>2];N=T*A;D=S+N;P=+f[Ru>>2];L=P*A;C=F-L;B=Au+12|0;I=+f[B>>2];H=i+256|0;x=+f[H>>2];z=x*I;q=D+z;V=Ru+-256|0;j=+f[V>>2];W=j*I;Y=C-W;K=Au+16|0;G=+f[K>>2];X=i+512|0;Z=+f[X>>2];Q=Z*G;$=q+Q;ee=Ru+-512|0;re=+f[ee>>2];ie=re*G;te=Y-ie;ne=Au+20|0;ae=+f[ne>>2];oe=i+768|0;se=+f[oe>>2];fe=se*ae;ue=$+fe;ce=Ru+-768|0;he=+f[ce>>2];de=he*ae;ve=te-de;me=Au+24|0;Ee=+f[me>>2];we=ue*Ee;be=ve-we;pe=ve+we;ke=Ou<<1;Se=ke+30|0;ge=r+(Se<<2)|0;f[ge>>2]=pe;ye=Au+28|0;Me=+f[ye>>2];Fe=be*Me;Oe=ke+31|0;Ae=r+(Oe<<2)|0;f[Ae>>2]=Fe;Re=Au+72|0;Ne=i+-4|0;De=Ru+4|0;Pe=Ou+1|0;Fu=(Pe|0)==0;if(Fu){break}else{i=Ne;Ou=Pe;Au=Re;Ru=De}}Le=e+-124|0;Ce=+f[Le>>2];Be=Ce*10612.802734375;Ie=e+-188|0;He=+f[Ie>>2];xe=He*12804.7978515625;Ue=e+-252|0;qe=+f[Ue>>2];Ve=e+4|0;je=+f[Ve>>2];We=qe-je;Ye=We*5302.158203125;Ke=Ye+Be;Ge=e+-444|0;Xe=+f[Ge>>2];Ze=Xe*1945.5516357421875;Je=Ze+xe;$e=e+-380|0;er=+f[$e>>2];rr=e+132|0;ir=+f[rr>>2];tr=ir+er;nr=tr*929.77630615234375;ar=Ke+nr;or=e+-700|0;sr=+f[or>>2];lr=sr*313.42449951171875;cr=Je+lr;hr=e+-508|0;dr=+f[hr>>2];vr=e+260|0;mr=+f[vr>>2];Er=dr-mr;wr=Er*728.80108642578125;br=ar+wr;_r=e+-956|0;pr=+f[_r>>2];Sr=pr*20.801593780517578;gr=cr+Sr;yr=e+-636|0;Mr=+f[yr>>2];Fr=e+388|0;Or=+f[Fr>>2];Ar=Or+Mr;Rr=Ar*288.09765625;Tr=br+Rr;Nr=e+68|0;Pr=+f[Nr>>2];Lr=Pr*1995.1556396484375;Cr=gr-Lr;Br=e+-764|0;Ir=+f[Br>>2];Hr=e+516|0;xr=+f[Hr>>2];Ur=Ir-xr;zr=Ur*64.917388916015625;qr=Tr+zr;jr=e+324|0;Wr=+f[jr>>2];Yr=Wr*9.0008392333984375;Kr=Cr-Yr;Gr=e+-892|0;Xr=+f[Gr>>2];Zr=e+644|0;Jr=+f[Zr>>2];Qr=Jr+Xr;$r=Qr*30.125003814697266;ri=qr+$r;ii=e+580|0;ti=+f[ii>>2];ni=ti*-29.202180862426758;ai=Kr-ni;oi=e+-1020|0;si=+f[oi>>2];li=e+772|0;fi=+f[li>>2];ui=si-fi;hi=ui*4.1014566421508789;di=ri+hi;vi=e+836|0;mi=+f[vi>>2];Ei=ai-mi;wi=Ei-di;bi=Ei+di;_i=r+56|0;pi=+f[_i>>2];ki=r+60|0;gi=+f[ki>>2];yi=gi-pi;Mi=bi+pi;Fi=r+124|0;Oi=yi+wi;Ai=r+120|0;Ri=wi-yi;Ti=bi-pi;Ni=r+112|0;Di=+f[Ni>>2];Li=+f[r>>2];Ci=Di-Li;Bi=Li+Di;f[r>>2]=Bi;Ii=Ci*1.9615705013275146;f[Ni>>2]=Ii;Hi=r+116|0;xi=+f[Hi>>2];Ui=r+4|0;zi=+f[Ui>>2];qi=xi-zi;Vi=zi+xi;f[Ui>>2]=Vi;Wi=qi*1.9615705013275146;f[Hi>>2]=Wi;Yi=r+104|0;Ki=+f[Yi>>2];Gi=r+8|0;Xi=+f[Gi>>2];Zi=Ki-Xi;Ji=Xi+Ki;f[Gi>>2]=Ji;Qi=Zi*1.8477590084075928;f[Yi>>2]=Qi;$i=r+108|0;et=+f[$i>>2];it=r+12|0;tt=+f[it>>2];nt=et-tt;at=tt+et;f[it>>2]=at;ot=nt*1.8477590084075928;f[$i>>2]=ot;st=r+96|0;lt=+f[st>>2];ft=r+16|0;ut=+f[ft>>2];ct=lt-ut;vt=ut+lt;f[ft>>2]=vt;mt=ct*1.662939190864563;f[st>>2]=mt;Et=r+100|0;wt=+f[Et>>2];bt=r+20|0;_t=+f[bt>>2];pt=wt-_t;kt=_t+wt;f[bt>>2]=kt;St=pt*1.662939190864563;f[Et>>2]=St;gt=r+88|0;Mt=+f[gt>>2];Ft=r+24|0;Ot=+f[Ft>>2];At=Mt-Ot;Rt=Ot+Mt;Tt=At;Nt=Tt*1.4142135623730951;Dt=Nt;Pt=r+92|0;Lt=+f[Pt>>2];Bt=r+28|0;It=+f[Bt>>2];Ht=Lt-It;xt=It+Lt;Ut=Ht;zt=Ut*1.4142135623730951;qt=xt;Vt=zt-qt;jt=Vt;Wt=xt-Rt;Kt=Dt-Wt;Gt=jt-Kt;Xt=Mi-Rt;f[Ft>>2]=Xt;Zt=Mi+Rt;f[Fi>>2]=Zt;Jt=Oi-Wt;f[Bt>>2]=Jt;Qt=Oi+Wt;f[Ai>>2]=Qt;$t=Ri-Kt;f[gt>>2]=$t;en=Ri+Kt;f[ki>>2]=en;rn=Ti-Gt;f[Pt>>2]=rn;tn=Ti+Gt;f[_i>>2]=tn;an=r+80|0;on=+f[an>>2];sn=r+32|0;ln=+f[sn>>2];fn=on-ln;un=ln+on;cn=fn*1.1111404895782471;hn=r+84|0;dn=+f[hn>>2];vn=r+36|0;En=+f[vn>>2];wn=dn-En;bn=En+dn;_n=wn*1.1111404895782471;pn=r+72|0;kn=+f[pn>>2];Sn=r+40|0;gn=+f[Sn>>2];yn=kn-gn;Mn=gn+kn;On=yn*0.76536685228347778;An=r+76|0;Rn=+f[An>>2];Tn=r+44|0;Nn=+f[Tn>>2];Dn=Rn-Nn;Pn=Nn+Rn;Ln=Dn*0.76536685228347778;Cn=r+64|0;Bn=+f[Cn>>2];Hn=r+48|0;xn=+f[Hn>>2];Un=Bn-xn;zn=xn+Bn;qn=Un*0.39018064737319946;Vn=r+68|0;jn=+f[Vn>>2];Wn=r+52|0;Yn=+f[Wn>>2];Kn=jn-Yn;Xn=Yn+jn;Zn=Kn*0.39018064737319946;Jn=+f[st>>2];Qn=Jn-cn;$n=Jn+cn;f[an>>2]=$n;ea=Qn*0.76536685228347778;f[st>>2]=ea;ra=+f[Et>>2];ia=ra-_n;ta=ra+_n;f[hn>>2]=ta;na=ia*0.76536685228347778;f[Et>>2]=na;oa=+f[ft>>2];sa=oa-un;la=un+oa;f[ft>>2]=la;fa=sa*0.76536685228347778;f[sn>>2]=fa;ua=+f[bt>>2];ca=ua-bn;ha=bn+ua;f[bt>>2]=ha;da=ca*0.76536685228347778;f[vn>>2]=da;va=+f[r>>2];ma=va-zn;ba=zn+va;f[r>>2]=ba;_a=ma*1.8477590084075928;f[Hn>>2]=_a;pa=+f[Ui>>2];ka=pa-Xn;Sa=Xn+pa;f[Ui>>2]=Sa;ga=ka*1.8477590084075928;f[Wn>>2]=ga;ya=+f[Ni>>2];Ma=qn-ya;Fa=ya+qn;f[Cn>>2]=Fa;Oa=Ma*1.8477590084075928;f[Ni>>2]=Oa;Ra=+f[Hi>>2];Ta=Ra-Zn;Na=Ra+Zn;f[Vn>>2]=Na;Da=Ta*1.8477590084075928;f[Hi>>2]=Da;Pa=+f[Gi>>2];La=Pa-Mn;Ca=La;Ba=Ca*1.4142135623730951;Ia=Ba;Ha=Mn+Pa;Ua=+f[it>>2];za=Ua-Pn;qa=za;Va=qa*1.4142135623730951;ja=Va;Wa=Pn+Ua;Ya=+f[Yi>>2];Ka=Ya-On;Ga=Ka;Xa=Ga*1.4142135623730951;Ja=Xa;Qa=Ya+On;$a=Ja-Qa;eo=+f[$i>>2];ro=eo-Ln;io=ro;to=io*1.4142135623730951;no=to;ao=eo+Ln;oo=no-ao;lo=ao-Wa;fo=Wa-Ha;uo=+f[Fi>>2];co=uo-Ha;f[Gi>>2]=co;ho=uo+Ha;f[Fi>>2]=ho;vo=ja-lo;mo=Qa-fo;Eo=+f[Ai>>2];wo=Eo-fo;f[it>>2]=wo;bo=Eo+fo;f[Ai>>2]=bo;po=oo-vo;ko=lo-mo;So=+f[ki>>2];go=So-mo;f[pn>>2]=go;yo=So+mo;f[ki>>2]=yo;Mo=Ia-ko;Fo=+f[_i>>2];Oo=Fo-ko;f[An>>2]=Oo;Ao=Fo+ko;f[_i>>2]=Ao;Ro=vo-Mo;No=+f[Pt>>2];Do=No-Mo;f[Sn>>2]=Do;Po=No+Mo;f[Pt>>2]=Po;Lo=$a-Ro;Co=+f[gt>>2];Bo=Co-Ro;f[Tn>>2]=Bo;Io=Co+Ro;f[gt>>2]=Io;Ho=po-Lo;xo=+f[Bt>>2];Uo=xo-Lo;f[Yi>>2]=Uo;qo=xo+Lo;f[Bt>>2]=qo;Vo=+f[Ft>>2];jo=Vo-Ho;f[$i>>2]=jo;Wo=Vo+Ho;f[Ft>>2]=Wo;Yo=+f[r>>2];Ko=+f[ft>>2];Go=Yo-Ko;Xo=Go;Zo=Xo*1.4142135623730951;Jo=Zo;$o=Ko+Yo;f[r>>2]=$o;f[ft>>2]=Jo;es=+f[Ui>>2];rs=+f[bt>>2];is=es-rs;ts=is;ns=ts*1.4142135623730951;as=ns;os=rs+es;ss=+f[Cn>>2];ls=+f[an>>2];us=ss-ls;cs=us;hs=cs*1.4142135623730951;ds=hs;vs=ls+ss;ms=+f[Vn>>2];Es=+f[hn>>2];ws=ms-Es;bs=ws;_s=bs*1.4142135623730951;Ss=_s;gs=Es+ms;ys=+f[sn>>2];Ms=+f[Hn>>2];Fs=ys-Ms;Os=Fs;As=Os*-1.4142135623730951;Rs=As;Ts=Ms+ys;Ns=Rs-Ts;Ps=+f[vn>>2];Ls=+f[Wn>>2];Cs=Ps-Ls;Bs=Cs;Is=Bs*-1.4142135623730951;Hs=Is;xs=Ls+Ps;Us=Hs-xs;zs=+f[Et>>2];qs=+f[Hi>>2];js=zs-qs;Ws=js;Ys=Ws*-1.4142135623730951;Ks=Ys;Gs=qs+zs;Xs=Ks-Gs;Zs=+f[st>>2];Js=+f[Ni>>2];Qs=Js+Zs;$s=Qs;rl=$s*-1.4142135623730951;il=rl;tl=Zs-Js;nl=il-tl;al=tl-vs;ol=ds-al;sl=nl-ol;ll=Gs-gs;fl=Ss-ll;ul=Xs-fl;hl=gs-os;dl=xs-hl;vl=ll-dl;ml=as-vl;El=fl-ml;wl=Us-El;bl=ul-wl;_l=os-$o;pl=vs-_l;kl=hl-pl;gl=Ts-kl;yl=dl-gl;Ml=al-yl;Fl=vl-Ml;Ol=+f[ft>>2];Al=Ol-Fl;Rl=ml-Al;Tl=ol-Rl;Nl=El-Tl;Dl=Ns-Nl;Ll=wl-Dl;Cl=sl-Ll;Bl=bl-Cl;Il=+f[r>>2];Hl=+f[Fi>>2];xl=Hl+Il;f[r>>2]=xl;Ul=Hl-Il;f[Fi>>2]=Ul;zl=+f[Ai>>2];ql=zl+_l;f[Ui>>2]=ql;Vl=zl-_l;f[Ai>>2]=Vl;Wl=+f[ki>>2];Yl=Wl+pl;f[Cn>>2]=Yl;Kl=Wl-pl;f[ki>>2]=Kl;Gl=+f[_i>>2];Xl=Gl+kl;f[Vn>>2]=Xl;Zl=Gl-kl;f[_i>>2]=Zl;Jl=+f[Pt>>2];Ql=Jl+gl;f[sn>>2]=Ql;$l=Jl-gl;f[Pt>>2]=$l;ef=+f[gt>>2];tf=ef+yl;f[vn>>2]=tf;nf=ef-yl;f[gt>>2]=nf;af=+f[Bt>>2];of=af+Ml;f[st>>2]=of;sf=af-Ml;f[Bt>>2]=sf;lf=+f[Ft>>2];ff=lf+Fl;f[Et>>2]=ff;uf=lf-Fl;f[Ft>>2]=uf;cf=+f[$i>>2];hf=cf+Al;f[ft>>2]=hf;vf=cf-Al;f[$i>>2]=vf;mf=+f[Yi>>2];Ef=mf+Rl;f[bt>>2]=Ef;wf=mf-Rl;f[Yi>>2]=wf;bf=+f[Tn>>2];_f=bf+Tl;f[an>>2]=_f;pf=bf-Tl;f[Tn>>2]=pf;kf=+f[Sn>>2];Sf=kf+Nl;f[hn>>2]=Sf;gf=kf-Nl;f[Sn>>2]=gf;Ff=+f[An>>2];Of=Ff+Dl;f[Hn>>2]=Of;Af=Ff-Dl;f[An>>2]=Af;Rf=+f[pn>>2];Tf=Rf+Ll;f[Wn>>2]=Tf;Nf=Rf-Ll;f[pn>>2]=Nf;Df=+f[it>>2];Pf=Df+Cl;f[Ni>>2]=Pf;Lf=Df-Cl;f[it>>2]=Lf;Cf=+f[Gi>>2];If=Cf+Bl;f[Hi>>2]=If;Hf=Cf-Bl;f[Gi>>2]=Hf;return}function ei(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0;E=c;e:do{switch(r|0){case 1004:case 1001:{Vi(e,4)|0;l=e+152|0;a[l>>2]=480;m=15;break}case 1007:case 1006:{Vi(e,4)|0;s=e+152|0;a[s>>2]=460;m=13;break}case 1005:case 1002:{Vi(e,4)|0;f=e+152|0;a[f>>2]=500;m=17;break}case 1003:{u=e+152|0;a[u>>2]=320;ri(e,320,i)|0;Vi(e,0)|0;t=320;return t|0;break}case 1000:{Vi(e,4)|0;o=e+152|0;a[o>>2]=470;m=14;break}default:{h=e+152|0;a[h>>2]=r;switch(r|0){case 490:{ii(e,1,i);t=490;return t|0;break}case 470:{m=14;break e;break}case 410:{ii(e,9,i);t=410;return t|0;break}case 450:{ii(e,5,i);t=450;return t|0;break}case 420:{ii(e,8,i);t=420;return t|0;break}case 500:{m=17;break e;break}case 440:{ii(e,6,i);t=440;return t|0;break}case 480:{m=15;break e;break}case 460:{m=13;break e;break}case 430:{ii(e,7,i);t=430;return t|0;break}default:{n=r+-8|0;d=n>>>0<313;if(d){v=ri(e,r,i)|0;t=v;return t|0}else{a[h>>2]=0;t=r;return t|0}}}}}}while(0);if((m|0)==13){ii(e,4,i);t=460;return t|0}else if((m|0)==14){ii(e,3,i);t=470;return t|0}else if((m|0)==15){ii(e,2,i);t=480;return t|0}else if((m|0)==17){ii(e,0,i);t=500;return t|0}return 0|0}function ri(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0.0,k=0.0,S=0,g=0,y=0.0,M=0.0;var F=0.0,O=0.0,A=0,R=0,T=0,N=0.0,D=0,P=0,L=0,C=0,B=0,I=0.0,H=0.0,x=0,U=0,z=0.0,q=0,V=0.0,j=0.0,W=0.0;var Y=0,K=0,G=0.0,X=0.0,Z=0,J=0,Q=0.0,$=0.0,ee=0.0,re=0,ie=0,te=0.0,ne=0.0,ae=0,oe=0,se=0.0,le=0,fe=0.0,ue=0.0,ce=0.0;var he=0.0,de=0,ve=0,me=0.0,Ee=0.0,we=0.0,be=0,_e=0,pe=0,ke=0.0,Se=0,ge=0.0,ye=0.0,Me=0.0,Fe=0.0,Oe=0,Ae=0.0,Re=0,Te=0,Ne=0.0;var De=0,Pe=0.0,Le=0.0,Ce=0.0,Be=0,Ie=0,He=0.0,xe=0,Ue=0,ze=0,qe=0.0,Ve=0.0,je=0.0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0;Je=c;t=r&65535;n=Nt(t)|0;Vi(e,3)|0;Yi(e,r)|0;b=Ki(e)|0;R=(b|0)<320;Ge=R?b:320;Yi(e,Ge)|0;U=Ki(e)|0;J=(U|0)>8;Xe=J?U:8;Yi(e,Xe)|0;le=Ki(e)|0;Ci(e,le)|0;_e=n+-12|0;Te=_e>>>0<5;if(Te){ze=qi(e)|0;o=ze|2;zi(e,o)|0}s=n>>>0<13;if(s){st(e,1)|0}l=(i|0)!=0;if(l){D=(10560+(n*52|0)|0)+4|0;P=a[D>>2]|0;Bi(e,P)|0;L=(10560+(n*52|0)|0)+8|0;C=a[L>>2]|0;Ii(e,C)|0;B=(10560+(n*52|0)|0)+16|0;I=+f[B>>2];H=I;ht(e,H);x=(10560+(n*52|0)|0)+20|0;z=+f[x>>2];lt(e,z)|0;q=(10560+(n*52|0)|0)+24|0;V=+f[q>>2];ut(e,V)|0}else{u=Hi(e)|0;h=(u|0)==-1;if(h){d=(10560+(n*52|0)|0)+4|0;v=a[d>>2]|0;Bi(e,v)|0}m=xi(e)|0;E=(m|0)==-1;if(E){w=(10560+(n*52|0)|0)+8|0;_=a[w>>2]|0;Ii(e,_)|0}p=+dt(e);k=p+1.0;S=k!=k|0.0!=0.0|k==0.0;if(S){g=(10560+(n*52|0)|0)+16|0;y=+f[g>>2];M=y;ht(e,M)}F=+ft(e);O=F+1.0;A=O!=O|0.0!=0.0|O==0.0;if(A){T=(10560+(n*52|0)|0)+20|0;N=+f[T>>2];lt(e,N)|0}j=+ct(e);W=j+1.0;Y=W!=W|0.0!=0.0|W==0.0;if(Y){K=(10560+(n*52|0)|0)+24|0;G=+f[K>>2];ut(e,G)|0}}X=+Pi(e);Z=(10560+(n*52|0)|0)+28|0;Q=+f[Z>>2];$=Q*X;Di(e,$)|0;if(l){Se=(10560+(n*52|0)|0)+32|0;ge=+f[Se>>2];Gi(e,ge)|0;ye=ge;Me=ye*1.1000000000000001;Fe=Me;Zi(e,Fe)|0;Oe=(10560+(n*52|0)|0)+36|0;Ae=+f[Oe>>2];rt(e,Ae)|0;Re=(10560+(n*52|0)|0)+40|0;Ne=+f[Re>>2];$i(e,Ne)|0;De=(10560+(n*52|0)|0)+44|0;Pe=+f[De>>2];at(e,Pe)|0;xe=10560+(n*52|0)|0;Ue=a[xe>>2]|0;qe=+(Ue|0);Ve=qe*0.015625;je=Ve;We=e+288|0;Ye=a[We>>2]|0;Ke=Ye+280|0;f[Ke>>2]=je;return r|0}ee=+Xi(e);re=ee!=ee|0.0!=0.0|ee==0.0;if(re){ie=(10560+(n*52|0)|0)+32|0;te=+f[ie>>2];Gi(e,te)|0}ne=+Ji(e);ae=ne!=ne|0.0!=0.0|ne==0.0;if(ae){oe=(10560+(n*52|0)|0)+32|0;se=+f[oe>>2];fe=se;ue=fe*1.1000000000000001;ce=ue;Zi(e,ce)|0}he=+it(e);de=he!=he|0.0!=0.0|he==0.0;if(de){ve=(10560+(n*52|0)|0)+36|0;me=+f[ve>>2];rt(e,me)|0}Ee=+et(e);we=Ee+1.0;be=we!=we|0.0!=0.0|we==0.0;if(be){pe=(10560+(n*52|0)|0)+40|0;ke=+f[pe>>2];$i(e,ke)|0}Le=+ot(e);Ce=Le+1.0;Be=Ce!=Ce|0.0!=0.0|Ce==0.0;if(!Be){xe=10560+(n*52|0)|0;Ue=a[xe>>2]|0;qe=+(Ue|0);Ve=qe*0.015625;je=Ve;We=e+288|0;Ye=a[We>>2]|0;Ke=Ye+280|0;f[Ke>>2]=je;return r|0}Ie=(10560+(n*52|0)|0)+44|0;He=+f[Ie>>2];at(e,He)|0;xe=10560+(n*52|0)|0;Ue=a[xe>>2]|0;qe=+(Ue|0);Ve=qe*0.015625;je=Ve;We=e+288|0;Ye=a[We>>2]|0;Ke=Ye+280|0;f[Ke>>2]=je;return r|0}function ii(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0.0,u=0,h=0,d=0,v=0,m=0,E=0,w=0.0,b=0.0,_=0,p=0,k=0.0,S=0.0,g=0,y=0.0,M=0;var F=0.0,O=0,A=0,R=0,T=0,N=0.0,D=0,P=0.0,L=0,C=0.0,B=0.0,I=0,H=0.0,x=0,U=0,z=0.0,q=0,V=0.0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0.0,ee=0,re=0.0,ie=0.0,te=0,ne=0.0,ae=0.0,oe=0,se=0,le=0,fe=0,ue=0,ce=0;var he=0.0,de=0,ve=0.0,me=0,Ee=0.0,we=0.0,be=0,_e=0.0,pe=0,ke=0.0,Se=0,ge=0.0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0.0,Ne=0;var De=0.0,Pe=0,Le=0.0,Ce=0,Be=0,Ie=0.0,He=0,xe=0,Ue=0.0,ze=0,qe=0.0,Ve=0,je=0.0,We=0,Ye=0.0,Ke=0,Ge=0.0,Xe=0,Ze=0,Je=0.0;var Qe=0,$e=0.0,er=0,rr=0,ir=0,tr=0.0,nr=0,ar=0.0,or=0,sr=0,lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0.0,dr=0.0,vr=0.0,mr=0.0,Er=0.0,wr=0;var br=0.0,_r=0.0,pr=0.0,kr=0.0,Sr=0.0,gr=0.0,yr=0.0,Mr=0.0,Fr=0.0,Or=0.0,Ar=0,Rr=0.0,Tr=0.0,Nr=0.0,Dr=0.0,Pr=0.0,Lr=0.0,Cr=0.0,Br=0,Ir=0.0;var Hr=0.0,xr=0,Ur=0.0,zr=0,qr=0.0,Vr=0.0,jr=0.0,Wr=0.0,Yr=0.0,Kr=0.0,Gr=0.0,Xr=0.0,Zr=0,Jr=0;Jr=c;n=ji(e)|0;if((n|0)==1|(n|0)==4){t=9808}else{t=9056}o=e+160|0;Ee=+f[o>>2];Oe=t+(r*68|0)|0;He=a[Oe>>2]|0;Xe=(t+(r*68|0)|0)+4|0;or=a[Xe>>2]|0;wr=(t+(r*68|0)|0)+8|0;Ar=a[wr>>2]|0;xr=(t+(r*68|0)|0)+12|0;s=a[xr>>2]|0;p=(t+(r*68|0)|0)+16|0;N=+f[p>>2];q=(t+(r*68|0)|0)+20|0;$=+f[q>>2];ue=(t+(r*68|0)|0)+24|0;he=+f[ue>>2];de=(t+(r*68|0)|0)+28|0;ve=+f[de>>2];me=(t+(r*68|0)|0)+32|0;we=+f[me>>2];be=(t+(r*68|0)|0)+36|0;_e=+f[be>>2];pe=(t+(r*68|0)|0)+40|0;ke=+f[pe>>2];Se=(t+(r*68|0)|0)+44|0;ge=+f[Se>>2];ye=(t+(r*68|0)|0)+48|0;Me=a[ye>>2]|0;Fe=(t+(r*68|0)|0)+52|0;Ae=a[Fe>>2]|0;Re=(t+(r*68|0)|0)+56|0;Te=+f[Re>>2];Ne=(t+(r*68|0)|0)+60|0;De=+f[Ne>>2];Pe=(t+(r*68|0)|0)+64|0;Le=+f[Pe>>2];Ce=r+1|0;Be=(t+(Ce*68|0)|0)+16|0;Ie=+f[Be>>2];xe=(t+(Ce*68|0)|0)+20|0;Ue=+f[xe>>2];ze=(t+(Ce*68|0)|0)+24|0;qe=+f[ze>>2];Ve=(t+(Ce*68|0)|0)+28|0;je=+f[Ve>>2];We=(t+(Ce*68|0)|0)+32|0;Ye=+f[We>>2];Ke=(t+(Ce*68|0)|0)+36|0;Ge=+f[Ke>>2];Ze=(t+(Ce*68|0)|0)+40|0;Je=+f[Ze>>2];Qe=(t+(Ce*68|0)|0)+44|0;$e=+f[Qe>>2];er=(t+(Ce*68|0)|0)+52|0;rr=a[er>>2]|0;ir=(t+(Ce*68|0)|0)+56|0;tr=+f[ir>>2];nr=(t+(Ce*68|0)|0)+60|0;ar=+f[nr>>2];sr=(t+(Ce*68|0)|0)+64|0;lr=+f[sr>>2];fr=Ie-N;ur=fr*Ee;cr=ur+N;hr=Ue-$;dr=hr*Ee;vr=dr+$;mr=qe-he;Er=mr*Ee;br=Er+he;_r=je-ve;pr=_r*Ee;kr=pr+ve;Sr=Ye-we;gr=Sr*Ee;yr=gr+we;Mr=Ge-_e;Fr=Mr*Ee;Or=Fr+_e;Rr=Je-ke;Tr=Rr*Ee;Nr=Tr+ke;Dr=$e-ge;Pr=Dr*Ee;Lr=Pr+ge;Cr=+(Ae|0);Br=rr-Ae|0;Ir=+(Br|0);Hr=Ir*Ee;Ur=Hr+Cr;zr=~~Ur;qr=tr-Te;Vr=qr*Ee;jr=Vr+Te;Wr=ar-De;Yr=Wr*Ee;Kr=Yr+De;Gr=lr-Le;Xr=Gr*Ee;l=Xr+Le;Wi(e,He)|0;u=(i|0)!=0;if(u){Bi(e,or)|0;Ii(e,Ar)|0}else{h=Hi(e)|0;d=(h|0)==-1;if(d){Bi(e,or)|0}v=xi(e)|0;m=(v|0)==-1;if(m){Ii(e,Ar)|0}}E=(s|0)==0;if(!E){Ui(e,s)|0}if(u){lt(e,cr)|0;ut(e,vr)|0;Gi(e,br)|0;Zi(e,kr)|0}else{w=+ft(e);b=w+1.0;_=b!=b|0.0!=0.0|b==0.0;if(_){lt(e,cr)|0}k=+ct(e);S=k+1.0;g=S!=S|0.0!=0.0|S==0.0;if(g){ut(e,vr)|0}y=+Xi(e);M=y!=y|0.0!=0.0|y==0.0;if(M){Gi(e,br)|0}F=+Ji(e);O=F!=F|0.0!=0.0|F==0.0;if(O){Zi(e,kr)|0}}A=ji(e)|0;R=(A|0)==1;if(R){Zr=23}else{T=ji(e)|0;D=(T|0)==4;if(D){Zr=23}}if((Zr|0)==23){Qi(e,5)|0}if(u){rt(e,yr)|0;$i(e,Or)|0;tt(e,Nr)|0}else{P=+it(e);L=P!=P|0.0!=0.0|P==0.0;if(L){rt(e,yr)|0}C=+et(e);B=C+1.0;I=B!=B|0.0!=0.0|B==0.0;if(I){$i(e,Or)|0}H=+nt(e);x=H!=H|0.0!=0.0|H==0.0;if(x){tt(e,Nr)|0}}U=Lr>0.0;do{if(U){if(u){at(e,Lr)|0;break}z=+ot(e);V=z+1.0;j=V!=V|0.0!=0.0|V==0.0;if(j){at(e,Lr)|0}}}while(0);W=(Me|0)>0;if(W){Y=qi(e)|0;K=Y|2;zi(e,K)|0}G=(zr|0)>0;if(G){X=qi(e)|0;Z=X&66060288;J=(Z|0)==0;if(J){Q=zr<<20;ee=X|Q;zi(e,ee)|0}}if(u){ae=jr;ht(e,ae);se=e+288|0;le=a[se>>2]|0;fe=le+280|0;f[fe>>2]=Kr;ce=le+224|0;f[ce>>2]=l;return}re=+dt(e);ie=re+1.0;te=ie!=ie|0.0!=0.0|ie==0.0;if(te){ne=jr;ht(e,ne)}oe=e+164|0;a[oe>>2]=r;f[o>>2]=Ee;se=e+288|0;le=a[se>>2]|0;fe=le+280|0;f[fe>>2]=Kr;ce=le+224|0;f[ce>>2]=l;return}function ti(e,r,i,n,o,s,l,h,d){e=e|0;r=r|0;i=i|0;n=n|0;o=o|0;s=s|0;l=l|0;h=h|0;d=d|0;var v=0.0,m=0,E=0.0,w=0.0,b=0.0,_=0.0,p=0.0,k=0.0,S=0.0,g=0,y=0,M=0.0,F=0.0,O=0.0,A=0,R=0,T=0.0,N=0.0,D=0.0,P=0.0;var L=0,C=0,B=0,I=0,H=0,x=0,U=0.0,z=0.0,q=0,j=0,Y=0.0,K=0,G=0,X=0.0,Z=0,J=0,Q=0,$=0,ee=0,re=0;var ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0;var Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0;var qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0.0,ir=0.0,tr=0,nr=0,ar=0.0,or=0,sr=0.0;var lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0,dr=0.0,vr=0,mr=0.0,Er=0.0,wr=0.0,br=0,_r=0.0,pr=0.0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0;var Ar=0,Rr=0,Tr=0.0,Nr=0.0,Dr=0.0,Cr=0.0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0.0,qr=0,Vr=0.0,jr=0.0,Wr=0.0,Yr=0.0,Kr=0,Gr=0,Xr=0.0;var Zr=0.0,Jr=0,Qr=0.0,$r=0,ei=0.0,ri=0.0,ii=0,ti=0.0,ni=0.0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0.0,mi=0.0,Ei=0,wi=0;var bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0.0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0.0,Ii=0;var Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0.0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0;var nt=0.0,at=0.0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0.0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0;var yt=0,Mt=0,Ft=0,Ot=0.0,At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0.0,Ht=0.0,xt=0.0,Ut=0.0,zt=0.0,qt=0,Vt=0;var jt=0,Wt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0,en=0,rn=0.0,tn=0.0,nn=0.0,an=0,on=0.0,sn=0,ln=0,fn=0,un=0.0,cn=0.0;var hn=0.0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,_n=0,kn=0.0,Sn=0.0,gn=0.0,Mn=0,Fn=0.0,On=0.0,An=0.0,Rn=0,Tn=0.0,Nn=0,Dn=0,Pn=0.0;var Ln=0.0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0;var ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0.0,_a=0;var pa=0,ka=0.0,Sa=0,ga=0,ya=0.0,Ma=0,Fa=0.0,Oa=0,Aa=0.0,Ra=0,Ta=0.0,Na=0.0,Da=0.0,Pa=0.0,La=0,Ca=0.0,Ba=0.0,Ia=0.0,Ha=0.0,xa=0.0;var Ua=0.0,za=0.0,qa=0.0,Va=0.0,ja=0.0,Wa=0,Ya=0,Ka=0.0,Ga=0,Xa=0.0,Za=0,Ja=0.0,Qa=0,$a=0.0,eo=0,ro=0.0,io=0,to=0.0,no=0.0,ao=0.0;var oo=0.0,so=0.0,lo=0.0,fo=0.0,uo=0.0,co=0.0,ho=0.0,vo=0,mo=0.0,Eo=0.0,wo=0.0,bo=0,_o=0.0,po=0,ko=0.0,So=0,go=0.0,yo=0,Mo=0,Fo=0.0;var Oo=0,Ao=0.0,Ro=0.0,To=0.0,No=0.0,Do=0.0,Po=0.0,Lo=0.0,Co=0.0,Bo=0,Io=0.0,Ho=0.0,xo=0.0,Uo=0.0,zo=0.0,qo=0.0,Vo=0,jo=0,Wo=0,Yo=0.0;var Ko=0,Go=0,Xo=0.0,Zo=0,Jo=0.0,Qo=0,$o=0.0,es=0,rs=0,is=0.0,ts=0.0,ns=0,as=0.0,os=0.0,ss=0.0,ls=0.0,fs=0.0,us=0.0,cs=0.0,hs=0.0;var ds=0.0,vs=0.0,ms=0,Es=0,ws=0.0,bs=0.0,_s=0,ps=0,ks=0.0,Ss=0.0,gs=0,ys=0,Ms=0,Fs=0,Os=0,As=0,Rs=0,Ts=0,Ns=0,Ds=0;var Ps=0,Ls=0,Cs=0,Bs=0,Is=0,Hs=0,xs=0,Us=0,zs=0,qs=0,Vs=0.0,js=0,Ws=0.0,Ys=0.0,Ks=0,Gs=0.0,Xs=0.0,Zs=0.0,Js=0,Qs=0.0;var $s=0,el=0.0,rl=0.0,il=0.0,tl=0.0,nl=0,al=0.0,ol=0,sl=0.0,ll=0.0,fl=0.0,ul=0,cl=0.0,hl=0,dl=0,vl=0.0,ml=0.0,El=0.0,wl=0,bl=0.0;var _l=0,pl=0.0,kl=0.0,Sl=0.0,gl=0,yl=0,Ml=0.0,Fl=0,Ol=0.0,Al=0.0,Rl=0.0,Tl=0,Nl=0.0,Dl=0,Pl=0.0,Ll=0.0,Cl=0,Bl=0.0,Il=0,Hl=0.0;var xl=0,Ul=0.0,zl=0.0,ql=0.0,Vl=0,jl=0.0,Wl=0,Yl=0,Kl=0,Gl=0.0,Xl=0.0,Zl=0.0,Jl=0,Ql=0.0,$l=0,ef=0.0,rf=0.0,tf=0.0,nf=0.0,af=0;var of=0.0,sf=0.0,lf=0.0,ff=0.0,uf=0.0,cf=0.0,hf=0.0,df=0.0,vf=0.0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0;var Ff=0,Of=0,Af=0.0,Rf=0,Tf=0.0,Nf=0.0,Df=0,Pf=0.0,Lf=0,Cf=0.0,Bf=0.0,If=0.0,Hf=0,xf=0,Uf=0.0,zf=0.0,qf=0.0,Vf=0,jf=0.0,Wf=0;var Yf=0.0,Kf=0.0,Gf=0.0,Xf=0,Zf=0,Jf=0.0,Qf=0.0,$f=0.0,eu=0.0,ru=0.0,iu=0.0,tu=0,nu=0,au=0.0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0;var hu=0,du=0,vu=0,mu=0,Eu=0.0,wu=0,bu=0.0,_u=0,pu=0,ku=0.0,Su=0,gu=0.0,yu=0.0,Mu=0,Fu=0.0,Ou=0,Au=0,Ru=0.0,Tu=0,Nu=0;var Du=0.0,Pu=0.0,Lu=0.0,Cu=0.0,Bu=0.0,Iu=0.0,Hu=0,xu=0,Uu=0.0,zu=0.0,qu=0,Vu=0.0,ju=0,Wu=0.0,Yu=0,Ku=0.0,Gu=0,Xu=0.0,Zu=0,Ju=0;var Qu=0,$u=0.0,ec=0,rc=0.0,ic=0,tc=0.0,nc=0,ac=0.0,oc=0,sc=0.0,lc=0,fc=0,uc=0.0,cc=0,hc=0,dc=0.0,vc=0,mc=0.0,Ec=0,wc=0;var bc=0.0,_c=0,pc=0,kc=0.0,Sc=0.0,gc=0,yc=0.0,Mc=0,Fc=0.0,Oc=0,Ac=0.0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0.0,Ic=0;var Hc=0,xc=0,Uc=0,zc=0,qc=0,Vc=0,jc=0,Wc=0,Yc=0.0,Kc=0,Gc=0.0,Xc=0,Zc=0.0,Jc=0,Qc=0,$c=0,eh=0,rh=0,ih=0,th=0;var nh=0,ah=0,oh=0,sh=0,lh=0,fh=0,uh=0,ch=0,hh=0,dh=0,vh=0,mh=0,Eh=0,wh=0,bh=0,_h=0,ph=0,kh=0,Sh=0,gh=0;var yh=0,Mh=0,Fh=0,Oh=0,Ah=0,Rh=0,Th=0.0,Nh=0,Dh=0,Ph=0,Lh=0.0,Ch=0.0,Bh=0.0,Ih=0.0,Hh=0.0,xh=0.0,Uh=0,zh=0.0,qh=0,Vh=0;var jh=0,Wh=0.0,Yh=0,Kh=0.0,Gh=0,Xh=0.0,Zh=0,Jh=0,Qh=0,$h=0,ed=0,rd=0,id=0,td=0,nd=0,ad=0,od=0,sd=0,ld=0,fd=0;var ud=0,cd=0,hd=0,dd=0,vd=0,md=0,Ed=0,wd=0,bd=0,_d=0,pd=0,kd=0,Sd=0,gd=0,yd=0,Md=0,Fd=0,Od=0,Ad=0,Rd=0;var Td=0,Nd=0,Dd=0,Pd=0.0,Ld=0,Cd=0.0,Bd=0,Id=0.0,Hd=0.0,xd=0.0,Ud=0.0,zd=0.0,qd=0,Vd=0,jd=0,Wd=0.0,Yd=0.0,Kd=0,Gd=0,Xd=0.0;var Zd=0,Jd=0,Qd=0.0,$d=0.0,ev=0.0,rv=0.0,iv=0.0,tv=0.0,nv=0,av=0,ov=0,sv=0,lv=0.0,fv=0.0,uv=0,cv=0,hv=0,dv=0,vv=0,mv=0;var Ev=0.0,wv=0,bv=0,_v=0.0,pv=0.0,kv=0,Sv=0,gv=0.0,yv=0,Mv=0,Fv=0,Ov=0,Av=0.0,Rv=0,Tv=0.0,Nv=0.0,Dv=0.0,Pv=0,Lv=0.0,Cv=0.0;var Bv=0.0,Iv=0.0,Hv=0,xv=0,Uv=0,zv=0,qv=0,Vv=0,jv=0,Wv=0.0,Yv=0,Kv=0.0,Gv=0.0,Xv=0,Zv=0,Jv=0,Qv=0,$v=0,em=0,rm=0;var im=0,tm=0,nm=0,am=0.0,om=0.0,sm=0,lm=0,fm=0.0,um=0.0,cm=0.0,hm=0,dm=0.0,vm=0.0,mm=0.0,Em=0,wm=0.0,bm=0.0,_m=0.0,pm=0,km=0;var Sm=0,gm=0,ym=0,Mm=0,Fm=0,Om=0.0,Am=0.0,Rm=0.0,Tm=0,Nm=0,Dm=0,Pm=0,Lm=0,Cm=0,Bm=0.0,Im=0.0,Hm=0.0,xm=0,Um=0,zm=0;var qm=0.0,Vm=0.0,jm=0.0,Wm=0,Ym=0,Km=0.0,Gm=0,Xm=0,Zm=0.0,Jm=0,Qm=0.0,$m=0,eE=0,rE=0.0,iE=0,tE=0.0,nE=0.0,aE=0.0,oE=0.0,sE=0;var lE=0,fE=0,uE=0,cE=0,hE=0,dE=0,vE=0,mE=0,EE=0,wE=0.0,bE=0.0,_E=0.0,pE=0,kE=0,SE=0,gE=0,yE=0,ME=0.0,FE=0.0,OE=0.0;var AE=0,RE=0,TE=0,NE=0.0,DE=0,PE=0.0,LE=0,CE=0.0,BE=0.0,IE=0.0,HE=0,xE=0,UE=0,zE=0,qE=0,VE=0,jE=0,WE=0.0,YE=0.0,KE=0.0;var GE=0,XE=0.0,ZE=0,JE=0,QE=0,$E=0,ew=0,rw=0,iw=0,tw=0,nw=0,aw=0,ow=0,sw=0.0,lw=0.0,fw=0.0,uw=0.0,cw=0,hw=0,dw=0;var vw=0,mw=0,Ew=0,ww=0,bw=0.0,_w=0,pw=0,kw=0,Sw=0,gw=0,yw=0,Mw=0,Fw=0.0,Ow=0,Aw=0.0,Rw=0,Tw=0.0,Nw=0,Dw=0.0,Pw=0.0;var Lw=0,Cw=0,Bw=0,Iw=0,Hw=0,xw=0,Uw=0.0,zw=0,qw=0.0,Vw=0,jw=0.0,Ww=0.0,Yw=0,Kw=0.0,Gw=0.0,Xw=0,Zw=0,Jw=0,Qw=0,$w=0;var eb=0,rb=0,ib=0.0,tb=0.0,nb=0,ab=0,ob=0.0,sb=0,lb=0.0,fb=0.0,ub=0.0,cb=0.0,hb=0.0,db=0,vb=0.0,mb=0,Eb=0.0,wb=0.0,bb=0.0,_b=0.0;var pb=0,kb=0.0,Sb=0,gb=0,yb=0,Mb=0,Fb=0,Ob=0,Ab=0,Rb=0,Tb=0.0,Nb=0,Db=0.0,Pb=0.0,Lb=0.0,Cb=0,Bb=0,Ib=0,Hb=0.0,xb=0.0;var Ub=0,zb=0,qb=0,Vb=0.0,jb=0,Wb=0.0,Yb=0,Kb=0.0,Gb=0.0,Xb=0.0,Zb=0,Jb=0.0,Qb=0.0,$b=0,e_=0,r_=0.0,i_=0.0,t_=0,n_=0.0,a_=0.0;var o_=0,s_=0,l_=0,f_=0,u_=0,c_=0,h_=0.0,d_=0,v_=0.0,m_=0,E_=0,w_=0,b_=0,__=0.0,p_=0,k_=0.0,S_=0.0,g_=0.0,y_=0.0,M_=0;var F_=0.0,O_=0,A_=0.0,R_=0.0,T_=0,N_=0.0,D_=0.0,P_=0,L_=0.0,C_=0,B_=0.0,I_=0.0,H_=0,x_=0,U_=0,z_=0,q_=0,V_=0.0,j_=0,W_=0;var Y_=0,K_=0,G_=0,X_=0,Z_=0,J_=0,Q_=0,$_=0,ep=0,rp=0.0,ip=0,tp=0,np=0.0,ap=0,op=0,sp=0,lp=0,fp=0,up=0,cp=0.0;var hp=0,dp=0,vp=0,mp=0,Ep=0.0,wp=0.0,bp=0,_p=0,pp=0,kp=0,Sp=0,gp=0,yp=0,Mp=0,Fp=0,Op=0,Ap=0,Rp=0,Tp=0,Np=0;var Dp=0,Pp=0.0,Lp=0,Cp=0,Bp=0,Ip=0,Hp=0,xp=0,Up=0,zp=0,qp=0,Vp=0,jp=0.0,Wp=0,Yp=0,Kp=0,Gp=0,Xp=0,Zp=0,Jp=0;var Qp=0,$p=0,ek=0,rk=0.0,ik=0,tk=0,nk=0,ak=0,ok=0,sk=0,lk=0,fk=0,uk=0,ck=0,hk=0.0,dk=0,vk=0,mk=0,Ek=0,wk=0;var bk=0,_k=0,pk=0,kk=0,Sk=0,gk=0,yk=0.0,Mk=0,Fk=0,Ok=0,Ak=0,Rk=0,Tk=0,Nk=0,Dk=0,Pk=0,Lk=0.0,Ck=0,Bk=0,Ik=0.0;var Hk=0.0,xk=0.0,Uk=0.0,zk=0.0,qk=0,Vk=0,jk=0,Wk=0.0,Yk=0.0,Kk=0.0,Gk=0,Xk=0,Zk=0.0,Jk=0,Qk=0,$k=0.0,eS=0.0,rS=0.0,iS=0.0,tS=0.0;var nS=0.0,aS=0,oS=0,sS=0,lS=0,fS=0,uS=0,cS=0,hS=0,dS=0,vS=0.0,mS=0,ES=0,wS=0.0,bS=0.0,_S=0,pS=0,kS=0,SS=0,gS=0;var yS=0,MS=0,FS=0,OS=0.0,AS=0.0,RS=0,TS=0,NS=0.0,DS=0.0,PS=0.0,LS=0,CS=0.0,BS=0.0,IS=0.0,HS=0,xS=0.0,US=0.0,zS=0.0,qS=0,VS=0;var jS=0,WS=0,YS=0,KS=0,GS=0,XS=0.0,ZS=0.0,JS=0.0,QS=0,$S=0,eg=0,rg=0,ig=0,tg=0,ng=0.0,ag=0.0,og=0,sg=0,lg=0,fg=0.0;var ug=0.0,cg=0.0,hg=0,dg=0,vg=0,mg=0,Eg=0,wg=0.0,bg=0.0,_g=0,pg=0.0,kg=0,Sg=0,gg=0.0,yg=0,Mg=0.0,Fg=0.0,Og=0.0,Ag=0.0,Rg=0;var Tg=0,Ng=0,Dg=0,Pg=0,Lg=0,Cg=0,Bg=0,Ig=0,Hg=0.0,xg=0,Ug=0.0,zg=0.0,qg=0,Vg=0,jg=0,Wg=0,Yg=0,Kg=0.0,Gg=0.0,Xg=0;var Zg=0.0,Jg=0,Qg=0,$g=0.0,ey=0,ry=0.0,iy=0,ty=0.0,ny=0.0,ay=0.0,oy=0,sy=0,ly=0,fy=0,uy=0,cy=0,hy=0,dy=0.0,vy=0.0,my=0.0;var Ey=0,wy=0,by=0.0,_y=0,py=0,ky=0,Sy=0,gy=0,yy=0,My=0,Fy=0,Oy=0,Ay=0,Ry=0.0,Ty=0,Ny=0,Dy=0,Py=0,Ly=0,Cy=0;var By=0,Iy=0.0,Hy=0.0,xy=0.0,Uy=0.0,zy=0,qy=0,Vy=0,jy=0,Wy=0,Yy=0.0,Ky=0,Gy=0.0,Xy=0.0,Zy=0,Jy=0,Qy=0.0,$y=0.0,eM=0,rM=0;var iM=0,tM=0,nM=0,aM=0,oM=0,sM=0.0,lM=0.0,fM=0,uM=0.0,cM=0.0,hM=0,dM=0.0,vM=0.0,mM=0,EM=0,wM=0,bM=0,_M=0,pM=0,kM=0;var SM=0,gM=0,yM=0,MM=0,FM=0,OM=0,AM=0,RM=0,TM=0,NM=0,DM=0,PM=0,LM=0,CM=0,BM=0,IM=0,HM=0,xM=0,UM=0,zM=0;var qM=0,VM=0,jM=0,WM=0,YM=0,KM=0,GM=0,XM=0,ZM=0,JM=0,QM=0,$M=0.0,eF=0.0,rF=0.0,iF=0.0,tF=0.0,nF=0.0,aF=0.0,oF=0.0,sF=0.0;var lF=0.0,fF=0.0,uF=0.0,cF=0.0,hF=0.0,dF=0.0,vF=0,mF=0,EF=0,wF=0,bF=0,_F=0,pF=0,kF=0,SF=0,gF=0,yF=0,MF=0,FF=0,OF=0;var AF=0,RF=0,TF=0,NF=0,DF=0,PF=0,LF=0,CF=0,BF=0,IF=0,HF=0,xF=0,UF=0,zF=0,qF=0,VF=0,jF=0,WF=0,YF=0,KF=0;var GF=0,XF=0.0,ZF=0.0,JF=0.0,QF=0.0,$F=0,eO=0,rO=0,iO=0,tO=0,nO=0,aO=0,oO=0,sO=0,lO=0,fO=0,uO=0,cO=0,hO=0,dO=0;var vO=0,mO=0,EO=0,wO=0,bO=0,_O=0,pO=0,kO=0,SO=0,gO=0,yO=0,MO=0,FO=0,OO=0,AO=0,RO=0,TO=0,NO=0,DO=0,PO=0;var LO=0,CO=0,BO=0,IO=0,HO=0.0,xO=0.0,UO=0.0,zO=0.0,qO=0.0,VO=0.0,jO=0.0,WO=0.0,YO=0.0,KO=0.0,GO=0.0,XO=0.0,ZO=0.0,JO=0.0,QO=0.0,$O=0.0;var eA=0.0,rA=0,iA=0,tA=0,nA=0,aA=0,oA=0,sA=0,lA=0,fA=0,uA=0,cA=0,hA=0,dA=0,vA=0,mA=0,EA=0,wA=0,bA=0.0,_A=0.0;var pA=0.0,kA=0.0,SA=0.0,gA=0.0,yA=0.0,MA=0.0,FA=0.0,OA=0.0,AA=0.0,RA=0.0,TA=0,NA=0,DA=0,PA=0.0,LA=0,CA=0.0,BA=0.0,IA=0.0,HA=0,xA=0;var UA=0,zA=0,qA=0,VA=0,jA=0,WA=0,YA=0,KA=0,GA=0,XA=0,ZA=0,JA=0,QA=0,$A=0,eR=0,rR=0.0,iR=0.0,tR=0,nR=0,aR=0.0;var oR=0,sR=0,lR=0,fR=0,uR=0,cR=0.0,hR=0.0,dR=0.0,vR=0.0,mR=0.0,ER=0.0,wR=0.0,bR=0.0,_R=0.0,pR=0.0,kR=0.0,SR=0,gR=0,yR=0,MR=0;yR=c;c=c+26240|0;rA=yR+21624|0;tR=yR+21368|0;_M=yR+21112|0;vF=yR+21096|0;IO=yR+20120|0;$F=yR+18068|0;eO=yR+16520|0;fR=yR+8328|0;uR=yR+2184|0;QM=yR+1160|0;nR=yR+136|0;eR=yR+88|0;oA=yR+24|0;lR=yR+16|0;aA=yR;Xe=e+85800|0;Ze=a[Xe>>2]|0;Yl=e+140|0;Zu=a[Yl>>2]|0;$h=(Zu|0)==0;if($h){ta=0}else{im=e+85804|0;ow=a[im>>2]|0;ta=ow}f_=e+192|0;hk=+f[f_>>2];Eg=hk>0.0;if(Eg){Je=e+200|0;nt=+f[Je>>2];ca=e+85796|0;ms=a[ca>>2]|0;Ls=ms+8|0;Ws=+f[Ls>>2];il=Ws*nt;np=il}else{np=1.0}SR=oA;MR=SR+64|0;do{a[SR>>2]=0|0;SR=SR+4|0}while((SR|0)<(MR|0));dl=e+180|0;yl=a[dl>>2]|0;Cl=(yl|0)==1;if(Cl){_d=4}else{Kl=e+72|0;af=a[Kl>>2]|0;_d=af}Ef=e+25660|0;yn(IO|0,Ef|0,976)|0;if($h){Dn=0}else{Of=e+85804|0;Hf=a[Of>>2]|0;Dn=Hf}Xf=e+72|0;ou=a[Xf>>2]|0;wu=Cl?4:ou;pn(rA|0,0,4608)|0;Au=(ou|0)>0;if(Au){xu=(wu|0)>2;if(xu){HM=0;while(1){Ju=r+(HM<<2)|0;lc=a[Ju>>2]|0;nO=0;while(1){se=nO+407|0;Sd=lc+(se<<2)|0;Pd=+f[Sd>>2];we=nO+397|0;jd=lc+(we<<2)|0;rv=+f[jd>>2];Oe=nO+418|0;hv=lc+(Oe<<2)|0;gv=+f[hv>>2];Lv=gv+rv;Wv=Lv*1.7303260184043527E-17;Ie=nO+398|0;tm=lc+(Ie<<2)|0;vm=+f[tm>>2];Ke=nO+417|0;Mm=lc+(Ke<<2)|0;Bm=+f[Mm>>2];Km=Bm+vm;aE=Km*0.017031719908118248;de=nO+399|0;EE=lc+(de<<2)|0;OE=+f[EE>>2];ge=nO+416|0;HE=lc+(ge<<2)|0;XE=+f[HE>>2];sw=XE+OE;bw=sw*1.3495279640235235E-17;Pe=nO+400|0;Rw=lc+(Pe<<2)|0;Uw=+f[Rw>>2];Ve=nO+415|0;Jw=lc+(Ve<<2)|0;lb=+f[Jw>>2];_b=lb+Uw;Tb=_b*0.041807200759649277;ve=nO+401|0;zb=lc+(ve<<2)|0;Qb=+f[zb>>2];ye=nO+414|0;u_=lc+(ye<<2)|0;k_=+f[u_>>2];D_=k_+Qb;V_=D_*6.7327796858492251E-17;Le=nO+402|0;ep=lc+(Le<<2)|0;cp=+f[ep>>2];je=nO+413|0;Sp=lc+(je<<2)|0;Pp=+f[Sp>>2];jp=Pp+cp;rk=jp*0.087632402777671814;me=nO+403|0;dk=lc+(me<<2)|0;yk=+f[dk>>2];Me=nO+412|0;Ck=lc+(Me<<2)|0;Yk=+f[Ck>>2];tS=Yk+yk;vS=tS*3.0835000291318875E-17;Ce=nO+404|0;MS=lc+(Ce<<2)|0;BS=+f[MS>>2];We=nO+411|0;KS=lc+(We<<2)|0;ng=+f[KS>>2];wg=ng+BS;Ag=wg*0.1863476037979126;Ee=nO+405|0;xg=lc+(Ee<<2)|0;Zg=+f[xg>>2];Fe=nO+410|0;sy=lc+(Fe<<2)|0;by=+f[sy>>2];Ry=by+Zg;Uy=Ry*1.1044240253100168E-16;Be=nO+406|0;Jy=lc+(Be<<2)|0;lM=+f[Jy>>2];Ye=nO+409|0;Qe=lc+(Ye<<2)|0;fr=+f[Qe>>2];pr=fr+lM;Nr=pr*0.62763798236846924;jr=Pd-Wv;ri=jr-aE;vi=ri-bw;Mi=vi+Tb;Bi=Mi-V_;Ki=Bi-rk;at=Ki-vS;Et=at+Ag;Ot=Et-Uy;Ht=Ot-Nr;Zt=(rA+(HM*2304|0)|0)+(nO<<2)|0;f[Zt>>2]=Ht;ln=nO+1|0;YF=(ln|0)==576;if(YF){break}else{nO=ln}}_c=((n+(i*976|0)|0)+(HM*488|0)|0)+244|0;Tc=(e+26636|0)+(HM*244|0)|0;yn(_c|0,Tc|0,244)|0;zc=(n+(i*976|0)|0)+(HM*488|0)|0;Qc=(e+25660|0)+(HM*244|0)|0;yn(zc|0,Qc|0,244)|0;fh=((o+(i*976|0)|0)+(HM*488|0)|0)+244|0;ph=HM+2|0;Nh=(e+26636|0)+(ph*244|0)|0;yn(fh|0,Nh|0,244)|0;qh=(o+(i*976|0)|0)+(HM*488|0)|0;ed=(e+25660|0)+(ph*244|0)|0;yn(qh|0,ed|0,244)|0;cd=HM+1|0;KF=(cd|0)==(ou|0);if(KF){break}else{HM=cd}}}else{IM=0;while(1){Us=r+(IM<<2)|0;zs=a[Us>>2]|0;tO=0;while(1){oe=tO+407|0;qs=zs+(oe<<2)|0;Vs=+f[qs>>2];he=tO+397|0;js=zs+(he<<2)|0;Ys=+f[js>>2];Se=tO+418|0;Ks=zs+(Se<<2)|0;Gs=+f[Ks>>2];Xs=Gs+Ys;Zs=Xs*1.7303260184043527E-17;De=tO+398|0;Js=zs+(De<<2)|0;Qs=+f[Js>>2];qe=tO+417|0;$s=zs+(qe<<2)|0;el=+f[$s>>2];rl=el+Qs;tl=rl*0.017031719908118248;le=tO+399|0;nl=zs+(le<<2)|0;al=+f[nl>>2];be=tO+416|0;ol=zs+(be<<2)|0;sl=+f[ol>>2];ll=sl+al;fl=ll*1.3495279640235235E-17;Ae=tO+400|0;ul=zs+(Ae<<2)|0;cl=+f[ul>>2];He=tO+415|0;hl=zs+(He<<2)|0;vl=+f[hl>>2];ml=vl+cl;El=ml*0.041807200759649277;fe=tO+401|0;wl=zs+(fe<<2)|0;bl=+f[wl>>2];_e=tO+414|0;_l=zs+(_e<<2)|0;pl=+f[_l>>2];kl=pl+bl;Sl=kl*6.7327796858492251E-17;Re=tO+402|0;gl=zs+(Re<<2)|0;Ml=+f[gl>>2];xe=tO+413|0;Fl=zs+(xe<<2)|0;Ol=+f[Fl>>2];Al=Ol+Ml;Rl=Al*0.087632402777671814;ue=tO+403|0;Tl=zs+(ue<<2)|0;Nl=+f[Tl>>2];pe=tO+412|0;Dl=zs+(pe<<2)|0;Pl=+f[Dl>>2];Ll=Pl+Nl;Bl=Ll*3.0835000291318875E-17;Te=tO+404|0;Il=zs+(Te<<2)|0;Hl=+f[Il>>2];Ue=tO+411|0;xl=zs+(Ue<<2)|0;Ul=+f[xl>>2];zl=Ul+Hl;ql=zl*0.1863476037979126;ce=tO+405|0;Vl=zs+(ce<<2)|0;jl=+f[Vl>>2];ke=tO+410|0;Wl=zs+(ke<<2)|0;Gl=+f[Wl>>2];Xl=Gl+jl;Zl=Xl*1.1044240253100168E-16;Ne=tO+406|0;Jl=zs+(Ne<<2)|0;Ql=+f[Jl>>2];ze=tO+409|0;$l=zs+(ze<<2)|0;ef=+f[$l>>2];rf=ef+Ql;tf=rf*0.62763798236846924;nf=Vs-Zs;of=nf-tl;sf=of-fl;lf=sf+El;ff=lf-Sl;uf=ff-Rl;cf=uf-Bl;hf=cf+ql;df=hf-Zl;vf=df-tf;mf=(rA+(IM*2304|0)|0)+(tO<<2)|0;f[mf>>2]=vf;wf=tO+1|0;jF=(wf|0)==576;if(jF){break}else{tO=wf}}bf=((n+(i*976|0)|0)+(IM*488|0)|0)+244|0;_f=(e+26636|0)+(IM*244|0)|0;yn(bf|0,_f|0,244)|0;pf=(n+(i*976|0)|0)+(IM*488|0)|0;kf=(e+25660|0)+(IM*244|0)|0;yn(pf|0,kf|0,244)|0;Sf=IM+1|0;WF=(Sf|0)==(ou|0);if(WF){break}else{IM=Sf}}}}_n=(wu|0)>0;if(_n){Vn=(Dn|0)==(0|0);ea=lR+4|0;ha=_M+4|0;ga=tR+4|0;La=_M+8|0;Wa=tR+8|0;io=_M+12|0;vo=_M+16|0;Mo=_M+20|0;Bo=_M+24|0;Ko=_M+28|0;ns=_M+32|0;Es=_M+36|0;Ms=_M+40|0;Fs=_M+44|0;Os=vF+4|0;As=vF+8|0;Rs=vF+12|0;Ts=tR+12|0;Ns=tR+16|0;Ds=tR+20|0;Ps=tR+24|0;Cs=tR+28|0;Bs=tR+32|0;Is=tR+36|0;Hs=tR+40|0;xs=tR+44|0;UM=0;while(1){a[vF>>2]=0|0;a[vF+4>>2]=0|0;a[vF+8>>2]=0|0;a[vF+12>>2]=0|0;gf=UM&1;yf=rA+(gf*2304|0)|0;Mf=(UM|0)==2;if(Mf){oO=0;while(1){Vf=rA+(oO<<2)|0;jf=+f[Vf>>2];Wf=(rA+2304|0)+(oO<<2)|0;Yf=+f[Wf>>2];Kf=Yf+jf;f[Vf>>2]=Kf;Gf=jf-Yf;f[Wf>>2]=Gf;Zf=oO+1|0;EF=(Zf|0)==576;if(EF){break}else{oO=Zf}}}Ff=((e+27636|0)+(UM*36|0)|0)+24|0;Af=+f[Ff>>2];f[_M>>2]=Af;Rf=((e+27636|0)+(UM*36|0)|0)+16|0;Tf=+f[Rf>>2];Nf=Af/Tf;f[tR>>2]=Nf;Df=((e+27636|0)+(UM*36|0)|0)+28|0;Pf=+f[Df>>2];f[ha>>2]=Pf;Lf=((e+27636|0)+(UM*36|0)|0)+20|0;Cf=+f[Lf>>2];Bf=Pf/Cf;f[ga>>2]=Bf;If=Pf+Af;xf=((e+27636|0)+(UM*36|0)|0)+32|0;Uf=+f[xf>>2];f[La>>2]=Uf;zf=Uf/Af;f[Wa>>2]=zf;qf=If+Uf;f[vF>>2]=qf;sO=0;TA=yf;while(1){nu=TA+256|0;bA=1.0;NA=TA;while(1){au=+f[NA>>2];XF=+V(+au);su=bA>>0>>0;if(fu){bA=_A;NA=lu}else{pA=_A;break}}uu=sO+3|0;cu=_M+(uu<<2)|0;f[cu>>2]=pA;hu=((e+27636|0)+(UM*36|0)|0)+(sO<<2)|0;f[hu>>2]=pA;du=(sO|0)/3&-1;vu=du+1|0;mu=vF+(vu<<2)|0;Eu=+f[mu>>2];bu=Eu+pA;f[mu>>2]=bu;_u=sO+1|0;pu=_M+(_u<<2)|0;ku=+f[pu>>2];Su=pA>ku;if(Su){gu=pA/ku;kA=gu}else{yu=pA*10.0;Mu=ku>yu;if(Mu){Fu=ku/yu;kA=Fu}else{kA=0.0}}Ou=tR+(uu<<2)|0;f[Ou>>2]=kA;xF=(_u|0)==9;if(xF){break}else{sO=_u;TA=nu}}Jf=+f[io>>2];Qf=+f[vo>>2];$f=Qf+Jf;eu=+f[Mo>>2];ru=$f+eu;iu=eu*6.0;tu=iu>2]=QF;Du=+f[Bo>>2];Pu=+f[Ko>>2];Lu=Pu+Du;Cu=+f[ns>>2];Bu=Lu+Cu;Iu=Cu*6.0;Hu=Iu>2]=ZF;Lh=+f[Es>>2];Ch=+f[Ms>>2];Bh=Ch+Lh;Ih=+f[Fs>>2];Hh=Bh+Ih;xh=Ih*6.0;Uh=xh>2]=JF;if(!Vn){Uu=+f[tR>>2];zu=+f[ga>>2];qu=Uu>2];ju=kR>2];Yu=cR>2];Gu=dR>2];Qu=vR>2];ec=mR<$u;ER=ec?$u:mR;rc=+f[Cs>>2];ic=ER>2];nc=wR>2];oc=bR>2];fc=_R>2];cc=pR>3];vc=((Dn+197144|0)+(i<<5)|0)+(UM<<3)|0;u[vc>>3]=dc;mc=hR;u[hc>>3]=mc}Ec=a[Xe>>2]|0;wc=(Ec+6480|0)+(UM<<2)|0;bc=+f[wc>>2];lO=0;while(1){Nc=(lO|0)/3&-1;Dc=(oA+(UM<<4)|0)+(Nc<<2)|0;Pc=a[Dc>>2]|0;Lc=(Pc|0)==0;if(Lc){Cc=tR+(lO<<2)|0;Bc=+f[Cc>>2];Ic=Bc>bc;if(Ic){Hc=(lO|0)%3&-1;xc=Hc+1|0;a[Dc>>2]=xc}}Uc=lO+1|0;UF=(Uc|0)==12;if(UF){break}else{lO=Uc}}pc=oA+(UM<<4)|0;kc=+f[vF>>2];Sc=+f[Os>>2];gc=kc>Sc;yc=gc?kc:Sc;Mc=yc<4.0E+4;Fc=Sc*1.7000000476837158;Oc=kc>2]|0;Vc=(oA+(UM<<4)|0)+4|0;jc=a[Vc>>2]|0;Wc=(qc|0)>(jc|0);if(!Wc){a[pc>>2]=0}a[Vc>>2]=0}Yc=+f[As>>2];Kc=Sc>Yc;Gc=Kc?Sc:Yc;Xc=Gc<4.0E+4;Zc=Yc*1.7000000476837158;Jc=Sc>2]=0}Wh=+f[Rs>>2];Yh=Yc>Wh;Kh=Yh?Yc:Wh;Gh=Kh<4.0E+4;Xh=Wh*1.7000000476837158;Zh=Yc>2]=0}Qh=a[pc>>2]|0;rd=(e+27780|0)+(UM<<2)|0;eh=a[rd>>2]|0;id=(Qh|0)>(eh|0);if(id){th=Qh}else{a[pc>>2]=0;th=0}rh=(eh|0)==3;H=(oA+(UM<<4)|0)+4|0;x=a[H>>2]|0;if(rh){gR=47}else{ih=x+th|0;nh=(oA+(UM<<4)|0)+8|0;ah=a[nh>>2]|0;oh=ih+ah|0;sh=(oA+(UM<<4)|0)+12|0;lh=a[sh>>2]|0;uh=0-lh|0;ch=(oh|0)==(uh|0);if(ch){sA=1}else{gR=47}}do{if((gR|0)==47){gR=0;hh=(x|0)==0;do{if(hh){wh=0}else{dh=(th|0)==0;if(dh){wh=x;break}a[H>>2]=0;wh=0}}while(0);vh=(oA+(UM<<4)|0)+8|0;mh=a[vh>>2]|0;Eh=(mh|0)==0;if(Eh){sA=0;break}bh=(wh|0)==0;if(!bh){a[vh>>2]=0;sA=0;break}_h=(oA+(UM<<4)|0)+12|0;kh=a[_h>>2]|0;Sh=(kh|0)==0;if(Sh){sA=0;break}a[_h>>2]=0;sA=0}}while(0);gh=(UM|0)<2;do{if(gh){yh=lR+(UM<<2)|0;a[yh>>2]=sA}else{Mh=(sA|0)==0;if(!Mh){break}a[ea>>2]=0;a[lR>>2]=0}}while(0);Fh=(e+27620|0)+(UM<<2)|0;Oh=a[Fh>>2]|0;Ah=h+(UM<<2)|0;a[Ah>>2]=Oh;Rh=UM+1|0;qF=(Rh|0)==(wu|0);if(qF){break}else{UM=Rh}}}td=e+184|0;nd=a[td>>2]|0;ad=(nd|0)==1;if(ad){od=a[lR>>2]|0;sd=(od|0)==0;ee=lR+4|0;ld=a[ee>>2]|0;fd=(ld|0)==0;wA=sd|fd;if(wA){a[ee>>2]=0;a[lR>>2]=0}}ud=a[Xf>>2]|0;hd=(ud|0)>0;do{if(hd){if((nd|0)==3){PM=0;while(1){dd=lR+(PM<<2)|0;a[dd>>2]=0;vd=PM+1|0;md=(vd|0)<(ud|0);if(md){PM=vd}else{break}}}else if((nd|0)==2){CM=0;while(1){Ed=lR+(CM<<2)|0;a[Ed>>2]=1;wd=CM+1|0;bd=(wd|0)<(ud|0);if(bd){CM=wd}else{break}}}else{break}}}while(0);pd=(_d|0)>0;if(pd){kd=e+85796|0;gd=tR+4|0;yd=e+84908|0;G=_M+4|0;Md=e+85804|0;BM=0;while(1){Fd=BM&1;Od=fR+(Fd<<12)|0;Ad=a[Yl>>2]|0;Rd=(Ad|0)==0;if(Rd){dv=0}else{Td=a[Md>>2]|0;dv=Td}Nd=(BM|0)<2;if(Nd){Lr(e,Od,BM,r)}else{Dd=(BM|0)==2;if(Dd){Ge=Fd+1|0;vO=1023;while(1){Ld=(fR+(Fd<<12)|0)+(vO<<2)|0;Cd=+f[Ld>>2];Bd=(fR+(Ge<<12)|0)+(vO<<2)|0;Id=+f[Bd>>2];Hd=Id+Cd;xd=Hd*0.70710676908493042;f[Ld>>2]=xd;Ud=Cd-Id;zd=Ud*0.70710676908493042;f[Bd>>2]=zd;qd=vO+-1|0;Vd=(vO|0)>0;if(Vd){vO=qd}else{break}}}}Wd=+f[Od>>2];Yd=Wd*Wd;f[$F>>2]=Yd;pO=511;while(1){Kd=512-pO|0;Gd=(fR+(Fd<<12)|0)+(Kd<<2)|0;Xd=+f[Gd>>2];Zd=pO+512|0;Jd=(fR+(Fd<<12)|0)+(Zd<<2)|0;Qd=+f[Jd>>2];$d=Xd*Xd;ev=Qd*Qd;iv=ev+$d;tv=iv*0.5;nv=$F+(Kd<<2)|0;f[nv>>2]=tv;av=pO+-1|0;ov=(pO|0)>0;if(ov){pO=av}else{SO=11;aR=0.0;break}}while(1){sv=$F+(SO<<2)|0;lv=+f[sv>>2];fv=lv+aR;uv=SO+1|0;GF=(uv|0)==513;if(GF){T=fv;break}else{SO=uv;aR=fv}}cv=(e+27620|0)+(BM<<2)|0;f[cv>>2]=T;vv=(dv|0)==(0|0);if(!vv){MO=0;while(1){mv=((dv+90936|0)+(BM<<13)|0)+(MO<<3)|0;Ev=+u[mv>>3];wv=(((dv+123704|0)+(i<<15)|0)+(BM<<13)|0)+(MO<<3)|0;u[wv>>3]=Ev;bv=$F+(MO<<2)|0;_v=+f[bv>>2];pv=_v;u[mv>>3]=pv;kv=MO+1|0;gF=(kv|0)==513;if(gF){break}else{MO=kv}}}if(Nd){Sv=(e+27612|0)+(BM<<2)|0;yv=a[Sv>>2]|0;Mv=((e+27804|0)+(i<<3)|0)+(BM<<2)|0;a[Mv>>2]=yv;Fv=a[kd>>2]|0;rO=0;HO=0.0;while(1){Ov=$F+(rO<<2)|0;Av=+f[Ov>>2];Rv=(Fv+724|0)+(rO<<2)|0;Tv=+f[Rv>>2];Nv=Tv*Av;Dv=Nv+HO;Pv=rO+1|0;wF=(Pv|0)==512;if(wF){N=Dv;break}else{rO=Pv;HO=Dv}}Cv=N;Bv=Cv*8.9748713435966334E-12;Iv=Bv;f[Sv>>2]=Iv}Hv=a[Xe>>2]|0;xv=Hv+2148|0;Uv=a[xv>>2]|0;zv=(Uv|0)>0;if(zv){OM=0;dO=0;while(1){qv=(Hv+1716|0)+(OM<<2)|0;Vv=a[qv>>2]|0;jv=(Vv|0)>0;if(jv){rF=0.0;aO=0;wO=dO;jO=0.0;while(1){Yv=$F+(wO<<2)|0;Kv=+f[Yv>>2];Gv=Kv+rF;Xv=jO1;ZA=Qv?Vv:1;$v=ZA+dO|0;eF=D;EO=$v;qO=KO}else{eF=0.0;EO=dO;qO=0.0}em=(QM+(BM<<8)|0)+(OM<<2)|0;f[em>>2]=eF;rm=tR+(OM<<2)|0;f[rm>>2]=qO;nm=(Hv+512|0)+(OM<<2)|0;am=+f[nm>>2];om=am*eF;sm=_M+(OM<<2)|0;f[sm>>2]=om;lm=OM+1|0;HF=(lm|0)==(Uv|0);if(HF){break}else{OM=lm;dO=EO}}U=+f[_M>>2];Y=+f[G>>2];um=Y;cm=U}else{um=0.0;cm=0.0}fm=cm+um;hm=fm>0.0;if(hm){dm=+f[tR>>2];mm=+f[gd>>2];Em=dm>2]|0;Sm=Hv+1720|0;gm=a[Sm>>2]|0;ym=km+-1|0;Fm=ym+gm|0;Om=+(Fm|0);Am=Om*fm;Rm=_m/Am;Tm=~~Rm;Nm=(Tm|0)>8;Dm=Tm&255;Pm=Nm?8:Dm;QA=Pm}else{QA=0}t[rA>>0]=QA;Lm=Uv+-1|0;Cm=(Lm|0)>1;Im=+f[G>>2];Hm=Im+cm;if(Cm){xm=(Lm|0)>2;jm=Hm;Gm=0;FE=Im;yM=1;while(1){Um=yM+1|0;zm=_M+(Um<<2)|0;qm=+f[zm>>2];Vm=qm+jm;Wm=Vm>0.0;if(Wm){Ym=tR+(Gm<<2)|0;Zm=+f[Ym>>2];Jm=tR+(yM<<2)|0;Qm=+f[Jm>>2];$m=Zm>2];iE=ZO>2]|0;fE=(Hv+1716|0)+(yM<<2)|0;uE=a[fE>>2]|0;cE=(Hv+1716|0)+(Um<<2)|0;hE=a[cE>>2]|0;dE=lE+-1|0;vE=dE+uE|0;mE=vE+hE|0;wE=+(mE|0);bE=wE*Vm;_E=oE/bE;pE=~~_E;kE=(pE|0)>8;SE=pE&255;gE=kE?8:SE;re=gE}else{re=0}yE=rA+yM|0;t[yE>>0]=re;ME=qm+FE;LF=(Um|0)==(Lm|0);if(LF){P=ME;break}else{Xm=yM;jm=ME;FE=qm;yM=Um;Gm=Xm}}XA=xm?Lm:2;AE=XA+-1|0;g=AE;M=P;pM=XA}else{g=0;M=Hm;pM=1}RE=M>0.0;if(RE){TE=tR+(g<<2)|0;NE=+f[TE>>2];DE=tR+(pM<<2)|0;PE=+f[DE>>2];LE=NE>2]|0;zE=(Hv+1716|0)+(pM<<2)|0;qE=a[zE>>2]|0;VE=UE+-1|0;jE=VE+qE|0;WE=+(jE|0);YE=WE*M;KE=IE/YE;GE=~~KE;ZE=(GE|0)>8;JE=GE&255;QE=ZE?8:JE;te=QE}else{te=0}$E=rA+pM|0;t[$E>>0]=te;if(zv){ew=Hv+2156|0;rw=(e+27796|0)+(Fd<<2)|0;gM=0;AO=0;while(1){aw=Hv+(gM<<2)|0;lw=+f[aw>>2];fw=+f[yd>>2];uw=fw*lw;cw=(Hv+1204|0)+(gM<<3)|0;hw=a[cw>>2]|0;dw=((Hv+1204|0)+(gM<<3)|0)+4|0;vw=a[dw>>2]|0;mw=rA+gM|0;Ew=t[mw>>0]|0;ww=Ew&255;_w=11448+(ww<<2)|0;pw=a[_w>>2]|0;kw=rA+hw|0;Sw=t[kw>>0]|0;gw=Sw&255;yw=a[ew>>2]|0;Mw=yw+(AO<<2)|0;Fw=+f[Mw>>2];Ow=(QM+(BM<<8)|0)+(hw<<2)|0;Aw=+f[Ow>>2];Tw=Aw*Fw;Nw=11488+(gw<<2)|0;Dw=+f[Nw>>2];Pw=Tw*Dw;DO=AO+1|0;Lw=(hw|0)<(vw|0);if(Lw){zw=yw;GM=gw;uF=Pw;NO=DO;BO=hw;while(1){CO=BO+1|0;Cw=rA+CO|0;Bw=t[Cw>>0]|0;Iw=Bw&255;Hw=Iw+GM|0;xw=zw+(NO<<2)|0;qw=+f[xw>>2];Vw=(QM+(BM<<8)|0)+(CO<<2)|0;jw=+f[Vw>>2];Ww=jw*qw;Yw=11488+(Iw<<2)|0;Kw=+f[Yw>>2];Gw=Ww*Kw;Xw=CO-gM|0;Zw=uF<0.0;E=Zw?0.0:uF;Qw=Gw<0.0;b=Qw?0.0:Gw;$w=!(E<=0.0);do{if($w){eb=!(b<=0.0);if(!eb){tF=E;break}rb=b>E;ib=b/E;tb=E/b;BA=rb?ib:tb;fO=(Xw|0)>-1;tA=0-Xw|0;nb=fO?Xw:tA;ab=(nb|0)>(pw|0);if(ab){bb=+f[11576>>2];pb=BA>2];sb=!(BA>=ob);if(sb){ub=+Yt(BA);cb=ub;hb=cb*4.8164799306236983;db=~~hb;vb=b+E;mb=11536+(db<<2)|0;Eb=+f[mb>>2];wb=Eb*vb;tF=wb;break}else{fb=b+E;tF=fb;break}}}else{tF=b}}while(0);BF=(CO|0)==(vw|0);if(BF){L=Hw;nF=tF;break}RO=NO+1|0;K=a[ew>>2]|0;zw=K;GM=Hw;uF=tF;NO=RO;BO=CO}Sb=DO-hw|0;gb=Sb+vw|0;yb=1-hw|0;Mb=yb+vw|0;YM=L;ZM=Mb;sF=nF;TO=gb}else{YM=gw;ZM=1;sF=Pw;TO=DO}Fb=YM<<1;Ob=Fb|1;Ab=ZM<<1;Rb=(Ob|0)/(Ab|0)&-1;Nb=11488+(Rb<<2)|0;Db=+f[Nb>>2];Pb=Db*0.5;Lb=Pb*sF;Cb=a[rw>>2]|0;Bb=(Cb|0)==2;do{if(Bb){Ib=((e+21564|0)+(BM<<8)|0)+(gM<<2)|0;Hb=+f[Ib>>2];xb=Hb*2.0;Ub=xb>0.0;if(Ub){qb=Lb>2]=Vb;q=Ib;j=jb;F_=Vb;break}else{Wb=Lb;Yb=(QM+(BM<<8)|0)+(gM<<2)|0;Kb=+f[Yb>>2];Gb=Kb;Xb=Gb*0.29999999999999999;Zb=Wb>2]=Jb;q=Ib;j=$b;F_=Jb;break}}else{e_=((e+22588|0)+(BM<<8)|0)+(gM<<2)|0;r_=+f[e_>>2];i_=r_*16.0;t_=((e+21564|0)+(BM<<8)|0)+(gM<<2)|0;n_=+f[t_>>2];a_=n_*2.0;o_=!(i_<=0.0);dF=o_?i_:Lb;s_=!(a_<=0.0);hF=s_?a_:Lb;l_=(Cb|0)==0;c_=hF>2]=v_;q=t_;j=m_;F_=v_}}while(0);E_=a[q>>2]|0;w_=((e+22588|0)+(BM<<8)|0)+(gM<<2)|0;a[w_>>2]=E_;f[q>>2]=Lb;b_=tR+(gM<<2)|0;__=+f[b_>>2];p_=(Hv+256|0)+(gM<<2)|0;S_=+f[p_>>2];g_=__*Pb;y_=g_*S_;M_=F_>y_;if(M_){f[j>>2]=y_;R_=y_}else{R_=F_}O_=uw>1.0;if(O_){A_=R_*uw;f[j>>2]=A_;L_=A_}else{L_=R_}T_=(QM+(BM<<8)|0)+(gM<<2)|0;N_=+f[T_>>2];P_=L_>N_;if(P_){f[j>>2]=N_;I_=N_}else{I_=L_}C_=uw<1.0;if(C_){B_=I_*uw;f[j>>2]=B_}H_=gM+1|0;x_=a[xv>>2]|0;U_=(H_|0)<(x_|0);if(U_){gM=H_;AO=TO}else{C=H_;break}}iw=(C|0)<64;if(iw){RM=C;gR=114}}else{RM=0;gR=114}if((gR|0)==114){gR=0;KA=(QM+(BM<<8)|0)+(RM<<2)|0;tw=RM<<2;nw=256-tw|0;pn(KA|0,0,nw|0)|0;GA=(nR+(BM<<8)|0)+(RM<<2)|0;pn(GA|0,0,nw|0)|0}z_=BM+1|0;CF=(z_|0)==(_d|0);if(CF){break}else{BM=z_}}}q_=a[dl>>2]|0;j_=(q_|0)==1;if(j_){W_=a[lR>>2]|0;Y_=lR+4|0;K_=a[Y_>>2]|0;G_=K_+W_|0;X_=(G_|0)==2;if(X_){Z_=Ze+768|0;J_=e+85796|0;Q_=a[J_>>2]|0;$_=Q_+212|0;rp=+f[f_>>2];ip=Ze+2148|0;tp=a[ip>>2]|0;ai(QM,nR,Z_,$_,np,rp,tp)}}if(pd){xM=0;while(1){ap=QM+(xM<<8)|0;op=nR+(xM<<8)|0;sp=a[Xe>>2]|0;lp=(e+26636|0)+(xM*244|0)|0;fp=(e+25660|0)+(xM*244|0)|0;oi(sp,ap,op,lp,fp);up=a[Xe>>2]|0;hp=up+4320|0;oi(hp,ap,op,rA,tR);UA=0;while(1){dp=rA+(UA<<2)|0;vp=a[dp>>2]|0;mp=tR+(UA<<2)|0;Ep=+f[mp>>2];wp=Ep*0.015625;bp=(((e+26636|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0;a[bp>>2]=vp;_p=(((e+25660|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0;f[_p>>2]=wp;pp=((((e+26636|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0)+4|0;a[pp>>2]=vp;kp=((((e+25660|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0)+4|0;f[kp>>2]=wp;gp=((((e+26636|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0)+8|0;a[gp>>2]=vp;yp=((((e+25660|0)+(xM*244|0)|0)+88|0)+(UA*12|0)|0)+8|0;f[yp>>2]=wp;Mp=UA+1|0;_F=(Mp|0)==13;if(_F){break}else{UA=Mp}}Fp=xM+1|0;PF=(Fp|0)==(_d|0);if(PF){break}else{xM=Fp}}}Op=a[Xe>>2]|0;Ap=Op+6500|0;Rp=a[Ap>>2]|0;Tp=a[lR>>2]|0;Np=lR+4|0;Dp=a[Np>>2]|0;Lp=0-Dp|0;Cp=Ze+2928|0;Bp=e+85796|0;Ip=Ze+4308|0;Hp=(Rp|0)!=0;xp=rA+4|0;Up=tR+4|0;zp=rA+8|0;qp=tR+8|0;Vp=rA+12|0;Wp=tR+12|0;Yp=rA+16|0;Kp=tR+16|0;Gp=rA+20|0;Xp=tR+20|0;Zp=rA+24|0;Jp=tR+24|0;Qp=rA+28|0;$p=tR+28|0;ek=rA+32|0;ik=tR+32|0;tk=rA+36|0;nk=tR+36|0;ak=rA+40|0;ok=tR+40|0;sk=rA+44|0;lk=tR+44|0;fk=rA+48|0;uk=tR+48|0;ck=tR+4|0;vk=e+84908|0;J=_M+4|0;I=(Tp|0)!=(Lp|0);qA=0;while(1){if(pd){mk=(qA|0)==0;Ek=eO+(qA*516|0)|0;zM=0;while(1){wk=zM&1;bk=lR+(wk<<2)|0;_k=a[bk>>2]|0;pk=(_k|0)==0;lA=Hp|pk;if(lA){Tk=(zM|0)<2;hA=mk&Tk;if(hA){Nk=uR+(wk*3072|0)|0;Pr(e,Nk,zM,r)}Dk=(zM|0)==2;if(Dk){ae=wk+1|0;cO=255;while(1){Pk=((uR+(wk*3072|0)|0)+(qA<<10)|0)+(cO<<2)|0;Lk=+f[Pk>>2];Bk=((uR+(ae*3072|0)|0)+(qA<<10)|0)+(cO<<2)|0;Ik=+f[Bk>>2];Hk=Ik+Lk;xk=Hk*0.70710676908493042;f[Pk>>2]=xk;Uk=Lk-Ik;zk=Uk*0.70710676908493042;f[Bk>>2]=zk;qk=cO+-1|0;Vk=(cO|0)>0;if(Vk){cO=qk}else{break}}}jk=(uR+(wk*3072|0)|0)+(qA<<10)|0;Wk=+f[jk>>2];Kk=Wk*Wk;f[Ek>>2]=Kk;bO=127;while(1){Gk=128-bO|0;Xk=((uR+(wk*3072|0)|0)+(qA<<10)|0)+(Gk<<2)|0;Zk=+f[Xk>>2];Jk=bO+128|0;Qk=((uR+(wk*3072|0)|0)+(qA<<10)|0)+(Jk<<2)|0;$k=+f[Qk>>2];eS=Zk*Zk;rS=$k*$k;iS=rS+eS;nS=iS*0.5;aS=(eO+(qA*516|0)|0)+(Gk<<2)|0;f[aS>>2]=nS;oS=bO+-1|0;sS=(bO|0)>0;if(sS){bO=oS}else{break}}lS=a[Xe>>2]|0;pn(tR|0,0,256)|0;pn(_M|0,0,256)|0;fS=lS+4308|0;uS=a[fS>>2]|0;cS=(uS|0)>0;if(cS){FM=0;hO=0;while(1){hS=(lS+3876|0)+(FM<<2)|0;dS=a[hS>>2]|0;mS=(dS|0)>0;if(mS){iF=0.0;iO=0;_O=hO;VO=0.0;while(1){ES=(eO+(qA*516|0)|0)+(_O<<2)|0;wS=+f[ES>>2];bS=wS+iF;_S=VO>2]=$M;yS=tR+(FM<<2)|0;f[yS>>2]=zO;FS=(lS+2672|0)+(FM<<2)|0;OS=+f[FS>>2];AS=OS*$M;RS=_M+(FM<<2)|0;f[RS>>2]=AS;TS=FM+1|0;AF=(TS|0)==(uS|0);if(AF){break}else{FM=TS;hO=mO}}z=+f[_M>>2];X=+f[J>>2];DS=X;PS=z}else{DS=0.0;PS=0.0}NS=PS+DS;LS=NS>0.0;if(LS){CS=+f[tR>>2];IS=+f[ck>>2];HS=CS>2]|0;jS=lS+3880|0;WS=a[jS>>2]|0;YS=VS+-1|0;GS=YS+WS|0;XS=+(GS|0);ZS=XS*NS;JS=zS/ZS;QS=~~JS;$S=(QS|0)>8;eg=QS&255;rg=$S?8:eg;$A=rg}else{$A=0}t[rA>>0]=$A;ig=uS+-1|0;tg=(ig|0)>1;ag=DS+PS;if(tg){og=(ig|0)>2;cg=ag;vg=0;Gg=DS;MM=1;while(1){sg=MM+1|0;lg=_M+(sg<<2)|0;fg=+f[lg>>2];ug=fg+cg;hg=ug>0.0;if(hg){dg=tR+(vg<<2)|0;bg=+f[dg>>2];_g=tR+(MM<<2)|0;pg=+f[_g>>2];kg=bg>2];yg=GO>2]|0;Ng=(lS+3876|0)+(MM<<2)|0;Dg=a[Ng>>2]|0;Pg=(lS+3876|0)+(sg<<2)|0;Lg=a[Pg>>2]|0;Cg=Tg+-1|0;Bg=Cg+Dg|0;Ig=Bg+Lg|0;Hg=+(Ig|0);Ug=Hg*ug;zg=Og/Ug;qg=~~zg;Vg=(qg|0)>8;jg=qg&255;Wg=Vg?8:jg;ie=Wg}else{ie=0}Yg=rA+MM|0;t[Yg>>0]=ie;Kg=fg+Gg;RF=(sg|0)==(ig|0);if(RF){O=Kg;break}else{mg=MM;cg=Kg;Gg=fg;MM=sg;vg=mg}}JA=og?ig:2;Xg=JA+-1|0;y=Xg;F=O;kM=JA}else{y=0;F=ag;kM=1}Jg=F>0.0;if(Jg){Qg=tR+(y<<2)|0;$g=+f[Qg>>2];ey=tR+(kM<<2)|0;ry=+f[ey>>2];iy=$g>2]|0;fy=(lS+3876|0)+(kM<<2)|0;uy=a[fy>>2]|0;cy=ly+-1|0;hy=cy+uy|0;dy=+(hy|0);vy=dy*F;my=ay/vy;Ey=~~my;wy=(Ey|0)>8;_y=Ey&255;py=wy?8:_y;ne=py}else{ne=0}ky=rA+kM|0;t[ky>>0]=ne;if(cS){Sy=lS+4316|0;AM=0;kO=0;while(1){Fy=(lS+3364|0)+(AM<<3)|0;Oy=a[Fy>>2]|0;Ay=((lS+3364|0)+(AM<<3)|0)+4|0;Ty=a[Ay>>2]|0;Ny=rA+AM|0;Dy=t[Ny>>0]|0;Py=Dy&255;Ly=11448+(Py<<2)|0;Cy=a[Ly>>2]|0;By=(lS+2160|0)+(AM<<2)|0;Iy=+f[By>>2];Hy=+f[vk>>2];xy=Hy*Iy;zy=rA+Oy|0;qy=t[zy>>0]|0;Vy=qy&255;jy=a[Sy>>2]|0;Wy=jy+(kO<<2)|0;Yy=+f[Wy>>2];Ky=(QM+(zM<<8)|0)+(Oy<<2)|0;Gy=+f[Ky>>2];Xy=Gy*Yy;Zy=11488+(Vy<<2)|0;Qy=+f[Zy>>2];$y=Xy*Qy;FO=kO+1|0;eM=(Oy|0)<(Ty|0);if(eM){oM=jy;XM=Vy;fF=$y;OO=FO;LO=Oy;while(1){PO=LO+1|0;rM=rA+PO|0;iM=t[rM>>0]|0;tM=iM&255;nM=tM+XM|0;aM=oM+(OO<<2)|0;sM=+f[aM>>2];fM=(QM+(zM<<8)|0)+(PO<<2)|0;uM=+f[fM>>2];cM=uM*sM;hM=11488+(tM<<2)|0;dM=+f[hM>>2];vM=cM*dM;mM=PO-AM|0;EM=fF<0.0;w=EM?0.0:fF;wM=vM<0.0;_=wM?0.0:vM;bM=!(w<=0.0);do{if(bM){$e=!(_<=0.0);if(!$e){aF=w;break}er=_>w;rr=_/w;ir=w/_;IA=er?rr:ir;uO=(mM|0)>-1;nA=0-mM|0;tr=uO?mM:nA;nr=(tr|0)>(Cy|0);if(nr){wr=+f[11576>>2];br=IA>2];or=!(IA>=ar);if(or){lr=+Yt(IA);ur=lr;cr=ur*4.8164799306236983;hr=~~cr;dr=_+w;vr=11536+(hr<<2)|0;mr=+f[vr>>2];Er=mr*dr;aF=Er;break}else{sr=_+w;aF=sr;break}}}else{aF=_}}while(0);zF=(PO|0)==(Ty|0);if(zF){A=nM;oF=aF;break}gO=OO+1|0;Z=a[Sy>>2]|0;oM=Z;XM=nM;fF=aF;OO=gO;LO=PO}kr=FO-Oy|0;Sr=kr+Ty|0;gr=1-Oy|0;yr=gr+Ty|0;KM=A;JM=yr;lF=oF;yO=Sr}else{KM=Vy;JM=1;lF=$y;yO=FO}Mr=KM<<1;Fr=Mr|1;Or=JM<<1;Ar=(Fr|0)/(Or|0)&-1;Rr=11488+(Ar<<2)|0;Tr=+f[Rr>>2];Dr=Tr*0.5;Cr=Dr*lF;Br=(nR+(zM<<8)|0)+(AM<<2)|0;f[Br>>2]=Cr;Ir=((e+23612|0)+(zM<<8)|0)+(AM<<2)|0;Hr=a[Ir>>2]|0;xr=((e+24636|0)+(zM<<8)|0)+(AM<<2)|0;a[xr>>2]=Hr;f[Ir>>2]=Cr;Ur=tR+(AM<<2)|0;zr=+f[Ur>>2];qr=(lS+2416|0)+(AM<<2)|0;Vr=+f[qr>>2];Wr=zr*Dr;Yr=Wr*Vr;Kr=Cr>Yr;if(Kr){f[Br>>2]=Yr;Zr=Yr}else{Zr=Cr}Gr=xy>1.0;if(Gr){Xr=Zr*xy;f[Br>>2]=Xr;ei=Xr}else{ei=Zr}Jr=(QM+(zM<<8)|0)+(AM<<2)|0;Qr=+f[Jr>>2];$r=ei>Qr;if($r){f[Br>>2]=Qr;ni=Qr}else{ni=ei}ii=xy<1.0;if(ii){ti=ni*xy;f[Br>>2]=ti}si=AM+1|0;li=a[fS>>2]|0;fi=(si|0)<(li|0);if(fi){AM=si;kO=yO}else{R=si;break}}gy=(R|0)<64;if(gy){TM=R;gR=185}}else{TM=0;gR=185}if((gR|0)==185){gR=0;WA=(QM+(zM<<8)|0)+(TM<<2)|0;yy=TM<<2;My=256-yy|0;pn(WA|0,0,My|0)|0;YA=(nR+(zM<<8)|0)+(TM<<2)|0;pn(YA|0,0,My|0)|0}}else{if(mk){kk=a[Xe>>2]|0;Sk=kk+4308|0;gk=a[Sk>>2]|0;Mk=(gk|0)>0;if(Mk){SM=0;while(1){Fk=((e+23612|0)+(zM<<8)|0)+(SM<<2)|0;Ok=a[Fk>>2]|0;Ak=((e+24636|0)+(zM<<8)|0)+(SM<<2)|0;a[Ak>>2]=Ok;Rk=SM+1|0;pF=(Rk|0)==(gk|0);if(pF){break}else{SM=Rk}}}}}ui=zM+1|0;TF=(ui|0)==(_d|0);if(TF){break}else{zM=ui}}}ci=a[dl>>2]|0;B=(ci|0)!=1;DM=B|I;if(!DM){hi=a[Bp>>2]|0;di=hi+468|0;mi=+f[f_>>2];Ei=a[Ip>>2]|0;ai(QM,nR,Cp,di,np,mi,Ei)}if(pd){qM=0;while(1){wi=qM&1;bi=lR+(wi<<2)|0;_i=a[bi>>2]|0;pi=(_i|0)==0;dA=Hp|pi;if(dA){ki=QM+(qM<<8)|0;Si=nR+(qM<<8)|0;gi=a[Xe>>2]|0;yi=gi+2160|0;oi(yi,ki,Si,rA,tR);Fi=a[rA>>2]|0;Oi=(((e+26636|0)+(qM*244|0)|0)+88|0)+(qA<<2)|0;a[Oi>>2]=Fi;Ai=a[tR>>2]|0;Ri=(((e+25660|0)+(qM*244|0)|0)+88|0)+(qA<<2)|0;a[Ri>>2]=Ai;Ti=a[xp>>2]|0;Ni=(((e+26636|0)+(qM*244|0)|0)+100|0)+(qA<<2)|0;a[Ni>>2]=Ti;Di=a[Up>>2]|0;Pi=(((e+25660|0)+(qM*244|0)|0)+100|0)+(qA<<2)|0;a[Pi>>2]=Di;Li=a[zp>>2]|0;Ci=(((e+26636|0)+(qM*244|0)|0)+112|0)+(qA<<2)|0;a[Ci>>2]=Li;Ii=a[qp>>2]|0;Hi=(((e+25660|0)+(qM*244|0)|0)+112|0)+(qA<<2)|0;a[Hi>>2]=Ii;xi=a[Vp>>2]|0;Ui=(((e+26636|0)+(qM*244|0)|0)+124|0)+(qA<<2)|0;a[Ui>>2]=xi;zi=a[Wp>>2]|0;qi=(((e+25660|0)+(qM*244|0)|0)+124|0)+(qA<<2)|0;a[qi>>2]=zi;Vi=a[Yp>>2]|0;ji=(((e+26636|0)+(qM*244|0)|0)+136|0)+(qA<<2)|0;a[ji>>2]=Vi;Wi=a[Kp>>2]|0;Yi=(((e+25660|0)+(qM*244|0)|0)+136|0)+(qA<<2)|0;a[Yi>>2]=Wi;Gi=a[Gp>>2]|0;Xi=(((e+26636|0)+(qM*244|0)|0)+148|0)+(qA<<2)|0;a[Xi>>2]=Gi;Zi=a[Xp>>2]|0;Ji=(((e+25660|0)+(qM*244|0)|0)+148|0)+(qA<<2)|0;a[Ji>>2]=Zi;Qi=a[Zp>>2]|0;$i=(((e+26636|0)+(qM*244|0)|0)+160|0)+(qA<<2)|0;a[$i>>2]=Qi;et=a[Jp>>2]|0;rt=(((e+25660|0)+(qM*244|0)|0)+160|0)+(qA<<2)|0;a[rt>>2]=et;it=a[Qp>>2]|0;tt=(((e+26636|0)+(qM*244|0)|0)+172|0)+(qA<<2)|0;a[tt>>2]=it;ot=a[$p>>2]|0;st=(((e+25660|0)+(qM*244|0)|0)+172|0)+(qA<<2)|0;a[st>>2]=ot;lt=a[ek>>2]|0;ft=(((e+26636|0)+(qM*244|0)|0)+184|0)+(qA<<2)|0;a[ft>>2]=lt;ut=a[ik>>2]|0;ct=(((e+25660|0)+(qM*244|0)|0)+184|0)+(qA<<2)|0;a[ct>>2]=ut;ht=a[tk>>2]|0;dt=(((e+26636|0)+(qM*244|0)|0)+196|0)+(qA<<2)|0;a[dt>>2]=ht;vt=a[nk>>2]|0;mt=(((e+25660|0)+(qM*244|0)|0)+196|0)+(qA<<2)|0;a[mt>>2]=vt;wt=a[ak>>2]|0;bt=(((e+26636|0)+(qM*244|0)|0)+208|0)+(qA<<2)|0;a[bt>>2]=wt;_t=a[ok>>2]|0;pt=(((e+25660|0)+(qM*244|0)|0)+208|0)+(qA<<2)|0;a[pt>>2]=_t;kt=a[sk>>2]|0;St=(((e+26636|0)+(qM*244|0)|0)+220|0)+(qA<<2)|0;a[St>>2]=kt;gt=a[lk>>2]|0;yt=(((e+25660|0)+(qM*244|0)|0)+220|0)+(qA<<2)|0;a[yt>>2]=gt;Mt=a[fk>>2]|0;Ft=(((e+26636|0)+(qM*244|0)|0)+232|0)+(qA<<2)|0;a[Ft>>2]=Mt;At=a[uk>>2]|0;Rt=(((e+25660|0)+(qM*244|0)|0)+232|0)+(qA<<2)|0;a[Rt>>2]=At}Tt=qM+1|0;NF=(Tt|0)==(_d|0);if(NF){break}else{qM=Tt}}}Nt=qA+1|0;DF=(Nt|0)==3;if(DF){break}else{qA=Nt}}if(pd){VM=0;while(1){Dt=(e+27780|0)+(VM<<2)|0;xA=0;while(1){jA=(((e+25660|0)+(VM*244|0)|0)+88|0)+(xA*12|0)|0;Pt=(((IO+(VM*244|0)|0)+88|0)+(xA*12|0)|0)+8|0;Lt=(((IO+(VM*244|0)|0)+88|0)+(xA*12|0)|0)+4|0;VA=0;while(1){Bt=((((e+25660|0)+(VM*244|0)|0)+88|0)+(xA*12|0)|0)+(VA<<2)|0;It=+f[Bt>>2];xt=It;Ut=xt*0.80000000000000004;zt=Ut;qt=(VA|0)>0;Vt=VA+-1|0;jt=aA+(Vt<<2)|0;LA=qt?jt:Pt;PA=+f[LA>>2];Wt=(oA+(VM<<4)|0)+(VA<<2)|0;Kt=a[Wt>>2]|0;Gt=(Kt|0)>1;if(Gt){gR=223}else{Xt=VA+1|0;Jt=(oA+(VM<<4)|0)+(Xt<<2)|0;Qt=a[Jt>>2]|0;$t=(Qt|0)==1;if($t){gR=223}else{rR=zt}}if((gR|0)==223){gR=0;en=zt>0.0;if(en){rn=PA/zt;tn=+W(+rn,0.36000001430511475);nn=tn*zt;rR=nn}else{rR=0.0}}an=rR0.0;if(fn){un=PA/on;cn=+W(+un,0.18000000715255737);hn=cn*on;iR=hn}else{iR=0.0}}else{dn=(VA|0)==0;if(dn){vn=a[Dt>>2]|0;mn=(vn|0)==3;if(mn){gR=233}else{gR=230}}else{gR=230}do{if((gR|0)==230){gR=0;if(!qt){iR=zt;break e}En=(oA+(VM<<4)|0)+(Vt<<2)|0;wn=a[En>>2]|0;bn=(wn|0)==3;if(!bn){iR=zt;break e}if((VA|0)==0){gR=233;break}else if((VA|0)==1){Sn=+f[Pt>>2];CA=Sn;break}else if((VA|0)==2){gn=+f[aA>>2];CA=gn;break}else{CA=PA;break}}}while(0);if((gR|0)==233){gR=0;kn=+f[Lt>>2];CA=kn}Mn=on>0.0;if(!Mn){iR=0.0;break}Fn=CA/on;On=+W(+Fn,0.18000000715255737);An=On*on;iR=An}}while(0);Rn=iR>2];Ln=Tn*Pn;Cn=aA+(VA<<2)|0;f[Cn>>2]=Ln;Bn=VA+1|0;MF=(Bn|0)==3;if(MF){break}else{VA=Bn}}a[jA>>2]=a[aA>>2]|0;a[jA+4>>2]=a[aA+4>>2]|0;a[jA+8>>2]=a[aA+8>>2]|0;Ct=xA+1|0;FF=(Ct|0)==13;if(FF){break}else{xA=Ct}}In=VM+1|0;OF=(In|0)==(_d|0);if(OF){break}else{VM=In}}if(pd){jM=0;while(1){Hn=(oA+(jM<<4)|0)+8|0;xn=a[Hn>>2]|0;Un=(e+27780|0)+(jM<<2)|0;a[Un>>2]=xn;zn=jM+1|0;yF=(zn|0)==(_d|0);if(yF){break}else{jM=zn}}}}qn=a[Xf>>2]|0;jn=(qn|0)>0;if(jn){LM=0;while(1){Wn=lR+(LM<<2)|0;Yn=a[Wn>>2]|0;Kn=(Yn|0)==0;Gn=(e+27796|0)+(LM<<2)|0;Xn=a[Gn>>2]|0;do{if(Kn){if((Xn|0)==0){a[Gn>>2]=1;Qn=1;NM=2;break}else if((Xn|0)==3){a[Gn>>2]=2;Qn=2;NM=2;break}else{Qn=Xn;NM=2;break}}else{Zn=(Xn|0)==2;m=Zn?3:0;Qn=Xn;NM=m}}while(0);Jn=d+(LM<<2)|0;a[Jn>>2]=Qn;a[Gn>>2]=NM;$n=LM+1|0;kF=($n|0)==(qn|0);if(kF){break}else{LM=$n}}}if(!pd){c=yR;return 0}ra=l+-8|0;ia=d+4|0;na=(ta|0)==(0|0);WM=0;while(1){aa=(WM|0)>1;if(aa){oa=a[d>>2]|0;sa=(oa|0)==2;if(sa){gR=253}else{la=a[ia>>2]|0;fa=(la|0)==2;if(fa){gR=253}else{oR=0}}if((gR|0)==253){gR=0;oR=2}ua=WM+-2|0;da=(o+(i*976|0)|0)+(ua*488|0)|0;iA=da;DA=ra;sR=oR}else{va=d+(WM<<2)|0;ma=a[va>>2]|0;Ea=(n+(i*976|0)|0)+(WM*488|0)|0;iA=Ea;DA=s;sR=ma}wa=(sR|0)==2;ba=+f[vk>>2];if(wa){MA=309.07000732421875;zA=0;while(1){_a=11584+(zA<<2)|0;pa=(iA+88|0)+(zA*12|0)|0;ka=+f[pa>>2];Sa=ka>0.0;do{if(Sa){ya=ka*ba;Ma=(iA+332|0)+(zA*12|0)|0;Fa=+f[Ma>>2];Oa=Fa>ya;if(!Oa){RA=MA;break}Aa=ya*1.0E+10;Ra=Fa>Aa;Ta=+f[_a>>2];Na=Ta;if(Ra){Da=Na*23.025850929940461;Pa=MA;Ca=Da+Pa;Ba=Ca;RA=Ba;break}else{Ia=Fa/ya;Ha=+Yt(Ia);xa=Ha;Ua=Na*0.30102999566398114;za=Ua*xa;qa=MA;Va=za+qa;ja=Va;RA=ja;break}}else{RA=MA}}while(0);Ya=((iA+88|0)+(zA*12|0)|0)+4|0;Ka=+f[Ya>>2];Ga=Ka>0.0;do{if(Ga){Xa=Ka*ba;Za=((iA+332|0)+(zA*12|0)|0)+4|0;Ja=+f[Za>>2];Qa=Ja>Xa;if(!Qa){FA=RA;break}$a=Xa*1.0E+10;eo=Ja>$a;ro=+f[_a>>2];to=ro;if(eo){ho=to*23.025850929940461;mo=RA;Eo=ho+mo;wo=Eo;FA=wo;break}else{no=Ja/Xa;ao=+Yt(no);oo=ao;so=to*0.30102999566398114;lo=so*oo;fo=RA;uo=lo+fo;co=uo;FA=co;break}}else{FA=RA}}while(0);bo=((iA+88|0)+(zA*12|0)|0)+8|0;_o=+f[bo>>2];po=_o>0.0;do{if(po){ko=_o*ba;So=((iA+332|0)+(zA*12|0)|0)+8|0;go=+f[So>>2];yo=go>ko;if(!yo){OA=FA;break}Fo=ko*1.0E+10;Oo=go>Fo;Ao=+f[_a>>2];Ro=Ao;if(Oo){xo=Ro*23.025850929940461;Uo=FA;zo=xo+Uo;qo=zo;OA=qo;break}else{To=go/ko;No=+Yt(To);Do=No;Po=Ro*0.30102999566398114;Lo=Po*Do;Co=FA;Io=Lo+Co;Ho=Io;OA=Ho;break}}else{OA=FA}}while(0);Vo=zA+1|0;bF=(Vo|0)==12;if(bF){AA=OA;break}else{MA=OA;zA=Vo}}jo=DA+(WM<<2)|0;f[jo>>2]=AA;Ss=AA}else{SA=281.0574951171875;HA=0;while(1){Wo=iA+(HA<<2)|0;Yo=+f[Wo>>2];Go=Yo>0.0;do{if(Go){Xo=Yo*ba;Zo=(iA+244|0)+(HA<<2)|0;Jo=+f[Zo>>2];Qo=Jo>Xo;if(!Qo){gA=SA;break}$o=Xo*1.0E+10;es=Jo>$o;rs=11632+(HA<<2)|0;is=+f[rs>>2];ts=is;if(es){as=ts*23.025850929940461;os=SA;ss=as+os;ls=ss;gA=ls;break}else{fs=Jo/Xo;us=+Yt(fs);cs=us;hs=ts*0.30102999566398114;ds=hs*cs;vs=SA;ws=ds+vs;bs=ws;gA=bs;break}}else{gA=SA}}while(0);_s=HA+1|0;SF=(_s|0)==21;if(SF){yA=gA;break}else{SA=gA;HA=_s}}ps=DA+(WM<<2)|0;f[ps>>2]=yA;Ss=yA}if(!na){ks=Ss;gs=((ta+189240|0)+(i<<5)|0)+(WM<<3)|0;u[gs>>3]=ks}ys=WM+1|0;mF=(ys|0)==(_d|0);if(mF){break}else{WM=ys}}c=yR;return 0}function ni(e){e=e|0;var r=0.0,i=0,t=0,n=0.0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0.0,F=0,O=0.0,A=0,R=0,T=0.0,N=0.0,D=0.0,P=0,L=0,C=0,B=0.0,I=0.0,H=0.0,x=0.0,U=0.0,z=0,q=0.0,V=0.0;var j=0.0,Y=0.0,K=0,G=0.0,X=0.0,Z=0.0,J=0.0,Q=0.0,re=0.0,ie=0.0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0.0,ke=0,Se=0,ge=0,ye=0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0,Re=0.0,Te=0.0,Ne=0.0,De=0.0;var Pe=0.0,Le=0.0,Ce=0.0,Be=0.0,Ie=0.0,He=0,xe=0,Ue=0.0,ze=0.0,qe=0.0,Ve=0,je=0,We=0,Ye=0,Ke=0.0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0.0;var $e=0.0,er=0.0,rr=0.0,ir=0.0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0.0,fr=0.0,ur=0.0,cr=0,hr=0.0,dr=0.0,vr=0,mr=0,Er=0,wr=0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0.0,Mr=0,Fr=0.0,Or=0,Ar=0,Rr=0.0,Tr=0,Nr=0.0,Dr=0.0,Pr=0,Lr=0,Br=0.0,Ir=0.0,Hr=0.0,xr=0.0;var Ur=0.0,zr=0,qr=0,Vr=0.0,jr=0.0,Wr=0.0,Yr=0.0,Kr=0.0,Gr=0.0,Xr=0.0,Zr=0.0,Jr=0.0,Qr=0.0,$r=0,ei=0.0,ri=0,ii=0,ti=0,ni=0,ai=0;var oi=0.0,fi=0,ui=0,ci=0.0,hi=0,di=0,vi=0.0,mi=0.0,Ei=0.0,wi=0.0,bi=0.0,_i=0.0,pi=0.0,ki=0.0,Si=0.0,gi=0,yi=0,Mi=0,Fi=0,Oi=0;var Ai=0.0,Ri=0.0,Ti=0.0,Ni=0.0,Di=0.0,Pi=0.0,Li=0,Ci=0.0,Bi=0.0,Ii=0.0,Hi=0.0,xi=0.0,Ui=0.0,zi=0,qi=0.0,Vi=0.0,ji=0.0,Wi=0,Yi=0,Ki=0;var Gi=0,Xi=0,Zi=0.0,Ji=0,Qi=0,$i=0.0,et=0.0,rt=0.0,it=0,tt=0.0,nt=0,at=0.0,ot=0.0,st=0.0,lt=0.0,ft=0.0,ut=0,ct=0.0,ht=0.0,dt=0;var vt=0.0,mt=0.0,Et=0.0,wt=0,bt=0,_t=0,pt=0,kt=0.0,St=0.0,gt=0.0,yt=0,Mt=0,Ft=0,Ot=0.0,Tt=0.0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0;var Bt=0,It=0,Ht=0,xt=0,Ut=0.0,zt=0.0,qt=0.0,Vt=0.0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0.0,Jt=0,Qt=0,$t=0,en=0,rn=0;var tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0.0,cn=0.0,hn=0.0,dn=0.0,vn=0.0,mn=0.0,En=0,bn=0,_n=0,kn=0,Sn=0,gn=0,Mn=0;var Fn=0,On=0,An=0,Rn=0.0,Tn=0.0,Nn=0.0,Dn=0,Pn=0.0,Ln=0.0,Cn=0.0,Bn=0.0,In=0.0,Hn=0.0,xn=0,Un=0,zn=0.0,qn=0,Vn=0,jn=0.0,Wn=0;var Yn=0,Kn=0,Gn=0.0,Xn=0,Zn=0.0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0.0,ua=0.0,ca=0;var ha=0,da=0,va=0,ma=0.0,Ea=0,wa=0.0,ba=0,_a=0,pa=0.0,ka=0.0,Sa=0,ga=0.0,ya=0.0,Ma=0,Fa=0.0,Oa=0,Aa=0,Ra=0.0,Ta=0.0,Na=0.0;var Da=0.0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0.0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0.0,Ga=0.0,Xa=0.0,Za=0.0,Ja=0;var Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0.0,ho=0,vo=0,mo=0,Eo=0,wo=0,bo=0;var _o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0,Do=0,Po=0,Lo=0.0,Co=0,Bo=0,Io=0,Ho=0;var xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0.0,Yo=0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0,Qo=0,$o=0,es=0,rs=0,is=0,ts=0,ns=0;var as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0,Es=0,ws=0,bs=0,_s=0,ps=0,ks=0,Ss=0.0,gs=0,ys=0;var Ms=0,Fs=0,Os=0,As=0,Rs=0,Ts=0,Ns=0.0,Ds=0,Ps=0,Ls=0,Cs=0,Bs=0,Is=0,Hs=0,xs=0,Us=0,zs=0,qs=0,Vs=0,js=0;var Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0.0,Qs=0,$s=0.0,el=0.0,rl=0.0,il=0.0,tl=0.0,nl=0.0,al=0.0,ol=0.0,sl=0.0,ll=0.0,fl=0.0,ul=0.0;var cl=0.0,hl=0.0,dl=0.0,vl=0.0,ml=0.0,El=0.0,wl=0.0,bl=0.0,_l=0.0,pl=0,kl=0;kl=c;c=c+768|0;ps=kl+512|0;ks=kl+256|0;Qs=kl;u=e+288|0;h=a[u>>2]|0;br=h+16|0;yt=h+64|0;Pa=a[yt>>2]|0;co=+(Pa|0);go=h+280|0;Lo=+f[go>>2];Wo=-Lo;is=h+85800|0;d=a[is>>2]|0;y=(d|0)==(0|0);if(!y){i=0;c=kl;return i|0}pn(Qs|0,0,256)|0;C=wn(1,6504)|0;a[is>>2]=C;K=e+144|0;oe=a[K>>2]|0;we=C+6500|0;a[we>>2]=oe;Ae=h+27800|0;a[Ae>>2]=0;xe=h+27796|0;a[xe>>2]=0;Ds=0;while(1){xs=0;while(1){Oo=((h+21564|0)+(Ds<<8)|0)+(xs<<2)|0;f[Oo>>2]=1.0000000200408773E+20;Ao=((h+22588|0)+(Ds<<8)|0)+(xs<<2)|0;f[Ao>>2]=1.0000000200408773E+20;Ro=((h+24636|0)+(Ds<<8)|0)+(xs<<2)|0;f[Ro>>2]=1.0;To=((h+23612|0)+(Ds<<8)|0)+(xs<<2)|0;f[To>>2]=1.0;No=xs+1|0;Os=(No|0)==64;if(Os){break}else{xs=No}}Ze=(h+26636|0)+(Ds*244|0)|0;f[Ze>>2]=1.0000000200408773E+20;sr=(h+25660|0)+(Ds*244|0)|0;f[sr>>2]=1.0000000200408773E+20;_r=((h+26636|0)+(Ds*244|0)|0)+4|0;f[_r>>2]=1.0000000200408773E+20;Tr=((h+25660|0)+(Ds*244|0)|0)+4|0;f[Tr>>2]=1.0000000200408773E+20;qr=((h+26636|0)+(Ds*244|0)|0)+8|0;f[qr>>2]=1.0000000200408773E+20;$r=((h+25660|0)+(Ds*244|0)|0)+8|0;f[$r>>2]=1.0000000200408773E+20;hi=((h+26636|0)+(Ds*244|0)|0)+12|0;f[hi>>2]=1.0000000200408773E+20;gi=((h+25660|0)+(Ds*244|0)|0)+12|0;f[gi>>2]=1.0000000200408773E+20;Li=((h+26636|0)+(Ds*244|0)|0)+16|0;f[Li>>2]=1.0000000200408773E+20;Wi=((h+25660|0)+(Ds*244|0)|0)+16|0;f[Wi>>2]=1.0000000200408773E+20;it=((h+26636|0)+(Ds*244|0)|0)+20|0;f[it>>2]=1.0000000200408773E+20;dt=((h+25660|0)+(Ds*244|0)|0)+20|0;f[dt>>2]=1.0000000200408773E+20;Mt=((h+26636|0)+(Ds*244|0)|0)+24|0;f[Mt>>2]=1.0000000200408773E+20;Ht=((h+25660|0)+(Ds*244|0)|0)+24|0;f[Ht>>2]=1.0000000200408773E+20;Xt=((h+26636|0)+(Ds*244|0)|0)+28|0;f[Xt>>2]=1.0000000200408773E+20;sn=((h+25660|0)+(Ds*244|0)|0)+28|0;f[sn>>2]=1.0000000200408773E+20;_n=((h+26636|0)+(Ds*244|0)|0)+32|0;f[_n>>2]=1.0000000200408773E+20;Dn=((h+25660|0)+(Ds*244|0)|0)+32|0;f[Dn>>2]=1.0000000200408773E+20;Vn=((h+26636|0)+(Ds*244|0)|0)+36|0;f[Vn>>2]=1.0000000200408773E+20;ea=((h+25660|0)+(Ds*244|0)|0)+36|0;f[ea>>2]=1.0000000200408773E+20;ca=((h+26636|0)+(Ds*244|0)|0)+40|0;f[ca>>2]=1.0000000200408773E+20;Sa=((h+25660|0)+(Ds*244|0)|0)+40|0;f[Sa>>2]=1.0000000200408773E+20;La=((h+26636|0)+(Ds*244|0)|0)+44|0;f[La>>2]=1.0000000200408773E+20;Wa=((h+25660|0)+(Ds*244|0)|0)+44|0;f[Wa>>2]=1.0000000200408773E+20;io=((h+26636|0)+(Ds*244|0)|0)+48|0;f[io>>2]=1.0000000200408773E+20;no=((h+25660|0)+(Ds*244|0)|0)+48|0;f[no>>2]=1.0000000200408773E+20;ao=((h+26636|0)+(Ds*244|0)|0)+52|0;f[ao>>2]=1.0000000200408773E+20;oo=((h+25660|0)+(Ds*244|0)|0)+52|0;f[oo>>2]=1.0000000200408773E+20;so=((h+26636|0)+(Ds*244|0)|0)+56|0;f[so>>2]=1.0000000200408773E+20;lo=((h+25660|0)+(Ds*244|0)|0)+56|0;f[lo>>2]=1.0000000200408773E+20;fo=((h+26636|0)+(Ds*244|0)|0)+60|0;f[fo>>2]=1.0000000200408773E+20;uo=((h+25660|0)+(Ds*244|0)|0)+60|0;f[uo>>2]=1.0000000200408773E+20;ho=((h+26636|0)+(Ds*244|0)|0)+64|0;f[ho>>2]=1.0000000200408773E+20;vo=((h+25660|0)+(Ds*244|0)|0)+64|0;f[vo>>2]=1.0000000200408773E+20;mo=((h+26636|0)+(Ds*244|0)|0)+68|0;f[mo>>2]=1.0000000200408773E+20;Eo=((h+25660|0)+(Ds*244|0)|0)+68|0;f[Eo>>2]=1.0000000200408773E+20;wo=((h+26636|0)+(Ds*244|0)|0)+72|0;f[wo>>2]=1.0000000200408773E+20;bo=((h+25660|0)+(Ds*244|0)|0)+72|0;f[bo>>2]=1.0000000200408773E+20;_o=((h+26636|0)+(Ds*244|0)|0)+76|0;f[_o>>2]=1.0000000200408773E+20;po=((h+25660|0)+(Ds*244|0)|0)+76|0;f[po>>2]=1.0000000200408773E+20;ko=((h+26636|0)+(Ds*244|0)|0)+80|0;f[ko>>2]=1.0000000200408773E+20;So=((h+25660|0)+(Ds*244|0)|0)+80|0;f[So>>2]=1.0000000200408773E+20;yo=((h+26636|0)+(Ds*244|0)|0)+84|0;f[yo>>2]=1.0000000200408773E+20;Mo=((h+25660|0)+(Ds*244|0)|0)+84|0;f[Mo>>2]=1.0000000200408773E+20;Fo=(h+27780|0)+(Ds<<2)|0;Us=0;while(1){Vo=(((h+26636|0)+(Ds*244|0)|0)+88|0)+(Us<<2)|0;f[Vo>>2]=1.0000000200408773E+20;jo=(((h+25660|0)+(Ds*244|0)|0)+88|0)+(Us<<2)|0;f[jo>>2]=1.0000000200408773E+20;Yo=(((h+26636|0)+(Ds*244|0)|0)+100|0)+(Us<<2)|0;f[Yo>>2]=1.0000000200408773E+20;Ko=(((h+25660|0)+(Ds*244|0)|0)+100|0)+(Us<<2)|0;f[Ko>>2]=1.0000000200408773E+20;Go=(((h+26636|0)+(Ds*244|0)|0)+112|0)+(Us<<2)|0;f[Go>>2]=1.0000000200408773E+20;Xo=(((h+25660|0)+(Ds*244|0)|0)+112|0)+(Us<<2)|0;f[Xo>>2]=1.0000000200408773E+20;Zo=(((h+26636|0)+(Ds*244|0)|0)+124|0)+(Us<<2)|0;f[Zo>>2]=1.0000000200408773E+20;Jo=(((h+25660|0)+(Ds*244|0)|0)+124|0)+(Us<<2)|0;f[Jo>>2]=1.0000000200408773E+20;Qo=(((h+26636|0)+(Ds*244|0)|0)+136|0)+(Us<<2)|0;f[Qo>>2]=1.0000000200408773E+20;$o=(((h+25660|0)+(Ds*244|0)|0)+136|0)+(Us<<2)|0;f[$o>>2]=1.0000000200408773E+20;es=(((h+26636|0)+(Ds*244|0)|0)+148|0)+(Us<<2)|0;f[es>>2]=1.0000000200408773E+20;rs=(((h+25660|0)+(Ds*244|0)|0)+148|0)+(Us<<2)|0;f[rs>>2]=1.0000000200408773E+20;ts=(((h+26636|0)+(Ds*244|0)|0)+160|0)+(Us<<2)|0;f[ts>>2]=1.0000000200408773E+20;ns=(((h+25660|0)+(Ds*244|0)|0)+160|0)+(Us<<2)|0;f[ns>>2]=1.0000000200408773E+20;as=(((h+26636|0)+(Ds*244|0)|0)+172|0)+(Us<<2)|0;f[as>>2]=1.0000000200408773E+20;os=(((h+25660|0)+(Ds*244|0)|0)+172|0)+(Us<<2)|0;f[os>>2]=1.0000000200408773E+20;ss=(((h+26636|0)+(Ds*244|0)|0)+184|0)+(Us<<2)|0;f[ss>>2]=1.0000000200408773E+20;ls=(((h+25660|0)+(Ds*244|0)|0)+184|0)+(Us<<2)|0;f[ls>>2]=1.0000000200408773E+20;fs=(((h+26636|0)+(Ds*244|0)|0)+196|0)+(Us<<2)|0;f[fs>>2]=1.0000000200408773E+20;us=(((h+25660|0)+(Ds*244|0)|0)+196|0)+(Us<<2)|0;f[us>>2]=1.0000000200408773E+20;cs=(((h+26636|0)+(Ds*244|0)|0)+208|0)+(Us<<2)|0;f[cs>>2]=1.0000000200408773E+20;hs=(((h+25660|0)+(Ds*244|0)|0)+208|0)+(Us<<2)|0;f[hs>>2]=1.0000000200408773E+20;v=(((h+26636|0)+(Ds*244|0)|0)+220|0)+(Us<<2)|0;f[v>>2]=1.0000000200408773E+20;m=(((h+25660|0)+(Ds*244|0)|0)+220|0)+(Us<<2)|0;f[m>>2]=1.0000000200408773E+20;E=(((h+26636|0)+(Ds*244|0)|0)+232|0)+(Us<<2)|0;f[E>>2]=1.0000000200408773E+20;w=(((h+25660|0)+(Ds*244|0)|0)+232|0)+(Us<<2)|0;f[w>>2]=1.0000000200408773E+20;a[Fo>>2]=0;b=Us+1|0;As=(b|0)==3;if(As){break}else{Us=b}}Do=(h+27636|0)+(Ds*36|0)|0;f[Do>>2]=10.0;Po=((h+27636|0)+(Ds*36|0)|0)+4|0;f[Po>>2]=10.0;Co=((h+27636|0)+(Ds*36|0)|0)+8|0;f[Co>>2]=10.0;Bo=((h+27636|0)+(Ds*36|0)|0)+12|0;f[Bo>>2]=10.0;Io=((h+27636|0)+(Ds*36|0)|0)+16|0;f[Io>>2]=10.0;Ho=((h+27636|0)+(Ds*36|0)|0)+20|0;f[Ho>>2]=10.0;xo=((h+27636|0)+(Ds*36|0)|0)+24|0;f[xo>>2]=10.0;Uo=((h+27636|0)+(Ds*36|0)|0)+28|0;f[Uo>>2]=10.0;zo=((h+27636|0)+(Ds*36|0)|0)+32|0;f[zo>>2]=10.0;qo=Ds+1|0;Rs=(qo|0)==4;if(Rs){break}else{Ds=qo}}_=h+27616|0;f[_>>2]=0.0;p=h+27612|0;f[p>>2]=0.0;k=h+21360|0;si(C,co,1024,576,22,k);S=C+2148|0;g=a[S>>2]|0;M=co*9.765625E-4;F=(g|0)>0;if(F){O=M;Is=0;Ks=0;while(1){A=(C+1716|0)+(Ks<<2)|0;R=a[A>>2]|0;T=+(Is|0);N=T*M;D=+Rt(N);P=R+Is|0;L=P+-1|0;B=+(L|0);I=B*M;H=+Rt(I);x=H+D;U=x*0.5;z=ps+(Ks<<2)|0;f[z>>2]=U;q=+(Is|0);V=q+-0.5;j=V*O;Y=j;G=+Rt(Y);X=+(P|0);Z=X+-0.5;J=Z*O;Q=J;re=+Rt(Q);ie=re-G;te=ks+(Ks<<2)|0;f[te>>2]=ie;ne=Ks+1|0;ys=(ne|0)==(g|0);if(ys){break}else{Is=P;Ks=ne}}s=a[S>>2]|0;ae=(s|0)>0;if(ae){Ps=0;while(1){se=Qs+(Ps<<2)|0;f[se>>2]=1.0;le=Ps+1|0;fe=(le|0)<(s|0);if(fe){Ps=le}else{he=s;break}}}else{he=s}}else{he=g}ue=C+2156|0;ce=C+1204|0;de=li(ue,ce,he,ps,ks,Qs)|0;ve=(de|0)==0;if(!ve){i=de;c=kl;return i|0}me=a[S>>2]|0;Ee=(me|0)>0;if(Ee){be=C+1716|0;_e=h+85796|0;pe=Wo;ke=C+256|0;Ls=0;zs=0;while(1){Se=be+(Ls<<2)|0;ge=a[Se>>2]|0;ye=(ge|0)>0;if(ye){Vs=zs;Xs=0;tl=9.9999999999999995E+36;while(1){Me=+(Vs|0);Fe=Me*co;Oe=Fe;Re=Oe*9.7656250000000002E-7;Te=Re;Ne=Te*1000.0;De=+At(br,Ne);Pe=De+-20.0;Le=Pe;Ce=Le*0.10000000000000001;Be=+W(10.0,+Ce);Ie=Be;He=a[Se>>2]|0;Ue=+(He|0);ze=Ue*Ie;qe=ze;Ve=tl>qe;nl=Ve?qe:tl;je=Xs+1|0;We=Vs+1|0;Ye=(je|0)<(He|0);if(Ye){Vs=We;Xs=je;tl=nl}else{cr=He;qs=We;il=nl;break}}}else{cr=ge;qs=zs;il=9.9999999999999995E+36}Ke=il;Ge=a[_e>>2]|0;Xe=(Ge+212|0)+(Ls<<2)|0;f[Xe>>2]=Ke;Je=ps+(Ls<<2)|0;Qe=+f[Je>>2];$e=Qe*0.10000000149011612;er=$e;rr=er+-1.0;ir=rr*20.0;tr=ir>6.0;al=tr?30.0:ir;nr=al>2]|0;or=(ar|0)<44000;sl=ol+-8.0;ll=sl*0.10000000000000001;lr=or?2.2000000000000002:ll;fr=+W(10.0,+lr);ur=+(cr|0);hr=ur*fr;dr=hr;vr=ke+(Ls<<2)|0;f[vr>>2]=dr;mr=Ls+1|0;Er=a[S>>2]|0;wr=(mr|0)<(Er|0);if(wr){Ls=mr;zs=qs}else{break}}}pr=C+2160|0;kr=h+21452|0;si(pr,co,256,192,13,kr);Sr=C+4308|0;gr=a[Sr>>2]|0;yr=co*0.00390625;Mr=(gr|0)>0;if(Mr){Fr=yr;Hs=0;Gs=0;while(1){Or=(pr+1716|0)+(Gs<<2)|0;Ar=a[Or>>2]|0;Rr=+(Hs|0);Nr=Rr*yr;Dr=+Rt(Nr);Pr=Ar+Hs|0;Lr=Pr+-1|0;Br=+(Lr|0);Ir=Br*yr;Hr=+Rt(Ir);xr=Hr+Dr;Ur=xr*0.5;zr=ps+(Gs<<2)|0;f[zr>>2]=Ur;Vr=+(Hs|0);jr=Vr+-0.5;Wr=jr*Fr;Yr=Wr;Kr=+Rt(Yr);Gr=+(Pr|0);Xr=Gr+-0.5;Zr=Xr*Fr;Jr=Zr;Qr=+Rt(Jr);ei=Qr-Kr;ri=ks+(Gs<<2)|0;f[ri>>2]=ei;ii=Gs+1|0;Ms=(ii|0)==(gr|0);if(Ms){break}else{Hs=Pr;Gs=ii}}l=a[Sr>>2]|0;ti=(l|0)>0;if(ti){ni=C+3876|0;ai=h+85796|0;oi=Wo;fi=C+2416|0;Cs=0;js=0;while(1){ui=ps+(Cs<<2)|0;ci=+f[ui>>2];di=!(ci>=13.0);if(di){rl=-8.25}else{vi=ci+-13.0;mi=vi*0.40909090638160706;Ei=24.0-ci;wi=Ei*-0.75;bi=wi-mi;_i=bi;rl=_i}pi=rl*0.10000000000000001;ki=+W(10.0,+pi);Si=ki;yi=Qs+(Cs<<2)|0;f[yi>>2]=Si;Mi=ni+(Cs<<2)|0;Fi=a[Mi>>2]|0;Oi=(Fi|0)>0;if(Oi){Ys=js;Zs=0;ul=9.9999999999999995E+36;while(1){Ai=+(Ys|0);Ri=Ai*co;Ti=Ri;Ni=Ti*3.9062500000000001E-6;Di=Ni;Pi=Di*1000.0;Ci=+At(br,Pi);Bi=Ci+-20.0;Ii=Bi;Hi=Ii*0.10000000000000001;xi=+W(10.0,+Hi);Ui=xi;zi=a[Mi>>2]|0;qi=+(zi|0);Vi=qi*Ui;ji=Vi;Yi=ul>ji;cl=Yi?ji:ul;Ki=Zs+1|0;Gi=Ys+1|0;Xi=(Ki|0)<(zi|0);if(Xi){Ys=Gi;Zs=Ki;ul=cl}else{Ft=zi;Ws=Gi;fl=cl;break}}}else{Ft=Fi;Ws=js;fl=9.9999999999999995E+36}Zi=fl;Ji=a[ai>>2]|0;Qi=(Ji+468|0)+(Cs<<2)|0;f[Qi>>2]=Zi;$i=ci*0.083333335816860198;et=$i;rt=et+-1.0;tt=rt*7.0;nt=ci>12.0;if(nt){at=tt+1.0;ot=+ee(+at);st=ot*3.1000000000000001;lt=st+1.0;ft=lt*tt;hl=ft}else{hl=tt}ut=ci<12.0;if(ut){ct=1.0-hl;ht=+ee(+ct);vt=ht*2.2999999999999998;mt=vt+1.0;Et=mt*hl;dl=Et}else{dl=hl}wt=dl>6.0;vl=wt?30.0:dl;bt=vl>2]|0;pt=(_t|0)<44000;El=ml+-8.0;wl=El*0.10000000000000001;kt=pt?2.2000000000000002:wl;St=+W(10.0,+kt);gt=+(Ft|0);Ot=gt*St;Tt=Ot;Nt=fi+(Cs<<2)|0;f[Nt>>2]=Tt;Dt=Cs+1|0;Pt=a[Sr>>2]|0;Lt=(Dt|0)<(Pt|0);if(Lt){Cs=Dt;js=Ws}else{o=Pt;break}}}else{o=l}}else{o=gr}Ct=C+4316|0;Bt=C+3364|0;It=li(Ct,Bt,o,ps,ks,Qs)|0;xt=(It|0)==0;if(!xt){i=It;c=kl;return i|0}f[11528>>2]=3.6517412662506104;f[11576>>2]=31.622776031494141;Cr(h);Ut=co;zt=-44209.633785485676/Ut;qt=+$(+zt);Vt=qt;jt=C+6496|0;f[jt>>2]=Vt;Wt=h+96|0;Yt=a[Wt>>2]|0;Kt=(Yt|0)!=0;r=Kt?1.0:3.5;Gt=h+192|0;Zt=+f[Gt>>2];Jt=Zt!=Zt|0.0!=0.0|Zt==0.0;Js=Jt?r:Zt;f[Gt>>2]=Js;Qt=a[S>>2]|0;$t=(Qt|0)>0;if($t){en=Qt+-1|0;ds=0;while(1){rn=(ce+(ds<<3)|0)+4|0;tn=a[rn>>2]|0;nn=(tn|0)>(en|0);if(nn){a[rn>>2]=en}an=ds+1|0;on=(an|0)<(Qt|0);if(on){ds=an}else{break}}}ln=h+76|0;fn=a[ln>>2]|0;un=+(fn|0);cn=un*576.0;hn=cn/Ut;dn=hn*-1.2;vn=+W(10.0,+dn);mn=vn;En=h+85796|0;bn=a[En>>2]|0;kn=bn+16|0;f[kn>>2]=mn;Sn=bn+8|0;f[Sn>>2]=0.0099999997764825821;gn=bn+12|0;f[gn>>2]=1.0;Mn=h+208|0;Fn=a[Mn>>2]|0;On=(Fn|0)==-1;if(!On){An=a[yt>>2]|0;Rn=+(An|0);Tn=Rn*9.765625E-4;Ss=0.0;Ns=0.0;Bs=0;while(1){Nn=Ns+Tn;Pn=+At(br,Nn);Ln=Pn*0.10000000149011612;Cn=Ln;Bn=+W(10.0,+Cn);In=1.0/Bn;Hn=In;xn=a[En>>2]|0;Un=(xn+724|0)+(Bs<<2)|0;f[Un>>2]=Hn;zn=Hn+Ss;qn=Bs+1|0;Fs=(qn|0)==512;if(Fs){t=xn;n=zn;break}else{Ss=zn;Ns=Nn;Bs=qn}}jn=1.0/n;la=511;while(1){sa=(t+724|0)+(la<<2)|0;fa=+f[sa>>2];ua=fa*jn;f[sa>>2]=ua;ha=la+-1|0;da=(la|0)>0;if(da){la=ha}else{break}}}Wn=a[Sr>>2]|0;Yn=(Wn|0)>0;Kn=e+264|0;Gn=+f[Kn>>2];Xn=e+268|0;Zn=+f[Xn>>2];Jn=Gn<0.0;bl=Jn?4.4000000953674316:Gn;Qn=Zn<0.0;_l=Qn?25.0:Zn;$n=C+6480|0;ra=C+6488|0;f[ra>>2]=bl;ia=C+6484|0;f[ia>>2]=bl;f[$n>>2]=bl;ta=C+6492|0;f[ta>>2]=_l;na=e+164|0;aa=a[na>>2]|0;oa=(aa|0)<4;if(oa){el=-0.74000000953674316}else{va=11720+(aa<<2)|0;ma=+f[va>>2];Ea=e+160|0;wa=+f[Ea>>2];ba=aa+1|0;_a=11720+(ba<<2)|0;pa=+f[_a>>2];ka=ma-pa;ga=ka*wa;ya=ga+ma;$s=ya*0.10000000149011612;el=$s}if(Yn){Ma=(Wn|0)>1;Fa=+(Wn|0);ms=0;while(1){Aa=Wn-ms|0;Ra=+(Aa|0);Ta=Ra/Fa;Na=el*Ta;Da=+W(10.0,+Na);Ca=pr+(ms<<2)|0;f[Ca>>2]=Da;Ba=ms+1|0;Ia=(Wn|0)>(Ba|0);if(Ia){ms=Ba}else{break}}if(Ma){Oa=(Wn|0)<64;if(Oa){vs=Wn;pl=50}}else{vs=1;pl=50}}else{vs=0;pl=50}if((pl|0)==50){Es=vs;while(1){qa=pr+(Es<<2)|0;f[qa>>2]=1.0;Va=Es+1|0;Ts=(Va|0)==64;if(Ts){break}else{Es=Va}}}Ha=a[S>>2]|0;xa=(Ha|0)>0;if(xa){Ua=(Ha|0)>1;za=+(Ha|0);bs=0;while(1){Ya=Ha-bs|0;Ka=+(Ya|0);Ga=Ka/za;Xa=el*Ga;Za=+W(10.0,+Xa);Ja=C+(bs<<2)|0;f[Ja>>2]=Za;Qa=bs+1|0;$a=(Ha|0)>(Qa|0);if($a){bs=Qa}else{break}}if(Ua){ja=(Ha|0)<64;if(ja){ws=Ha;pl=57}}else{ws=1;pl=57}}else{ws=0;pl=57}if((pl|0)==57){_s=ws;while(1){eo=C+(_s<<2)|0;f[eo>>2]=1.0;ro=_s+1|0;gs=(ro|0)==64;if(gs){break}else{_s=ro}}}to=C+4320|0;yn(to|0,C|0,2160)|0;si(to,co,1024,192,13,kr);i=0;c=kl;return i|0}function ai(e,r,i,t,n,a,o){e=e|0;r=r|0;i=i|0;t=t|0;n=+n;a=+a;o=o|0;var s=0.0,l=0,u=0.0,h=0,d=0.0,v=0,m=0.0,E=0.0,w=0,b=0.0,_=0,p=0,k=0,S=0.0,g=0.0,y=0.0,M=0,F=0.0,O=0,A=0.0;var R=0,T=0.0,N=0,D=0,P=0.0,L=0,C=0.0,B=0.0,I=0,H=0.0,x=0,U=0.0,z=0,q=0.0,V=0.0,j=0,W=0.0,Y=0.0,K=0,G=0;var X=0.0,Z=0.0,J=0,Q=0.0,$=0.0,ee=0,re=0.0,ie=0,te=0.0,ne=0,ae=0.0,oe=0,se=0,le=0,fe=0,ue=0.0,ce=0.0,he=0,de=0.0,ve=0;var me=0.0,Ee=0,we=0.0,be=0,_e=0.0,pe=0,ke=0.0,Se=0,ge=0.0,ye=0,Me=0.0,Fe=0,Oe=0,Ae=0.0,Re=0.0,Te=0.0,Ne=0,De=0.0,Pe=0.0,Le=0;var Ce=0.0,Be=0,Ie=0.0,He=0,xe=0.0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0.0,Je=0.0,Qe=0.0,$e=0.0,er=0.0;var rr=0.0,ir=0.0,tr=0.0,nr=0.0,ar=0.0,or=0,sr=0;sr=c;s=a*2.0;l=(o|0)>0;if(!l){return}k=a>0.0;if(k){We=0}else{je=0;while(1){fe=(e+512|0)+(je<<2)|0;ue=+f[fe>>2];he=(e+768|0)+(je<<2)|0;de=+f[he>>2];ve=r+(je<<2)|0;me=+f[ve>>2];Ee=(r+256|0)+(je<<2)|0;we=+f[Ee>>2];be=(r+512|0)+(je<<2)|0;_e=+f[be>>2];pe=(r+768|0)+(je<<2)|0;ke=+f[pe>>2];ge=we*1.5800000429153442;ye=!(me<=ge);Me=me*1.5800000429153442;Fe=!(we<=Me);Ge=Fe|ye;if(Ge){Ze=_e;er=ke}else{Oe=i+(je<<2)|0;Ae=+f[Oe>>2];Re=Ae*de;Te=Ae*ue;Ne=keDe;Ie=Be?_e:De;He=ke>Ce;xe=He?ke:Ce;Ze=Ie;er=xe}Ue=Ze>ue;Qe=Ue?ue:Ze;ze=er>de;ir=ze?de:er;f[be>>2]=Qe;f[pe>>2]=ir;qe=je+1|0;Ye=(qe|0)==(o|0);if(Ye){break}else{je=qe}}return}while(1){D=(e+512|0)+(We<<2)|0;V=+f[D>>2];ee=(e+768|0)+(We<<2)|0;ce=+f[ee>>2];Se=r+(We<<2)|0;Pe=+f[Se>>2];Ve=(r+256|0)+(We<<2)|0;u=+f[Ve>>2];h=(r+512|0)+(We<<2)|0;d=+f[h>>2];v=(r+768|0)+(We<<2)|0;m=+f[v>>2];E=u*1.5800000429153442;w=!(Pe<=E);b=Pe*1.5800000429153442;_=!(u<=b);Xe=_|w;if(Xe){Je=d;rr=m}else{p=i+(We<<2)|0;S=+f[p>>2];g=S*ce;y=S*V;M=mF;T=R?d:F;N=m>A;P=N?m:A;Je=T;rr=P}L=t+(We<<2)|0;C=+f[L>>2];B=C*n;I=Pe>B;H=I?Pe:B;x=u>B;U=x?u:B;z=Je>B;q=z?Je:B;j=rr>B;W=j?rr:B;Y=q+W;K=Y>0.0;if(K){G=HV;$e=oe?V:te;se=ae>ce;tr=se?ce:ae;f[h>>2]=$e;f[v>>2]=tr;le=We+1|0;Ke=(le|0)==(o|0);if(Ke){break}else{We=le}}return}function oi(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;var o=0,s=0,l=0,u=0,h=0,d=0,v=0.0,m=0.0,E=0,w=0.0,b=0.0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0.0,O=0.0;var A=0,R=0.0,T=0.0,N=0.0,D=0,P=0,L=0.0,C=0.0,B=0.0,I=0,H=0,x=0.0,U=0.0,z=0.0,q=0.0,V=0,j=0,W=0,Y=0,K=0;var G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0.0,ae=0.0,oe=0.0,se=0.0,le=0,fe=0,ue=0,ce=0,he=0,de=0;var ve=0.0,me=0.0,Ee=0.0,we=0.0,be=0,_e=0;_e=c;s=e+2152|0;l=a[s>>2]|0;k=(l|0)>0;e:do{if(k){D=e+2148|0;o=a[D>>2]|0;re=0;ne=0.0;ue=0;ve=0.0;while(1){Z=(e+2060|0)+(ue<<2)|0;J=a[Z>>2]|0;Q=(J|0)<(o|0);$=Q?J:o;ee=(re|0)<($|0);if(ee){u=(o|0)>(J|0);h=u?J:o;te=re;se=ne;we=ve;while(1){d=r+(te<<2)|0;v=+f[d>>2];m=v+se;E=i+(te<<2)|0;w=+f[E>>2];b=w+we;_=te+1|0;fe=(_|0)==(h|0);if(fe){ie=h;ae=m;me=b;break}else{te=_;se=m;we=b}}}else{ie=re;ae=ne;me=ve}p=(ie|0)<(o|0);if(!p){oe=ae;ce=ue;Ee=me;break}M=(e+1112|0)+(ue<<2)|0;F=+f[M>>2];O=1.0-F;A=r+(ie<<2)|0;R=+f[A>>2];T=R*F;N=T+ae;P=i+(ie<<2)|0;L=+f[P>>2];C=L*F;B=C+me;I=t+(ue<<2)|0;f[I>>2]=N;H=n+(ue<<2)|0;f[H>>2]=B;x=+f[A>>2];U=x*O;z=+f[P>>2];q=z*O;j=ie+1|0;W=ue+1|0;Y=(W|0)<(l|0);if(Y){re=j;ne=U;ue=W;ve=q}else{he=W;break e}}S=t+(ce<<2)|0;f[S>>2]=oe;g=n+(ce<<2)|0;f[g>>2]=Ee;y=ce+1|0;he=y}else{he=0}}while(0);V=(he|0)<(l|0);if(V){de=he}else{return}while(1){K=t+(de<<2)|0;f[K>>2]=0.0;G=n+(de<<2)|0;f[G>>2]=0.0;X=de+1|0;le=(X|0)==(l|0);if(le){break}else{de=X}}return}function si(e,r,i,t,n,o){e=e|0;r=+r;i=i|0;t=t|0;n=n|0;o=o|0;var s=0,l=0,u=0,h=0.0,d=0.0,v=0.0,m=0.0,E=0.0,w=0.0,b=0,_=0,p=0,k=0.0,S=0.0,g=0.0,y=0.0,M=0,F=0.0,O=0,A=0.0;var R=0.0,T=0.0,N=0.0,D=0.0,P=0.0,L=0,C=0.0,B=0.0,I=0.0,H=0.0,x=0.0,U=0,z=0,V=0,j=0.0,K=0,G=0,X=0,Z=0.0,J=0.0;var Q=0.0,$=0,ee=0,re=0,ie=0,te=0.0,ne=0,ae=0,oe=0.0,se=0.0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0.0,me=0,Ee=0,we=0;var be=0.0,_e=0.0,pe=0.0,ke=0.0,Se=0,ge=0.0,ye=0.0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0.0,Re=0.0,Te=0.0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0;var He=0.0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0.0,Ke=0,Ge=0.0,Xe=0.0,Ze=0.0,Je=0.0,Qe=0,$e=0,er=0.0,rr=0.0,ir=0.0,tr=0.0;var nr=0.0,ar=0.0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0.0,Er=0,wr=0.0,br=0.0,_r=0,pr=0.0,kr=0.0,Sr=0,gr=0;var yr=0.0,Mr=0.0,Fr=0,Or=0.0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0;var jr=0,Wr=0,Yr=0;Yr=c;c=c+2320|0;Fr=Yr+2052|0;Vr=Yr;v=+(t|0);m=v*2.0;j=r/m;te=+(i|0);ve=te/m;pn(Vr|0,0,2052)|0;Me=r/te;Be=(i|0)/2&-1;Pr=0;Ur=0;while(1){Ke=(Ur|0)<64;if(!Ke){Br=Pr;zr=Ur;break}nr=+(Pr|0);mr=nr*Me;E=+Rt(mr);O=Fr+(Ur<<2)|0;f[O>>2]=mr;Hr=Pr;while(1){C=+(Hr|0);B=C*Me;I=+Rt(B);H=I-E;x=H;U=!(x<0.34000000000000002);z=(Hr|0)>(Be|0);qr=z|U;V=Hr+1|0;if(qr){xr=Hr;break}else{Hr=V}}K=xr-Pr|0;G=(e+1716|0)+(Ur<<2)|0;a[G>>2]=K;X=(K|0)>0;Z=+(K|0);J=1.0/Z;Q=X?J:0.0;$=(e+512|0)+(Ur<<2)|0;f[$>>2]=Q;ee=Ur+1|0;re=(xr|0)>(Pr|0);if(re){Cr=Pr;while(1){ie=Cr+1|0;ne=Vr+(Cr<<2)|0;a[ne>>2]=Ur;Tr=(ie|0)==(xr|0);if(Tr){Lr=xr;break}else{Cr=ie}}}else{Lr=Pr}ae=(Lr|0)>(Be|0);if(ae){Br=Be;zr=ee;break}else{Pr=Lr;Ur=ee}}oe=+(Br|0);se=oe*Me;le=Fr+(zr<<2)|0;f[le>>2]=se;fe=e+2152|0;a[fe>>2]=n;ue=e+2148|0;a[ue>>2]=zr;ce=(zr|0)>0;if(ce){Nr=0;Ir=0;while(1){de=(e+1716|0)+(Nr<<2)|0;me=a[de>>2]|0;Ee=(me|0)/2&-1;we=Ee+Ir|0;be=+(we|0);_e=be*Me;pe=+Rt(_e);ke=pe;Se=pe<15.5;h=ke*0.2026833970057931;ge=Se?h:3.1415926535897931;ye=+Y(+ge);Fe=1.0-ye;Oe=Fe*1.25;Ae=Oe+-2.5;Re=+W(10.0,+Ae);Te=Re;Ne=(e+768|0)+(Nr<<2)|0;f[Ne>>2]=Te;De=me+Ir|0;Pe=Nr+1|0;Le=a[ue>>2]|0;Ce=(Pe|0)<(Le|0);if(Ce){Nr=Pe;Ir=De}else{u=Pe;break}}he=(u|0)<64;if(he){Dr=u;Wr=13}}else{Dr=0;Wr=13}if((Wr|0)==13){while(1){Wr=0;xe=(e+768|0)+(Dr<<2)|0;f[xe>>2]=1.0;Ue=Dr+1|0;Rr=(Ue|0)==64;if(Rr){break}else{Dr=Ue;Wr=13}}}Ie=(n|0)>0;if(!Ie){c=Yr;return}He=ve;jr=0;while(1){ze=o+(jr<<2)|0;qe=a[ze>>2]|0;Ve=jr+1|0;je=o+(Ve<<2)|0;We=a[je>>2]|0;Ye=+(qe|0);Ge=Ye+-0.5;Xe=Ge*He;Ze=Xe+0.5;Je=+q(+Ze);Qe=~~Je;$e=(Qe|0)<0;s=$e?0:Qe;er=+(We|0);rr=er+-0.5;ir=rr*He;tr=ir+0.5;ar=+q(+tr);or=~~ar;sr=(or|0)>(Be|0);l=sr?Be:or;lr=Vr+(l<<2)|0;fr=a[lr>>2]|0;ur=Vr+(s<<2)|0;cr=a[ur>>2]|0;hr=cr+fr|0;dr=(hr|0)/2&-1;vr=(e+1972|0)+(jr<<2)|0;a[vr>>2]=dr;Er=(e+2060|0)+(jr<<2)|0;a[Er>>2]=fr;wr=+(We|0);br=wr*j;_r=Fr+(fr<<2)|0;pr=+f[_r>>2];kr=br-pr;Sr=fr+1|0;gr=Fr+(Sr<<2)|0;yr=+f[gr>>2];Mr=yr-pr;w=kr/Mr;b=w<0.0;if(b){Or=0.0}else{_=w>1.0;if(_){Or=1.0}else{Or=w}}p=(e+1112|0)+(jr<<2)|0;f[p>>2]=Or;k=+(qe|0);S=k*j;g=+Rt(S);y=g;M=g<15.5;d=y*0.2026833970057931;F=M?d:3.1415926535897931;A=+Y(+F);R=1.0-A;T=R*1.25;N=T+-2.5;D=+W(10.0,+N);P=D;L=(e+1024|0)+(jr<<2)|0;f[L>>2]=P;Ar=(Ve|0)==(n|0);if(Ar){break}else{jr=Ve}}c=Yr;return}function li(e,r,i,t,n,o){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;var s=0,l=0.0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0.0,_=0.0,p=0.0,k=0.0,S=0.0,g=0.0,y=0.0,M=0.0,F=0.0,O=0.0,A=0.0;var R=0.0,T=0.0,N=0.0,D=0.0,P=0.0,L=0.0,C=0.0,B=0.0,I=0,H=0.0,x=0.0,U=0,z=0.0,q=0.0,V=0.0,W=0.0,Y=0.0,K=0.0,G=0.0,X=0.0;var Z=0.0,J=0,Q=0.0,ee=0.0,re=0.0,ie=0,te=0,ne=0,ae=0,oe=0.0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0.0,Ee=0;var we=0,be=0.0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0.0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0;var Ie=0,He=0,xe=0.0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0;var tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0.0,ur=0.0,cr=0.0,hr=0,dr=0;dr=c;c=c+16384|0;or=dr;pn(or|0,0,16384)|0;v=(i|0)>0;if(v){We=0;while(1){m=t+(We<<2)|0;F=+f[m>>2];I=o+(We<<2)|0;X=+f[I>>2];Ge=0;while(1){se=t+(Ge<<2)|0;be=+f[se>>2];Re=F-be;He=!(Re>=0.0);ur=He?1.5:3.0;fr=Re*ur;xe=fr;E=!(fr>=0.5);w=!(fr<=2.5);nr=E|w;if(nr){cr=0.0}else{b=fr+-0.5;_=b*b;p=_;k=b;S=k*2.0;g=p-S;y=g*8.0;M=y;cr=M}O=xe+0.47399999999999998;A=O;R=A;T=R*7.5;N=T+15.811389;D=A*A;P=D;L=P+1.0;C=+j(+L);B=C*17.5;H=N-B;x=H;U=!(x<=-60.0);if(U){z=x+cr;q=z;V=q*0.23025850929940458;W=+$(+V);Y=W;K=Y;G=K*1.5130440282194817;Z=G;l=Z}else{l=0.0}J=n+(Ge<<2)|0;Q=+f[J>>2];ee=Q*l;re=ee*X;ie=(or+(We<<8)|0)+(Ge<<2)|0;f[ie>>2]=re;te=Ge+1|0;Ve=(te|0)==(i|0);if(Ve){break}else{Ge=te}}ne=We+1|0;je=(ne|0)==(i|0);if(je){break}else{We=ne}}if(v){Ye=0;tr=0;while(1){Xe=0;while(1){ae=(or+(Ye<<8)|0)+(Xe<<2)|0;oe=+f[ae>>2];le=oe>0.0;if(le){he=Xe;break}fe=Xe+1|0;ue=(fe|0)<(i|0);if(ue){Xe=fe}else{he=fe;break}}ce=r+(Ye<<3)|0;a[ce>>2]=he;Je=i;while(1){Ze=Je+-1|0;de=(Je|0)>1;if(!de){Qe=Je;$e=Ze;break}ve=(or+(Ye<<8)|0)+(Ze<<2)|0;me=+f[ve>>2];Ee=me>0.0;if(Ee){Qe=Je;$e=Ze;break}else{Je=Ze}}we=(r+(Ye<<3)|0)+4|0;a[we>>2]=$e;_e=tr+Qe|0;pe=_e-he|0;ke=Ye+1|0;qe=(ke|0)==(i|0);if(qe){u=pe;break}else{Ye=ke;tr=pe}}ar=u<<2;ir=ar}else{ir=0}}else{ir=0}Se=mn(ir)|0;a[e>>2]=Se;ge=(Se|0)==(0|0);d=v^1;Ue=ge|d;h=ge<<31>>31;if(Ue){s=h;c=dr;return s|0}else{Ke=0;er=0}while(1){ye=r+(Ke<<3)|0;Me=a[ye>>2]|0;Fe=(r+(Ke<<3)|0)+4|0;Oe=a[Fe>>2]|0;Ae=(Me|0)>(Oe|0);if(Ae){rr=er}else{Te=a[e>>2]|0;Ne=er+1|0;De=Ne+Oe|0;sr=Te+(er<<2)|0;lr=(or+(Ke<<8)|0)+(Me<<2)|0;Pe=Oe+1|0;Le=Pe-Me|0;Ce=Le<<2;yn(sr|0,lr|0,Ce|0)|0;Be=De-Me|0;rr=Be}Ie=Ke+1|0;ze=(Ie|0)==(i|0);if(ze){s=0;break}else{Ke=Ie;er=rr}}c=dr;return s|0}function fi(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0;f=c;r=e+85824|0;i=e+85756|0;t=a[i>>2]|0;n=t&4;o=(n|0)==0;s=o?6:5;a[r>>2]=s;return}function ui(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0.0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,Y=0,K=0;var G=0,X=0,Z=0,J=0,Q=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0.0,he=0,de=0,ve=0,me=0;var Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0;var Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0;var ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,Sr=0;var gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0.0,zr=0.0,qr=0.0;var Vr=0.0,jr=0,Wr=0,Yr=0.0,Kr=0.0,Gr=0.0,Xr=0.0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0.0,ai=0.0,oi=0.0,si=0.0,li=0;var fi=0.0,ui=0.0,ci=0.0,hi=0.0,di=0,vi=0,bi=0.0,_i=0.0,Si=0.0,yi=0.0,Mi=0,Oi=0.0,Ti=0.0,Ni=0.0,Di=0.0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0.0;var Hi=0,xi=0,Ui=0.0,zi=0.0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0;var nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,Et=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0;var Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0.0,qt=0,Vt=0,jt=0.0,Wt=0.0;var Yt=0.0,Kt=0.0,Gt=0.0,Xt=0,Zt=0,Jt=0.0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0.0,fn=0.0,un=0.0,cn=0,hn=0.0;var dn=0.0,vn=0.0,mn=0.0,En=0.0,wn=0.0,bn=0.0,_n=0.0,kn=0.0,Sn=0.0,gn=0,Mn=0.0,Fn=0.0,On=0.0,An=0.0,Rn=0.0,Tn=0.0,Nn=0.0,Dn=0,Pn=0,Ln=0;var Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0;var ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0;var Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0.0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0;var qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0;eo=c;c=c+10592|0;ta=eo+5336|0;na=eo+3032|0;Ta=eo+2408|0;Qa=eo+104|0;ba=eo+40|0;La=eo+24|0;Da=eo+8|0;Pa=eo;M=e+116|0;F=a[M>>2]|0;Pr=e+84744|0;a[Pr>>2]=F;pt=Fi(e,na)|0;Nt=e+76|0;qt=a[Nt>>2]|0;$t=(pt|0)/(qt|0)&-1;a[na>>2]=$t;cn=e+112|0;gn=a[cn>>2]|0;a[Pr>>2]=gn;a[Pr>>2]=1;Cn=kr(e)|0;a[ta>>2]=Cn;O=a[M>>2]|0;H=(O|0)<1;if(!H){Fa=1;while(1){a[Pr>>2]=Fa;Z=Fi(e,ta)|0;fe=ba+(Fa<<2)|0;a[fe>>2]=Z;pe=Fa+1|0;Ne=a[M>>2]|0;qe=(Fa|0)<(Ne|0);if(qe){Fa=pe}else{break}}}$e=a[Nt>>2]|0;ur=($e|0)>0;e:do{if(ur){Sr=e+84756|0;Lr=e+72|0;Wr=e+84916|0;ii=e+84908|0;di=e+84912|0;Kn=1;$n=0;ka=0;while(1){Ct=Da+(ka<<3)|0;Bt=a[na>>2]|0;It=pi(e,r,Ct,Bt,ka,0)|0;Ht=a[Sr>>2]|0;xt=(Ht|0)==2;if(xt){Oa=0;while(1){Ut=((e+304|0)+(ka*10504|0)|0)+(Oa<<2)|0;zt=+f[Ut>>2];Vt=(((e+304|0)+(ka*10504|0)|0)+5252|0)+(Oa<<2)|0;jt=+f[Vt>>2];Wt=jt+zt;Yt=Wt*0.70710676908493042;f[Ut>>2]=Yt;Kt=zt-jt;Gt=Kt*0.70710676908493042;f[Vt>>2]=Gt;Xt=Oa+1|0;va=(Xt|0)==576;if(va){break}else{Oa=Xt}}Zt=i+(ka<<2)|0;Jt=+f[Zt>>2];Qt=a[na>>2]|0;ki(Ct,Jt,Qt,It)}en=a[Lr>>2]|0;rn=(en|0)>0;if(rn){Qn=Kn;ia=$n;aa=0;while(1){tn=((e+304|0)+(ka*10504|0)|0)+(aa*5252|0)|0;nn=(((e+304|0)+(ka*10504|0)|0)+(aa*5252|0)|0)+4788|0;an=a[nn>>2]|0;on=(an|0)==2;sn=(r+(ka<<3)|0)+(aa<<2)|0;ln=+f[sn>>2];fn=ln;un=fn*0.0033333333333333335;hn=3.5-un;dn=+$(+hn);vn=dn+1.0;if(on){kn=2.5600000000000001/vn;Sn=kn+-0.14000000000000001;Mn=Sn;Fn=+f[Wr>>2];On=Fn-Mn;Na=On}else{mn=1.28/vn;En=mn+-0.050000000000000003;wn=En;bn=+f[di>>2];_n=bn-wn;Na=_n}An=Na;Rn=An*0.10000000000000001;Tn=+W(10.0,+Rn);Nn=Tn;f[ii>>2]=Nn;mi(e,tn);Dn=(t+(ka*976|0)|0)+(aa*488|0)|0;Pn=(Ta+(ka*312|0)|0)+(aa*156|0)|0;Ln=gi(e,Dn,tn,Pn)|0;Bn=(Ln|0)==0;Gn=Bn?Qn:0;In=(La+(ka<<3)|0)+(aa<<2)|0;a[In>>2]=126;Hn=(Da+(ka<<3)|0)+(aa<<2)|0;xn=a[Hn>>2]|0;Un=xn+ia|0;zn=aa+1|0;qn=a[Lr>>2]|0;Vn=(zn|0)<(qn|0);if(Vn){Qn=Gn;ia=Un;aa=zn}else{p=qn;Xn=Gn;ea=Un;break}}}else{p=en;Xn=Kn;ea=$n}jn=ka+1|0;Wn=a[Nt>>2]|0;A=(jn|0)<(Wn|0);if(A){Kn=Xn;$n=ea;ka=jn}else{v=Wn;k=p;Jn=Xn;ra=ea;break}}Pi=(v|0)>0;if(Pi){ji=(ra|0)>0;if(!ji){R=k;ft=k;ga=0;while(1){T=(R|0)>0;if(T){ut=ft;fa=0;while(1){N=(La+(ga<<3)|0)+(fa<<2)|0;D=a[N>>2]|0;P=(Da+(ga<<3)|0)+(fa<<2)|0;L=a[P>>2]|0;C=(D|0)>(L|0);if(C){a[N>>2]=L;x=k}else{x=ut}B=fa+1|0;I=(B|0)<(x|0);if(I){ut=x;fa=B}else{ct=x;dt=x;break}}}else{ct=ft;dt=R}U=ga+1|0;z=(U|0)<(v|0);if(z){R=dt;ft=ct;ga=U}else{w=Lr;lt=v;Yn=Jn;break e}}}rt=(k|0)>0;ya=0;while(1){if(rt){ht=a[M>>2]|0;bt=ba+(ht<<2)|0;_t=a[bt>>2]|0;kt=(ra|0)>(_t|0);ua=0;while(1){yt=(Da+(ya<<3)|0)+(ua<<2)|0;Mt=a[yt>>2]|0;if(kt){Ft=ie(Mt,_t)|0;Ot=(Ft|0)/(ra|0)&-1;a[yt>>2]=Ot;Dt=Ot}else{Dt=Mt}At=(La+(ya<<3)|0)+(ua<<2)|0;Rt=a[At>>2]|0;Tt=(Rt|0)>(Dt|0);if(Tt){a[At>>2]=Dt}Pt=ua+1|0;Lt=(Pt|0)<(k|0);if(Lt){ua=Pt}else{break}}}St=ya+1|0;gt=(St|0)<(v|0);if(gt){ya=St}else{w=Lr;lt=v;Yn=Jn;break}}}else{w=Lr;lt=v;Yn=Jn}}else{y=e+72|0;w=y;lt=$e;Yn=1}}while(0);q=(Yn|0)==0;V=e+124|0;j=e+85824|0;Y=e+85096|0;K=e+85092|0;G=ta+2304|0;J=lt;_a=0;Ka=0;e:while(1){X=(_a|0)<(J|0);if(!X){if(q){$a=55}else{dr=a[V>>2]|0;vr=(dr|0)==0;if(vr){ja=1}else{$a=55}}if(($a|0)==55){$a=0;mr=a[cn>>2]|0;ja=mr}a[Pr>>2]=ja;Er=a[M>>2]|0;wr=(ja|0)<(Er|0);r:do{if(wr){_r=ja;while(1){br=ba+(_r<<2)|0;pr=a[br>>2]|0;gr=(Ka|0)>(pr|0);if(!gr){break r}yr=_r+1|0;a[Pr>>2]=yr;Mr=(yr|0)<(Er|0);if(Mr){_r=yr}else{break}}}}while(0);Fr=Fi(e,Pa)|0;Or=(Ka|0)>(Fr|0);Ar=a[Nt>>2]|0;Rr=(Ar|0)>0;if(!Or){break}if(!Rr){J=Ar;_a=0;Ka=0;continue}E=a[w>>2]|0;Dr=(E|0)>0;pa=0;Aa=Ta;while(1){if(Dr){sa=0;Ra=Aa;while(1){Cr=(Ta+(pa*312|0)|0)+(sa*156|0)|0;Br=(((e+304|0)+(pa*10504|0)|0)+(sa*5252|0)|0)+4856|0;Ir=a[Br>>2]|0;Hr=(Ir|0)>0;if(Hr){xr=(Ir|0)>1;Ba=Cr;za=0;while(1){Ur=+(za|0);zr=Ur*Ur;qr=zr*5.9917355371900827E-5;Vr=qr+1.0;jr=Ba+4|0;Yr=+f[Ba>>2];Kr=Yr;Gr=Vr*Kr;Xr=Gr;f[Ba>>2]=Xr;Zr=za+1|0;ha=(Zr|0)==(Ir|0);if(ha){break}else{Ba=jr;za=Zr}}Va=xr?Ir:1;Ua=Ra+(Va<<2)|0;Ca=Ua}else{Ca=Cr}Jr=(((e+304|0)+(pa*10504|0)|0)+(sa*5252|0)|0)+4788|0;Qr=a[Jr>>2]|0;$r=(Qr|0)==2;if($r){ei=(((e+304|0)+(pa*10504|0)|0)+(sa*5252|0)|0)+4852|0;ri=a[ei>>2]|0;ti=(ri|0)<13;if(ti){Ia=Ca;qa=ri;while(1){ni=+(qa|0);ai=ni*ni;oi=ai*1.7159763313609469E-4;si=oi+1.0;li=Ia+4|0;fi=+f[Ia>>2];ui=fi;ci=si*ui;hi=ci;f[Ia>>2]=hi;vi=Ia+8|0;bi=+f[li>>2];_i=bi;Si=si*_i;yi=Si;f[li>>2]=yi;Mi=Ia+12|0;Oi=+f[vi>>2];Ti=Oi;Ni=Ti*si;Di=Ni;f[vi>>2]=Di;Li=qa+1|0;da=(Li|0)==13;if(da){break}else{Ia=Mi;qa=Li}}}}Ci=(La+(pa<<3)|0)+(sa<<2)|0;Bi=a[Ci>>2]|0;Ii=+(Bi|0);Hi=(Da+(pa<<3)|0)+(sa<<2)|0;xi=a[Hi>>2]|0;Ui=+(xi|0);zi=Ui*0.90000000000000002;qi=Ii>zi;o=qi?Ii:zi;Vi=~~o;a[Hi>>2]=Vi;Wi=sa+1|0;Yi=(Wi|0)<(E|0);xa=Ra+156|0;if(Yi){sa=Wi;Ra=xa}else{break}}}Ki=pa+1|0;Gi=(Ki|0)<(Ar|0);Ha=Aa+312|0;if(Gi){pa=Ki;Aa=Ha}else{J=Ar;_a=0;Ka=0;continue e}}}Q=a[w>>2]|0;ee=(Q|0)>0;if(ee){oa=0;Xa=Ka;while(1){re=((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0;f[ta>>2]=0.0;te=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+5208|0;ne=a[te>>2]|0;ae=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+4764|0;f[ae>>2]=0.0;oe=Qa+(ne<<2)|0;se=576-ne|0;le=se<<2;pn(oe|0,0,le|0)|0;ue=a[j>>2]|0;Zn[ue&7](re,Qa,ne,ta);ce=+f[ta>>2];he=ce>9.9999996826552254E-21;if(he){de=a[Y>>2]|0;ve=de>>>1;m=ve&1;me=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+4864|0;Ee=a[me>>2]|0;we=(Ee|0)>0;if(we){Ma=0;while(1){be=(e+84936|0)+(Ma<<2)|0;a[be>>2]=m;_e=Ma+1|0;ke=a[me>>2]|0;Se=(_e|0)<(ke|0);if(Se){Ma=_e}else{break}}}ye=(Da+(_a<<3)|0)+(oa<<2)|0;Me=a[ye>>2]|0;Fe=(Me|0)==0;if(Fe){Za=Xa}else{Oe=(Ta+(_a*312|0)|0)+(oa*156|0)|0;Ae=(La+(_a<<3)|0)+(oa<<2)|0;Re=a[Ae>>2]|0;Te=Re+Me|0;De=(Te|0)/2&-1;Pe=a[K>>2]|0;pn(G|0,0,2304)|0;Le=Me+-42|0;Ce=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+4768|0;s=Re;l=Me;ma=0;Wa=De;while(1){Be=(Wa|0)>(Le|0);n=Be?0:Pe;a[K>>2]=n;Ie=Ei(e,re,Oe,Qa,oa,Wa)|0;He=(Ie|0)<1;if(He){xe=a[Ce>>2]|0;yn(ta|0,re|0,5252)|0;yn(na|0,Qa|0,2304)|0;Ue=xe+-32|0;ze=Ue-s|0;Ve=Ue+s|0;je=(Ve|0)/2&-1;u=s;h=Ue;ca=ze;Ea=1;Ya=je}else{We=Wa+32|0;Ye=l-We|0;Ke=l+We|0;Ge=(Ke|0)/2&-1;Xe=(ma|0)==0;if(Xe){u=We;h=l;ca=Ye;Ea=0;Ya=Ge}else{yn(re|0,ta|0,5252)|0;yn(Qa|0,na|0,2304)|0;u=We;h=l;ca=Ye;Ea=2;Ya=Ge}}Ze=(ca|0)>12;if(Ze){s=u;l=h;ma=Ea;Wa=Ya}else{wa=Ea;break}}a[K>>2]=Pe;Je=(wa|0)==2;if(Je){Qe=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+2304|0;yn(Qe|0,G|0,2304)|0}er=a[Y>>2]|0;rr=er&1;ir=(rr|0)==0;if(!ir){wi(e,re,Oe,Qa)}tr=a[Ce>>2]|0;nr=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+4844|0;ar=a[nr>>2]|0;or=tr+Xa|0;sr=or+ar|0;Za=sr}}else{ge=(((e+304|0)+(_a*10504|0)|0)+(oa*5252|0)|0)+2304|0;pn(ge|0,0,2304)|0;Za=Xa}lr=oa+1|0;fr=a[w>>2]|0;cr=(lr|0)<(fr|0);if(cr){oa=lr;Xa=Za}else{Ja=Za;break}}_=a[Nt>>2]|0;b=_;Ga=Ja}else{b=J;Ga=Ka}hr=_a+1|0;J=b;_a=hr;Ka=Ga}if(!Rr){st=a[Pa>>2]|0;Ri(e,st);c=eo;return}Tr=e+304|0;Nr=e+36|0;S=a[w>>2]|0;Xi=S;vt=Ar;Sa=0;while(1){Zi=(Xi|0)>0;if(Zi){la=0;while(1){Ji=((e+304|0)+(Sa*10504|0)|0)+(la*5252|0)|0;wt(e,Sa,la,Tr);Qi=a[Nr>>2]|0;$i=(Qi|0)==1;if($i){mt(e,Ji)}Ai(e,Ji);et=la+1|0;it=a[w>>2]|0;tt=(et|0)<(it|0);if(tt){la=et}else{d=it;break}}g=a[Nt>>2]|0;ot=g;Et=d}else{ot=vt;Et=Xi}nt=Sa+1|0;at=(nt|0)<(ot|0);if(at){Xi=Et;vt=ot;Sa=nt}else{break}}st=a[Pa>>2]|0;Ri(e,st);c=eo;return}function ci(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,Y=0,K=0;var G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0;var me=0,Ee=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0;var Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0;var ir=0,tr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0.0,Sr=0,gr=0.0;var yr=0.0,Mr=0.0,Fr=0.0,Or=0.0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0.0,Lr=0.0,Cr=0.0,Br=0.0,Ir=0.0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0;var jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0;var ui=0,ci=0,hi=0,di=0,vi=0,Ei=0,wi=0,bi=0,_i=0,ki=0,Si=0,yi=0,Mi=0,Oi=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0.0;var Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0;var it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0;var St=0,gt=0;gt=c;c=c+9936|0;pt=gt;_t=gt+9932|0;Wi=gt+9928|0;vt=gt+9304|0;kt=gt+88|0;rt=gt+24|0;mt=gt+8|0;wt=gt+4|0;pn(kt|0,0,9216)|0;b=e+152|0;_=a[b>>2]|0;Ze=(_|0)==0;if(Ze){lr=e+116|0;_r=a[lr>>2]|0;Nr=e+84744|0;a[Nr>>2]=_r;Fi(e,Wi)|0;qr=e+52144|0;$r=a[qr>>2]|0;ui=e+112|0;yi=a[ui>>2]|0;a[Nr>>2]=yi;a[Nr>>2]=1;p=kr(e)|0;a[_t>>2]=p;N=a[lr>>2]|0;q=(N|0)<1;if(q){Xe=N}else{ft=1;while(1){a[Nr>>2]=ft;ee=Fi(e,_t)|0;he=rt+(ft<<2)|0;a[he>>2]=ee;ye=ft+1|0;Ce=a[lr>>2]|0;Ye=(ft|0)<(Ce|0);if(Ye){ft=ye}else{Xe=Ce;break}}}Ge=rt+(Xe<<2)|0;Je=a[Ge>>2]|0;xe=$r;Et=Je}else{Qe=e+84744|0;a[Qe>>2]=0;$e=Fi(e,Wi)|0;a[rt>>2]=$e;er=e+52144|0;rr=a[er>>2]|0;xe=rr;Et=$e}ir=e+76|0;tr=a[ir>>2]|0;ar=(tr|0)>0;if(ar){or=e+84756|0;sr=e+72|0;fr=e+84912|0;ur=e+84908|0;Ui=1;Yi=0;it=0;while(1){vr=mt+(it<<3)|0;mr=a[Wi>>2]|0;pi(e,r,vr,mr,it,0)|0;Er=a[or>>2]|0;wr=(Er|0)==2;if(wr){ut=0;while(1){br=((e+304|0)+(it*10504|0)|0)+(ut<<2)|0;pr=+f[br>>2];Sr=(((e+304|0)+(it*10504|0)|0)+5252|0)+(ut<<2)|0;gr=+f[Sr>>2];yr=gr+pr;Mr=yr*0.70710676908493042;f[br>>2]=Mr;Fr=pr-gr;Or=Fr*0.70710676908493042;f[Sr>>2]=Or;Ar=ut+1|0;et=(Ar|0)==576;if(et){break}else{ut=Ar}}}Rr=a[sr>>2]|0;Tr=(Rr|0)>0;if(Tr){ji=Ui;Xi=Yi;Ji=0;while(1){Dr=((e+304|0)+(it*10504|0)|0)+(Ji*5252|0)|0;Pr=+f[fr>>2];Lr=Pr;Cr=Lr*0.10000000000000001;Br=+W(10.0,+Cr);Ir=Br;f[ur>>2]=Ir;mi(e,Dr);Hr=(t+(it*976|0)|0)+(Ji*488|0)|0;xr=(vt+(it*312|0)|0)+(Ji*156|0)|0;Ur=gi(e,Hr,Dr,xr)|0;zr=(Ur|0)==0;zi=zr?ji:0;Vr=(mt+(it<<3)|0)+(Ji<<2)|0;jr=a[Vr>>2]|0;Wr=jr+Xi|0;Yr=Ji+1|0;Kr=a[sr>>2]|0;Gr=(Yr|0)<(Kr|0);if(Gr){ji=zi;Xi=Wr;Ji=Yr}else{d=Kr;qi=zi;Ki=Wr;break}}}else{d=Rr;qi=Ui;Ki=Yi}Xr=it+1|0;Zr=a[ir>>2]|0;Jr=(Xr|0)<(Zr|0);if(Jr){Ui=qi;Yi=Ki;it=Xr}else{l=Zr;v=d;Vi=qi;Gi=Ki;break}}cr=(l|0)>0;if(cr){hr=(Gi|0)>(Et|0);dr=(Gi|0)>0;bt=hr&dr;Qr=v;at=0;while(1){ei=(Qr|0)>0;if(ei){ze=Qr;Qi=0;while(1){if(bt){ri=(mt+(at<<3)|0)+(Qi<<2)|0;ii=a[ri>>2]|0;ti=ie(ii,Et)|0;ni=(ti|0)/(Gi|0)&-1;a[ri>>2]=ni;si=v}else{si=ze}ai=Qi+1|0;oi=(ai|0)<(si|0);if(oi){ze=si;Qi=ai}else{qe=si;break}}}else{qe=Qr}li=at+1|0;fi=(li|0)<(l|0);if(fi){Qr=qe;at=li}else{break}}}ci=(Vi|0)==0;if(ci){oe=xe;hi=l;xi=0}else{Ue=l;Hi=Vi;St=21}}else{Ue=tr;Hi=1;St=21}if((St|0)==21){oe=0;hi=Ue;xi=Hi}di=(hi|0)>0;if(di){vi=e+72|0;Ei=e+85824|0;wi=e+85096|0;h=a[vi>>2]|0;Ve=hi;bi=h;tt=0;while(1){_i=(bi|0)>0;if(_i){Zi=0;while(1){ki=((e+304|0)+(tt*10504|0)|0)+(Zi*5252|0)|0;Si=(kt+(tt*4608|0)|0)+(Zi*2304|0)|0;f[_t>>2]=0.0;Mi=(((e+304|0)+(tt*10504|0)|0)+(Zi*5252|0)|0)+5208|0;Oi=a[Mi>>2]|0;Ti=(((e+304|0)+(tt*10504|0)|0)+(Zi*5252|0)|0)+4764|0;f[Ti>>2]=0.0;Ni=((kt+(tt*4608|0)|0)+(Zi*2304|0)|0)+(Oi<<2)|0;Di=576-Oi|0;Pi=Di<<2;pn(Ni|0,0,Pi|0)|0;Li=a[Ei>>2]|0;Zn[Li&7](ki,Si,Oi,_t);Ci=+f[_t>>2];Bi=Ci>9.9999996826552254E-21;if(Bi){Ii=a[wi>>2]|0;k=Ii>>>1;u=k&1;S=(((e+304|0)+(tt*10504|0)|0)+(Zi*5252|0)|0)+4864|0;g=a[S>>2]|0;y=(g|0)>0;if(y){lt=0;while(1){M=(e+84936|0)+(lt<<2)|0;a[M>>2]=u;F=lt+1|0;O=a[S>>2]|0;A=(F|0)<(O|0);if(A){lt=F}else{break}}}}else{R=(((e+304|0)+(tt*10504|0)|0)+(Zi*5252|0)|0)+2304|0;pn(R|0,0,2304)|0;T=(mt+(tt<<3)|0)+(Zi<<2)|0;a[T>>2]=0}D=Zi+1|0;P=a[vi>>2]|0;L=(D|0)<(P|0);if(L){Zi=D}else{s=P;break}}m=a[ir>>2]|0;I=m;je=s}else{I=Ve;je=bi}C=tt+1|0;B=(C|0)<(I|0);if(B){Ve=I;bi=je;tt=C}else{break}}}H=we(e|0,kt|0,vt|0,mt|0)|0;x=a[b>>2]|0;U=(x|0)==0;do{if(U){z=(xi|0)==0;if(z){St=36}else{V=e+124|0;j=a[V>>2]|0;Y=(j|0)==0;if(Y){st=1}else{St=36}}if((St|0)==36){K=e+112|0;G=a[K>>2]|0;st=G}X=e+116|0;Z=a[X>>2]|0;J=(st|0)<(Z|0);e:do{if(J){ct=st;while(1){Q=rt+(ct<<2)|0;$=a[Q>>2]|0;re=(H|0)>($|0);if(!re){ot=ct;break e}te=ct+1|0;ne=(te|0)<(Z|0);if(ne){ct=te}else{ot=te;break}}}else{ot=st}}while(0);ae=(ot|0)>(Z|0);n=ae?Z:ot;se=(oe|0)>0;if(!se){be=e+84744|0;a[be>>2]=n;ke=n;break}le=(Z|0)>(n|0);e:do{if(le){dt=Z;while(1){fe=rt+(dt<<2)|0;ue=a[fe>>2]|0;ce=ue-H|0;de=(ce|0)>(oe|0);if(!de){ht=dt;break e}ve=dt+-1|0;me=(ve|0)>(n|0);if(me){dt=ve}else{ht=ve;break}}}else{ht=Z}}while(0);Ee=e+84744|0;a[Ee>>2]=ht;ke=ht}else{_e=e+84744|0;a[_e>>2]=0;ke=0}}while(0);pe=rt+(ke<<2)|0;Se=a[pe>>2]|0;ge=(H|0)>(Se|0);if(ge){xt(e,11768,pt);nr(-1)}Fi(e,wt)|0;Me=a[ir>>2]|0;Fe=(Me|0)>0;if(!Fe){He=a[wt>>2]|0;Ri(e,He);c=gt;return}Oe=e+72|0;E=a[Oe>>2]|0;Ae=E;We=Me;nt=0;while(1){Re=(Ae|0)>0;if(Re){$i=0;while(1){Te=((e+304|0)+(nt*10504|0)|0)+($i*5252|0)|0;Ai(e,Te);Ne=$i+1|0;De=a[Oe>>2]|0;Pe=(Ne|0)<(De|0);if(Pe){$i=Ne}else{o=De;break}}w=a[ir>>2]|0;Ie=w;Ke=o}else{Ie=We;Ke=Ae}Le=nt+1|0;Be=(Le|0)<(Ie|0);if(Be){Ae=Ke;We=Ie;nt=Le}else{break}}He=a[wt>>2]|0;Ri(e,He);c=gt;return}function hi(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,Y=0,K=0;var G=0,X=0,Z=0,J=0,Q=0.0,$=0,ee=0.0,re=0.0,te=0.0,ne=0.0,ae=0.0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0.0;var me=0.0,Ee=0.0,we=0.0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0.0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0;var Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0;var rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0.0,pr=0.0;var Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0.0,Dr=0.0,Pr=0.0,Lr=0.0,Cr=0.0,Br=0,Ir=0.0,Hr=0.0,xr=0,Ur=0,zr=0;var qr=0.0,Vr=0.0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0.0,$r=0,ei=0.0,ri=0.0,ii=0.0,ti=0,ni=0,ai=0,oi=0,si=0;var li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,wi=0,bi=0,_i=0,pi=0,Si=0,yi=0,Mi=0,Oi=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0;var Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0.0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0.0,Qi=0,$i=0,et=0;var rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,Et=0,bt=0.0,_t=0,pt=0,kt=0,St=0.0;var gt=0.0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0;Pt=c;c=c+2496|0;Mt=Pt+2484|0;Et=Pt+2328|0;Nt=Pt+24|0;Ft=Pt+8|0;pt=Pt;v=e+304|0;a[pt>>2]=0;m=e+76|0;dr=a[m>>2]|0;Mr=e+116|0;Br=a[Mr>>2]|0;Kr=e+84744|0;a[Kr>>2]=Br;ni=Fi(e,Mt)|0;a[Kr>>2]=1;wi=kr(e)|0;Pi=e+24|0;ji=a[Pi>>2]|0;E=ji<<3;O=wi-E|0;H=a[m>>2]|0;Z=e+72|0;le=a[Z>>2]|0;_e=ie(le,H)|0;Te=(O|0)/(_e|0)&-1;ze=e+108|0;Qe=a[ze>>2]|0;fr=dr*576000|0;vr=ie(fr,Qe)|0;a[Mt>>2]=vr;mr=e+85096|0;Er=a[mr>>2]|0;wr=Er&1;br=(wr|0)==0;if(br){Or=vr}else{_r=+(vr|0);pr=_r*1.0900000000000001;Sr=~~pr;a[Mt>>2]=Sr;Or=Sr}gr=e+64|0;yr=a[gr>>2]|0;Fr=(Or|0)/(yr|0)&-1;Ar=Fr-E|0;Rr=(Ar|0)/(_e|0)&-1;a[Mt>>2]=Rr;Tr=e+244|0;Nr=+f[Tr>>2];Dr=Nr;Pr=11.0-Dr;Lr=Pr*0.012727272727272728;Cr=Lr+0.93000000000000005;Ir=Cr;Hr=Ir;xr=Hr<0.90000000000000002;St=xr?0.89999997615814208:Ir;Ur=(H|0)>0;if(Ur){zr=St>1.0;gt=zr?1.0:St;qr=+(Rr|0);Vr=gt*qr;jr=~~Vr;Wr=(Rr|0)/2&-1;Yr=Rr*3|0;Gr=(Yr|0)/2&-1;Xr=(le|0)>0;ut=0;while(1){if(Xr){nt=0;yt=0;while(1){Zr=(Ft+(ut<<3)|0)+(nt<<2)|0;a[Zr>>2]=jr;Jr=(r+(ut<<3)|0)+(nt<<2)|0;Qr=+f[Jr>>2];$r=Qr>700.0;if($r){ei=Qr+-700.0;ri=ei;ii=ri*0.7142857142857143;ti=~~ii;ai=(((e+304|0)+(ut*10504|0)|0)+(nt*5252|0)|0)+4788|0;oi=a[ai>>2]|0;si=(oi|0)==2;li=(ti|0)<(Wr|0);fi=li&si;rt=fi?Wr:ti;ui=(rt|0)>(Gr|0);ci=(rt|0)<0;n=ci?0:rt;it=ui?Gr:n;hi=it+jr|0;a[Zr>>2]=hi;di=hi}else{di=jr}vi=(di|0)>4095;if(vi){a[Zr>>2]=4095;_i=4095}else{_i=di}bi=_i+yt|0;pi=nt+1|0;Si=(pi|0)<(le|0);if(Si){nt=pi;yt=bi}else{o=bi;break}}yi=(o|0)>7680;if(yi){at=0;while(1){Mi=(Ft+(ut<<3)|0)+(at<<2)|0;Oi=a[Mi>>2]|0;Ti=Oi*7680|0;Ni=(Ti|0)/(o|0)&-1;a[Mi>>2]=Ni;Di=at+1|0;Li=(Di|0)<(le|0);if(Li){at=Di}else{break}}}}Ci=ut+1|0;Bi=(Ci|0)<(H|0);if(Bi){ut=Ci}else{break}}}Ii=e+84756|0;Hi=a[Ii>>2]|0;xi=(Hi|0)==2;if(xi){if(Ur){Ui=+f[i>>2];zi=ie(Rr,le)|0;ki(Ft,Ui,zi,7680);qi=a[m>>2]|0;Vi=(qi|0)>1;if(Vi){Xi=1;while(1){u=a[Mt>>2]|0;h=a[Z>>2]|0;Gi=Ft+(Xi<<3)|0;Zi=i+(Xi<<2)|0;Ji=+f[Zi>>2];Qi=ie(u,h)|0;ki(Gi,Ji,Qi,7680);$i=Xi+1|0;et=a[m>>2]|0;w=($i|0)<(et|0);if(w){Xi=$i}else{Wi=et;Dt=17;break}}}else{Wi=qi;Dt=17}}else{Dt=30}}else{Wi=H;Dt=17}if((Dt|0)==17){Yi=(Wi|0)>0;if(Yi){d=a[Z>>2]|0;Ki=(d|0)>0;ct=0;Ot=0;while(1){if(Ki){ot=0;Tt=Ot;while(1){b=(Ft+(ct<<3)|0)+(ot<<2)|0;_=a[b>>2]|0;p=(_|0)>4095;if(p){a[b>>2]=4095;S=4095}else{S=_}k=S+Tt|0;g=ot+1|0;y=(g|0)<(d|0);if(y){ot=g;Tt=k}else{At=k;break}}}else{At=Ot}M=ct+1|0;F=(M|0)<(Wi|0);if(F){ct=M;Ot=At}else{Rt=At;break}}A=(Rt|0)>(ni|0);R=(Rt|0)>0;kt=R&A;if(kt){T=(d|0)>0;hr=Wi;ht=0;while(1){if(T){st=0;while(1){N=(Ft+(ht<<3)|0)+(st<<2)|0;D=a[N>>2]|0;P=ie(D,ni)|0;L=(P|0)/(Rt|0)&-1;a[N>>2]=L;C=st+1|0;B=(C|0)<(d|0);if(B){st=C}else{U=Wi;break}}}else{U=hr}I=ht+1|0;x=(I|0)<(U|0);if(x){hr=U;ht=I}else{break}}}z=(Wi|0)>0;if(z){q=e+84912|0;V=e+84916|0;j=e+84908|0;Y=e+85824|0;K=e+36|0;ft=0;while(1){G=a[Ii>>2]|0;X=(G|0)==2;if(X){dt=0;while(1){J=((e+304|0)+(ft*10504|0)|0)+(dt<<2)|0;Q=+f[J>>2];$=(((e+304|0)+(ft*10504|0)|0)+5252|0)+(dt<<2)|0;ee=+f[$>>2];re=ee+Q;te=re*0.70710676908493042;f[J>>2]=te;ne=Q-ee;ae=ne*0.70710676908493042;f[$>>2]=ae;oe=dt+1|0;lt=(oe|0)==576;if(lt){break}else{dt=oe}}}se=a[Z>>2]|0;fe=(se|0)>0;if(fe){tt=0;while(1){ue=((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0;ce=(((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0)+4788|0;he=a[ce>>2]|0;de=(he|0)==2;_t=de?V:q;bt=+f[_t>>2];ve=bt;me=ve*0.10000000000000001;Ee=+W(10.0,+me);we=Ee;f[j>>2]=we;mi(e,ue);f[Mt>>2]=0.0;be=(((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0)+5208|0;pe=a[be>>2]|0;ke=(((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0)+4764|0;f[ke>>2]=0.0;Se=Nt+(pe<<2)|0;ge=576-pe|0;ye=ge<<2;pn(Se|0,0,ye|0)|0;Me=a[Y>>2]|0;Zn[Me&7](ue,Nt,pe,Mt);Fe=+f[Mt>>2];Oe=Fe>9.9999996826552254E-21;if(Oe){Ae=a[mr>>2]|0;Re=Ae>>>1;s=Re&1;Ne=(((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0)+4864|0;De=a[Ne>>2]|0;Pe=(De|0)>0;if(Pe){vt=0;while(1){Le=(e+84936|0)+(vt<<2)|0;a[Le>>2]=s;Ce=vt+1|0;Be=a[Ne>>2]|0;Ie=(Ce|0)<(Be|0);if(Ie){vt=Ce}else{break}}}xe=(t+(ft*976|0)|0)+(tt*488|0)|0;Ue=gi(e,xe,ue,Et)|0;qe=(Ue|0)==0;Ve=(Ft+(ft<<3)|0)+(tt<<2)|0;if(qe){a[Ve>>2]=Te;je=Te}else{l=a[Ve>>2]|0;je=l}Ei(e,ue,Et,Nt,tt,je)|0}else{He=(((e+304|0)+(ft*10504|0)|0)+(tt*5252|0)|0)+2304|0;pn(He|0,0,2304)|0}wt(e,ft,tt,v);We=a[K>>2]|0;Ye=(We|0)==1;if(Ye){mt(e,ue)}Ai(e,ue);Ke=tt+1|0;Ge=a[Z>>2]|0;Xe=(Ke|0)<(Ge|0);if(Xe){tt=Ke}else{break}}}Ze=ft+1|0;Je=a[m>>2]|0;$e=(Ze|0)<(Je|0);if($e){ft=Ze}else{break}}}}else{Dt=30}}if((Dt|0)==30){}er=e+112|0;rr=a[er>>2]|0;a[Kr>>2]=rr;ir=a[Mr>>2]|0;tr=(rr|0)>(ir|0);if(tr){cr=a[pt>>2]|0;Ri(e,cr);c=Pt;return}while(1){nr=Fi(e,pt)|0;ar=(nr|0)>-1;if(ar){Dt=51;break}or=a[Kr>>2]|0;sr=or+1|0;a[Kr>>2]=sr;lr=a[Mr>>2]|0;ur=(or|0)<(lr|0);if(!ur){Dt=51;break}}if((Dt|0)==51){cr=a[pt>>2]|0;Ri(e,cr);c=Pt;return}}function di(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0.0,b=0,_=0.0,p=0,k=0.0,S=0.0,g=0.0,y=0.0,M=0,F=0;var O=0.0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0.0,I=0.0,H=0.0,x=0.0,U=0,z=0,q=0,V=0,j=0,Y=0,K=0;var G=0,X=0.0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0;var ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0.0,Ne=0,De=0,Pe=0;var Le=0,Ce=0,Be=0,Ie=0;Ie=c;c=c+2480|0;Pe=Ie+2476|0;Re=Ie+2320|0;Ce=Ie+16|0;Le=Ie+8|0;De=Ie;o=e+304|0;Fi(e,De)|0;s=e+76|0;p=a[s>>2]|0;N=(p|0)>0;if(!N){pe=a[De>>2]|0;Ri(e,pe);c=Ie;return}q=e+84756|0;ee=e+72|0;ce=e+84912|0;ke=e+84916|0;Se=e+84908|0;ge=e+85824|0;l=e+85096|0;u=e+36|0;Fe=0;while(1){h=a[De>>2]|0;d=pi(e,r,Le,h,Fe,Fe)|0;v=a[q>>2]|0;m=(v|0)==2;if(m){Oe=0;while(1){E=((e+304|0)+(Fe*10504|0)|0)+(Oe<<2)|0;w=+f[E>>2];b=(((e+304|0)+(Fe*10504|0)|0)+5252|0)+(Oe<<2)|0;_=+f[b>>2];k=_+w;S=k*0.70710676908493042;f[E>>2]=S;g=w-_;y=g*0.70710676908493042;f[b>>2]=y;M=Oe+1|0;Me=(M|0)==576;if(Me){break}else{Oe=M}}F=i+(Fe<<2)|0;O=+f[F>>2];A=a[De>>2]|0;ki(Le,O,A,d)}R=a[ee>>2]|0;T=(R|0)>0;if(T){ye=0;while(1){D=((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0;P=(((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0)+4788|0;L=a[P>>2]|0;C=(L|0)==2;Ne=C?ke:ce;Te=+f[Ne>>2];B=Te;I=B*0.10000000000000001;H=+W(10.0,+I);x=H;f[Se>>2]=x;mi(e,D);f[Pe>>2]=0.0;U=(((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0)+5208|0;z=a[U>>2]|0;V=(((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0)+4764|0;f[V>>2]=0.0;j=Ce+(z<<2)|0;Y=576-z|0;K=Y<<2;pn(j|0,0,K|0)|0;G=a[ge>>2]|0;Zn[G&7](D,Ce,z,Pe);X=+f[Pe>>2];Z=X>9.9999996826552254E-21;if(Z){J=a[l>>2]|0;Q=J>>>1;n=Q&1;$=(((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0)+4864|0;re=a[$>>2]|0;ie=(re|0)>0;if(ie){Ae=0;while(1){te=(e+84936|0)+(Ae<<2)|0;a[te>>2]=n;ne=Ae+1|0;ae=a[$>>2]|0;oe=(ne|0)<(ae|0);if(oe){Ae=ne}else{break}}}le=(t+(Fe*976|0)|0)+(ye*488|0)|0;gi(e,le,D,Re)|0;fe=Le+(ye<<2)|0;ue=a[fe>>2]|0;Ei(e,D,Re,Ce,ye,ue)|0}else{se=(((e+304|0)+(Fe*10504|0)|0)+(ye*5252|0)|0)+2304|0;pn(se|0,0,2304)|0}wt(e,Fe,ye,o);he=a[u>>2]|0;de=(he|0)==1;if(de){mt(e,D)}Ai(e,D);ve=ye+1|0;me=a[ee>>2]|0;Ee=(ve|0)<(me|0);if(Ee){ye=ve}else{break}}}we=Fe+1|0;be=a[s>>2]|0;_e=(we|0)<(be|0);if(_e){Fe=we}else{break}}pe=a[De>>2]|0;Ri(e,pe);c=Ie;return}function vi(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0.0,a=0,o=0,s=0.0,l=0,u=0.0,h=0,d=0,v=0,m=0.0,E=0.0,w=0.0,b=0.0,_=0.0,p=0.0,k=0.0,S=0,g=0.0,y=0,M=0;var F=0;F=c;f[t>>2]=0.0;a=(i|0)<0;if(a){return}o=e+4764|0;w=0.0;y=0;while(1){v=e+(y<<2)|0;m=+f[v>>2];g=+V(+m);E=w+g;f[t>>2]=E;b=g;_=+j(+b);p=_*b;k=+j(+p);s=k;l=r+(y<<2)|0;f[l>>2]=s;u=+f[o>>2];h=s>u;if(h){f[o>>2]=s}S=(y|0)==(i|0);if(S){break}d=y+1|0;n=+f[t>>2];w=n;y=d}return}function mi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0.0,y=0;var M=0.0,F=0.0,O=0.0,A=0.0,R=0,T=0.0,N=0,D=0,P=0,L=0.0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0.0,$=0,ee=0.0,re=0.0,ie=0,te=0.0,ne=0.0,ae=0,oe=0.0,se=0,le=0,fe=0,ue=0.0,ce=0;var he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0.0;var De=0,Pe=0.0,Le=0.0,Ce=0,Be=0.0,Ie=0.0,He=0,xe=0.0,Ue=0,ze=0,qe=0,Ve=0.0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0;var Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0.0,hr=0,dr=0.0,vr=0,mr=0,Er=0.0,wr=0.0;var br=0.0,_r=0,pr=0.0,kr=0,Sr=0,gr=0,yr=0.0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0;var Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0;var ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,gi=0,yi=0;var Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0;var Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0;var ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0.0,kt=0.0,St=0.0,gt=0.0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0.0;var Nt=0.0,Dt=0.0,Pt=0.0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0;var Jt=0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0;vn=c;c=c+2304|0;Vt=vn;s=r+4768|0;a[s>>2]=0;l=r+4772|0;a[l>>2]=0;vr=r+4776|0;a[vr>>2]=0;Zr=r+4780|0;a[Zr>>2]=210;si=r+4784|0;a[si>>2]=0;bi=r+4796|0;Ti=e+64|0;hn=bi;mn=hn+52|0;do{a[hn>>2]=0|0;hn=hn+4|0}while((hn|0)<(mn|0));zi=a[Ti>>2]|0;Qi=(zi|0)<8001;ft=r+4848|0;if(Qi){a[ft>>2]=17;n=17;o=9;Ye=17}else{a[ft>>2]=21;u=e+85092|0;S=a[u>>2]|0;P=(S|0)!=0;W=P?22:21;n=W;o=12;Ye=21}ie=r+4852|0;a[ie>>2]=o;de=r+4856|0;a[de>>2]=n;ye=r+4864|0;a[ye>>2]=n;Ce=r+4860|0;a[Ce>>2]=Ye;tr=r+4868|0;a[tr>>2]=11;ln=0;while(1){mr=ln+1|0;Fr=(e+21360|0)+(mr<<2)|0;Ir=a[Fr>>2]|0;Vr=(e+21360|0)+(ln<<2)|0;jr=a[Vr>>2]|0;Wr=Ir-jr|0;Yr=(r+4872|0)+(ln<<2)|0;a[Yr>>2]=Wr;Kr=(r+5028|0)+(ln<<2)|0;a[Kr>>2]=3;Rt=(mr|0)==22;if(Rt){break}else{ln=mr}}Gr=r+4788|0;Xr=a[Gr>>2]|0;Jr=(Xr|0)==2;if(Jr){a[ie>>2]=0;a[ft>>2]=0;Qr=r+4792|0;$r=a[Qr>>2]|0;ei=($r|0)==0;if(ei){fi=0;hi=0}else{a[ie>>2]=3;ri=e+76|0;ii=a[ri>>2]|0;ti=ii<<1;ni=ti+4|0;a[ft>>2]=ni;fi=3;hi=ni}ai=a[Ti>>2]|0;oi=(ai|0)<8001;if(oi){li=9-fi|0;ui=li*3|0;ci=ui+hi|0;a[ye>>2]=ci;cn=ci}else{di=e+85092|0;vi=a[di>>2]|0;mi=(vi|0)!=0;Ei=mi?13:12;wi=Ei-fi|0;_i=wi*3|0;pi=_i+hi|0;a[ye>>2]=pi;ki=12-fi|0;gi=ki*3|0;yi=gi+hi|0;cn=yi}a[Ce>>2]=cn;Mi=cn+-18|0;a[tr>>2]=Mi;a[de>>2]=hi;Fi=(e+21360|0)+(hi<<2)|0;Oi=a[Fi>>2]|0;yn(Vt|0,r|0,2304)|0;Ai=r+(Oi<<2)|0;i=(e+21452|0)+(fi<<2)|0;t=a[i>>2]|0;Li=t;Ht=Ai;fn=fi;while(1){Ri=fn+1|0;Ni=(e+21452|0)+(Ri<<2)|0;Di=a[Ni>>2]|0;Pi=(Di|0)>(Li|0);if(Pi){Ui=Di-Li|0;Ut=Ht;$t=Li;while(1){Ci=$t*3|0;Bi=Vt+(Ci<<2)|0;Ii=a[Bi>>2]|0;Hi=Ut+4|0;a[Ut>>2]=Ii;xi=$t+1|0;Mt=(xi|0)==(Di|0);if(Mt){break}else{Ut=Hi;$t=xi}}tn=Ht+(Ui<<2)|0;zt=tn;en=Li;while(1){Tr=en*3|0;Nr=Tr+1|0;Dr=Vt+(Nr<<2)|0;Pr=a[Dr>>2]|0;Lr=zt+4|0;a[zt>>2]=Pr;Cr=en+1|0;Ft=(Cr|0)==(Di|0);if(Ft){break}else{zt=Lr;en=Cr}}sn=Ui<<1;nn=Ht+(sn<<2)|0;qt=nn;rn=Li;while(1){Br=rn*3|0;Hr=Br+2|0;xr=Vt+(Hr<<2)|0;Ur=a[xr>>2]|0;zr=qt+4|0;a[qt>>2]=Ur;qr=rn+1|0;Ot=(qr|0)==(Di|0);if(Ot){break}else{qt=zr;rn=qr}}an=Ui*3|0;on=Ht+(an<<2)|0;xt=on}else{xt=Ht}At=(Ri|0)==13;if(At){Yt=hi;un=fi;break}else{Li=Di;Ht=xt;fn=Ri}}while(1){qi=un+1|0;Vi=(e+21452|0)+(qi<<2)|0;ji=a[Vi>>2]|0;Wi=(e+21452|0)+(un<<2)|0;Yi=a[Wi>>2]|0;Ki=ji-Yi|0;Gi=Yt+2|0;Xi=(r+4872|0)+(Gi<<2)|0;a[Xi>>2]=Ki;Zi=Yt+1|0;Ji=(r+4872|0)+(Zi<<2)|0;a[Ji>>2]=Ki;$i=(r+4872|0)+(Yt<<2)|0;a[$i>>2]=Ki;et=(r+5028|0)+(Yt<<2)|0;a[et>>2]=0;rt=(r+5028|0)+(Zi<<2)|0;a[rt>>2]=1;it=(r+5028|0)+(Gi<<2)|0;a[it>>2]=2;tt=Yt+3|0;yt=(qi|0)==13;if(yt){break}else{Yt=tt;un=qi}}}nt=r+5184|0;a[nt>>2]=0;at=r+5188|0;a[at>>2]=11824;ot=r+5192|0;st=r+5208|0;a[ot>>2]=0|0;a[ot+4>>2]=0|0;a[ot+8>>2]=0|0;a[ot+12>>2]=0|0;a[st>>2]=575;lt=r+4608|0;pn(lt|0,0,156)|0;ut=e+104|0;ct=a[ut>>2]|0;if((ct|0)==0|(ct|0)==3|(ct|0)==4|(ct|0)==1){c=vn;return}ht=e+85796|0;dt=a[ht>>2]|0;vt=a[Gr>>2]|0;mt=(vt|0)==2;if(!mt){Et=dt+8|0;wt=dt+20|0;bt=e+84852|0;Lt=5;e:while(1){w=(e+21508|0)+(Lt<<2)|0;b=a[w>>2]|0;_=Lt+1|0;p=(e+21508|0)+(_<<2)|0;k=a[p>>2]|0;g=+f[Et>>2];y=(dt+164|0)+(Lt<<2)|0;M=+f[y>>2];F=+f[wt>>2];O=+Si(g,M,F,0.0);A=+f[bt>>2];R=A>9.999999960041972E-13;T=A*O;gt=R?T:O;N=(k|0)>(b|0);if(N){Wt=k;while(1){jt=Wt+-1|0;D=r+(jt<<2)|0;L=+f[D>>2];Pt=+V(+L);C=Pt>2]=0.0;B=(jt|0)>(b|0);if(B){Wt=jt}else{break}}}I=Lt+-1|0;H=(Lt|0)>0;if(H){Lt=I}else{dn=32;break}}if((dn|0)==32){c=vn;return}}_t=e+21500|0;h=e+21504|0;d=e+21536|0;v=dt+8|0;m=dt+20|0;E=e+84904|0;Ct=5;e:while(1){x=a[_t>>2]|0;U=x*3|0;z=(e+21536|0)+(Ct<<2)|0;q=a[z>>2]|0;j=a[d>>2]|0;Y=q-j|0;K=U+Y|0;G=Ct+1|0;X=(e+21536|0)+(G<<2)|0;Z=a[X>>2]|0;J=Z-q|0;Q=+f[v>>2];$=(dt+188|0)+(Ct<<2)|0;ee=+f[$>>2];re=+f[m>>2];te=+Si(Q,ee,re,0.0);ne=+f[E>>2];ae=ne>9.999999960041972E-13;oe=ne*te;pt=ae?oe:te;se=(J|0)>0;if(se){le=J+K|0;Zt=le;while(1){Kt=Zt+-1|0;fe=r+(Kt<<2)|0;ue=+f[fe>>2];Tt=+V(+ue);ce=Tt>2]=0.0;he=(Kt|0)>(K|0);if(he){Zt=Kt}else{break}}}ve=Ct+-1|0;me=(Ct|0)>0;if(me){Ct=ve}else{Bt=5;break}}e:while(1){Ee=a[_t>>2]|0;we=Ee*3|0;be=a[h>>2]|0;_e=be-Ee|0;pe=_e+we|0;ke=(e+21536|0)+(Bt<<2)|0;Se=a[ke>>2]|0;ge=a[d>>2]|0;Me=Se-ge|0;Fe=pe+Me|0;Oe=Bt+1|0;Ae=(e+21536|0)+(Oe<<2)|0;Re=a[Ae>>2]|0;Te=Re-Se|0;Ne=+f[v>>2];De=(dt+188|0)+(Bt<<2)|0;Pe=+f[De>>2];Le=+f[m>>2];Be=+Si(Ne,Pe,Le,0.0);Ie=+f[E>>2];He=Ie>9.999999960041972E-13;xe=Ie*Be;kt=He?xe:Be;Ue=(Te|0)>0;if(Ue){ze=Te+Fe|0;Jt=ze;while(1){Gt=Jt+-1|0;qe=r+(Gt<<2)|0;Ve=+f[qe>>2];Nt=+V(+Ve);je=Nt>2]=0.0;We=(Gt|0)>(Fe|0);if(We){Jt=Gt}else{break}}}Ke=Bt+-1|0;Ge=(Bt|0)>0;if(Ge){Bt=Ke}else{It=5;break}}e:while(1){Xe=a[_t>>2]|0;Ze=Xe*3|0;Je=a[h>>2]|0;Qe=Je-Xe|0;$e=Qe<<1;er=$e+Ze|0;rr=(e+21536|0)+(It<<2)|0;ir=a[rr>>2]|0;nr=a[d>>2]|0;ar=ir-nr|0;or=er+ar|0;sr=It+1|0;lr=(e+21536|0)+(sr<<2)|0;fr=a[lr>>2]|0;ur=fr-ir|0;cr=+f[v>>2];hr=(dt+188|0)+(It<<2)|0;dr=+f[hr>>2];Er=+f[m>>2];wr=+Si(cr,dr,Er,0.0);br=+f[E>>2];_r=br>9.999999960041972E-13;pr=br*wr;St=_r?pr:wr;kr=(ur|0)>0;if(kr){Sr=ur+or|0;Qt=Sr;while(1){Xt=Qt+-1|0;gr=r+(Xt<<2)|0;yr=+f[gr>>2];Dt=+V(+yr);Mr=Dt>2]=0.0;Or=(Xt|0)>(or|0);if(Or){Qt=Xt}else{break}}}Ar=It+-1|0;Rr=(It|0)>0;if(Rr){It=Ar}else{dn=32;break}}if((dn|0)==32){c=vn;return}}function Ei(e,r,i,t,n,o){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;var s=0,l=0,u=0,h=0,d=0.0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0.0;var T=0,N=0,D=0,P=0.0,L=0.0,C=0.0,B=0.0,I=0,H=0,x=0,U=0,z=0,q=0,W=0,Y=0,K=0,G=0,X=0.0,Z=0,J=0;var Q=0.0,$=0.0,ee=0.0,re=0.0,te=0,ne=0,ae=0.0,oe=0.0,se=0.0,le=0,fe=0,ue=0,ce=0,he=0.0,de=0,ve=0,me=0,Ee=0,we=0,be=0;var _e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0.0,Pe=0.0,Le=0,Ce=0.0,Be=0,Ie=0,He=0;var xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0;var ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0;var Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0.0,Nr=0.0,Dr=0,Pr=0.0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0;var Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0;var ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0;var Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0;var $i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0.0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0.0,vt=0.0,mt=0,wt=0.0,_t=0,pt=0;var kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0.0,At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0.0,Ht=0.0,xt=0,Ut=0.0;var zt=0,qt=0,Vt=0,jt=0,Wt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0;var fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,_n=0,kn=0,Sn=0,gn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0;var Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0;var Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0.0,sa=0,la=0,fa=0.0,ua=0.0,ca=0.0,ha=0.0,da=0.0,va=0,ma=0.0,Ea=0.0;var wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0.0,Fa=0.0,Oa=0,Aa=0,Ra=0,Ta=0.0,Na=0.0,Da=0.0,Pa=0.0,La=0,Ca=0.0,Ba=0.0;var Ia=0,Ha=0.0,xa=0.0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0.0,Ga=0.0,Xa=0.0,Za=0.0,Ja=0,Qa=0.0,$a=0.0,eo=0.0,ro=0.0,io=0.0;var to=0.0,no=0.0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0.0,ho=0.0,vo=0.0,mo=0,Eo=0.0,wo=0,bo=0.0,_o=0.0,po=0,ko=0,So=0,go=0.0;var yo=0.0,Mo=0,Fo=0.0,Oo=0.0,Ao=0,Ro=0,To=0,No=0.0,Do=0,Po=0,Lo=0.0,Co=0.0,Bo=0.0,Io=0,Ho=0.0,xo=0,Uo=0.0,zo=0,qo=0.0,Vo=0;var jo=0.0,Wo=0,Yo=0.0,Ko=0.0,Go=0.0,Xo=0.0,Zo=0,Jo=0,Qo=0.0,$o=0.0,es=0,rs=0,is=0.0,ts=0.0,ns=0,as=0.0,os=0.0,ss=0.0,ls=0.0,fs=0.0;var us=0.0,cs=0,hs=0,ds=0,vs=0.0,ms=0,Es=0.0,ws=0.0,bs=0.0,_s=0.0,ps=0.0,ks=0.0,Ss=0,gs=0,ys=0,Ms=0,Fs=0.0,Os=0.0,As=0,Rs=0;var Ts=0.0,Ns=0.0,Ds=0.0,Ps=0,Ls=0.0,Cs=0,Bs=0.0,Is=0.0,Hs=0,xs=0.0,Us=0.0,zs=0,qs=0,Vs=0,js=0,Ws=0.0,Ys=0.0,Ks=0,Gs=0,Xs=0.0;var Zs=0.0,Js=0.0,Qs=0.0,$s=0,el=0.0,rl=0,il=0.0,tl=0,nl=0.0,al=0.0,ol=0,sl=0,ll=0.0,fl=0.0,ul=0.0,cl=0.0,hl=0,dl=0,vl=0,ml=0.0;var El=0.0,wl=0,bl=0.0,_l=0.0,pl=0,kl=0,Sl=0,gl=0,yl=0,Ml=0,Fl=0,Ol=0.0,Al=0.0,Rl=0,Tl=0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0;var Bl=0,Il=0,Hl=0,xl=0,Ul=0,zl=0,ql=0,Vl=0,jl=0,Wl=0,Yl=0,Kl=0,Gl=0,Xl=0,Zl=0,Jl=0,Ql=0,$l=0,ef=0,rf=0;var tf=0,nf=0,af=0,of=0,sf=0,lf=0,ff=0,uf=0,cf=0,hf=0,df=0,vf=0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0.0,Sf=0.0;var gf=0,yf=0,Mf=0.0,Ff=0,Of=0.0,Af=0,Rf=0,Tf=0,Nf=0,Df=0,Pf=0,Lf=0,Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0;var Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0,Xf=0,Zf=0,Jf=0,Qf=0,$f=0,eu=0,ru=0,iu=0.0,tu=0,nu=0,au=0,ou=0,su=0,lu=0.0;var fu=0,uu=0,cu=0,hu=0,du=0.0,vu=0,mu=0,Eu=0,wu=0,bu=0,_u=0.0,pu=0,ku=0,Su=0,gu=0,yu=0,Mu=0,Fu=0,Ou=0,Au=0;var Ru=0,Tu=0,Nu=0,Du=0,Pu=0,Lu=0,Cu=0,Bu=0,Iu=0,Hu=0,xu=0,Uu=0,zu=0,qu=0,Vu=0,ju=0,Wu=0.0,Yu=0.0,Ku=0.0,Gu=0.0;var Xu=0.0,Zu=0.0,Ju=0.0,Qu=0.0,$u=0.0,ec=0.0,rc=0.0,ic=0.0,tc=0.0,nc=0.0,ac=0.0,oc=0,sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0;var mc=0,Ec=0,wc=0.0,bc=0.0,_c=0,pc=0,kc=0,Sc=0,gc=0,yc=0,Mc=0,Fc=0,Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0;var Cc=0,Bc=0,Ic=0,Hc=0,xc=0,Uc=0,zc=0,qc=0,Vc=0,jc=0,Wc=0,Yc=0,Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0,eh=0;var rh=0,ih=0,th=0,nh=0.0,ah=0,oh=0.0,sh=0.0,lh=0.0,fh=0.0,uh=0,ch=0,hh=0;hh=c;c=c+8256|0;qu=hh+2992|0;jc=hh+688|0;Vu=hh+528|0;Nu=hh+504|0;Ic=hh+24|0;Mc=hh;z=(e+84928|0)+(n<<2)|0;q=a[z>>2]|0;Gr=(e+84920|0)+(n<<2)|0;tn=a[Gr>>2]|0;lo=r+4780|0;a[lo>>2]=tn;hl=r+4844|0;Nf=a[hl>>2]|0;qf=o-Nf|0;$f=Et(e,t,r,0)|0;uu=(q|0)==1;W=($f|0)==(qf|0);Lc=uu|W;if(Lc){_=$f}else{ve=$f;ku=q;Mu=0;oc=0;while(1){Me=(ve|0)>(qf|0);if(Me){Be=(Mu|0)==2;w=Be?1:oc;Ke=(w|0)==0;nr=(ku|0)/2&-1;Su=Ke?ku:nr;yu=Su;Fu=1;sc=w;ah=Su}else{mr=(Mu|0)==1;b=mr?1:oc;Fr=(b|0)==0;Ir=(ku|0)/2&-1;gu=Fr?ku:Ir;Xr=0-gu|0;yu=gu;Fu=2;sc=b;ah=Xr}oi=a[lo>>2]|0;bi=oi+ah|0;Ti=(bi|0)<0;h=Ti?0:bi;zi=(h|0)>255;l=zi?255:h;a[lo>>2]=l;Qi=Ti|zi;u=Qi?1:sc;ft=Et(e,t,r,0)|0;St=(yu|0)==1;Pt=(ft|0)==(qf|0);Ac=St|Pt;if(Ac){_=ft;break}else{ve=ft;ku=yu;Mu=Fu;oc=u}}}te=(_|0)>(qf|0);e:do{if(te){yc=_;while(1){jt=a[lo>>2]|0;nn=(jt|0)<255;if(!nn){gc=yc;break e}mn=jt+1|0;a[lo>>2]=mn;An=Et(e,t,r,0)|0;xn=(An|0)>(qf|0);if(xn){yc=An}else{gc=An;break}}}else{gc=_}}while(0);Zn=a[lo>>2]|0;sa=tn-Zn|0;ba=(sa|0)>3;Ra=ba?4:2;a[z>>2]=Ra;Ua=a[lo>>2]|0;a[Gr>>2]=Ua;Ja=r+4768|0;a[Ja>>2]=gc;fo=e+28|0;ko=a[fo>>2]|0;Do=(ko|0)==0;if(Do){v=100;c=hh;return v|0}pn(Ic|0,0,476)|0;yi(r,i,Vu,Nu,Ic)|0;Vo=a[Ja>>2]|0;es=Nu+20|0;a[es>>2]=Vo;yn(qu|0,r|0,5252)|0;yn(jc|0,t|0,2304)|0;cs=e+85096|0;Ss=e+85092|0;Ps=qu+4836|0;js=qu+4860|0;rl=e+40|0;dl=qu+4764|0;yl=qu+4844|0;Cl=qu+4768|0;Yl=qu+4780|0;nf=Nu+12|0;mf=Mc+20|0;Ff=r+4788|0;Af=e+84|0;Rf=e+88|0;Tf=Mc+16|0;Df=Nu+16|0;Pf=Mc+8|0;Lf=Nu+8|0;Cf=e+48|0;Bf=Mc+12|0;If=Mc+4|0;Hf=Nu+4|0;xf=qu+4864|0;Uf=e+84936|0;zf=qu+4832|0;Vf=qu+4788|0;jf=e+32|0;Wf=qu+4848|0;Yf=qu+4868|0;Ru=0;Tu=0;Du=9999999;while(1){Kf=(Ru|0)==1;m=Kf?2:1;Gf=(Ru|0)!=0;Ou=0;Pu=Du;e:while(1){Xf=a[cs>>2]|0;Zf=Xf&2;Jf=(Zf|0)==0;s=Jf?3:20;Qf=a[Ss>>2]|0;eu=(Qf|0)==0;F=a[js>>2]|0;if(!eu){ru=Vu+(F<<2)|0;iu=+f[ru>>2];tu=iu>1.0;if(tu){Bu=Pu;ch=167;break}nu=a[Vf>>2]|0;au=(nu|0)==2;if(au){ou=F+1|0;su=Vu+(ou<<2)|0;lu=+f[su>>2];fu=lu>1.0;if(fu){Bu=Pu;ch=167;break}cu=F+2|0;hu=Vu+(cu<<2)|0;du=+f[hu>>2];vu=du>1.0;if(vu){Bu=Pu;ch=167;break}}}mu=a[Ps>>2]|0;Eu=(mu|0)==0;d=Eu?1.2968395948410034:1.6817928552627563;wu=(F|0)>0;if(wu){Gc=0;sh=0.0;while(1){bu=Vu+(Gc<<2)|0;_u=+f[bu>>2];pu=sh<_u;lh=pu?_u:sh;Y=Gc+1|0;ju=(Y|0)==(F|0);if(ju){oh=lh;break}else{Gc=Y;sh=lh}}}else{oh=0.0}K=a[rl>>2]|0;G=(K|0)==3;Fc=G?m:K;do{if((Fc|0)==1){X=oh;Z=oh>1.0;if(Z){nh=+j(+X);Wu=+V(+nh);J=oh==-S;Q=Wu;$=J?S:Q;fh=$;break}else{ee=X*0.94999999999999996;re=ee;fh=re;break}}else if((Fc|0)==2){fh=oh}else{ne=oh>1.0;if(ne){fh=1.0}else{ae=oh;oe=ae*0.94999999999999996;se=oe;fh=se}}}while(0);if(wu){wf=K;bf=F;mc=0;Qc=0}else{Bu=Pu;ch=167;break}while(1){le=(qu+4872|0)+(Qc<<2)|0;fe=a[le>>2]|0;ue=fe+mc|0;ce=Vu+(Qc<<2)|0;he=+f[ce>>2];de=he>2]|0;Ee=me&2;we=(Ee|0)==0;if(!we){be=(e+84936|0)+(Qc<<2)|0;_e=a[be>>2]|0;pe=(_e|0)==0;ke=pe&1;a[be>>2]=ke;if(!pe){Se=a[rl>>2]|0;ge=(Se|0)==2;if(ge){pf=2;break}}}ye=(qu+4608|0)+(Qc<<2)|0;Fe=a[ye>>2]|0;Oe=Fe+1|0;a[ye>>2]=Oe;Ae=(fe|0)>0;if(Ae){Re=0-fe|0;P=+f[dl>>2];Ce=P;kc=Re;while(1){Te=kc+ue|0;Ne=t+(Te<<2)|0;De=+f[Ne>>2];Pe=De*d;f[Ne>>2]=Pe;Le=Pe>Ce;if(Le){f[dl>>2]=Pe;kf=Pe}else{kf=Ce}Ie=kc+1|0;He=(kc|0)<-1;if(He){Ce=kf;kc=Ie}else{break}}}xe=a[rl>>2]|0;Ue=(xe|0)==2;if(Ue){pf=2;break}A=a[js>>2]|0;Ve=A;_f=xe}ze=Qc+1|0;qe=(ze|0)<(Ve|0);if(qe){wf=_f;bf=Ve;mc=ue;Qc=ze}else{pf=_f;break}}O=a[js>>2]|0;je=(O|0)>0;if(je){Wc=0}else{Bu=Pu;ch=167;break}while(1){Ge=(qu+4608|0)+(Wc<<2)|0;Xe=a[Ge>>2]|0;Ze=(qu+5028|0)+(Wc<<2)|0;Je=a[Ze>>2]|0;Qe=(qu+4808|0)+(Je<<2)|0;$e=a[Qe>>2]|0;er=0-$e|0;rr=(Xe|0)==(er|0);We=Wc+1|0;if(rr){break}Ye=(We|0)<(O|0);if(Ye){Wc=We}else{of=pf;Cu=Pu;break e}}ir=bt(e,qu)|0;tr=(ir|0)==0;if(!tr){ar=a[fo>>2]|0;or=(ar|0)>1;if(!or){Bu=Pu;ch=167;break}pn(Uf|0,0,156)|0;sr=a[Ps>>2]|0;lr=(sr|0)==0;r:do{if(lr){fr=a[js>>2]|0;ur=(fr|0)>0;if(ur){vc=0;Xc=0;while(1){cr=(qu+4872|0)+(Xc<<2)|0;hr=a[cr>>2]|0;dr=(qu+4608|0)+(Xc<<2)|0;vr=a[dr>>2]|0;Er=a[zf>>2]|0;wr=(Er|0)==0;if(wr){Hc=vr}else{br=12112+(Xc<<2)|0;_r=a[br>>2]|0;pr=_r+vr|0;Hc=pr}kr=hr+vc|0;Sr=Hc&1;gr=(Sr|0)==0;do{if(gr){xc=Hc}else{yr=Hc+1|0;Mr=(hr|0)>0;if(!Mr){xc=yr;break}Or=0-hr|0;B=+f[dl>>2];Pr=B;_c=Or;while(1){Ar=_c+kr|0;Rr=t+(Ar<<2)|0;Tr=+f[Rr>>2];Nr=Tr*1.2968395948410034;f[Rr>>2]=Nr;Dr=Nr>Pr;if(Dr){f[dl>>2]=Nr;Sf=Nr}else{Sf=Pr}Lr=_c+1|0;Cr=(_c|0)<-1;if(Cr){Pr=Sf;_c=Lr}else{xc=yr;break}}}}while(0);Br=xc>>1;a[dr>>2]=Br;Hr=Xc+1|0;xr=a[js>>2]|0;Ur=(Hr|0)<(xr|0);if(Ur){vc=kr;Xc=Hr}else{break}}}a[zf>>2]=0;a[Ps>>2]=1}else{zr=a[Vf>>2]|0;qr=(zr|0)==2;if(!qr){Bu=Pu;ch=167;break e}Vr=a[jf>>2]|0;jr=(Vr|0)>0;if(!jr){Bu=Pu;ch=167;break e}Wr=a[Wf>>2]|0;Yr=(Wr|0)>0;if(Yr){Zc=0;while(1){Jr=(qu+4608|0)+(Zc<<2)|0;Qr=a[Jr>>2]|0;$r=(Qr|0)>15;Kr=Zc+1|0;if($r){Bu=Pu;ch=167;break e}Zr=(Kr|0)<(Wr|0);if(Zr){Zc=Kr}else{ri=Wr;lc=3;cc=-1;uh=0;break}}}else{ri=Wr;lc=3;cc=-1;uh=0}while(1){ei=uh+ri|0;ii=a[Yf>>2]|0;ti=(ei|0)<(ii|0);if(ti){ni=lc+ri|0;ai=(ii|0)>(ni|0);si=cc-ri|0;zc=0;$c=ei;while(1){vi=(qu+4608|0)+($c<<2)|0;mi=a[vi>>2]|0;Ei=(zc|0)<(mi|0);H=Ei?mi:zc;_i=$c+3|0;pi=(_i|0)<(ii|0);if(pi){zc=H;$c=_i}else{x=H;break}}th=ai?ii:ni;li=th+si|0;fi=(li>>>0)%3&-1;ui=li+ni|0;ci=ui-fi|0;Uc=x;Jc=ci}else{Uc=0;Jc=ei}hi=a[js>>2]|0;di=(Jc|0)<(hi|0);if(di){Vc=0;eh=Jc;while(1){ki=(qu+4608|0)+(eh<<2)|0;Si=a[ki>>2]|0;gi=(Vc|0)<(Si|0);U=gi?Si:Vc;Mi=eh+3|0;Fi=(Mi|0)<(hi|0);if(Fi){Vc=U;eh=Mi}else{qc=U;break}}}else{qc=0}Oi=(Uc|0)<16;Ai=(qc|0)<8;Rc=Oi&Ai;do{if(Rc){D=uh+1|0;N=D;gf=hi}else{Ri=(qu+4808|0)+(uh<<2)|0;Ni=a[Ri>>2]|0;Di=(Ni|0)>6;if(Di){Bu=Pu;ch=167;break e}Pi=Ni+1|0;a[Ri>>2]=Pi;Li=a[Wf>>2]|0;Ci=(e+21360|0)+(Li<<2)|0;Bi=a[Ci>>2]|0;Ii=Li+uh|0;Hi=a[js>>2]|0;xi=(Ii|0)<(Hi|0);Ui=uh+1|0;if(xi){qi=2-uh|0;dc=Bi;ih=Ii;while(1){Vi=(qu+4872|0)+(ih<<2)|0;ji=a[Vi>>2]|0;Wi=(qu+4608|0)+(ih<<2)|0;Yi=a[Wi>>2]|0;Ki=a[Ps>>2]|0;Gi=4>>>Ki;Xi=Yi-Gi|0;Zi=(Xi|0)>-1;if(Zi){a[Wi>>2]=Xi;Ji=ji*3|0;$i=Ji+dc|0;Ec=$i}else{a[Wi>>2]=0;et=a[Ps>>2]|0;rt=et+1|0;it=Xi<>2];ot=ie(ji,Ui)|0;st=ot+dc|0;lt=(ji|0)>0;if(lt){ut=0-ji|0;L=+f[dl>>2];wt=L;pc=ut;while(1){ct=pc+st|0;ht=t+(ct<<2)|0;dt=+f[ht>>2];vt=dt*at;f[ht>>2]=vt;mt=vt>wt;if(mt){f[dl>>2]=vt;Mf=vt}else{Mf=wt}_t=pc+1|0;pt=(pc|0)<-1;if(pt){wt=Mf;pc=_t}else{break}}}kt=ie(ji,qi)|0;gt=st+kt|0;Ec=gt}yt=ih+3|0;Mt=a[js>>2]|0;Ft=(yt|0)<(Mt|0);if(Ft){dc=Ec;ih=yt}else{yf=Mt;hc=Ec;rh=yt;break}}}else{yf=Hi;hc=Bi;rh=Ii}Ot=+f[80512>>2];At=(qu+4872|0)+(rh<<2)|0;Rt=a[At>>2]|0;Tt=ie(Rt,Ui)|0;Nt=Tt+hc|0;Dt=(Rt|0)>0;if(!Dt){N=Ui;gf=yf;break}Lt=0-Rt|0;C=+f[dl>>2];Ut=C;Sc=Lt;while(1){Ct=Nt+Sc|0;Bt=t+(Ct<<2)|0;It=+f[Bt>>2];Ht=It*Ot;f[Bt>>2]=Ht;xt=Ht>Ut;if(xt){f[dl>>2]=Ht;Of=Ht}else{Of=Ut}zt=Sc+1|0;qt=(Sc|0)<-1;if(qt){Ut=Of;Sc=zt}else{N=Ui;gf=yf;break}}}}while(0);Vt=(N|0)<3;if(!Vt){p=gf;break}uc=cc+-1|0;fc=lc+1|0;T=a[Wf>>2]|0;ri=T;lc=fc;cc=uc;uh=N}Wt=(p|0)>0;if(Wt){Kc=0}else{Bu=Pu;ch=167;break e}while(1){Xt=(qu+4608|0)+(Kc<<2)|0;Zt=a[Xt>>2]|0;Jt=(qu+5028|0)+(Kc<<2)|0;Qt=a[Jt>>2]|0;$t=(qu+4808|0)+(Qt<<2)|0;en=a[$t>>2]|0;rn=0-en|0;an=(Zt|0)==(rn|0);Kt=Kc+1|0;if(an){break r}Gt=(Kt|0)<(p|0);if(Gt){Kc=Kt}else{Bu=Pu;ch=167;break e}}}}while(0);on=bt(e,qu)|0;sn=(on|0)==0;if(!sn){Bu=Pu;ch=167;break}}ln=a[Ps>>2]|0;fn=(ln|0)==0;E=fn?255:254;un=a[yl>>2]|0;cn=o-un|0;hn=(cn|0)<1;if(hn){Bu=Pu;ch=167;break}dn=Et(e,t,qu,Ic)|0;a[Cl>>2]=dn;vn=(dn|0)>(cn|0);En=a[Yl>>2]|0;wn=(En|0)<=(E|0);bn=vn&wn;if(bn){kn=En;while(1){_n=kn+1|0;a[Yl>>2]=_n;Sn=Et(e,t,qu,Ic)|0;a[Cl>>2]=Sn;gn=(Sn|0)>(cn|0);Mn=a[Yl>>2]|0;Fn=(Mn|0)<=(E|0);On=gn&Fn;if(On){kn=Mn}else{k=Mn;break}}}else{k=En}Rn=(k|0)>(E|0);if(Rn){Bu=Pu;ch=167;break}Tn=a[nf>>2]|0;Nn=(Tn|0)==0;if(Nn){Dn=Et(e,t,qu,Ic)|0;a[Cl>>2]=Dn;Pn=(Dn|0)>(Pu|0);Ln=a[Yl>>2]|0;Cn=(Ln|0)<=(E|0);Bn=Pn&Cn;if(Bn){Hn=Ln;while(1){In=Hn+1|0;a[Yl>>2]=In;Un=Et(e,t,qu,Ic)|0;a[Cl>>2]=Un;zn=(Un|0)>(Pu|0);qn=a[Yl>>2]|0;Vn=(qn|0)<=(E|0);jn=zn&Vn;if(jn){Hn=qn}else{g=qn;break}}}else{g=Ln}Wn=(g|0)>(E|0);if(Wn){Bu=Pu;ch=167;break}}yi(qu,i,Vu,Mc,Ic)|0;Yn=a[Cl>>2]|0;a[mf>>2]=Yn;Kn=a[Ff>>2]|0;Gn=(Kn|0)==2;xu=Gn?Rf:Af;Iu=a[xu>>2]|0;r:do{switch(Iu|0){case 2:{bo=+f[If>>2];_o=+f[Hf>>2];po=bo<_o;So=po&1;Hu=So;break}case 3:{go=+f[If>>2];yo=+f[Hf>>2];Mo=go>2];Oo=+f[Lf>>2];Ao=Fo>2]|0;Wa=(ja|0)>0;if(Wa){bc=1.0000000000000001E-37;Yc=0;while(1){Ya=Vu+(Yc<<2)|0;Ka=+f[Ya>>2];Ga=Ka;Xa=Ga*Ga;Za=Xa*0.63200000000000001;Qa=Za*Ga;$a=Qa+0.36799999999999999;eo=$a;ro=+Yt(eo);io=ro;to=io*0.30102999566398114;no=to+bc;ao=Yc+1|0;oo=a[xf>>2]|0;so=(ao|0)<(oo|0);if(so){bc=no;Yc=ao}else{wc=no;break}}}else{wc=1.0000000000000001E-37}uo=wc<9.9999999999999995E-21;co=wc;ho=uo?9.9999996826552254E-21:co;f[Pf>>2]=ho;Eo=ho;ch=118;break}case 1:{R=+f[Pf>>2];Eo=R;ch=118;break}case 0:{ka=a[Bf>>2]|0;Sa=a[nf>>2]|0;ga=(ka|0)<(Sa|0);do{if(ga){Va=1}else{ya=(ka|0)==(Sa|0);if(ya){Ma=+f[Mc>>2];Fa=+f[Nu>>2];Oa=MaGu;Ta=Ma-Fa;Xu=+V(+Ta);Na=Xu;if(Aa){Da=tc;Pa=Da*9.9999999747524271E-7;La=!(Na<=Pa);if(La){Va=0;break}}else{Ca=Gu;Ba=Ca*9.9999999747524271E-7;Ia=!(Na<=Ba);if(Ia){Va=0;break}}Ha=+f[If>>2];xa=+f[Hf>>2];za=Ha>2];Os=+f[Nu>>2];As=Fsrc;Ts=Fs-Os;ic=+V(+Ts);Ns=ic;if(Rs){Ds=ec;Ls=Ds*9.9999999747524271E-7;Cs=!(Ns<=Ls);if(Cs){Vs=0;break}}else{Bs=rc;Is=Bs*9.9999999747524271E-7;Hs=!(Ns<=Is);if(Hs){Vs=0;break}}xs=+f[If>>2];Us=+f[Hf>>2];zs=xs>2];Po=!(No<=0.0);do{if(Po){Lo=No;ts=Lo;ch=130}else{Co=+f[Lf>>2];Bo=Co;Io=Bo>0.20000000000000001;if(Io){Ms=1}else{Ho=No;xo=Co<0.0;Uo=Ho+-0.20000000000000001;zo=Bo>Uo;Dc=xo&zo;if(Dc){qo=+f[If>>2];jo=+f[Hf>>2];Wo=qo0.0);M=zo^1;zu=y|M;if(zu){ts=Ho;ch=130}else{Yo=+f[If>>2];Ko=+f[Hf>>2];Go=+f[Nu>>2];Xo=Go+Ko;Zo=Yo0.0;if(Jo){Qo=+f[Lf>>2];$o=Qo;rs=$o>-0.050000000000000003;is=ts+-0.10000000000000001;ns=$o>is;Tc=rs&ns;if(Tc){as=+f[If>>2];os=+f[Mc>>2];ss=os+as;ls=+f[Hf>>2];fs=+f[Nu>>2];us=fs+ls;hs=ss-0.10000000000000001;vs=ts+-0.14999999999999999;ms=$o>vs;Nc=ds&ms;if(Nc){Es=+f[If>>2];ws=+f[Mc>>2];nc=ws*2.0;bs=nc+Es;_s=+f[Hf>>2];ps=+f[Nu>>2];ac=ps*2.0;ks=ac+_s;gs=bs>2]|0;Ml=a[nf>>2]|0;Fl=(gl|0)<(Ml|0);if(Fl){Nl=1}else{Ol=+f[Mc>>2];Al=+f[Nu>>2];Rl=Ol>2];Ys=+f[Nu>>2];Ks=WsKu;Xs=Ws-Ys;Zu=+V(+Xs);Zs=Zu;if(Gs){Js=Yu;Qs=Js*9.9999999747524271E-7;$s=!(Zs<=Qs);if($s){Sl=0;break}}else{el=Ku;il=el*9.9999999747524271E-7;tl=!(Zs<=il);if(tl){Sl=0;break}}nl=+f[Pf>>2];al=+f[Lf>>2];ol=nlQu;ll=nl-al;$u=+V(+ll);fl=$u;if(sl){ul=Ju;cl=ul*9.9999999747524271E-7;vl=!(fl<=cl);if(vl){Sl=0;break}}else{ml=Qu;El=ml*9.9999999747524271E-7;wl=!(fl<=El);if(wl){Sl=0;break}}bl=+f[If>>2];_l=+f[Hf>>2];pl=bl<=_l;Sl=pl}}}while(0);kl=Sl&1;Hu=kl;break}default:{Xn=a[nf>>2]|0;Jn=(Xn|0)>0;if(Jn){Qn=a[Tf>>2]|0;$n=a[Df>>2]|0;ea=(Qn|0)<=($n|0);ra=ea&1;ia=(Qn|0)==($n|0);if(!ia){Hu=ra;break r}ta=a[es>>2]|0;na=(Yn|0)<(ta|0);aa=na&1;Hu=aa;break r}oa=+f[Pf>>2];la=oa<0.0;if(la){fa=oa*10.0;ua=+(Yn|0);ca=fa+ua;ha=+f[Lf>>2];da=ha*10.0;va=a[es>>2]|0;ma=+(va|0);Ea=ma+da;wa=ca<=Ea;pa=wa}else{pa=0}_a=pa&1;Hu=_a}}}while(0);if((ch|0)==118){ch=0;vo=+f[Lf>>2];mo=Eo>2]|0;Pl=(Dl|0)==0;if(Pl){Ll=(Hu|0)==0;if(Ll){Ul=0}else{Bl=a[mf>>2]|0;Il=a[es>>2]|0;Hl=(Bl|0)<(Il|0);Ul=Hl}xl=Ul&1;Uu=xl}else{Uu=Hu}zl=(Uu|0)==0;do{if(zl){Vl=a[Cf>>2]|0;jl=(Vl|0)==0;if(jl){Wl=Ou+1|0;Kl=(Ou|0)>=(s|0);Cc=Kl&Pl;if(Cc){Bu=Pu;ch=167;break e}Gl=a[rl>>2]|0;Xl=(Gl|0)==3;Oc=Gf&Xl;Zl=(Ou|0)>29;Pc=Zl&Oc;if(Pc){Bu=Pu;ch=167;break e}if(!Oc){Au=Wl;Lu=Pu;break}Jl=a[Yl>>2]|0;Ql=Jl-Tu|0;$l=(Ql|0)>15;if($l){Bu=Pu;ch=167;break e}else{Au=Wl;Lu=Pu}}else{Au=Ou;Lu=Pu}}else{ql=a[Ja>>2]|0;a[Nu>>2]=a[Mc>>2]|0;a[Nu+4>>2]=a[Mc+4>>2]|0;a[Nu+8>>2]=a[Mc+8>>2]|0;a[Nu+12>>2]=a[Mc+12>>2]|0;a[Nu+16>>2]=a[Mc+16>>2]|0;a[Nu+20>>2]=a[Mc+20>>2]|0;yn(r|0,qu|0,5252)|0;yn(jc|0,t|0,2304)|0;Au=0;Lu=ql}}while(0);ef=a[Yl>>2]|0;rf=a[Ps>>2]|0;tf=rf+ef|0;af=(tf|0)<255;if(af){Ou=Au;Pu=Lu}else{Bu=Lu;ch=167;break}}if((ch|0)==167){ch=0;I=a[rl>>2]|0;of=I;Cu=Bu}sf=(of|0)==3;lf=(Ru|0)==0;Bc=lf&sf;if(!Bc){break}yn(qu|0,r|0,5252)|0;yn(t|0,jc|0,2304)|0;ff=a[Yl>>2]|0;Ru=1;Tu=ff;Du=Cu}uf=e+104|0;cf=a[uf>>2]|0;if((cf|0)==1|(cf|0)==4|(cf|0)==2){yn(t|0,jc|0,2304)|0}else{hf=a[cs>>2]|0;df=hf&1;vf=(df|0)==0;if(!vf){wi(e,r,i,t)}}Ef=a[nf>>2]|0;v=Ef;c=hh;return v|0}function wi(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0.0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0.0,P=0,L=0,C=0,B=0,I=0.0,H=0,x=0.0,U=0,z=0.0,q=0,j=0,W=0.0,Y=0.0,K=0.0;var G=0,X=0.0,Z=0,J=0.0,Q=0.0,$=0.0,ee=0,re=0,ie=0,te=0,ne=0,ae=0.0,oe=0,se=0,le=0.0,fe=0.0,ue=0,ce=0,he=0.0,de=0;var ve=0.0,me=0.0,Ee=0,we=0.0,be=0,_e=0.0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0.0,Re=0,Te=0,Ne=0,De=0.0,Pe=0;var Le=0,Ce=0.0,Be=0.0,Ie=0,He=0.0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0.0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0;var er=0,rr=0,ir=0.0,tr=0,nr=0,ar=0,or=0.0,sr=0.0,lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0.0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0;var pr=0,kr=0,Sr=0.0,gr=0,yr=0;yr=c;c=c+192|0;tr=yr+24|0;nr=yr;m=e+85096|0;E=a[m>>2]|0;O=E&4;H=(O|0)==0;if(H){Z=r+4788|0;se=a[Z>>2]|0;be=(se|0)!=2;Re=E&128;Ue=(Re|0)==0;wr=be&Ue;if(!wr){c=yr;return}}else{l=E&128;u=(l|0)==0;if(!u){c=yr;return}}yi(r,i,tr,nr,0)|0;dr=0;while(1){Je=(r+2304|0)+(dr<<2)|0;w=a[Je>>2]|0;b=(w|0)==0;if(b){Sr=0.0}else{_=r+(dr<<2)|0;p=+f[_>>2];hr=+V(+p);Sr=hr}k=t+(dr<<2)|0;f[k>>2]=Sr;S=dr+1|0;ar=(S|0)==576;if(ar){break}else{dr=S}}g=r+4788|0;y=a[g>>2]|0;M=(y|0)==2;n=M?6:8;F=r+4864|0;vr=0;br=n;while(1){A=(r+4872|0)+(br<<2)|0;R=a[A>>2]|0;T=R+vr|0;N=tr+(br<<2)|0;D=+f[N>>2];P=!(D>=1.0);e:do{if(P){L=t+(vr<<2)|0;Gt(L,R,4,1);C=T+-1|0;B=t+(C<<2)|0;I=+f[B>>2];or=+V(+I);x=or;U=I!=I|0.0!=0.0|I==0.0;if(U){j=I==0.0;if(j){break}}else{z=x*9.9999999747524271E-7;q=!(x<=z);if(!q){break}}W=+f[N>>2];Y=W;K=1.0-Y;G=i+(br<<2)|0;X=+f[G>>2];J=X;Q=K*J;$=Q;ir=$;_r=0;while(1){ee=_r+1|0;re=(ee|0)<(R|0);r:do{if(re){ie=_r+T|0;te=ie-R|0;ne=t+(te<<2)|0;ae=+f[ne>>2];fr=+V(+ae);oe=_r+vr|0;le=fr;fe=le*9.9999999747524271E-7;rr=ee;Er=1;while(1){ue=oe+Er|0;ce=t+(ue<<2)|0;he=+f[ce>>2];ur=+V(+he);de=fr>ur;ve=ae-he;cr=+V(+ve);me=cr;if(de){Ee=!(me<=fe);if(Ee){o=rr;s=1;v=oe;mr=Er;break r}}else{we=ur;_e=we*9.9999999747524271E-7;pe=!(me<=_e);if(pe){o=rr;s=1;v=oe;mr=Er;break r}}ke=Er+1|0;Se=ke+_r|0;ge=(Se|0)<(R|0);if(ge){rr=Se;Er=ke}else{o=Se;s=0;v=oe;mr=ke;break}}}else{h=vr+_r|0;o=ee;s=0;v=h;mr=1}}while(0);ye=t+(v<<2)|0;Me=+f[ye>>2];Fe=+(mr|0);Oe=Me*Me;Ae=Oe*Fe;Te=ir>2];sr=+V(+Ce);Be=sr;Ie=Ce!=Ce|0.0!=0.0|Ce==0.0;if(Ie){ze=Ce==0.0;if(ze){break}else{kr=R}}else{He=Be*9.9999999747524271E-7;xe=!(Be<=He);if(xe){kr=R}else{break}}while(1){qe=T-kr|0;Ve=r+(qe<<2)|0;je=+f[Ve>>2];lr=+V(+je);We=!(lr<=Ce);if(!We){Ye=(r+2304|0)+(qe<<2)|0;a[Ye>>2]=0}Ke=kr+-1|0;Ge=(kr|0)>1;if(Ge){kr=Ke}else{break}}}}}while(0);Xe=br+1|0;Ze=a[F>>2]|0;Qe=(Xe|0)<(Ze|0);if(Qe){vr=T;br=Xe}else{break}}$e=vt(e,r,0)|0;er=r+4768|0;a[er>>2]=$e;c=yr;return}function bi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0.0,a=0.0,o=0,s=0,l=0,u=0;u=c;n=+f[e>>2];a=+f[r>>2];o=n>a;s=n>31;t=o?1:i;return t|0}function _i(e){e=e|0;var r=0.0,i=0.0,t=0.0,n=0.0,o=0.0,s=0,l=0.0,u=0,h=0,d=0,v=0,m=0.0,E=0,w=0,b=0,_=0,p=0,k=0.0,S=0.0,g=0.0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0.0,Oe=0.0,Ae=0,Re=0,Te=0.0;var Ne=0.0,De=0.0,Pe=0.0,Le=0.0,Ce=0.0,Be=0.0,Ie=0.0,He=0.0,xe=0,Ue=0,ze=0,qe=0.0,Ve=0.0,je=0.0,We=0.0,Ye=0,Ke=0,Ge=0.0,Xe=0.0,Ze=0;var Je=0,Qe=0.0,$e=0.0,er=0.0,rr=0.0,ir=0.0,tr=0.0,nr=0.0,ar=0.0,or=0,sr=0,lr=0,fr=0,ur=0.0,cr=0.0,hr=0.0,dr=0,vr=0,mr=0,Er=0.0;var wr=0.0,br=0,_r=0.0,pr=0.0,kr=0,Sr=0,gr=0,yr=0.0,Mr=0.0,Fr=0.0,Or=0.0,Ar=0,Rr=0,Tr=0.0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0;var Ir=0.0,Hr=0.0,xr=0.0,Ur=0.0,zr=0.0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0.0,Jr=0.0,Qr=0.0,$r=0.0,ei=0.0,ri=0,ii=0;var ti=0,ni=0,ai=0,oi=0,si=0,li=0,ui=0,ci=0.0,hi=0.0,di=0.0,vi=0.0,mi=0,Ei=0.0,wi=0.0,bi=0.0,_i=0.0,pi=0,ki=0.0,Si=0,gi=0;var yi=0.0,Mi=0.0,Fi=0.0,Oi=0.0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0.0,Pi=0.0,Li=0.0,Ci=0.0,Bi=0.0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0.0,Vi=0.0;var ji=0.0,Wi=0.0,Yi=0.0,Ki=0,Gi=0.0,Xi=0.0,Zi=0,Ji=0.0,Qi=0,$i=0,et=0,rt=0.0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0.0;var ut=0.0,ct=0.0,ht=0.0,dt=0,vt=0.0,mt=0.0,Et=0.0,wt=0.0,bt=0,pt=0.0,kt=0.0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,Rt=0,Tt=0,Nt=0;var Dt=0,Pt=0,Lt=0,Ct=0.0,Bt=0.0,It=0.0,Ht=0.0,xt=0,Ut=0.0,zt=0.0,qt=0,Vt=0.0,jt=0.0,Wt=0.0,Yt=0.0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0;var $t=0.0,en=0,tn=0.0,nn=0.0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0.0,dn=0.0,vn=0.0,mn=0.0,En=0.0,wn=0,bn=0.0,_n=0.0,pn=0.0;var kn=0.0,Sn=0.0,gn=0.0,yn=0.0,Mn=0.0,Fn=0.0,On=0.0,An=0.0,Rn=0.0,Tn=0.0,Nn=0.0,Dn=0.0,Pn=0.0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0;var zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0.0,Kn=0.0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0;var sa=0;sa=c;d=e+8|0;v=a[d>>2]|0;br=(v|0)==0;if(!br){return}a[d>>2]=1;Zi=e+21312|0;a[Zi>>2]=0;st=e+16|0;bt=e+85796|0;Nt=a[bt>>2]|0;qt=e+64|0;en=a[qt>>2]|0;dn=+(en|0);m=dn*8.6805556202307343E-4;F=e+224|0;I=e+196|0;ia=0;while(1){oe=(e+21360|0)+(ia<<2)|0;we=a[oe>>2]|0;X=ia+1|0;Ae=(e+21360|0)+(X<<2)|0;xe=a[Ae>>2]|0;Ze=(Nt+24|0)+(ia<<2)|0;f[Ze>>2]=9.9999999338158125E+36;sr=(we|0)<(xe|0);if(sr){Xn=we;while(1){_r=+(Xn|0);Tr=_r*m;zr=+At(st,Tr);Qr=+f[F>>2];ui=Qr>0.0;ki=-Qr;Rn=ui?ki:-100.0;Di=+f[I>>2];yn=Di+zr;Vi=yn+Rn;Gi=Vi*0.10000000149011612;Xi=+W(10.0,+Gi);Ji=+f[Ze>>2];Qi=Ji>2]=r;$i=Xn+1|0;jn=($i|0)==(xe|0);if(jn){break}else{Xn=$i}}}Wn=(X|0)==22;if(Wn){ta=0;break}else{ia=X}}while(1){it=(e+21508|0)+(ta<<2)|0;tt=a[it>>2]|0;et=ta+1|0;nt=(e+21508|0)+(et<<2)|0;at=a[nt>>2]|0;ot=(Nt+164|0)+(ta<<2)|0;f[ot>>2]=9.9999999338158125E+36;lt=(tt|0)<(at|0);if(lt){Jn=tt;while(1){ft=+(Jn|0);ut=ft*m;ct=+At(st,ut);ht=+f[F>>2];dt=ht>0.0;vt=-ht;Nn=dt?vt:-100.0;mt=+f[I>>2];Fn=mt+ct;Et=Fn+Nn;wt=Et*0.10000000149011612;pt=+W(10.0,+wt);kt=+f[ot>>2];St=kt>2]=i;gt=Jn+1|0;qn=(gt|0)==(at|0);if(qn){break}else{Jn=gt}}}Vn=(et|0)==6;if(Vn){break}else{ta=et}}rt=dn*0.0026041667442768812;s=e+21452|0;u=a[s>>2]|0;Pt=u;na=0;while(1){Ft=(e+21452|0)+(na<<2)|0;Ot=na+1|0;Rt=(e+21452|0)+(Ot<<2)|0;Tt=a[Rt>>2]|0;Dt=(Nt+112|0)+(na<<2)|0;f[Dt>>2]=9.9999999338158125E+36;Lt=(Pt|0)<(Tt|0);if(Lt){Qn=Pt;while(1){Ct=+(Qn|0);Bt=Ct*rt;It=+At(st,Bt);Ht=+f[F>>2];xt=Ht>0.0;Ut=-Ht;Dn=xt?Ut:-100.0;zt=+f[I>>2];On=zt+It;Vt=On+Dn;jt=Vt*0.10000000149011612;Wt=+W(10.0,+jt);Yt=+f[Dt>>2];Kt=Yt>2]=t;Gt=Qn+1|0;Hn=(Gt|0)==(Tt|0);if(Hn){n=t;break}else{Qn=Gt}}h=a[Rt>>2]|0;Jt=h;nn=n}else{Jt=Tt;nn=9.9999999338158125E+36}Xt=a[Ft>>2]|0;Zt=Jt-Xt|0;$t=+(Zt|0);tn=$t*nn;f[Dt>>2]=tn;Un=(Ot|0)==13;if(Un){break}else{Pt=Jt;na=Ot}}yt=e+21504|0;Mt=e+21500|0;aa=0;while(1){an=(e+21536|0)+(aa<<2)|0;on=a[an>>2]|0;sn=aa+1|0;ln=(e+21536|0)+(sn<<2)|0;fn=a[ln>>2]|0;un=(Nt+188|0)+(aa<<2)|0;f[un>>2]=9.9999999338158125E+36;cn=(on|0)<(fn|0);if(cn){ea=on;while(1){hn=+(ea|0);vn=hn*rt;mn=+At(st,vn);En=+f[F>>2];wn=En>0.0;bn=-En;Pn=wn?bn:-100.0;_n=+f[I>>2];An=_n+mn;pn=An+Pn;kn=pn*0.10000000149011612;Sn=+W(10.0,+kn);gn=+f[un>>2];E=gn>2]=o;w=ea+1|0;Ln=(w|0)==(fn|0);if(Ln){g=o;break}else{ea=w}}}else{g=9.9999999338158125E+36}b=a[yt>>2]|0;_=a[Mt>>2]|0;p=b-_|0;k=+(p|0);S=k*g;f[un>>2]=S;Bn=(sn|0)==6;if(Bn){break}else{aa=sn}}y=e+220|0;M=a[y>>2]|0;O=(M|0)==0;if(!O){A=Nt+24|0;f[A>>2]=9.9999996826552254E-21;R=Nt+28|0;f[R>>2]=9.9999996826552254E-21;T=Nt+32|0;f[T>>2]=9.9999996826552254E-21;N=Nt+36|0;f[N>>2]=9.9999996826552254E-21;D=Nt+40|0;f[D>>2]=9.9999996826552254E-21;P=Nt+44|0;f[P>>2]=9.9999996826552254E-21;L=Nt+48|0;f[L>>2]=9.9999996826552254E-21;C=Nt+52|0;f[C>>2]=9.9999996826552254E-21;B=Nt+56|0;f[B>>2]=9.9999996826552254E-21;H=Nt+60|0;f[H>>2]=9.9999996826552254E-21;x=Nt+64|0;f[x>>2]=9.9999996826552254E-21;U=Nt+68|0;f[U>>2]=9.9999996826552254E-21;z=Nt+72|0;f[z>>2]=9.9999996826552254E-21;q=Nt+76|0;f[q>>2]=9.9999996826552254E-21;V=Nt+80|0;f[V>>2]=9.9999996826552254E-21;j=Nt+84|0;f[j>>2]=9.9999996826552254E-21;Y=Nt+88|0;f[Y>>2]=9.9999996826552254E-21;K=Nt+92|0;f[K>>2]=9.9999996826552254E-21;G=Nt+96|0;f[G>>2]=9.9999996826552254E-21;Z=Nt+100|0;f[Z>>2]=9.9999996826552254E-21;J=Nt+104|0;f[J>>2]=9.9999996826552254E-21;Q=Nt+108|0;f[Q>>2]=9.9999996826552254E-21;$=Nt+164|0;f[$>>2]=9.9999996826552254E-21;ee=Nt+168|0;f[ee>>2]=9.9999996826552254E-21;re=Nt+172|0;f[re>>2]=9.9999996826552254E-21;ie=Nt+176|0;f[ie>>2]=9.9999996826552254E-21;te=Nt+180|0;f[te>>2]=9.9999996826552254E-21;ne=Nt+184|0;f[ne>>2]=9.9999996826552254E-21;ae=Nt+112|0;f[ae>>2]=9.9999996826552254E-21;se=Nt+116|0;f[se>>2]=9.9999996826552254E-21;le=Nt+120|0;f[le>>2]=9.9999996826552254E-21;fe=Nt+124|0;f[fe>>2]=9.9999996826552254E-21;ue=Nt+128|0;f[ue>>2]=9.9999996826552254E-21;ce=Nt+132|0;f[ce>>2]=9.9999996826552254E-21;he=Nt+136|0;f[he>>2]=9.9999996826552254E-21;de=Nt+140|0;f[de>>2]=9.9999996826552254E-21;ve=Nt+144|0;f[ve>>2]=9.9999996826552254E-21;me=Nt+148|0;f[me>>2]=9.9999996826552254E-21;Ee=Nt+152|0;f[Ee>>2]=9.9999996826552254E-21;be=Nt+156|0;f[be>>2]=9.9999996826552254E-21;_e=Nt+160|0;f[_e>>2]=9.9999996826552254E-21;pe=Nt+188|0;f[pe>>2]=9.9999996826552254E-21;ke=Nt+192|0;f[ke>>2]=9.9999996826552254E-21;Se=Nt+196|0;f[Se>>2]=9.9999996826552254E-21;ge=Nt+200|0;f[ge>>2]=9.9999996826552254E-21;ye=Nt+204|0;f[ye>>2]=9.9999996826552254E-21;Me=Nt+208|0;f[Me>>2]=9.9999996826552254E-21}Fe=+At(st,-1.0);Oe=+f[F>>2];Re=Oe>0.0;Te=-Oe;Tn=Re?Te:-100.0;Ne=+f[I>>2];Mn=Ne+Fe;De=Mn+Tn;Pe=De*0.10000000149011612;Le=+W(10.0,+Pe);Ce=Le;Be=+rn(Ce);Ie=Be*10.0;He=Ie;Ue=a[bt>>2]|0;ze=Ue+20|0;f[ze>>2]=He;f[14040>>2]=0.0;Gn=1;while(1){qe=+(Gn|0);Ve=qe;je=+W(+Ve,1.3333333333333333);We=je;Ye=14040+(Gn<<2)|0;f[Ye>>2]=We;Ke=Gn+1|0;zn=(Ke|0)==8208;if(zn){break}else{Gn=Ke}}f[46872>>2]=0.0;l=+f[14040>>2];er=l;Zn=1;while(1){Ge=+(Zn|0);Xe=Ge+-0.5;Je=14040+(Zn<<2)|0;Qe=+f[Je>>2];$e=Qe+er;rr=$e;ir=rr*0.5;tr=+W(+ir,0.75);nr=Xe-tr;ar=nr;or=46872+(Zn<<2)|0;f[or>>2]=ar;lr=Zn+1|0;xn=(lr|0)==8208;if(xn){$n=0;break}else{er=Qe;Zn=lr}}while(1){fr=$n+-210|0;ur=+(fr|0);cr=ur*-0.1875;Kn=+Qt(cr);hr=Kn;dr=79704+($n<<2)|0;f[dr>>2]=hr;vr=$n+1|0;In=(vr|0)==257;if(In){ra=0;break}else{$n=vr}}while(1){mr=ra+-326|0;Er=+(mr|0);wr=Er*0.25;Yn=+Qt(wr);pr=Yn;kr=80736+(ra<<2)|0;f[kr>>2]=pr;Sr=ra+1|0;Cn=(Sr|0)==374;if(Cn){break}else{ra=Sr}}_t(e);fi(e);gr=e+232|0;yr=+f[gr>>2];Mr=yr+-0.5;Fr=Mr*0.10000000149011612;Or=+W(10.0,+Fr);Ar=e+84768|0;f[Ar>>2]=Or;Rr=e+84772|0;f[Rr>>2]=Or;Nr=e+84776|0;f[Nr>>2]=Or;Dr=e+84780|0;f[Dr>>2]=Or;Pr=e+84784|0;f[Pr>>2]=Or;Lr=e+84788|0;f[Lr>>2]=Or;Cr=e+84792|0;f[Cr>>2]=Or;Br=e+228|0;Ir=+f[Br>>2];Hr=Ir+-0.25;xr=Hr*0.10000000149011612;Ur=+W(10.0,+xr);qr=e+84796|0;f[qr>>2]=Ur;Vr=e+84800|0;f[Vr>>2]=Ur;jr=e+84804|0;f[jr>>2]=Ur;Wr=e+84808|0;f[Wr>>2]=Ur;Yr=e+84812|0;f[Yr>>2]=Ur;Kr=e+84816|0;f[Kr>>2]=Ur;Gr=e+84820|0;f[Gr>>2]=Ur;Xr=e+236|0;Zr=+f[Xr>>2];Jr=Zr+-0.02500000037252903;$r=Jr*0.10000000149011612;ei=+W(10.0,+$r);ri=e+84824|0;f[ri>>2]=ei;ii=e+84828|0;f[ii>>2]=ei;ti=e+84832|0;f[ti>>2]=ei;ni=e+84836|0;f[ni>>2]=ei;ai=e+84840|0;f[ai>>2]=ei;oi=e+84844|0;f[oi>>2]=ei;si=e+84848|0;f[si>>2]=ei;li=e+240|0;ci=+f[li>>2];hi=ci+0.5;di=hi*0.10000000149011612;vi=+W(10.0,+di);mi=e+84852|0;f[mi>>2]=vi;Ei=+f[gr>>2];wi=Ei+-2.0;bi=wi*0.10000000149011612;_i=+W(10.0,+bi);pi=e+84856|0;f[pi>>2]=_i;Si=e+84860|0;f[Si>>2]=_i;gi=e+84864|0;f[gi>>2]=_i;yi=+f[Br>>2];Mi=yi+-1.0;Fi=Mi*0.10000000149011612;Oi=+W(10.0,+Fi);Ai=e+84868|0;f[Ai>>2]=Oi;Ri=e+84872|0;f[Ri>>2]=Oi;Ti=e+84876|0;f[Ti>>2]=Oi;Ni=e+84880|0;f[Ni>>2]=Oi;Pi=+f[Xr>>2];Li=Pi+-0.05000000074505806;Ci=Li*0.10000000149011612;Bi=+W(10.0,+Ci);Ii=e+84884|0;f[Ii>>2]=Bi;Hi=e+84888|0;f[Hi>>2]=Bi;xi=e+84892|0;f[xi>>2]=Bi;Ui=e+84896|0;f[Ui>>2]=Bi;zi=e+84900|0;f[zi>>2]=Bi;qi=+f[li>>2];ji=qi+0.5;Wi=ji*0.10000000149011612;Yi=+W(10.0,+Wi);Ki=e+84904|0;f[Ki>>2]=Yi;return}function pi(e,r,i,t,n,o){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;var s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0;var R=0.0,T=0,N=0.0,D=0,P=0.0,L=0.0,C=0.0,B=0.0,I=0.0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0;var X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0;var Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0;var Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;Qe=c;c=c+16|0;Ye=Qe+12|0;Ze=Qe+8|0;Ie=Qe;a[Ye>>2]=0;p=Ie;k=p;a[k>>2]=0;D=p+4|0;V=D;a[V>>2]=0;Oi(e,t,Ze,Ye,o);ee=a[Ze>>2]|0;he=a[Ye>>2]|0;ge=he+ee|0;Le=(ge|0)>7680;s=Le?7680:ge;Ce=e+72|0;Be=a[Ce>>2]|0;S=(Be|0)>0;if(!S){c=Qe;return s|0}g=t*3|0;y=(g|0)/4&-1;F=Be;He=0;ze=0;while(1){M=(ee|0)/(F|0)&-1;O=(M|0)>4095;l=O?4095:M;A=i+(ze<<2)|0;a[A>>2]=l;R=+(l|0);T=(r+(n<<3)|0)+(ze<<2)|0;N=+f[T>>2];P=R*N;L=P;C=L*0.0014285714285714286;B=+(l|0);I=C-B;H=~~I;x=Ie+(ze<<2)|0;U=(H|0)>(y|0);Ge=U?y:H;z=(Ge|0)<0;_=z?0:Ge;q=_+l|0;j=(q|0)>4095;if(j){W=4095-l|0;Y=(W|0)<0;u=Y?0:W;Xe=u}else{Xe=_}a[x>>2]=Xe;K=Xe+He|0;G=ze+1|0;X=a[Ce>>2]|0;Z=(G|0)<(X|0);if(Z){F=X;He=K;ze=G}else{m=K;E=X;break}}J=(m|0)>(he|0);Q=(m|0)>0;Ke=Q&J;if(Ke){$=(E|0)>0;if($){qe=0;while(1){te=Ie+(qe<<2)|0;ne=a[te>>2]|0;ae=ie(ne,he)|0;oe=(ae|0)/(m|0)&-1;a[te>>2]=oe;se=qe+1|0;le=(se|0)<(E|0);if(le){qe=se}else{break}}}else{c=Qe;return s|0}}re=(E|0)>0;if(re){we=he;Ve=0}else{c=Qe;return s|0}while(1){ue=Ie+(Ve<<2)|0;ce=a[ue>>2]|0;de=i+(Ve<<2)|0;ve=a[de>>2]|0;me=ve+ce|0;a[de>>2]=me;Ee=we-ce|0;be=Ve+1|0;_e=a[Ce>>2]|0;pe=(be|0)<(_e|0);if(pe){we=Ee;Ve=be}else{d=Ee;v=_e;break}}a[Ye>>2]=d;fe=(v|0)>0;if(fe){xe=0;je=0}else{c=Qe;return s|0}while(1){ke=i+(je<<2)|0;Se=a[ke>>2]|0;ye=Se+xe|0;Me=je+1|0;Fe=(Me|0)<(v|0);if(Fe){xe=ye;je=Me}else{h=ye;break}}w=(h|0)<7681;b=fe^1;Ue=w|b;if(Ue){c=Qe;return s|0}else{We=0}while(1){Oe=i+(We<<2)|0;Ae=a[Oe>>2]|0;Re=Ae*7680|0;Te=(Re|0)/(h|0)&-1;a[Oe>>2]=Te;Ne=We+1|0;De=a[Ce>>2]|0;Pe=(Ne|0)<(De|0);if(Pe){We=Ne}else{break}}c=Qe;return s|0}function ki(e,r,i,t){e=e|0;r=+r;i=i|0;t=t|0;var n=0,o=0.0,s=0.0,l=0.0,f=0,u=0,h=0.0,d=0.0,v=0,m=0,E=0,w=0,b=0,_=0,p=0.0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0.0,D=0,P=0,L=0,C=0,B=0,I=0,H=0.0,x=0.0,U=0,z=0,q=0.0,V=0,j=0,W=0;W=c;s=r;l=0.5-s;p=l*0.66000000000000003;N=p;B=N<0.0;q=B?0.0:N;I=q>0.5;H=q;o=H*0.5;x=I?0.25:o;U=a[e>>2]|0;z=e+4|0;f=a[z>>2]|0;u=f+U|0;h=+(u|0);d=h*x;v=~~d;m=4095-U|0;E=(v|0)>(m|0);n=E?m:v;w=(n|0)<0;V=w?0:n;b=(f|0)>124;do{if(b){_=f-V|0;k=(_|0)>125;if(!k){y=U+-125|0;M=y+f|0;a[e>>2]=M;a[z>>2]=125;O=M;A=125;break}S=(U|0)<(i|0);if(S){g=V+U|0;a[e>>2]=g;C=g}else{C=U}a[z>>2]=_;O=C;A=_}else{O=U;A=f}}while(0);F=A+O|0;R=(F|0)>(t|0);if(!R){return}T=ie(O,t)|0;D=(T|0)/(F|0)&-1;a[e>>2]=D;P=ie(A,t)|0;L=(P|0)/(F|0)&-1;a[z>>2]=L;return}function Si(e,r,i,t){e=+e;r=+r;i=+i;t=+t;var n=0.0,a=0,o=0.0,s=0.0,l=0.0,f=0.0,u=0,h=0.0,d=0.0,v=0.0,m=0.0,E=0.0,w=0.0,b=0.0,_=0.0,p=0.0,k=0.0,S=0.0,g=0,y=0.0;var M=0.0,F=0.0,O=0.0,A=0.0,R=0,T=0;T=c;a=t<1.0;o=+Yt(r);b=o;_=b*3.0102999566398116;p=_;k=e*e;S=p-i;g=k>9.9999996826552254E-21;if(g){y=+Yt(k);M=y;s=M*0.03333343265598758;l=s+1.0;f=l;O=f}else{O=0.0}u=O<0.0;A=u?0.0:O;h=A*S;d=i+90.308731079101563;F=-t;n=a?-94.824447631835938:F;v=d+n;m=v+h;E=m*0.10000000149011612;w=+W(10.0,+E);return+w}function gi(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,u=0,h=0.0,d=0.0,v=0.0,m=0.0,E=0.0,w=0.0,b=0.0,_=0.0,p=0.0,k=0.0,S=0.0,g=0.0,y=0.0,M=0.0,F=0.0,O=0.0;var A=0,R=0,T=0.0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0.0,q=0,j=0,Y=0.0,K=0,G=0.0,X=0.0;var Z=0.0,J=0,Q=0.0,$=0.0,ee=0.0,re=0.0,ie=0.0,te=0.0,ne=0.0,ae=0,oe=0.0,se=0.0,le=0.0,fe=0.0,ue=0.0,ce=0,he=0,de=0.0,ve=0.0,me=0.0;var Ee=0.0,we=0.0,be=0.0,_e=0,pe=0.0,ke=0.0,Se=0.0,ge=0,ye=0,Me=0.0,Fe=0.0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0.0,Le=0,Ce=0.0;var Be=0,Ie=0,He=0.0,xe=0.0,Ue=0.0,ze=0.0,qe=0,Ve=0,je=0.0,We=0,Ye=0.0,Ke=0.0,Ge=0.0,Xe=0,Ze=0.0,Je=0.0,Qe=0,$e=0,er=0,rr=0.0;var ir=0,tr=0,nr=0,ar=0.0,or=0,sr=0,lr=0,fr=0.0,ur=0.0,cr=0,hr=0.0,dr=0,vr=0,mr=0,Er=0,wr=0.0,br=0,_r=0,pr=0,kr=0.0;var Sr=0.0,gr=0.0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0.0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0.0,Ir=0.0,Hr=0,xr=0,Ur=0,zr=0;var qr=0,Vr=0,jr=0,Wr=0.0,Yr=0.0,Kr=0,Gr=0.0,Xr=0,Zr=0.0,Jr=0,Qr=0,$r=0.0,ei=0.0,ri=0.0,ii=0,ti=0.0,ni=0.0,ai=0.0,oi=0.0,si=0;var li=0,fi=0.0,ui=0.0,ci=0.0,hi=0,di=0,vi=0.0,mi=0,Ei=0,wi=0,bi=0.0,_i=0.0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0.0,Fi=0,Oi=0.0;var Ai=0.0,Ri=0.0,Ti=0,Ni=0.0,Di=0.0,Pi=0,Li=0,Ci=0,Bi=0.0,Ii=0,Hi=0,xi=0,Ui=0,zi=0.0,qi=0,Vi=0,ji=0.0,Wi=0.0,Yi=0.0,Ki=0;var Gi=0.0,Xi=0.0,Zi=0,Ji=0,Qi=0.0,$i=0.0,et=0,rt=0,it=0,tt=0,nt=0.0,at=0,ot=0,st=0,lt=0.0,ft=0.0,ut=0.0,ct=0,ht=0.0,dt=0.0;var vt=0,mt=0.0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0.0,gt=0,yt=0,Mt=0.0,Ft=0.0,Ot=0.0,At=0.0,Rt=0.0,Tt=0.0,Nt=0,Dt=0,Pt=0.0;var Lt=0.0,Ct=0,Bt=0,It=0,Ht=0.0,xt=0,Ut=0,zt=0.0,qt=0.0,Vt=0.0,jt=0,Wt=0.0,Kt=0.0,Gt=0,Xt=0,Zt=0.0,Jt=0.0,Qt=0,$t=0,en=0;var rn=0,tn=0.0,nn=0.0,an=0.0,on=0,sn=0.0,ln=0.0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0.0,bn=0,_n=0,pn=0.0,kn=0;var Sn=0.0,gn=0.0,yn=0.0,Mn=0,Fn=0,On=0.0,An=0.0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0.0,xn=0,Un=0,zn=0;var qn=0,Vn=0.0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0;var la=0,fa=0,ua=0,ca=0.0,ha=0.0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0.0,Fa=0.0,Oa=0.0;var Aa=0.0,Ra=0.0,Ta=0,Na=0,Da=0,Pa=0,La=0.0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0;var Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0.0,lo=0.0,fo=0.0,uo=0.0,co=0.0,ho=0.0,vo=0.0;var mo=0.0,Eo=0.0,wo=0.0,bo=0,_o=0.0,po=0.0,ko=0.0,So=0.0,go=0.0,yo=0.0,Mo=0.0,Fo=0.0,Oo=0.0,Ao=0.0,Ro=0.0,To=0,No=0;No=c;A=e+85796|0;R=a[A>>2]|0;Lr=i+4856|0;It=a[Lr>>2]|0;Qt=(It|0)>0;if(Qt){un=R+8|0;kn=R+20|0;Dn=e+224|0;s=n;va=0;Ba=0;xa=0;while(1){Vn=+f[un>>2];ea=(R+24|0)+(Ba<<2)|0;T=+f[ea>>2];z=+f[kn>>2];ee=+f[Dn>>2];ce=ee<1.0;Se=+Yt(T);Pe=Se;je=Pe*3.0102999566398116;rr=je;hr=Vn*Vn;gr=rr-z;Cr=hr>9.9999996826552254E-21;if(Cr){Yr=+Yt(hr);ti=Yr;vi=ti*0.03333343265598758;Mi=vi+1.0;Bi=Mi;_o=Bi}else{_o=0.0}Ki=_o<0.0;ko=Ki?0.0:_o;nt=ko*gr;mt=z+90.308731079101563;ca=-ee;p=ce?-94.824447631835938:ca;Ft=mt+p;Ht=Ft+nt;qt=Ht*0.10000000149011612;Vt=+W(10.0,+qt);jt=(e+84768|0)+(Ba<<2)|0;Wt=+f[jt>>2];Kt=Wt*Vt;Gt=(i+4872|0)+(Ba<<2)|0;Xt=a[Gt>>2]|0;Zt=+(Xt|0);Jt=Kt/Zt;$t=(Xt|0)>0;if($t){Fa=0.0;za=xa;Ga=0;lo=2.2204460492503131E-16;while(1){en=za+1|0;rn=i+(za<<2)|0;tn=+f[rn>>2];nn=tn*tn;an=nn+Fa;on=nnKt;dn=hn&1;ma=dn+va|0;vn=Ma>2];bn=wn>9.999999960041972E-13;if(bn){_n=r+(Ba<<2)|0;pn=+f[_n>>2];Sn=pn*Ma;gn=Sn/wn;yn=Wt*gn;Mn=ho2.2204460492503131E-16;On=Fn?go:2.2204460492503131E-16;An=On+9.9999998245167004E-15;Rn=Ma>An;Tn=Rn&1;Nn=(i+5212|0)+Ba|0;t[Nn>>0]=Tn;Pn=s+4|0;f[s>>2]=On;Ln=Ba+1|0;Cn=a[Lr>>2]|0;Bn=(Ln|0)<(Cn|0);if(Bn){s=Pn;va=ma;Ba=Ln;xa=Ua}else{o=Pn;da=ma;Ca=Ln;Ha=Ua;break}}}else{o=n;da=0;Ca=0;Ha=0}Ka=575;while(1){In=i+(Ka<<2)|0;Hn=+f[In>>2];La=+V(+Hn);xn=La>9.999999960041972E-13;if(xn){ro=Ka;break}Un=Ka+-1|0;zn=(Ka|0)>1;if(zn){Ka=Un}else{ro=0;break}}qn=i+4788|0;jn=a[qn>>2]|0;Wn=(jn|0)==2;if(Wn){Kn=(ro|0)%6&-1;Gn=ro+5|0;Xn=Gn-Kn|0;io=Xn}else{Yn=ro|1;io=Yn}Zn=e+85092|0;Jn=a[Zn>>2]|0;Qn=(Jn|0)==0;if(Qn){$n=e+64|0;ra=a[$n>>2]|0;ia=(ra|0)<44000;if(ia){ta=(ra|0)<8001;if(Wn){sa=ta?9:12;la=(e+21452|0)+(sa<<2)|0;fa=a[la>>2]|0;ua=fa*3|0;$a=ua}else{na=ta?17:21;aa=(e+21360|0)+(na<<2)|0;oa=a[aa>>2]|0;$a=oa}Qa=$a+-1|0;N=(io|0)>(Qa|0);eo=N?Qa:io;to=eo}else{to=io}}else{to=io}D=i+5208|0;a[D>>2]=to;P=i+4864|0;L=a[P>>2]|0;C=(Ca|0)<(L|0);if(!C){Ea=da;return Ea|0}B=i+4852|0;I=a[B>>2]|0;H=R+8|0;x=R+20|0;U=e+224|0;q=e+92|0;j=e+85800|0;l=o;wa=da;Ia=Ca;qa=Ha;bo=I;while(1){Y=+f[H>>2];K=(R+112|0)+(bo<<2)|0;G=+f[K>>2];X=+f[x>>2];Z=+f[U>>2];J=Z<1.0;Q=+Yt(G);$=Q;re=$*3.0102999566398116;ie=re;te=Y*Y;ne=ie-X;ae=te>9.9999996826552254E-21;if(ae){oe=+Yt(te);se=oe;le=se*0.03333343265598758;fe=le+1.0;ue=fe;po=ue}else{po=0.0}he=po<0.0;So=he?0.0:po;de=So*ne;ve=X+90.308731079101563;ha=-Z;k=J?-94.824447631835938:ha;me=ve+k;Ee=me+de;we=Ee*0.10000000149011612;be=+W(10.0,+we);_e=(e+84856|0)+(bo<<2)|0;pe=+f[_e>>2];ke=pe*be;ge=(i+4872|0)+(Ia<<2)|0;ye=a[ge>>2]|0;Me=+(ye|0);Fe=ke/Me;Oe=(ye|0)>0;if(Oe){Oa=0.0;ja=qa;Xa=0;fo=2.2204460492503131E-16;while(1){Ve=ja+1|0;We=i+(ja<<2)|0;Ye=+f[We>>2];Ke=Ye*Ye;Ge=Ke+Oa;Xe=Keke;Te=Re&1;Sa=Te+wa|0;Ne=h>2];Be=Ce>9.999999960041972E-13;if(Be){Ie=(r+88|0)+(bo*12|0)|0;He=+f[Ie>>2];xe=He*h;Ue=xe/Ce;ze=pe*Ue;qe=mo2.2204460492503131E-16;bi=wi?Oo:2.2204460492503131E-16;_i=bi+9.9999998245167004E-15;pi=h>_i;ki=pi&1;Si=(i+5212|0)+Ia|0;t[Si>>0]=ki;gi=l+4|0;f[l>>2]=bi;Aa=0.0;Wa=Ae;Za=0;uo=2.2204460492503131E-16;while(1){yi=Wa+1|0;Fi=i+(Wa<<2)|0;Oi=+f[Fi>>2];Ai=Oi*Oi;Ri=Ai+Aa;Ti=Aike;Ii=Ci&1;ga=Ii+Sa|0;Hi=v>2];qi=zi>9.999999960041972E-13;if(qi){Vi=((r+88|0)+(bo*12|0)|0)+4|0;ji=+f[Vi>>2];Wi=ji*v;Yi=Wi/zi;Gi=+f[_e>>2];Xi=Gi*Yi;Zi=Eo2.2204460492503131E-16;Qi=Ji?Ao:2.2204460492503131E-16;$i=Qi+9.9999998245167004E-15;et=v>$i;rt=et&1;it=Ia+1|0;tt=(i+5212|0)+it|0;t[tt>>0]=rt;at=l+8|0;f[gi>>2]=Qi;Ra=0.0;Ya=Li;Ja=0;co=2.2204460492503131E-16;while(1){ot=Ya+1|0;st=i+(Ya<<2)|0;lt=+f[st>>2];ft=lt*lt;ut=ft+Ra;ct=ftke;bt=wt&1;ya=bt+ga|0;_t=E>2];gt=St>9.999999960041972E-13;if(gt){yt=((r+88|0)+(bo*12|0)|0)+8|0;Mt=+f[yt>>2];Ot=Mt*E;At=Ot/St;Rt=+f[_e>>2];Tt=Rt*At;Nt=wo2.2204460492503131E-16;Pt=Dt?Ro:2.2204460492503131E-16;Lt=Pt+9.9999998245167004E-15;Ct=E>Lt;Bt=Ct&1;xt=Ia+2|0;Ut=(i+5212|0)+xt|0;t[Ut>>0]=Bt;f[at>>2]=Pt;zt=Pt;ba=ya;Va=Et}else{$e=ke<0.0;er=$e&1;_a=er+wa|0;ir=ke>0.0;tr=ke>2.2204460492503131E-16;y=tr?ke:2.2204460492503131E-16;vo=ir?0.0:y;nr=(r+332|0)+(bo*12|0)|0;ar=+f[nr>>2];or=ar>9.999999960041972E-13;sr=vo<0.0;no=or&sr;yo=no?0.0:vo;lr=yo>2.2204460492503131E-16;fr=lr?yo:2.2204460492503131E-16;ur=fr+9.9999998245167004E-15;cr=ur<0.0;dr=cr&1;vr=(i+5212|0)+Ia|0;t[vr>>0]=dr;mr=l+4|0;f[l>>2]=fr;pa=er+_a|0;Er=((r+332|0)+(bo*12|0)|0)+4|0;wr=+f[Er>>2];br=wr>9.999999960041972E-13;_r=vo<0.0;ao=br&_r;Mo=ao?0.0:vo;pr=Mo>2.2204460492503131E-16;kr=pr?Mo:2.2204460492503131E-16;Sr=kr+9.9999998245167004E-15;yr=Sr<0.0;Mr=yr&1;Fr=Ia+1|0;Or=(i+5212|0)+Fr|0;t[Or>>0]=Mr;Ar=l+8|0;f[mr>>2]=kr;ka=er+pa|0;Rr=((r+332|0)+(bo*12|0)|0)+8|0;Tr=+f[Rr>>2];Nr=Tr>9.999999960041972E-13;Dr=vo<0.0;oo=Nr&Dr;Fo=oo?0.0:vo;Pr=Fo>2.2204460492503131E-16;Br=Pr?Fo:2.2204460492503131E-16;Ir=Br+9.9999998245167004E-15;Hr=Ir<0.0;xr=Hr&1;Ur=Ia+2|0;zr=(i+5212|0)+Ur|0;t[zr>>0]=xr;f[Ar>>2]=Br;zt=Br;ba=ka;Va=qa}qr=l+8|0;u=l+12|0;Vr=a[q>>2]|0;jr=(Vr|0)==0;if(!jr){Wr=+f[l>>2];Kr=l+4|0;Gr=+f[Kr>>2];Xr=Wr>Gr;if(Xr){Zr=Wr-Gr;Jr=a[j>>2]|0;Qr=Jr+6496|0;$r=+f[Qr>>2];ei=$r*Zr;ri=ei+Gr;f[Kr>>2]=ri;S=+f[qr>>2];ni=S;ai=ri}else{ni=zt;ai=Gr}ii=ai>ni;if(ii){oi=ai-ni;si=a[j>>2]|0;li=si+6496|0;fi=+f[li>>2];ui=fi*oi;ci=ui+ni;f[qr>>2]=ci}}hi=bo+1|0;di=Ia+3|0;mi=a[P>>2]|0;Ei=(di|0)<(mi|0);if(Ei){l=u;wa=ba;Ia=di;qa=Va;bo=hi}else{Ea=ba;break}}return Ea|0}function yi(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;var o=0,s=0,l=0,u=0,h=0,d=0,v=0.0,m=0.0,E=0.0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0.0,F=0,O=0;var A=0,R=0.0,T=0.0,N=0.0,D=0,P=0,L=0.0,C=0.0,B=0,I=0.0,H=0,x=0,U=0,z=0.0,q=0.0,j=0,W=0.0,Y=0,K=0.0,G=0.0;var X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0.0,se=0,le=0.0,fe=0.0,ue=0.0,ce=0.0,he=0.0,de=0,ve=0,me=0;var Ee=0,we=0.0,be=0,_e=0.0,pe=0.0,ke=0.0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0.0,Te=0,Ne=0.0,De=0,Pe=0,Le=0,Ce=0;var Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0;var ir=0,tr=0,nr=0.0,ar=0.0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0.0,Er=0.0,wr=0,br=0.0,_r=0,pr=0,kr=0.0;var Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0.0,Ur=0,zr=0.0;var qr=0.0,Vr=0,jr=0,Wr=0.0,Yr=0,Kr=0.0,Gr=0.0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0.0,ni=0,ai=0,oi=0,si=0.0;var li=0.0,fi=0,ui=0.0,ci=0.0,hi=0,di=0,vi=0.0,mi=0,Ei=0,wi=0,bi=0.0,_i=0.0,pi=0,ki=0.0,Si=0.0,gi=0.0,yi=0.0,Mi=0.0,Fi=0.0,Oi=0.0;var Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0.0,Ci=0.0,Bi=0.0,Ii=0.0,Hi=0.0,xi=0.0,Ui=0.0,zi=0.0,qi=0,Vi=0,ji=0,Wi=0.0,Yi=0.0,Ki=0.0;var Gi=0,Xi=0,Zi=0.0,Ji=0.0,Qi=0,$i=0;$i=c;c=c+16|0;Ai=$i;_=t+16|0;a[_>>2]=0;p=e+4864|0;Ve=a[p>>2]|0;er=(Ve|0)>0;if(!er){Li=-20.0;qi=0;Wi=0.0;Zi=0.0;Be=t+12|0;a[Be>>2]=qi;Ie=t+4|0;f[Ie>>2]=Zi;f[t>>2]=Wi;He=t+8|0;f[He>>2]=Li;c=$i;return qi|0}cr=e+4608|0;Sr=e+4780|0;Pr=e+4832|0;jr=e+4836|0;ri=(n|0)!=(0|0);hi=e+5208|0;k=e+4776|0;D=e+4772|0;j=Ai+4|0;s=i;l=r;dr=0;Ci=-20.0;Vi=0;Yi=0.0;Gi=cr;Xi=0;Ji=0.0;while(1){re=a[Sr>>2]|0;de=Gi+4|0;ye=a[Gi>>2]|0;Ce=a[Pr>>2]|0;Ue=(Ce|0)==0;if(Ue){We=0}else{ze=12112+(Xi<<2)|0;qe=a[ze>>2]|0;We=qe}je=We+ye|0;Ye=a[jr>>2]|0;Ke=Ye+1|0;Ge=je<>2]|0;Qe=(e+4808|0)+(Je<<2)|0;$e=a[Qe>>2]|0;rr=$e<<3;ir=Xe-rr|0;tr=l+4|0;nr=+f[l>>2];ar=1.0/nr;if(ri){or=(n+8|0)+(Xi<<2)|0;sr=a[or>>2]|0;lr=(sr|0)==(ir|0);if(lr){fr=(e+4872|0)+(Xi<<2)|0;ur=a[fr>>2]|0;hr=ur+dr|0;vr=(n+164|0)+(Xi<<2)|0;mr=+f[vr>>2];Er=mr*ar;wr=(n+320|0)+(Xi<<2)|0;br=+f[wr>>2];w=hr;me=re;gi=Er;Bi=br;Qi=27}else{Qi=8}}else{Qi=8}do{if((Qi|0)==8){Qi=0;_r=ir+116|0;pr=80736+(_r<<2)|0;kr=+f[pr>>2];gr=(e+4872|0)+(Xi<<2)|0;yr=a[gr>>2]|0;Mr=yr>>1;Fr=yr+dr|0;Or=a[hi>>2]|0;Ar=(Fr|0)>(Or|0);if(Ar){Rr=Or-dr|0;Tr=(Rr|0)>-1;if(Tr){Nr=Rr+1|0;Dr=Nr>>1;Pi=Dr}else{Pi=0}}else{Pi=Mr}Lr=a[k>>2]|0;Cr=(dr|0)>(Lr|0);do{if(Cr){Br=(Pi|0)==0;if(Br){Di=dr;zi=0.0}else{u=Pi;Ri=dr;Hi=0.0;while(1){Ir=u+-1|0;Hr=e+(Ri<<2)|0;xr=+f[Hr>>2];Ur=Ri+1|0;zr=xr*xr;qr=zr+Hi;Vr=e+(Ur<<2)|0;Wr=+f[Vr>>2];Yr=Ri+2|0;Kr=Wr*Wr;Gr=qr+Kr;Xr=(Ir|0)==0;if(Xr){E=Gr;break}else{u=Ir;Ri=Yr;Hi=Gr}}Z=Pi<<1;J=Z+dr|0;Di=J;zi=E}}else{Zr=a[D>>2]|0;Jr=(dr|0)>(Zr|0);if(Jr){f[Ai>>2]=0.0;f[j>>2]=kr;$r=(Pi|0)==0;if($r){Di=dr;zi=0.0;break}else{h=Pi;Ti=dr;xi=0.0}while(1){ei=h+-1|0;ii=e+(Ti<<2)|0;ti=+f[ii>>2];Fi=+V(+ti);ni=(e+2304|0)+(Ti<<2)|0;ai=a[ni>>2]|0;oi=Ai+(ai<<2)|0;si=+f[oi>>2];li=Fi-si;fi=Ti+1|0;ui=li*li;ci=ui+xi;di=e+(fi<<2)|0;vi=+f[di>>2];Oi=+V(+vi);mi=(e+2304|0)+(fi<<2)|0;Ei=a[mi>>2]|0;wi=Ai+(Ei<<2)|0;bi=+f[wi>>2];_i=Oi-bi;pi=Ti+2|0;ki=_i*_i;Si=ci+ki;S=(ei|0)==0;if(S){m=Si;break}else{h=ei;Ti=pi;xi=Si}}Q=Pi<<1;$=Q+dr|0;Di=$;zi=m;break}else{Qr=(Pi|0)==0;if(Qr){Di=dr;zi=0.0;break}else{d=Pi;Ni=dr;Ui=0.0}while(1){g=d+-1|0;y=e+(Ni<<2)|0;M=+f[y>>2];yi=+V(+M);F=(e+2304|0)+(Ni<<2)|0;O=a[F>>2]|0;A=14040+(O<<2)|0;R=+f[A>>2];T=R*kr;N=yi-T;P=Ni+1|0;L=N*N;C=L+Ui;B=e+(P<<2)|0;I=+f[B>>2];Mi=+V(+I);H=(e+2304|0)+(P<<2)|0;x=a[H>>2]|0;U=14040+(x<<2)|0;z=+f[U>>2];q=z*kr;W=Mi-q;Y=Ni+2|0;K=W*W;G=C+K;X=(g|0)==0;if(X){v=G;break}else{d=g;Ni=Y;Ui=G}}ee=Pi<<1;te=ee+dr|0;Di=te;zi=v;break}}}while(0);if(ri){ne=(n+8|0)+(Xi<<2)|0;a[ne>>2]=ir;ae=(n+164|0)+(Xi<<2)|0;f[ae>>2]=zi}oe=zi*ar;se=oe>9.9999996826552254E-21;le=se?oe:9.9999996826552254E-21;fe=+Yt(le);ue=fe;ce=ue*0.30102999566398114;he=ce;if(ri){ve=(n+320|0)+(Xi<<2)|0;f[ve>>2]=he;b=a[Sr>>2]|0;w=Di;me=b;gi=oe;Bi=he;Qi=27;break}else{f[s>>2]=oe;xe=Di;Ii=he;break}}}while(0);if((Qi|0)==27){Qi=0;f[s>>2]=gi;a[n>>2]=me;xe=w;Ii=Bi}Ee=s+4|0;we=Ii+Ji;be=Ii>0.0;if(be){_e=Ii*10.0;pe=_e;ke=pe+0.5;Se=~~ke;ge=(Se|0)>1;o=ge?Se:1;Me=ie(o,o)|0;Fe=a[_>>2]|0;Oe=Fe+Me|0;a[_>>2]=Oe;Ae=Vi+1|0;Re=Ii+Yi;ji=Ae;Ki=Re}else{ji=Vi;Ki=Yi}Te=Ci>Ii;Ne=Te?Ci:Ii;De=Xi+1|0;Pe=a[p>>2]|0;Le=(De|0)<(Pe|0);if(Le){s=Ee;l=tr;dr=xe;Ci=Ne;Vi=ji;Yi=Ki;Gi=de;Xi=De;Ji=we}else{Li=Ne;qi=ji;Wi=Ki;Zi=we;break}}Be=t+12|0;a[Be>>2]=qi;Ie=t+4|0;f[Ie>>2]=Zi;f[t>>2]=Wi;He=t+8|0;f[He>>2]=Li;c=$i;return qi|0}function Mi(e,r){e=e|0;r=r|0;var i=0.0,t=0.0,n=0.0,o=0.0,s=0.0,l=0.0,h=0.0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0.0,M=0.0;var F=0.0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0.0,Z=0,J=0,Q=0.0,$=0,ee=0,re=0,te=0,ne=0.0,ae=0.0,oe=0,se=0.0,le=0.0,fe=0.0,ue=0.0,ce=0,he=0;var de=0.0,ve=0,me=0,Ee=0.0,we=0.0,be=0,_e=0.0,pe=0.0,ke=0.0,Se=0,ge=0,ye=0,Me=0,Fe=0.0,Oe=0.0,Ae=0,Re=0.0,Te=0.0,Ne=0.0,De=0.0;var Pe=0,Le=0,Ce=0.0,Be=0,Ie=0,He=0.0,xe=0,Ue=0,ze=0,qe=0.0,Ve=0.0,je=0,We=0.0,Ye=0.0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0.0,Qe=0.0;var $e=0,er=0,rr=0,ir=0.0,tr=0.0,nr=0,ar=0.0,or=0.0,sr=0,lr=0,fr=0,ur=0.0,cr=0.0,hr=0.0,dr=0,vr=0,mr=0,Er=0,wr=0.0,br=0;var _r=0,pr=0,kr=0.0,Sr=0.0,gr=0,yr=0.0,Mr=0.0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0.0,Nr=0.0,Dr=0,Pr=0,Lr=0,Cr=0.0,Br=0.0,Ir=0.0,Hr=0;var xr=0.0,Ur=0,zr=0,qr=0,Vr=0,jr=0.0,Wr=0.0,Yr=0,Kr=0.0,Gr=0.0,Xr=0,Zr=0.0,Jr=0.0,Qr=0,$r=0,ei=0.0,ri=0,ii=0,ti=0,ni=0;var ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0.0,wi=0,bi=0.0,_i=0.0,pi=0,ki=0.0,Si=0.0,Mi=0.0,Fi=0;var Oi=0.0,Ai=0.0,Ri=0.0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0.0,Vi=0,ji=0,Wi=0,Yi=0.0;var Ki=0.0,Gi=0,Xi=0.0,Zi=0.0,Ji=0,Qi=0,$i=0,et=0.0,rt=0.0,it=0,tt=0,nt=0,at=0.0,ot=0.0,st=0.0,lt=0.0,ft=0,ut=0,ct=0,ht=0;var dt=0,vt=0.0,mt=0.0,Et=0,wt=0.0,bt=0.0,_t=0.0,pt=0,kt=0.0,St=0,gt=0,yt=0.0,Mt=0,Ft=0.0,Ot=0,At=0,Rt=0,Tt=0.0,Nt=0,Dt=0;var Pt=0.0,Lt=0,Ct=0.0,Bt=0.0,It=0,Ht=0,xt=0.0,Ut=0.0,zt=0,qt=0,Vt=0,jt=0,Wt=0.0,Yt=0.0,Kt=0.0,Gt=0.0,Xt=0,Zt=0,Jt=0,Qt=0.0;var $t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,_n=0;var pn=0,kn=0,Sn=0,gn=0.0,Mn=0.0,Fn=0.0,On=0,An=0.0,Rn=0.0,Tn=0,Nn=0.0,Dn=0.0,Pn=0,Ln=0,Cn=0.0,Bn=0.0,In=0,Hn=0.0,xn=0.0,Un=0.0;var zn=0,qn=0.0,Vn=0,jn=0,Wn=0.0,Yn=0,Kn=0,Gn=0,Xn=0.0,Zn=0,Jn=0.0,Qn=0,$n=0.0,ea=0,ra=0.0,ia=0,ta=0.0,na=0.0,aa=0,oa=0;var sa=0,la=0,fa=0,ua=0,ca=0.0,ha=0.0,da=0.0,va=0.0,ma=0,Ea=0,wa=0,ba=0.0,_a=0.0,pa=0,ka=0.0,Sa=0.0,ga=0.0,ya=0.0,Ma=0.0,Fa=0.0;var Oa=0.0,Aa=0.0,Ra=0.0,Ta=0.0,Na=0.0,Da=0.0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0;var Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0;fo=c;c=c+496|0;Xa=fo+340|0;so=fo+184|0;Za=fo+160|0;Qa=fo;k=e+76|0;S=a[k>>2]|0;Fr=(S|0)>0;if(!Fr){c=fo;return}Nt=e+72|0;sn=e+85804|0;bn=e+212|0;Tn=e+85796|0;v=e+21360|0;zn=e+216|0;Qn=Za+12|0;fa=Za+8|0;g=Za+4|0;L=Za+16|0;E=a[Nt>>2]|0;W=E;Xt=S;Ha=0;while(1){te=(W|0)>0;if(te){ve=(Ha|0)==1;pa=0;while(1){Me=((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0;Be=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0;yn(Qa|0,Be|0,156)|0;if(ve){Ke=((e+10808|0)+(pa*5252|0)|0)+4848|0;nr=a[Ke>>2]|0;mr=(nr|0)>0;if(mr){Jt=nr;ro=0;while(1){Or=(((e+10808|0)+(pa*5252|0)|0)+4608|0)+(ro<<2)|0;Hr=a[Or>>2]|0;Xr=(Hr|0)<0;if(Xr){oi=(((e+304|0)+(pa*5252|0)|0)+4608|0)+(ro<<2)|0;wi=a[oi>>2]|0;a[Or>>2]=wi;b=a[Ke>>2]|0;Qi=b}else{Qi=Jt}Ti=ro+1|0;zi=(Ti|0)<(Qi|0);if(zi){Jt=Qi;ro=Ti}else{break}}}}ft=(r+(Ha*976|0)|0)+(pa*488|0)|0;pt=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4836|0;Dt=a[pt>>2]|0;Vt=(Dt|0)==0;Qt=Vt?0.5:1.0;gi(e,ft,Me,Xa)|0;yi(Me,Xa,so,Za,0)|0;$t=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4848|0;en=a[$t>>2]|0;rn=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4788|0;tn=a[rn>>2]|0;nn=(tn|0)==2;if(nn){lo=12}else{an=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4792|0;on=a[an>>2]|0;ln=(on|0)==0;if(ln){to=22;lo=13}else{lo=12}}if((lo|0)==12){lo=0;fn=(en|0)>0;if(fn){to=en;lo=13}else{Ua=0;$a=0}}if((lo|0)==13){lo=0;un=a[sn>>2]|0;cn=a[Tn>>2]|0;hn=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4832|0;dn=a[hn>>2]|0;vn=(dn|0)!=0;w=a[v>>2]|0;pn=w;za=0;eo=0;while(1){mn=eo+1|0;En=(e+21360|0)+(mn<<2)|0;wn=a[En>>2]|0;_n=wn-pn|0;kn=(za|0)<(wn|0);if(kn){Sa=0.0;Va=za;while(1){Sn=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+(Va<<2)|0;gn=+f[Sn>>2];Mn=gn*gn;Fn=Mn+Sa;On=Va+1|0;Ba=(On|0)==(wn|0);if(Ba){ka=Fn;qa=wn;break}else{Sa=Fn;Va=On}}}else{ka=0.0;qa=za}An=+(_n|0);Rn=ka/An;Nn=Rn*999999986991104.0;Dn=Nn;Pn=(((un+190712|0)+(Ha*704|0)|0)+(pa*176|0)|0)+(eo<<3)|0;u[Pn>>3]=Dn;Ln=Xa+(eo<<2)|0;Cn=+f[Ln>>2];Bn=Cn*999999986991104.0;In=so+(eo<<2)|0;Hn=+f[In>>2];xn=Bn*Hn;Un=xn/An;qn=Un;Vn=(((un+201208|0)+(Ha*352|0)|0)+(pa*176|0)|0)+(eo<<3)|0;u[Vn>>3]=qn;jn=(((r+(Ha*976|0)|0)+(pa*488|0)|0)+244|0)+(eo<<2)|0;Wn=+f[jn>>2];Yn=Wn>0.0;if(Yn){Kn=a[bn>>2]|0;Gn=(Kn|0)==0;Xn=Rn/Wn;l=Gn?Xn:0.0;ga=l}else{ga=0.0}Zn=((r+(Ha*976|0)|0)+(pa*488|0)|0)+(eo<<2)|0;Jn=+f[Zn>>2];$n=Jn*ga;ea=(cn+24|0)+(eo<<2)|0;ra=+f[ea>>2];ia=$n>ra;i=ia?$n:ra;ta=i*999999986991104.0;na=ta;aa=(((un+189304|0)+(Ha*704|0)|0)+(pa*176|0)|0)+(eo<<3)|0;u[aa>>3]=na;oa=(((un+199160|0)+(Ha*352|0)|0)+(pa*176|0)|0)+(eo<<3)|0;u[oa>>3]=0.0;sa=(eo|0)>10;Ja=vn&sa;if(Ja){la=12112+(eo<<2)|0;ua=a[la>>2]|0;ca=+(ua|0);ha=Qt*ca;da=-ha;va=da;u[oa>>3]=va;F=va}else{F=0.0}ma=(eo|0)<21;if(ma){Ea=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0)+(eo<<2)|0;wa=a[Ea>>2]|0;ba=+(wa|0);_a=ba*Qt;y=_a;M=F-y;u[oa>>3]=M}Ia=(mn|0)==(to|0);if(Ia){Ua=qa;$a=to;break}else{pn=wn;za=qa;eo=mn}}}if(nn){O=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4852|0;A=a[O>>2]|0;R=(A|0)<13;if(R){T=a[sn>>2]|0;N=a[bn>>2]|0;D=(N|0)==0;P=a[Tn>>2]|0;m=(e+21452|0)+(A<<2)|0;p=a[m>>2]|0;C=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4808|0;B=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4812|0;I=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4816|0;z=p;ja=Ua;io=A;no=$a;while(1){V=io+1|0;j=(e+21452|0)+(V<<2)|0;Y=a[j>>2]|0;K=Y-z|0;G=(Y|0)>(z|0);X=+(K|0);Z=io*3|0;J=(P+112|0)+(io<<2)|0;Q=+f[J>>2];$=(io|0)<12;if(G){x=Y*3|0;xa=0;Ya=ja;oo=no;while(1){ya=0.0;Ka=Ya;Ga=z;while(1){fr=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+(Ka<<2)|0;ur=+f[fr>>2];cr=ur*ur;hr=cr+ya;dr=Ka+1|0;vr=Ga+1|0;Pa=(vr|0)==(Y|0);if(Pa){h=hr;break}else{ya=hr;Ka=dr;Ga=vr}}me=Ya+K|0;Ee=h/X;we=Ee;be=we>9.9999999999999995E-21;_e=be?Ee:9.9999996826552254E-21;pe=_e*999999986991104.0;ke=pe;Se=xa+Z|0;ge=(((T+194616|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(Se<<3)|0;u[ge>>3]=ke;ye=Xa+(oo<<2)|0;Fe=+f[ye>>2];Oe=Fe*999999986991104.0;Ae=so+(oo<<2)|0;Re=+f[Ae>>2];Te=Oe*Re;Ne=Te/X;De=Ne;Pe=(((T+201912|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(Se<<3)|0;u[Pe>>3]=De;Le=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+332|0)+(io*12|0)|0)+(xa<<2)|0;Ce=+f[Le>>2];if(D){Ie=Ce>0.0;He=_e/Ce;Aa=Ie?He:0.0;xe=a[zn>>2]|0;Ue=(xe|0)==0;if(Ue){Da=Aa}else{lo=33}}else{lo=33}if((lo|0)==33){lo=0;Da=0.0}ze=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+88|0)+(io*12|0)|0)+(xa<<2)|0;qe=+f[ze>>2];Ve=qe*Da;je=Ve>Q;s=je?Ve:Q;We=s*999999986991104.0;Ye=We;Ge=(((T+192120|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(Se<<3)|0;u[Ge>>3]=Ye;Xe=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4808|0)+(xa<<2)|0;Ze=a[Xe>>2]|0;Je=+(Ze|0);Qe=Je*-2.0;$e=(((T+199864|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(Se<<3)|0;u[$e>>3]=Qe;if($){er=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0)+(oo<<2)|0;rr=a[er>>2]|0;ir=+(rr|0);tr=ir*Qt;ar=tr;or=Qe-ar;u[$e>>3]=or}sr=oo+1|0;lr=xa+1|0;La=(lr|0)==3;if(La){break}else{xa=lr;Ya=me;oo=sr}}H=ja+x|0;U=ie(z,-3)|0;q=H+U|0;Wa=q}else{ee=(((T+194616|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(Z<<3)|0;u[ee>>3]=9.9999997473787516E-6;re=Xa+(no<<2)|0;ne=+f[re>>2];ae=ne*999999986991104.0;oe=so+(no<<2)|0;se=+f[oe>>2];le=ae*se;fe=le/X;ue=fe;ce=(((T+201912|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(Z<<3)|0;u[ce>>3]=ue;he=(((r+(Ha*976|0)|0)+(pa*488|0)|0)+332|0)+(io*12|0)|0;de=+f[he>>2];if(D){Er=de>0.0;wr=9.9999996826552254E-21/de;Ma=Er?wr:0.0;br=a[zn>>2]|0;_r=(br|0)==0;if(_r){Ra=Ma}else{lo=40}}else{lo=40}if((lo|0)==40){lo=0;Ra=0.0}pr=(((r+(Ha*976|0)|0)+(pa*488|0)|0)+88|0)+(io*12|0)|0;kr=+f[pr>>2];Sr=kr*Ra;gr=Sr>Q;t=gr?Sr:Q;yr=t*999999986991104.0;Mr=yr;Ar=(((T+192120|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(Z<<3)|0;u[Ar>>3]=Mr;Rr=a[C>>2]|0;Tr=+(Rr|0);Nr=Tr*-2.0;Dr=(((T+199864|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(Z<<3)|0;u[Dr>>3]=Nr;if($){Pr=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0)+(no<<2)|0;Lr=a[Pr>>2]|0;Cr=+(Lr|0);Br=Cr*Qt;Ir=Br;xr=Nr-Ir;u[Dr>>3]=xr}Ur=no+1|0;zr=Z+1|0;qr=(((T+194616|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(zr<<3)|0;u[qr>>3]=9.9999997473787516E-6;Vr=Xa+(Ur<<2)|0;jr=+f[Vr>>2];Wr=jr*999999986991104.0;Yr=so+(Ur<<2)|0;Kr=+f[Yr>>2];Gr=Wr*Kr;Zr=Gr/X;Jr=Zr;Qr=(((T+201912|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(zr<<3)|0;u[Qr>>3]=Jr;$r=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+332|0)+(io*12|0)|0)+4|0;ei=+f[$r>>2];if(D){Ui=ei>0.0;qi=9.9999996826552254E-21/ei;Fa=Ui?qi:0.0;Vi=a[zn>>2]|0;ji=(Vi|0)==0;if(ji){Ta=Fa}else{lo=49}}else{lo=49}if((lo|0)==49){lo=0;Ta=0.0}Wi=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+88|0)+(io*12|0)|0)+4|0;Yi=+f[Wi>>2];Ki=Yi*Ta;Gi=Ki>Q;n=Gi?Ki:Q;Xi=n*999999986991104.0;Zi=Xi;Ji=(((T+192120|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(zr<<3)|0;u[Ji>>3]=Zi;$i=a[B>>2]|0;et=+($i|0);rt=et*-2.0;it=(((T+199864|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(zr<<3)|0;u[it>>3]=rt;if($){tt=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0)+(Ur<<2)|0;nt=a[tt>>2]|0;at=+(nt|0);ot=at*Qt;st=ot;lt=rt-st;u[it>>3]=lt}ut=no+2|0;ct=Z+2|0;ht=(((T+194616|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(ct<<3)|0;u[ht>>3]=9.9999997473787516E-6;dt=Xa+(ut<<2)|0;vt=+f[dt>>2];mt=vt*999999986991104.0;Et=so+(ut<<2)|0;wt=+f[Et>>2];bt=mt*wt;_t=bt/X;kt=_t;St=(((T+201912|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(ct<<3)|0;u[St>>3]=kt;gt=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+332|0)+(io*12|0)|0)+8|0;yt=+f[gt>>2];if(D){Mt=yt>0.0;Ft=9.9999996826552254E-21/yt;Oa=Mt?Ft:0.0;Ot=a[zn>>2]|0;At=(Ot|0)==0;if(At){Na=Oa}else{lo=54}}else{lo=54}if((lo|0)==54){lo=0;Na=0.0}Rt=((((r+(Ha*976|0)|0)+(pa*488|0)|0)+88|0)+(io*12|0)|0)+8|0;Tt=+f[Rt>>2];Pt=Tt*Na;Lt=Pt>Q;o=Lt?Pt:Q;Ct=o*999999986991104.0;Bt=Ct;It=(((T+192120|0)+(Ha*1248|0)|0)+(pa*312|0)|0)+(ct<<3)|0;u[It>>3]=Bt;Ht=a[I>>2]|0;xt=+(Ht|0);Ut=xt*-2.0;zt=(((T+199864|0)+(Ha*624|0)|0)+(pa*312|0)|0)+(ct<<3)|0;u[zt>>3]=Ut;if($){qt=((((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4608|0)+(ut<<2)|0;jt=a[qt>>2]|0;Wt=+(jt|0);Yt=Wt*Qt;Kt=Yt;Gt=Ut-Kt;u[zt>>3]=Gt;Wa=ja}else{Wa=ja}}ao=no+3|0;Ca=(V|0)==13;if(Ca){break}else{z=Y;ja=Wa;io=V;no=ao}}}}ri=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4780|0;ii=a[ri>>2]|0;ti=a[sn>>2]|0;ni=((ti+201112|0)+(Ha<<3)|0)+(pa<<2)|0;a[ni>>2]=ii;ai=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4768|0;si=a[ai>>2]|0;li=(((e+304|0)+(Ha*10504|0)|0)+(pa*5252|0)|0)+4844|0;fi=a[li>>2]|0;ui=fi+si|0;ci=((ti+203400|0)+(Ha<<3)|0)+(pa<<2)|0;a[ci>>2]=ui;hi=a[li>>2]|0;di=((ti+203416|0)+(Ha<<3)|0)+(pa<<2)|0;a[di>>2]=hi;vi=a[Qn>>2]|0;mi=((ti+203160|0)+(Ha<<3)|0)+(pa<<2)|0;a[mi>>2]=vi;Ei=+f[fa>>2];bi=Ei;_i=bi*10.0;pi=((ti+203208|0)+(Ha<<4)|0)+(pa<<3)|0;u[pi>>3]=_i;ki=+f[Za>>2];Si=ki;Mi=Si*10.0;Fi=((ti+203240|0)+(Ha<<4)|0)+(pa<<3)|0;u[Fi>>3]=Mi;Oi=+f[g>>2];Ai=Oi;Ri=Ai*10.0;Ni=((ti+203176|0)+(Ha<<4)|0)+(pa<<3)|0;u[Ni>>3]=Ri;Di=a[L>>2]|0;Pi=((ti+203272|0)+(Ha<<3)|0)+(pa<<2)|0;a[Pi>>2]=Di;yn(Be|0,Qa|0,156)|0;Li=pa+1|0;Ci=a[Nt>>2]|0;Bi=(Li|0)<(Ci|0);if(Bi){pa=Li}else{d=Ci;break}}_=a[k>>2]|0;xi=_;Zt=d}else{xi=Xt;Zt=W}Ii=Ha+1|0;Hi=(Ii|0)<(xi|0);if(Hi){W=Zt;Xt=xi;Ha=Ii}else{break}}c=fo;return}function Fi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0;z=c;n=kr(e)|0;o=e+24|0;b=a[o>>2]|0;R=b<<3;P=n-R|0;L=e+76|0;C=a[L>>2]|0;B=(P|0)/(C|0)&-1;I=C<<11;H=I+-8|0;s=e+148|0;l=a[s>>2]|0;f=l-n|0;u=e+52144|0;h=(f|0)>(H|0);i=h?H:f;a[u>>2]=i;d=(i|0)<0;if(d){U=3}else{v=e+144|0;m=a[v>>2]|0;E=(m|0)==0;if(E){S=i}else{U=3}}if((U|0)==3){a[u>>2]=0;S=0}w=ie(C,B)|0;_=e+52140|0;p=a[_>>2]|0;k=(p|0)<(S|0);t=k?p:S;g=t+w|0;y=(g|0)>(l|0);x=y?l:g;M=e+21320|0;a[M>>2]=0;F=e+85804|0;O=a[F>>2]|0;A=(O|0)==(0|0);if(A){a[r>>2]=B;return x|0}T=(B|0)/2&-1;N=O+203484|0;a[N>>2]=T;D=O+203488|0;a[D>>2]=p;a[r>>2]=B;return x|0}function Oi(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;var o=0,s=0,l=0,f=0,u=0,h=0.0,d=0.0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0.0,R=0.0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0;var K=0;K=c;f=e+52140|0;u=a[f>>2]|0;S=e+52144|0;P=a[S>>2]|0;I=(n|0)==0;H=I?0:r;s=u+H|0;x=e+85096|0;U=a[x>>2]|0;z=U&1;q=(z|0)==0;if(q){V=P}else{h=+(P|0);d=h*0.90000000000000002;v=~~d;V=v}m=s*10|0;E=V*9|0;w=(m|0)>(E|0);if(w){b=(E|0)/10&-1;_=s-b|0;p=_+r|0;k=U|128;a[x>>2]=k;j=_;W=p}else{g=U&127;a[x>>2]=g;y=e+144|0;M=a[y>>2]|0;F=M|z;O=(F|0)==0;if(O){A=+(r|0);R=A*0.90000000000000002;T=~~R;j=0;W=T}else{j=0;W=r}}N=P*6|0;D=(N|0)/10&-1;L=(s|0)<(D|0);l=L?s:D;C=l-j|0;B=(C|0)<0;o=B?0:C;a[i>>2]=W;a[t>>2]=o;return}function Ai(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0;d=c;i=r+4768|0;t=a[i>>2]|0;n=r+4844|0;o=a[n>>2]|0;s=e+52140|0;l=a[s>>2]|0;u=o+t|0;f=l-u|0;a[s>>2]=f;return}function Ri(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0;D=c;t=e+76|0;n=a[t>>2]|0;w=ie(n,r)|0;g=e+52140|0;y=a[g>>2]|0;M=y+w|0;F=e+21324|0;O=e+21320|0;A=(M|0)%8&-1;R=M-A|0;o=e+52144|0;s=a[o>>2]|0;l=R-s|0;f=(l|0)>0;u=f?l:0;T=u+A|0;h=e+21312|0;d=a[h>>2]|0;v=d<<3;m=(v|0)<(T|0);i=m?v:T;E=(i|0)/8&-1;b=E<<3;a[O>>2]=b;_=T-b|0;p=M-b|0;k=d-E|0;a[h>>2]=k;a[F>>2]=_;S=p-_|0;a[g>>2]=S;return}function Ti(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+12|0;a[o>>2]=r;i=0;return i|0}function Ni(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0;h=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=(r|0)>2;s=(r|0)==0;f=o|s;if(f){i=-1;return i|0}l=e+8|0;a[l>>2]=r;i=0;return i|0}function Di(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+20|0;f[a>>2]=r;i=0;return i|0}function Pi(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+20|0;a=+f[n>>2];r=a;return+r}function Li(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0;u=c;t=Vr(e)|0;n=(t|0)==0;o=r>>>0>4;l=o|n;if(l){i=-1;return i|0}s=e+48|0;a[s>>2]=r;i=0;return i|0}function Ci(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0;u=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+96|0;a[o>>2]=r;s=(r|0)>320;if(!s){i=0;return i|0}l=e+128|0;a[l>>2]=1;i=0;return i|0}function Bi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+132|0;a[o>>2]=r;i=0;return i|0}function Ii(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+136|0;a[o>>2]=r;i=0;return i|0}function Hi(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0;return r|0}n=e+132|0;o=a[n>>2]|0;r=o;return r|0}function xi(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0;return r|0}n=e+136|0;o=a[n>>2]|0;r=o;return r|0}function Ui(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+140|0;a[o>>2]=r;i=0;return i|0}function zi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+148|0;a[o>>2]=r;i=0;return i|0}function qi(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0;return r|0}n=e+148|0;o=a[n>>2]|0;r=o;return r|0}function Vi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0;u=c;t=Vr(e)|0;n=(t|0)==0;o=r>>>0>4;l=o|n;if(l){i=-1;return i|0}s=e+156|0;a[s>>2]=r;i=0;return i|0}function ji(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0;return r|0}n=e+156|0;o=a[n>>2]|0;r=o;return r|0}function Wi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0;w=c;o=Vr(e)|0;s=(o|0)==0;if(s){i=-1;return i|0}l=(r|0)<0;n=l?0:r;v=r>>31;u=(n|0)>9;t=u?9:n;m=u?-1:v;h=e+164|0;a[h>>2]=t;d=e+160|0;f[d>>2]=0.0;i=m;return i|0}function Yi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+168|0;a[o>>2]=r;i=0;return i|0}function Ki(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0;l=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0;return r|0}n=e+168|0;o=a[n>>2]|0;r=o;return r|0}function Gi(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+200|0;f[a>>2]=r;i=0;return i|0}function Xi(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+200|0;a=+f[n>>2];r=a;return+r}function Zi(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+204|0;f[a>>2]=r;i=0;return i|0}function Ji(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+204|0;a=+f[n>>2];r=a;return+r}function Qi(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0;l=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=e+220|0;a[o>>2]=r;i=0;return i|0}function $i(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+224|0;f[a>>2]=r;i=0;return i|0}function et(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+224|0;a=+f[n>>2];r=a;return+r}function rt(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+228|0;f[a>>2]=r;i=0;return i|0}function it(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+228|0;a=+f[n>>2];r=a;return+r}function tt(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+236|0;f[a>>2]=r;i=0;return i|0}function nt(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+236|0;a=+f[n>>2];r=a;return+r}function at(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0,l=0,u=0,h=0,d=0;d=c;t=Vr(e)|0;o=(t|0)==0;s=!(r>=0.0);l=s|o;n=!(r<=1.0);u=n|l;if(u){i=-1;return i|0}a=e+248|0;f[a>>2]=r;i=0;return i|0}function ot(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+248|0;a=+f[n>>2];r=a;return+r}function st(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0;u=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}o=(r|0)!=0;s=o?2:1;l=e+84|0;a[l>>2]=s;i=0;return i|0}function lt(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+264|0;f[a>>2]=r;i=0;return i|0}function ft(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+264|0;a=+f[n>>2];r=a;return+r}function ut(e,r){e=e|0;r=+r;var i=0,t=0,n=0,a=0,o=0,s=0;s=c;t=Vr(e)|0;n=(t|0)==0;if(n){i=-1;return i|0}a=e+268|0;f[a>>2]=r;i=0;return i|0}function ct(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+268|0;a=+f[n>>2];r=a;return+r}function ht(e,r){e=e|0;r=+r;var i=0,t=0,n=0.0,a=0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){return}n=r;a=e+252|0;f[a>>2]=n;return}function dt(e){e=e|0;var r=0.0,i=0,t=0,n=0,a=0.0,o=0,s=0;s=c;i=Vr(e)|0;t=(i|0)==0;if(t){r=0.0;return+r}n=e+252|0;a=+f[n>>2];r=a;return+r}function vt(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0;var he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0;var De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0;var Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0;var br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0;var Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0;Vr=c;c=c+16|0;Tr=Vr;a[Tr>>2]=0;s=r+2304|0;l=r+5208|0;j=a[l>>2]|0;re=j+2|0;he=re&-2;ge=(he|0)>576;n=ge?576:he;Le=(i|0)!=(0|0);if(Le){We=i+4|0;a[We>>2]=0;Nr=n}else{Nr=n}while(1){ir=(Nr|0)>1;if(!ir){Dr=Nr;qr=4;break}f=Nr+-1|0;k=(r+2304|0)+(f<<2)|0;D=a[k>>2]|0;I=Nr+-2|0;H=(r+2304|0)+(I<<2)|0;x=a[H>>2]|0;U=x|D;z=(U|0)==0;if(z){Nr=I}else{Pr=Nr;qr=6;break}}if((qr|0)==4){dr=r+4776|0;a[dr>>2]=Dr;Lr=Dr;qr=9}else if((qr|0)==6){q=r+4776|0;a[q>>2]=Pr;V=(Pr|0)>3;if(V){Mr=0;Ar=0;xr=Pr;while(1){W=xr+-4|0;Y=(r+2304|0)+(W<<2)|0;K=a[Y>>2]|0;G=xr+-3|0;X=(r+2304|0)+(G<<2)|0;Z=a[X>>2]|0;J=xr+-2|0;Q=(r+2304|0)+(J<<2)|0;$=a[Q>>2]|0;ee=xr+-1|0;ie=(r+2304|0)+(ee<<2)|0;te=a[ie>>2]|0;ne=Z|K;ae=ne|$;oe=ae|te;se=oe>>>0>1;if(se){yr=Mr;Or=Ar;Ir=xr;break}le=K<<1;fe=le+Z|0;ue=fe<<1;ce=ue+$|0;de=ce<<1;ve=de+te|0;me=82240+ve|0;Ee=t[me>>0]|0;we=Ee&255;be=we+Mr|0;_e=82256+ve|0;pe=t[_e>>0]|0;ke=pe&255;Se=ke+Ar|0;ye=(W|0)>3;if(ye){Mr=be;Ar=Se;xr=W}else{yr=be;Or=Se;Ir=W;break}}a[Tr>>2]=yr;Fe=r+4840|0;a[Fe>>2]=0;Oe=(yr|0)>(Or|0);if(Oe){a[Tr>>2]=Or;a[Fe>>2]=1;Re=Or;Hr=Ir}else{Re=yr;Hr=Ir}}else{Lr=Pr;qr=9}}if((qr|0)==9){a[Tr>>2]=0;Me=r+4840|0;a[Me>>2]=0;Re=0;Hr=Lr}Ae=r+5184|0;a[Ae>>2]=Re;Te=r+4772|0;a[Te>>2]=Hr;Ne=(Hr|0)==0;if(Ne){o=a[Tr>>2]|0;c=Vr;return o|0}De=r+4788|0;Pe=a[De>>2]|0;if((Pe|0)==2){Ce=e+21464|0;Be=a[Ce>>2]|0;Ie=Be*3|0;He=(Ie|0)>(Hr|0);Cr=He?Hr:Ie;Fr=Cr;Rr=Hr}else if((Pe|0)==0){xe=Hr+-2|0;Ue=(e+85100|0)+xe|0;ze=t[Ue>>0]|0;qe=ze<<24>>24;Ve=r+4824|0;a[Ve>>2]=qe;je=Hr+-1|0;Ye=(e+85100|0)+je|0;Ke=t[Ye>>0]|0;Ge=Ke<<24>>24;Xe=r+4828|0;a[Xe>>2]=Ge;Ze=qe+2|0;Je=Ze+Ge|0;Qe=(e+21360|0)+(Je<<2)|0;$e=a[Qe>>2]|0;er=qe+1|0;rr=(e+21360|0)+(er<<2)|0;tr=a[rr>>2]|0;nr=($e|0)<(Hr|0);if(nr){ar=e+85816|0;or=a[ar>>2]|0;sr=(r+2304|0)+($e<<2)|0;lr=(r+2304|0)+(Hr<<2)|0;fr=Yn[or&3](sr,lr,Tr)|0;ur=r+4804|0;a[ur>>2]=fr;Fr=tr;Rr=$e}else{Fr=tr;Rr=$e}}else{cr=r+4824|0;a[cr>>2]=7;hr=r+4828|0;a[hr>>2]=13;vr=e+21392|0;mr=a[vr>>2]|0;Er=(mr|0)>(Hr|0);Br=Er?Hr:mr;Fr=Br;Rr=Hr}wr=(Fr|0)<(Hr|0);br=wr?Fr:Hr;_r=(Rr|0)<(Hr|0);pr=_r?Rr:Hr;kr=(br|0)>0;if(kr){Sr=e+85816|0;gr=a[Sr>>2]|0;u=(r+2304|0)+(br<<2)|0;h=Yn[gr&3](s,u,Tr)|0;d=r+4796|0;a[d>>2]=h}v=(br|0)<(pr|0);if(v){m=e+85816|0;E=a[m>>2]|0;w=(r+2304|0)+(br<<2)|0;b=(r+2304|0)+(pr<<2)|0;_=Yn[E&3](w,b,Tr)|0;p=r+4800|0;a[p>>2]=_}S=e+36|0;g=a[S>>2]|0;y=(g|0)==2;if(y){M=a[Tr>>2]|0;F=r+4768|0;a[F>>2]=M;mt(e,r);O=a[F>>2]|0;a[Tr>>2]=O}if(!Le){o=a[Tr>>2]|0;c=Vr;return o|0}A=a[De>>2]|0;R=(A|0)==0;if(!R){o=a[Tr>>2]|0;c=Vr;return o|0}T=a[Te>>2]|0;Ur=0;while(1){N=(e+21360|0)+(Ur<<2)|0;P=a[N>>2]|0;L=(P|0)<(T|0);C=Ur+1|0;if(L){Ur=C}else{zr=Ur;break}}B=i+4|0;a[B>>2]=zr;o=a[Tr>>2]|0;c=Vr;return o|0}function mt(e,r){e=e|0;r=r|0;var i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0;var Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0;var ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0;var gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0;var Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0;var ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0;gt=c;c=c+5632|0;st=gt+5624|0;wt=gt+5620|0;lt=gt+368|0;vt=gt+276|0;mt=gt+184|0;Et=gt+92|0;_t=gt;f=r+2304|0;u=r+4788|0;vr=a[u>>2]|0;Pr=(vr|0)==2;do{if(Pr){jr=e+76|0;ri=a[jr>>2]|0;hi=(ri|0)==1;if(hi){c=gt;return}else{yn(lt|0,r|0,5252)|0;gr=r;St=5;break}}else{yn(lt|0,r|0,5252)|0;gi=(vr|0)==0;if(gi){ft=r+4772|0;ut=a[ft>>2]|0;a[vt>>2]=100000;Li=vt+4|0;a[Li>>2]=100000;Wi=vt+8|0;a[Wi>>2]=100000;h=vt+12|0;a[h>>2]=100000;g=vt+16|0;a[g>>2]=100000;L=vt+20|0;a[L>>2]=100000;W=vt+24|0;a[W>>2]=100000;ie=vt+28|0;a[ie>>2]=100000;de=vt+32|0;a[de>>2]=100000;ye=vt+36|0;a[ye>>2]=100000;Ce=vt+40|0;a[Ce>>2]=100000;Ye=vt+44|0;a[Ye>>2]=100000;tr=vt+48|0;a[tr>>2]=100000;mr=vt+52|0;a[mr>>2]=100000;yr=vt+56|0;a[yr>>2]=100000;Mr=vt+60|0;a[Mr>>2]=100000;Fr=vt+64|0;a[Fr>>2]=100000;Or=vt+68|0;a[Or>>2]=100000;Ar=vt+72|0;a[Ar>>2]=100000;Rr=vt+76|0;a[Rr>>2]=100000;Tr=vt+80|0;a[Tr>>2]=100000;Nr=vt+84|0;a[Nr>>2]=100000;Dr=vt+88|0;a[Dr>>2]=100000;Lr=e+85816|0;dt=0;while(1){Cr=dt+1|0;Ir=(e+21360|0)+(Cr<<2)|0;Hr=a[Ir>>2]|0;xr=(Hr|0)<(ut|0);if(!xr){break}a[wt>>2]=0;Ur=a[Lr>>2]|0;zr=(r+2304|0)+(Hr<<2)|0;qr=Yn[Ur&3](f,zr,wt)|0;bt=0;while(1){Vr=bt+dt|0;Wr=Vr+2|0;Yr=(e+21360|0)+(Wr<<2)|0;Kr=a[Yr>>2]|0;Gr=(Kr|0)<(ut|0);if(!Gr){break}Xr=a[wt>>2]|0;a[st>>2]=Xr;Zr=a[Lr>>2]|0;Jr=(r+2304|0)+(Kr<<2)|0;Qr=Yn[Zr&3](zr,Jr,st)|0;$r=vt+(Vr<<2)|0;ei=a[$r>>2]|0;ii=a[st>>2]|0;ti=(ei|0)>(ii|0);if(ti){a[$r>>2]=ii;ni=mt+(Vr<<2)|0;a[ni>>2]=dt;ai=Et+(Vr<<2)|0;a[ai>>2]=qr;oi=_t+(Vr<<2)|0;a[oi>>2]=Qr}si=bt+1|0;li=(si|0)<8;if(li){bt=si}else{break}}Br=(Cr|0)<16;if(Br){dt=Cr}else{break}}fi=lt+4772|0;ui=a[fi>>2]|0;ci=lt+5184|0;di=r+4768|0;vi=(r+2304|0)+(ui<<2)|0;mi=r+4824|0;Ei=r+4828|0;wi=r+4796|0;bi=r+4800|0;_i=r+4804|0;pt=2;while(1){pi=(e+21360|0)+(pt<<2)|0;ki=a[pi>>2]|0;Si=(ki|0)<(ui|0);if(!Si){break}yi=pt+-2|0;Mi=vt+(yi<<2)|0;Fi=a[Mi>>2]|0;Oi=a[ci>>2]|0;Ai=Oi+Fi|0;a[st>>2]=Ai;Ri=a[di>>2]|0;Ti=(Ri|0)>(Ai|0);if(!Ti){break}Ni=a[Lr>>2]|0;Di=(r+2304|0)+(ki<<2)|0;Pi=Yn[Ni&3](Di,vi,st)|0;Ci=a[di>>2]|0;Bi=a[st>>2]|0;Ii=(Ci|0)>(Bi|0);if(Ii){yn(r|0,lt|0,5252)|0;a[di>>2]=Bi;Hi=mt+(yi<<2)|0;xi=a[Hi>>2]|0;a[mi>>2]=xi;Ui=yi-xi|0;a[Ei>>2]=Ui;zi=Et+(yi<<2)|0;qi=a[zi>>2]|0;a[wi>>2]=qi;Vi=_t+(yi<<2)|0;ji=a[Vi>>2]|0;a[bi>>2]=ji;a[_i>>2]=Pi}Yi=pt+1|0;Ki=(Yi|0)<23;if(Ki){pt=Yi}else{break}}l=fi;_=r}else{gr=r;St=5}}}while(0);if((St|0)==5){s=lt+4772|0;l=s;_=gr}Gi=a[l>>2]|0;Xi=(Gi|0)==0;if(Xi){c=gt;return}Zi=Gi+-2|0;Ji=(r+2304|0)+(Zi<<2)|0;Qi=a[Ji>>2]|0;$i=Gi+-1|0;et=(r+2304|0)+($i<<2)|0;rt=a[et>>2]|0;d=rt|Qi;v=d>>>0>1;if(v){c=gt;return}m=r+4776|0;E=a[m>>2]|0;w=E+2|0;b=(w|0)>576;if(b){c=gt;return}yn(lt|0,_|0,5252)|0;p=lt+4776|0;a[p>>2]=w;k=a[l>>2]|0;S=(w|0)>(k|0);if(S){y=E+-2|0;M=(k|0)>(y|0);F=M?y:k;O=F^-1;A=E+O|0;R=A+2|0;T=R&-4;tt=0;ot=0;ht=w;while(1){N=ht+-4|0;D=(r+2304|0)+(N<<2)|0;P=a[D>>2]|0;C=P<<1;B=ht+-3|0;I=(r+2304|0)+(B<<2)|0;H=a[I>>2]|0;x=C+H|0;U=x<<1;z=ht+-2|0;q=(r+2304|0)+(z<<2)|0;V=a[q>>2]|0;j=U+V|0;Y=j<<1;K=ht+-1|0;G=(r+2304|0)+(K<<2)|0;X=a[G>>2]|0;Z=Y+X|0;J=82240+Z|0;Q=t[J>>0]|0;$=Q&255;ee=$+tt|0;re=82256+Z|0;te=t[re>>0]|0;ne=te&255;ae=ne+ot|0;oe=(N|0)>(k|0);if(oe){tt=ee;ot=ae;ht=N}else{n=ee;o=ae;break}}se=E+-2|0;le=se-T|0;fe=le;it=n;at=o}else{fe=w;it=0;at=0}a[l>>2]=fe;ue=lt+4840|0;ce=(it|0)>(at|0);i=ce&1;nt=ce?at:it;a[ue>>2]=i;he=lt+5184|0;a[he>>2]=nt;ve=lt+4788|0;me=a[ve>>2]|0;Ee=(me|0)==0;if(Ee){we=r+4768|0;be=e+85816|0;_e=(r+2304|0)+(fe<<2)|0;pe=r+4824|0;ke=r+4828|0;Se=r+4796|0;ge=r+4800|0;Me=r+4804|0;kt=2;while(1){Fe=(e+21360|0)+(kt<<2)|0;Oe=a[Fe>>2]|0;Ae=(Oe|0)<(fe|0);if(!Ae){break}Re=kt+-2|0;Te=vt+(Re<<2)|0;Ne=a[Te>>2]|0;De=a[he>>2]|0;Pe=De+Ne|0;a[st>>2]=Pe;Le=a[we>>2]|0;Be=(Le|0)>(Pe|0);if(!Be){break}Ie=a[be>>2]|0;He=(r+2304|0)+(Oe<<2)|0;xe=Yn[Ie&3](He,_e,st)|0;Ue=a[we>>2]|0;ze=a[st>>2]|0;qe=(Ue|0)>(ze|0);if(qe){yn(_|0,lt|0,5252)|0;a[we>>2]=ze;Ve=mt+(Re<<2)|0;je=a[Ve>>2]|0;a[pe>>2]=je;We=Re-je|0;a[ke>>2]=We;Ke=Et+(Re<<2)|0;Ge=a[Ke>>2]|0;a[Se>>2]=Ge;Xe=_t+(Re<<2)|0;Ze=a[Xe>>2]|0;a[ge>>2]=Ze;a[Me>>2]=xe}Je=kt+1|0;Qe=(Je|0)<23;if(Qe){kt=Je}else{break}}c=gt;return}else{$e=lt+4768|0;a[$e>>2]=nt;er=e+21392|0;rr=a[er>>2]|0;ir=(rr|0)>(fe|0);ct=ir?fe:rr;nr=(ct|0)>0;if(nr){ar=e+85816|0;or=a[ar>>2]|0;sr=(r+2304|0)+(ct<<2)|0;lr=Yn[or&3](f,sr,$e)|0;fr=lt+4796|0;a[fr>>2]=lr}ur=(fe|0)>(ct|0);if(ur){cr=e+85816|0;hr=a[cr>>2]|0;dr=(r+2304|0)+(ct<<2)|0;Er=(r+2304|0)+(fe<<2)|0;wr=Yn[hr&3](dr,Er,$e)|0;br=lt+4800|0;a[br>>2]=wr}_r=r+4768|0;pr=a[_r>>2]|0;kr=a[$e>>2]|0;Sr=(pr|0)>(kr|0);if(!Sr){c=gt;return}yn(_|0,lt|0,5252)|0;c=gt;return}}function Et(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0.0,H=0,x=0,U=0,z=0.0,q=0,V=0,j=0,W=0,Y=0;var K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0.0,ne=0.0,ae=0.0,oe=0.0,se=0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0.0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0;var Pe=0.0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0.0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;var $e=0,er=0,rr=0,ir=0,tr=0,nr=0.0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0.0,vr=0,mr=0,Er=0,wr=0.0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0.0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0;var xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0.0,Qr=0,$r=0,ei=0.0,ri=0,ii=0,ti=0,ni=0;var ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0.0,di=0,vi=0,mi=0.0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0;var Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0;var Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0;var ct=0,ht=0,dt=0,mt=0,Et=0;Et=c;m=i+4780|0;E=a[m>>2]|0;Be=79704+(E<<2)|0;Ke=+f[Be>>2];nr=8206.0/Ke;mr=i+4764|0;Fr=+f[mr>>2];Ir=Fr>nr;if(Ir){o=100000;return o|0}Gr=i+2304|0;ai=(t|0)!=(0|0);if(ai){w=a[t>>2]|0;A=(E|0)==(w|0);Ne=A}else{Ne=0}x=i+4788|0;Z=a[x>>2]|0;se=(Z|0)==2;h=se?38:21;be=i+4832|0;Re=i+4836|0;Pe=0.59459996223449707/Ke;Le=i+5208|0;Ce=h+1|0;Ie=t+4|0;l=r;Ei=Gr;gi=r;Ti=0;Ci=0;Wi=Gr;Ki=0;ft=0;while(1){if(Ne){mt=7}else{He=a[x>>2]|0;xe=(He|0)==0;if(xe){mt=7}else{dt=-1;mt=15}}if((mt|0)==7){mt=0;Ue=a[m>>2]|0;ze=(i+4608|0)+(ft<<2)|0;qe=a[ze>>2]|0;Ve=a[be>>2]|0;je=(Ve|0)==0;if(je){Xe=0}else{We=12112+(ft<<2)|0;Ye=a[We>>2]|0;Xe=Ye}Ge=Xe+qe|0;Ze=a[Re>>2]|0;Je=Ze+1|0;Qe=Ge<>2]|0;ir=(i+4808|0)+(rr<<2)|0;tr=a[ir>>2]|0;ar=tr<<3;or=$e-ar|0;if(Ne){sr=(t+8|0)+(ft<<2)|0;lr=a[sr>>2]|0;fr=(lr|0)==(or|0);if(fr){ur=(Ti|0)==0;if(!ur){pt(Ti,Ke,gi,Ei)}cr=(Ci|0)==0;if(cr){ki=Ei;Ai=gi;Pi=0;Hi=0;ht=ft}else{Ui=0;while(1){hr=gi+(Ui<<2)|0;dr=+f[hr>>2];vr=Ui|1;Er=gi+(vr<<2)|0;wr=+f[Er>>2];Qi=!(Pe>dr);br=Qi&1;it=!(Pe>wr);_r=it&1;pr=Ei+(Ui<<2)|0;a[pr>>2]=br;kr=Ei+(vr<<2)|0;a[kr>>2]=_r;Sr=Ui+2|0;gr=Sr>>>0>>0;if(gr){Ui=Sr}else{ki=Ei;Ai=gi;Pi=0;Hi=0;ht=ft;break}}}}else{dt=or;mt=15}}else{dt=or;mt=15}}if((mt|0)==15){mt=0;yr=(i+4872|0)+(ft<<2)|0;Mr=a[yr>>2]|0;Or=Mr+Ki|0;Ar=a[Le>>2]|0;Rr=(Or|0)>(Ar|0);if(Rr){Tr=Ar-Ki|0;Nr=Tr+1|0;Dr=(i+2304|0)+(Ar<<2)|0;Pr=576-Ar|0;Lr=Pr<<2;pn(Dr|0,0,Lr|0)|0;Cr=(Nr|0)<0;n=Cr?0:Nr;Ji=n;ct=Ce}else{Ji=Mr;ct=ft}Br=(Ti|0)==0;Hr=(Ci|0)==0;xr=Ti|Ci;Ur=(xr|0)==0;ji=Ur?Wi:Ei;s=Ur?l:gi;if(ai){zr=a[Ie>>2]|0;qr=(zr|0)<1;Vr=(ct|0)<(zr|0);st=qr|Vr;if(st){mt=23}else{jr=(t+8|0)+(ct<<2)|0;Wr=a[jr>>2]|0;Yr=(Wr|0)<1;Kr=(dt|0)<(Wr|0);lt=Yr|Kr;if(lt){mt=23}else{if(Br){wi=ji;yi=s}else{pt(Ti,Ke,s,ji);wi=Wi;yi=l}Xr=Ji+Ci|0;_i=wi;Fi=yi;Ni=0;Bi=Xr}}}else{mt=23}if((mt|0)==23){mt=0;if(Hr){bi=ji;Mi=s}else{Vi=0;while(1){Zr=s+(Vi<<2)|0;Jr=+f[Zr>>2];Qr=Vi|1;$r=s+(Qr<<2)|0;ei=+f[$r>>2];$i=!(Pe>Jr);ri=$i&1;tt=!(Pe>ei);ii=tt&1;ti=ji+(Vi<<2)|0;a[ti>>2]=ri;ni=ji+(Qr<<2)|0;a[ni>>2]=ii;oi=Vi+2|0;si=oi>>>0>>0;if(si){Vi=oi}else{bi=Wi;Mi=l;break}}}li=Ji+Ti|0;_i=bi;Fi=Mi;Ni=li;Bi=0}fi=(Ji|0)<1;if(fi){pi=_i;Oi=Fi;Di=Ni;Ii=Bi;mt=27;break}else{ki=_i;Ai=Fi;Pi=Ni;Hi=Bi;ht=ct}}M=(ht|0)>(h|0);if(M){u=l;Yi=Wi;Xi=Ki}else{F=(i+4872|0)+(ht<<2)|0;O=a[F>>2]|0;R=Wi+(O<<2)|0;T=l+(O<<2)|0;N=O+Ki|0;u=T;Yi=R;Xi=N}D=ht+1|0;P=(ht|0)<(h|0);if(P){l=u;Ei=ki;gi=Ai;Ti=Pi;Ci=Hi;Wi=Yi;Ki=Xi;ft=D}else{Si=ki;Ri=Ai;Li=Pi;xi=Hi;mt=34;break}}if((mt|0)==27){ui=(Ii|0)==0;if(!ui){zi=0;while(1){ci=Oi+(zi<<2)|0;hi=+f[ci>>2];di=zi|1;vi=Oi+(di<<2)|0;mi=+f[vi>>2];et=!(Pe>hi);b=et&1;nt=!(Pe>mi);_=nt&1;p=pi+(zi<<2)|0;a[p>>2]=b;k=pi+(di<<2)|0;a[k>>2]=_;S=zi+2|0;g=S>>>0>>0;if(g){zi=S}else{break}}}y=(Di|0)==0;if(!y){pt(Di,Ke,Oi,pi)}}else if((mt|0)==34){L=(Li|0)==0;if(!L){pt(Li,Ke,Ri,Si)}C=(xi|0)==0;if(!C){qi=0;while(1){B=Ri+(qi<<2)|0;I=+f[B>>2];H=qi|1;U=Ri+(H<<2)|0;z=+f[U>>2];rt=!(Pe>I);q=rt&1;at=!(Pe>z);V=at&1;j=Si+(qi<<2)|0;a[j>>2]=q;W=Si+(H<<2)|0;a[W>>2]=V;Y=qi+2|0;K=Y>>>0>>0;if(K){qi=Y}else{break}}}}G=e+85096|0;X=a[G>>2]|0;J=X&2;Q=(J|0)==0;if(!Q){$=a[m>>2]|0;ee=a[Re>>2]|0;re=ee+$|0;ie=79704+(re<<2)|0;te=+f[ie>>2];ne=te;ae=0.63452168224243899/ne;oe=ae;le=i+4860|0;fe=a[le>>2]|0;ue=(fe|0)>0;if(ue){De=fe;Gi=0;ut=0;while(1){ce=(i+4872|0)+(ut<<2)|0;he=a[ce>>2]|0;de=(e+84936|0)+(ut<<2)|0;ve=a[de>>2]|0;me=(ve|0)!=0;Ee=he+Gi|0;we=(he|0)>0;ot=me&we;if(ot){Zi=Gi;while(1){_e=r+(Zi<<2)|0;pe=+f[_e>>2];ke=!(pe>=oe);v=(i+2304|0)+(Zi<<2)|0;if(ke){ge=0}else{Se=a[v>>2]|0;ge=Se}a[v>>2]=ge;ye=Zi+1|0;Me=(ye|0)<(Ee|0);if(Me){Zi=ye}else{break}}d=a[le>>2]|0;Ae=d}else{Ae=De}Fe=ut+1|0;Oe=(Fe|0)<(Ae|0);if(Oe){De=Ae;Gi=Ee;ut=Fe}else{break}}}}Te=vt(e,i,t)|0;o=Te;return o|0}function wt(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0;var Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;var $e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0;var xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0;var ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0;var Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0;var Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0;var ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0;var Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0;var Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0;var _n=0,kn=0,Sn=0,gn=0,yn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0,xn=0;var Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0,aa=0;var oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0,Ma=0;var Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0,Wa=0;var Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0,co=0;var ho=0,vo=0,mo=0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0,Do=0;var Po=0,Lo=0,Co=0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0,Qo=0;var $o=0,es=0,rs=0,is=0,ts=0,ns=0,as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0,Es=0,ws=0;ws=c;P=(t+(r*10504|0)|0)+(i*5252|0)|0;L=((t+(r*10504|0)|0)+(i*5252|0)|0)+4860|0;Hr=a[L>>2]|0;qt=(Hr|0)>0;if(qt){cn=Hr;no=0;Mo=0;hs=0;while(1){gn=(((t+(r*10504|0)|0)+(i*5252|0)|0)+4872|0)+(hs<<2)|0;Ln=a[gn>>2]|0;Wn=Ln+no|0;ia=(Ln|0)>0;e:do{if(ia){oo=no;while(1){da=(((t+(r*10504|0)|0)+(i*5252|0)|0)+2304|0)+(oo<<2)|0;ya=a[da>>2]|0;C=(ya|0)==0;if(!C){ao=oo;break e}Y=oo+1|0;ne=(Y|0)<(Wn|0);if(ne){oo=Y}else{ao=Y;break}}}else{ao=no}}while(0);me=(ao|0)==(Wn|0);if(me){Fe=(((t+(r*10504|0)|0)+(i*5252|0)|0)+4608|0)+(hs<<2)|0;a[Fe>>2]=-2;n=a[L>>2]|0;ar=n;Fo=-2}else{ar=cn;Fo=Mo}Ie=hs+1|0;Ge=(Ie|0)<(ar|0);if(Ge){cn=ar;no=Wn;Mo=Fo;hs=Ie}else{Ri=ar;yo=Fo;break}}}else{Ri=Hr;yo=0}Er=((t+(r*10504|0)|0)+(i*5252|0)|0)+4836|0;Or=a[Er>>2]|0;xr=(Or|0)==0;Zr=((t+(r*10504|0)|0)+(i*5252|0)|0)+4832|0;if(xr){si=a[Zr>>2]|0;bi=(si|0)==0;if(bi){Ui=(Ri|0)>0;if(Ui){To=0;ds=0;while(1){Ji=(((t+(r*10504|0)|0)+(i*5252|0)|0)+4608|0)+(ds<<2)|0;lt=a[Ji>>2]|0;pt=(lt|0)>0;Nt=pt?lt:0;f=Nt|To;Vt=ds+1|0;en=(Vt|0)<(Ri|0);if(en){To=f;ds=Vt}else{u=f;break}}hn=u&1;mn=(hn|0)==0;En=(u|0)!=0;so=En&mn;if(so){if(Ui){dn=Ri;vs=0;while(1){wn=(((t+(r*10504|0)|0)+(i*5252|0)|0)+4608|0)+(vs<<2)|0;bn=a[wn>>2]|0;_n=(bn|0)>0;if(_n){kn=bn>>1;a[wn>>2]=kn;s=a[L>>2]|0;Mn=s}else{Mn=dn}Sn=vs+1|0;yn=(Sn|0)<(Mn|0);if(yn){dn=Mn;vs=Sn}else{break}}}a[Er>>2]=1;Oo=1}else{Oo=yo}}else{Oo=yo}}else{Oo=yo}}else{Oo=yo}Fn=a[Zr>>2]|0;On=(Fn|0)==0;if(On){An=((t+(r*10504|0)|0)+(i*5252|0)|0)+4788|0;Rn=a[An>>2]|0;Tn=(Rn|0)==2;if(Tn){Ao=Oo}else{Nn=e+76|0;Dn=a[Nn>>2]|0;Pn=(Dn|0)==2;if(Pn){Cn=((t+(r*10504|0)|0)+(i*5252|0)|0)+4652|0;Bn=a[Cn>>2]|0;In=a[12156>>2]|0;Hn=(Bn|0)>=(In|0);xn=(Bn|0)==-2;vo=xn|Hn;if(vo){Un=((t+(r*10504|0)|0)+(i*5252|0)|0)+4656|0;zn=a[Un>>2]|0;qn=a[12160>>2]|0;Vn=(zn|0)>=(qn|0);jn=(zn|0)==-2;mo=jn|Vn;if(mo){at=((t+(r*10504|0)|0)+(i*5252|0)|0)+4660|0;rt=a[at>>2]|0;nt=a[12164>>2]|0;Kt=(rt|0)>=(nt|0);Gt=(rt|0)==-2;Eo=Gt|Kt;if(Eo){ct=((t+(r*10504|0)|0)+(i*5252|0)|0)+4664|0;ot=a[ct>>2]|0;ut=a[12168>>2]|0;Xt=(ot|0)>=(ut|0);Zt=(ot|0)==-2;wo=Zt|Xt;if(wo){Et=((t+(r*10504|0)|0)+(i*5252|0)|0)+4668|0;ht=a[Et>>2]|0;mt=a[12172>>2]|0;Jt=(ht|0)>=(mt|0);Qt=(ht|0)==-2;bo=Qt|Jt;if(bo){gt=((t+(r*10504|0)|0)+(i*5252|0)|0)+4672|0;wt=a[gt>>2]|0;St=a[12176>>2]|0;$t=(wt|0)>=(St|0);rn=(wt|0)==-2;_o=rn|$t;if(_o){At=((t+(r*10504|0)|0)+(i*5252|0)|0)+4676|0;yt=a[At>>2]|0;Ot=a[12180>>2]|0;tn=(yt|0)>=(Ot|0);nn=(yt|0)==-2;po=nn|tn;if(po){Lt=((t+(r*10504|0)|0)+(i*5252|0)|0)+4680|0;Rt=a[Lt>>2]|0;Pt=a[12184>>2]|0;an=(Rt|0)>=(Pt|0);on=(Rt|0)==-2;ko=on|an;if(ko){xt=((t+(r*10504|0)|0)+(i*5252|0)|0)+4684|0;Ct=a[xt>>2]|0;Ht=a[12188>>2]|0;sn=(Ct|0)>=(Ht|0);ln=(Ct|0)==-2;So=ln|sn;if(So){Yt=((t+(r*10504|0)|0)+(i*5252|0)|0)+4688|0;Ut=a[Yt>>2]|0;Wt=a[12192>>2]|0;fn=(Ut|0)>=(Wt|0);un=(Ut|0)==-2;go=un|fn;if(go){Yn=(Bn|0)>0;if(Yn){Kn=Bn-In|0;a[Cn>>2]=Kn}Gn=(zn|0)>0;if(Gn){et=zn-qn|0;a[Un>>2]=et}it=(rt|0)>0;if(it){tt=rt-nt|0;a[at>>2]=tt}st=(ot|0)>0;if(st){ft=ot-ut|0;a[ct>>2]=ft}dt=(ht|0)>0;if(dt){vt=ht-mt|0;a[Et>>2]=vt}_t=(wt|0)>0;if(_t){kt=wt-St|0;a[gt>>2]=kt}Mt=(yt|0)>0;if(Mt){Ft=yt-Ot|0;a[At>>2]=Ft}Tt=(Rt|0)>0;if(Tt){Dt=Rt-Pt|0;a[Lt>>2]=Dt}Bt=(Ct|0)>0;if(Bt){It=Ct-Ht|0;a[xt>>2]=It}zt=(Ut|0)>0;if(zt){jt=Ut-Wt|0;a[Yt>>2]=jt}a[Zr>>2]=1;Ao=1}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}else{Ao=Oo}}}else{Ao=Oo}Xn=i<<2;Zn=Xn+4|0;ts=(t+21008|0)+(Zn<<2)|0;a[ts>>2]=0|0;a[ts+4>>2]=0|0;a[ts+8>>2]=0|0;a[ts+12>>2]=0|0;Jn=e+76|0;Qn=a[Jn>>2]|0;$n=(Qn|0)==2;ea=(r|0)==1;ho=ea&$n;if(ho){ra=(t+(i*5252|0)|0)+4788|0;ta=a[ra>>2]|0;na=(ta|0)==2;if(na){Ro=Ao}else{aa=((t+10504|0)+(i*5252|0)|0)+4788|0;oa=a[aa>>2]|0;sa=(oa|0)==2;if(sa){Ro=Ao}else{o=a[84136>>2]|0;Qo=((t+10504|0)+(i*5252|0)|0)+4608|0;la=a[84140>>2]|0;fa=(la|0)>(o|0);e:do{if(fa){ls=o;while(1){ua=((t+(i*5252|0)|0)+4608|0)+(ls<<2)|0;ca=a[ua>>2]|0;ha=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(ls<<2)|0;va=a[ha>>2]|0;ma=(ca|0)!=(va|0);Ea=(va|0)>-1;lo=ma&Ea;if(lo){ns=ls;break e}wa=ls+1|0;ba=(wa|0)<(la|0);if(ba){ls=wa}else{ns=wa;break}}}else{ns=o}}while(0);_a=(ns|0)==(la|0);if(_a){if(fa){$o=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(o<<2)|0;Sa=la-o|0;ga=Sa<<2;pn($o|0,-1,ga|0)|0}Ma=(t+21024|0)+(i<<4)|0;a[Ma>>2]=1}pa=a[84144>>2]|0;ka=(pa|0)>(la|0);e:do{if(ka){fs=la;while(1){ti=((t+(i*5252|0)|0)+4608|0)+(fs<<2)|0;ni=a[ti>>2]|0;ai=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(fs<<2)|0;oi=a[ai>>2]|0;li=(ni|0)!=(oi|0);fi=(oi|0)>-1;fo=li&fi;if(fo){as=fs;break e}ui=fs+1|0;ci=(ui|0)<(pa|0);if(ci){fs=ui}else{as=ui;break}}}else{as=la}}while(0);hi=(as|0)==(pa|0);if(hi){if(ka){es=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(la<<2)|0;di=pa-la|0;vi=di<<2;pn(es|0,-1,vi|0)|0}mi=((t+21024|0)+(i<<4)|0)+4|0;a[mi>>2]=1}Ei=a[84148>>2]|0;wi=(Ei|0)>(pa|0);e:do{if(wi){us=pa;while(1){_i=((t+(i*5252|0)|0)+4608|0)+(us<<2)|0;pi=a[_i>>2]|0;ki=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(us<<2)|0;Si=a[ki>>2]|0;gi=(pi|0)!=(Si|0);yi=(Si|0)>-1;uo=gi&yi;if(uo){os=us;break e}Mi=us+1|0;Fi=(Mi|0)<(Ei|0);if(Fi){us=Mi}else{os=Mi;break}}}else{os=pa}}while(0);Oi=(os|0)==(Ei|0);if(Oi){if(wi){rs=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(pa<<2)|0;Ai=Ei-pa|0;Ti=Ai<<2;pn(rs|0,-1,Ti|0)|0}Ni=((t+21024|0)+(i<<4)|0)+8|0;a[Ni>>2]=1}Di=a[84152>>2]|0;Pi=(Di|0)>(Ei|0);e:do{if(Pi){cs=Ei;while(1){Li=((t+(i*5252|0)|0)+4608|0)+(cs<<2)|0;Ci=a[Li>>2]|0;Bi=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(cs<<2)|0;Ii=a[Bi>>2]|0;Hi=(Ci|0)!=(Ii|0);xi=(Ii|0)>-1;co=Hiξif(co){ss=cs;break e}zi=cs+1|0;qi=(zi|0)<(Di|0);if(qi){cs=zi}else{ss=zi;break}}}else{ss=Ei}}while(0);Vi=(ss|0)==(Di|0);if(Vi){if(Pi){is=(((t+10504|0)+(i*5252|0)|0)+4608|0)+(Ei<<2)|0;ji=Di-Ei|0;Wi=ji<<2;pn(is|0,-1,Wi|0)|0}Yi=((t+21024|0)+(i<<4)|0)+12|0;a[Yi>>2]=1}Ki=a[Qo>>2]|0;Gi=(Ki|0)==-1;Xi=(Ki|0)>0;S=Xi?Ki:0;Zi=Gi&1;Wa=Zi^1;zo=Gi?0:S;Qi=((t+10504|0)+(i*5252|0)|0)+4612|0;te=a[Qi>>2]|0;$i=(te|0)==-1;if($i){Ca=Wa;No=zo}else{ee=Wa+1|0;re=(zo|0)<(te|0);h=re?te:zo;Ca=ee;No=h}ae=((t+10504|0)+(i*5252|0)|0)+4616|0;oe=a[ae>>2]|0;se=(oe|0)==-1;if(se){Ia=Ca;Po=No}else{le=Ca+1|0;fe=(No|0)<(oe|0);v=fe?oe:No;Ia=le;Po=v}ue=((t+10504|0)+(i*5252|0)|0)+4620|0;ce=a[ue>>2]|0;he=(ce|0)==-1;if(he){Ha=Ia;Lo=Po}else{de=Ia+1|0;ve=(Po|0)<(ce|0);m=ve?ce:Po;Ha=de;Lo=m}Ee=((t+10504|0)+(i*5252|0)|0)+4624|0;we=a[Ee>>2]|0;be=(we|0)==-1;if(be){xa=Ha;Co=Lo}else{_e=Ha+1|0;pe=(Lo|0)<(we|0);E=pe?we:Lo;xa=_e;Co=E}ke=((t+10504|0)+(i*5252|0)|0)+4628|0;Se=a[ke>>2]|0;ge=(Se|0)==-1;if(ge){Ua=xa;Bo=Co}else{ye=xa+1|0;Me=(Co|0)<(Se|0);w=Me?Se:Co;Ua=ye;Bo=w}Oe=((t+10504|0)+(i*5252|0)|0)+4632|0;Ae=a[Oe>>2]|0;Re=(Ae|0)==-1;if(Re){za=Ua;Io=Bo}else{Te=Ua+1|0;Ne=(Bo|0)<(Ae|0);b=Ne?Ae:Bo;za=Te;Io=b}De=((t+10504|0)+(i*5252|0)|0)+4636|0;Pe=a[De>>2]|0;Le=(Pe|0)==-1;if(Le){qa=za;Ho=Io}else{Ce=za+1|0;Be=(Io|0)<(Pe|0);_=Be?Pe:Io;qa=Ce;Ho=_}He=((t+10504|0)+(i*5252|0)|0)+4640|0;xe=a[He>>2]|0;Ue=(xe|0)==-1;if(Ue){Va=qa;xo=Ho}else{ze=qa+1|0;qe=(Ho|0)<(xe|0);p=qe?xe:Ho;Va=ze;xo=p}Ve=((t+10504|0)+(i*5252|0)|0)+4644|0;je=a[Ve>>2]|0;We=(je|0)==-1;if(We){ja=Va;Uo=xo}else{Ye=Va+1|0;Ke=(xo|0)<(je|0);k=Ke?je:xo;ja=Ye;Uo=k}Xe=((t+10504|0)+(i*5252|0)|0)+4648|0;Ze=a[Xe>>2]|0;Je=(Ze|0)==-1;if(Je){Ba=ja;Do=Uo}else{Qe=ja+1|0;$e=(Uo|0)<(Ze|0);d=$e?Ze:Uo;Ba=Qe;Do=d}Fa=((t+10504|0)+(i*5252|0)|0)+4652|0;Oa=a[Fa>>2]|0;Aa=(Oa|0)==-1;Ra=(Oa|0)>0;g=Ra?Oa:0;Ta=Aa&1;Ya=Ta^1;qo=Aa?0:g;Na=((t+10504|0)+(i*5252|0)|0)+4656|0;Da=a[Na>>2]|0;Pa=(Da|0)==-1;if(Pa){Ka=Ya;Vo=qo}else{ur=Ya+1|0;cr=(qo|0)<(Da|0);y=cr?Da:qo;Ka=ur;Vo=y}hr=((t+10504|0)+(i*5252|0)|0)+4660|0;dr=a[hr>>2]|0;vr=(dr|0)==-1;if(vr){Ga=Ka;jo=Vo}else{mr=Ka+1|0;wr=(Vo|0)<(dr|0);M=wr?dr:Vo;Ga=mr;jo=M}br=((t+10504|0)+(i*5252|0)|0)+4664|0;_r=a[br>>2]|0;pr=(_r|0)==-1;if(pr){Xa=Ga;Wo=jo}else{kr=Ga+1|0;Sr=(jo|0)<(_r|0);F=Sr?_r:jo;Xa=kr;Wo=F}gr=((t+10504|0)+(i*5252|0)|0)+4668|0;yr=a[gr>>2]|0;Mr=(yr|0)==-1;if(Mr){Za=Xa;Yo=Wo}else{Fr=Xa+1|0;Ar=(Wo|0)<(yr|0);O=Ar?yr:Wo;Za=Fr;Yo=O}Rr=((t+10504|0)+(i*5252|0)|0)+4672|0;Tr=a[Rr>>2]|0;Nr=(Tr|0)==-1;if(Nr){Ja=Za;Ko=Yo}else{Dr=Za+1|0;Pr=(Yo|0)<(Tr|0);A=Pr?Tr:Yo;Ja=Dr;Ko=A}Lr=((t+10504|0)+(i*5252|0)|0)+4676|0;Cr=a[Lr>>2]|0;Br=(Cr|0)==-1;if(Br){Qa=Ja;Go=Ko}else{Ir=Ja+1|0;Ur=(Ko|0)<(Cr|0);R=Ur?Cr:Ko;Qa=Ir;Go=R}zr=((t+10504|0)+(i*5252|0)|0)+4680|0;qr=a[zr>>2]|0;Vr=(qr|0)==-1;if(Vr){$a=Qa;Xo=Go}else{jr=Qa+1|0;Wr=(Go|0)<(qr|0);T=Wr?qr:Go;$a=jr;Xo=T}Yr=((t+10504|0)+(i*5252|0)|0)+4684|0;Kr=a[Yr>>2]|0;Gr=(Kr|0)==-1;if(Gr){eo=$a;Zo=Xo}else{Xr=$a+1|0;Jr=(Xo|0)<(Kr|0);N=Jr?Kr:Xo;eo=Xr;Zo=N}Qr=((t+10504|0)+(i*5252|0)|0)+4688|0;$r=a[Qr>>2]|0;ei=($r|0)==-1;if(ei){ro=eo;Jo=Zo}else{ri=eo+1|0;ii=(Zo|0)<($r|0);D=ii?$r:Zo;ro=ri;Jo=D}Z=((t+10504|0)+(i*5252|0)|0)+4844|0;Q=((t+10504|0)+(i*5252|0)|0)+4784|0;to=0;while(1){La=88776+(to<<2)|0;B=a[La>>2]|0;I=(Do|0)<(B|0);do{if(I){H=88840+(to<<2)|0;x=a[H>>2]|0;U=(Jo|0)<(x|0);if(!U){break}z=88648+(to<<2)|0;q=a[z>>2]|0;V=ie(q,Ba)|0;j=88712+(to<<2)|0;W=a[j>>2]|0;K=ie(W,ro)|0;G=K+V|0;X=a[Z>>2]|0;J=(X|0)>(G|0);if(!J){break}a[Z>>2]=G;a[Q>>2]=to}}while(0);$=to+1|0;io=($|0)==16;if(io){Ro=0;break}else{to=$}}}}}else{Ro=Ao}er=a[L>>2]|0;rr=(er|0)>0;if(rr){vn=er;ms=0;while(1){ir=(((t+(r*10504|0)|0)+(i*5252|0)|0)+4608|0)+(ms<<2)|0;tr=a[ir>>2]|0;nr=(tr|0)==-2;if(nr){a[ir>>2]=0;l=a[L>>2]|0;lr=l}else{lr=vn}or=ms+1|0;sr=(or|0)<(lr|0);if(sr){vn=lr;ms=or}else{break}}}fr=(Ro|0)==0;if(fr){return}bt(e,P)|0;return}function bt(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0;var Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0;var wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0;var Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0;var ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0;var gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0;var Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0;var ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0;var Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0;var Xt=0,Zt=0,Jt=0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0;var En=0,wn=0,bn=0,_n=0,pn=0,kn=0,Sn=0,gn=0,yn=0,Mn=0,Fn=0,On=0;On=c;c=c+16|0;tn=On;M=e+76|0;F=a[M>>2]|0;Tr=(F|0)==2;if(Tr){pi=r+4788|0;Ni=a[pi>>2]|0;qi=(Ni|0)==2;if(qi){$i=r+4792|0;ut=a[$i>>2]|0;kt=(ut|0)!=0;i=kt?88904:88968;Mn=i}else{Dt=r+4832|0;O=a[Dt>>2]|0;H=(O|0)==0;if(H){X=r+4652|0;se=a[X>>2]|0;be=a[12156>>2]|0;Re=(se|0)<(be|0);if(Re){Mn=89032}else{Ue=r+4656|0;Je=a[Ue>>2]|0;lr=a[12160>>2]|0;_r=(Je|0)<(lr|0);if(_r){Mn=89032}else{mi=r+4660|0;vi=a[mi>>2]|0;ui=a[12164>>2]|0;yt=(vi|0)<(ui|0);if(yt){Mn=89032}else{_i=r+4664|0;bi=a[_i>>2]|0;wi=a[12168>>2]|0;Mt=(bi|0)<(wi|0);if(Mt){Mn=89032}else{yi=r+4668|0;gi=a[yi>>2]|0;Si=a[12172>>2]|0;Ft=(gi|0)<(Si|0);if(Ft){Mn=89032}else{Ai=r+4672|0;Oi=a[Ai>>2]|0;Fi=a[12176>>2]|0;Ot=(Oi|0)<(Fi|0);if(Ot){Mn=89032}else{Pi=r+4676|0;Di=a[Pi>>2]|0;Ti=a[12180>>2]|0;At=(Di|0)<(Ti|0);if(At){Mn=89032}else{Ii=r+4680|0;Bi=a[Ii>>2]|0;Ci=a[12184>>2]|0;Rt=(Bi|0)<(Ci|0);if(Rt){Mn=89032}else{zi=r+4684|0;Ui=a[zi>>2]|0;xi=a[12188>>2]|0;Tt=(Ui|0)<(xi|0);if(Tt){Mn=89032}else{Yi=r+4688|0;Wi=a[Yi>>2]|0;ji=a[12192>>2]|0;Nt=(Wi|0)<(ji|0);if(Nt){Mn=89032}else{a[Dt>>2]=1;Nr=se-be|0;a[X>>2]=Nr;qr=Je-lr|0;a[Ue>>2]=qr;$r=vi-ui|0;a[mi>>2]=$r;Ei=bi-wi|0;a[_i>>2]=Ei;ki=gi-Si|0;a[yi>>2]=ki;Mi=Oi-Fi|0;a[Ai>>2]=Mi;Ri=Di-Ti|0;a[Pi>>2]=Ri;Li=Bi-Ci|0;a[Ii>>2]=Li;Hi=Ui-xi|0;a[zi>>2]=Hi;Vi=Wi-ji|0;a[Yi>>2]=Vi;Mn=89032}}}}}}}}}}}else{Mn=89032}}Ki=r+4868|0;Gi=a[Ki>>2]|0;Xi=(Gi|0)>0;if(Xi){an=0;vn=0;while(1){rt=(r+4608|0)+(vn<<2)|0;it=a[rt>>2]|0;tt=(an|0)<(it|0);f=tt?it:an;nt=vn+1|0;Yt=(nt|0)==(Gi|0);if(Yt){u=f;break}else{an=f;vn=nt}}Zi=(Gi|0)>1;gn=Zi?Gi:1;nn=u;dn=gn}else{nn=0;dn=0}Ji=r+4860|0;Qi=a[Ji>>2]|0;et=(dn|0)<(Qi|0);if(et){sn=0;Sn=dn;while(1){at=(r+4608|0)+(Sn<<2)|0;ot=a[at>>2]|0;st=(sn|0)<(ot|0);h=st?ot:sn;lt=Sn+1|0;Vt=(lt|0)==(Qi|0);if(Vt){on=h;break}else{sn=h;Sn=lt}}}else{on=0}ft=r+4844|0;a[ft>>2]=100000;ct=r+4784|0;pt=100000;rn=0;while(1){ht=88776+(rn<<2)|0;dt=a[ht>>2]|0;vt=(nn|0)<(dt|0);if(vt){mt=88840+(rn<<2)|0;Et=a[mt>>2]|0;wt=(on|0)<(Et|0);if(wt){bt=Mn+(rn<<2)|0;_t=a[bt>>2]|0;St=(pt|0)>(_t|0);if(St){a[ft>>2]=_t;a[ct>>2]=rn;ni=_t}else{ni=pt}}else{ni=pt}}else{ni=pt}gt=rn+1|0;jt=(gt|0)==16;if(jt){o=ni;break}else{pt=ni;rn=gt}}Pt=(o|0)==100000;Lt=Pt&1;n=Lt;c=On;return n|0}Ct=r+4832|0;Bt=a[Ct>>2]|0;It=(Bt|0)==0;a[tn>>2]=0|0;a[tn+4>>2]=0|0;a[tn+8>>2]=0|0;a[tn+12>>2]=0|0;t=It?0:2;Ht=r+4788|0;xt=a[Ht>>2]|0;Ut=(xt|0)==2;if(Ut){ln=0;un=0;while(1){R=((11824+(t*48|0)|0)+16|0)+(ln<<2)|0;T=a[R>>2]|0;N=(T|0)/3&-1;D=(T|0)>2;if(D){P=tn+(ln<<2)|0;L=(N|0)>1;_=a[P>>2]|0;U=_;Jt=0;hn=un;while(1){C=hn*3|0;B=(r+4608|0)+(C<<2)|0;I=a[B>>2]|0;x=(I|0)>(U|0);if(x){a[P>>2]=I;W=I}else{W=U}z=C+1|0;q=(r+4608|0)+(z<<2)|0;V=a[q>>2]|0;j=(V|0)>(W|0);if(j){a[P>>2]=V;kr=V}else{kr=W}Er=C+2|0;wr=(r+4608|0)+(Er<<2)|0;br=a[wr>>2]|0;pr=(br|0)>(kr|0);if(pr){a[P>>2]=br;li=br}else{li=kr}Sr=Jt+1|0;gr=hn+1|0;yr=(Sr|0)<(N|0);if(yr){U=li;Jt=Sr;hn=gr}else{break}}yn=L?N:1;Y=yn+un|0;cn=Y}else{cn=un}K=ln+1|0;Wt=(K|0)==4;if(Wt){break}else{ln=K;un=cn}}p=a[tn>>2]|0;E=tn+4|0;k=a[E>>2]|0;w=tn+8|0;S=a[w>>2]|0;b=tn+12|0;g=a[b>>2]|0;oe=p;he=k;we=S;ge=g;fn=1}else{zt=11824+(t*48|0)|0;qt=a[zt>>2]|0;A=(qt|0)>0;if(A){Q=0;kn=0;while(1){G=(r+4608|0)+(kn<<2)|0;Z=a[G>>2]|0;J=(Z|0)>(Q|0);if(J){a[tn>>2]=Z;oi=Z}else{oi=Q}$=kn+1|0;Zt=($|0)==(qt|0);if(Zt){ai=oi;wn=qt;break}else{Q=oi;kn=$}}}else{ai=0;wn=0}ee=(11824+(t*48|0)|0)+4|0;re=a[ee>>2]|0;te=(re|0)>0;if(te){Mr=tn+4|0;Rr=0;Qt=0;bn=wn;while(1){Fr=(r+4608|0)+(bn<<2)|0;Or=a[Fr>>2]|0;Ar=(Or|0)>(Rr|0);if(Ar){a[Mr>>2]=Or;fi=Or}else{fi=Rr}Dr=Qt+1|0;Pr=bn+1|0;Kt=(Dr|0)==(re|0);if(Kt){l=fi;break}else{Rr=fi;Qt=Dr;bn=Pr}}Lr=re+wn|0;si=l;mn=Lr}else{si=0;mn=wn}Cr=(11824+(t*48|0)|0)+8|0;Br=a[Cr>>2]|0;Ir=(Br|0)>0;if(Ir){Hr=tn+8|0;Vr=0;$t=0;_n=mn;while(1){xr=(r+4608|0)+(_n<<2)|0;Ur=a[xr>>2]|0;zr=(Ur|0)>(Vr|0);if(zr){a[Hr>>2]=Ur;hi=Ur}else{hi=Vr}jr=$t+1|0;Wr=_n+1|0;Gt=(jr|0)==(Br|0);if(Gt){s=hi;break}else{Vr=hi;$t=jr;_n=Wr}}Yr=Br+mn|0;ci=s;En=Yr}else{ci=0;En=mn}Kr=(11824+(t*48|0)|0)+12|0;Gr=a[Kr>>2]|0;Xr=(Gr|0)>0;if(Xr){Zr=tn+12|0;ri=0;en=0;pn=En;while(1){Jr=(r+4608|0)+(pn<<2)|0;Qr=a[Jr>>2]|0;ei=(Qr|0)>(ri|0);if(ei){a[Zr>>2]=Qr;di=Qr}else{di=ri}ii=en+1|0;ti=pn+1|0;Xt=(ii|0)==(Gr|0);if(Xt){oe=ai;he=si;we=ci;ge=di;fn=0;break}else{ri=di;en=ii;pn=ti}}}else{oe=ai;he=si;we=ci;ge=0;fn=0}}ne=89096+(t<<4)|0;ae=a[ne>>2]|0;le=(oe|0)>(ae|0);fe=le&1;ue=(89096+(t<<4)|0)+4|0;ce=a[ue>>2]|0;de=(he|0)>(ce|0);ve=de&1;d=ve+fe|0;me=(89096+(t<<4)|0)+8|0;Ee=a[me>>2]|0;_e=(we|0)>(Ee|0);pe=_e&1;v=d+pe|0;ke=(89096+(t<<4)|0)+12|0;Se=a[ke>>2]|0;ye=(ge|0)>(Se|0);Me=ye&1;m=v+Me|0;Fe=(m|0)==0;if(Fe){Oe=(11824+(t*48|0)|0)+(fn<<4)|0;Ae=r+5188|0;a[Ae>>2]=Oe;Te=89192+(oe<<2)|0;Ne=a[Te>>2]|0;De=r+5192|0;a[De>>2]=Ne;Pe=89192+(he<<2)|0;Le=a[Pe>>2]|0;Ce=r+5196|0;a[Ce>>2]=Le;Be=89192+(we<<2)|0;Ie=a[Be>>2]|0;He=r+5200|0;a[He>>2]=Ie;xe=89192+(ge<<2)|0;ze=a[xe>>2]|0;qe=r+5204|0;a[qe>>2]=ze;if(It){Ve=Ne*5|0;je=Ve+Le|0;We=je<<4;Ye=Ie<<2;Ke=Ye+We|0;Ge=Ke+ze|0;y=Ge}else{Xe=Ne*3|0;Ze=Xe+500|0;Qe=Ze+Le|0;y=Qe}$e=r+4784|0;a[$e>>2]=y;er=r+4844|0;rr=a[Oe>>2]|0;ir=ie(rr,Ne)|0;tr=((11824+(t*48|0)|0)+(fn<<4)|0)+4|0;nr=a[tr>>2]|0;ar=ie(nr,Le)|0;or=ar+ir|0;sr=((11824+(t*48|0)|0)+(fn<<4)|0)+8|0;fr=a[sr>>2]|0;ur=ie(fr,Ie)|0;cr=or+ur|0;hr=((11824+(t*48|0)|0)+(fn<<4)|0)+12|0;dr=a[hr>>2]|0;vr=ie(dr,ze)|0;mr=cr+vr|0;a[er>>2]=mr}n=m;c=On;return n|0}function _t(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0;var j=0,W=0,Y=0;Y=c;o=e+85816|0;a[o>>2]=2;q=2;while(1){V=0;while(1){s=V+1|0;_=(e+21360|0)+(s<<2)|0;T=a[_>>2]|0;D=(T|0)<(q|0);if(D){V=s}else{n=s;break}}P=89256+(n<<3)|0;L=a[P>>2]|0;H=L;while(1){C=H+1|0;B=(e+21360|0)+(C<<2)|0;I=a[B>>2]|0;l=(I|0)>(q|0);f=H+-1|0;if(l){H=f}else{x=H;break}}u=(x|0)<0;r=u?L:x;h=r&255;d=q+-2|0;v=(e+85100|0)+d|0;t[v>>0]=h;m=(89256+(n<<3)|0)+4|0;E=a[m>>2]|0;j=r<<24;w=j>>24;U=E;while(1){b=U+2|0;p=b+w|0;k=(e+21360|0)+(p<<2)|0;S=a[k>>2]|0;g=(S|0)>(q|0);y=U+-1|0;if(g){U=y}else{z=U;break}}M=(z|0)<0;i=M?E:z;F=i&255;O=q+-1|0;A=(e+85100|0)+O|0;t[A>>0]=F;R=q+2|0;N=(R|0)<577;if(N){q=R}else{break}}return}function pt(e,r,i,t){e=e|0;r=+r;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,u=0,h=0.0,v=0,m=0.0,E=0,w=0.0,b=0.0,_=0.0,p=0,k=0.0,S=0.0,g=0.0,y=0,M=0.0,F=0.0,O=0.0;var A=0.0,R=0,T=0.0,N=0.0,D=0,P=0.0,L=0.0,C=0,B=0,I=0,H=0,x=0,U=0.0,z=0.0,q=0.0,V=0.0,j=0,W=0,Y=0,K=0;var G=0.0,X=0.0,Z=0.0,J=0.0,Q=0,$=0,ee=0,re=0.0,ie=0.0,te=0.0,ne=0.0,ae=0.0,oe=0,se=0,le=0,fe=0.0,ue=0.0,ce=0.0,he=0.0,de=0;var ve=0.0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0.0,Fe=0,Oe=0.0,Ae=0.0,Re=0.0,Te=0,Ne=0.0,De=0.0,Pe=0.0;var Le=0.0,Ce=0.0,Be=0,Ie=0.0,He=0.0,xe=0,Ue=0,ze=0,qe=0,Ve=0.0,je=0.0,We=0.0,Ye=0.0,Ke=0.0,Ge=0,Xe=0,Ze=0,Je=0.0,Qe=0.0,$e=0.0;var er=0.0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0;fr=c;l=e&2;u=e>>>2;y=(u|0)==0;if(y){n=i;nr=t}else{C=u<<2;sr=t+(C<<2)|0;o=i;s=u;ar=t;while(1){Y=s+-1|0;te=+f[o>>2];ve=te*r;Me=ve;Be=o+4|0;Ke=+f[Be>>2];h=Ke*r;m=h;E=o+8|0;w=+f[E>>2];b=w*r;_=b;p=o+12|0;k=+f[p>>2];S=k*r;g=S;M=Me+8388608.0;F=M;O=m+8388608.0;A=O;R=ar+4|0;T=_+8388608.0;N=T;D=ar+8|0;P=g+8388608.0;L=P;B=ar+12|0;I=(f[d>>2]=F,a[d>>2]|0);H=I+-1258291200|0;x=46872+(H<<2)|0;U=+f[x>>2];z=U;q=z+M;V=q;j=(f[d>>2]=A,a[d>>2]|0);W=j+-1258291200|0;K=46872+(W<<2)|0;G=+f[K>>2];X=G;Z=X+O;J=Z;Q=(f[d>>2]=N,a[d>>2]|0);$=Q+-1258291200|0;ee=46872+($<<2)|0;re=+f[ee>>2];ie=re;ne=ie+T;ae=ne;oe=(f[d>>2]=L,a[d>>2]|0);se=oe+-1258291200|0;le=46872+(se<<2)|0;fe=+f[le>>2];ue=fe;ce=ue+P;he=ce;de=(f[d>>2]=V,a[d>>2]|0);me=de+-1258291200|0;a[ar>>2]=me;Ee=(f[d>>2]=J,a[d>>2]|0);we=Ee+-1258291200|0;a[R>>2]=we;be=(f[d>>2]=ae,a[d>>2]|0);_e=be+-1258291200|0;a[D>>2]=_e;pe=(f[d>>2]=he,a[d>>2]|0);ke=pe+-1258291200|0;a[B>>2]=ke;Se=ar+16|0;ge=o+16|0;ye=(Y|0)==0;if(ye){break}else{o=ge;s=Y;ar=Se}}or=i+(C<<2)|0;n=or;nr=sr}Fe=(l|0)==0;if(Fe){return}Oe=+f[n>>2];Ae=Oe*r;Re=Ae;Te=n+4|0;Ne=+f[Te>>2];De=Ne*r;Pe=De;Le=Re+8388608.0;Ce=Le;Ie=Pe+8388608.0;He=Ie;xe=nr+4|0;Ue=(f[d>>2]=Ce,a[d>>2]|0);ze=Ue+-1258291200|0;qe=46872+(ze<<2)|0;Ve=+f[qe>>2];je=Ve;We=je+Le;Ye=We;Ge=(f[d>>2]=He,a[d>>2]|0);Xe=Ge+-1258291200|0;Ze=46872+(Xe<<2)|0;Je=+f[Ze>>2];Qe=Je;$e=Qe+Ie;er=$e;rr=(f[d>>2]=Ye,a[d>>2]|0);ir=rr+-1258291200|0;a[nr>>2]=ir;tr=(f[d>>2]=er,a[d>>2]|0);v=tr+-1258291200|0;a[xe>>2]=v;return}function kt(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0;Ce=c;n=e;Me=0;Fe=0;while(1){v=n+4|0;m=a[n>>2]|0;F=n+8|0;I=a[v>>2]|0;G=(Me|0)<(m|0);f=G?m:Me;ae=(Fe|0)<(I|0);Ae=ae?I:Fe;Ee=F>>>0>>0;if(Ee){n=F;Me=f;Fe=Ae}else{u=f;Re=Ae;break}}be=(u|0)<(Re|0);Oe=be?Re:u;_e=Oe>>>0<16;if(_e){pe=89440+(Oe<<2)|0;E=a[pe>>2]|0;w=Kn[E&7](e,r,Oe,i)|0;t=w;return t|0}b=Oe>>>0>8206;if(b){a[i>>2]=100000;t=-1;return t|0}_=Oe+-15|0;p=a[82660>>2]|0;k=p>>>0<_>>>0;if(k){S=a[82676>>2]|0;g=S>>>0<_>>>0;if(g){ne=a[82692>>2]|0;oe=ne>>>0<_>>>0;if(oe){se=a[82708>>2]|0;le=se>>>0<_>>>0;if(le){fe=a[82724>>2]|0;ue=fe>>>0<_>>>0;if(ue){ce=a[82740>>2]|0;he=ce>>>0<_>>>0;if(he){de=a[82756>>2]|0;ve=de>>>0<_>>>0;if(ve){me=a[82772>>2]|0;we=me>>>0<_>>>0;if(we){ke=24;ye=32}else{ge=31;Le=9}}else{ge=30;Le=9}}else{ge=29;Le=9}}else{ge=28;Le=9}}else{ge=27;Le=9}}else{ge=26;Le=9}}else{ge=25;Le=9}}else{ge=24;Le=9}e:do{if((Le|0)==9){y=ge+-8|0;Se=y;while(1){M=(82272+(Se<<4)|0)+4|0;O=a[M>>2]|0;A=O>>>0<_>>>0;if(!A){ke=Se;ye=ge;break e}R=Se+1|0;T=(R|0)<24;if(T){Se=R}else{ke=R;ye=ge;break}}}}while(0);N=82272+(ke<<4)|0;D=a[N>>2]|0;P=D<<16;L=82272+(ye<<4)|0;C=a[L>>2]|0;B=P+C|0;o=e;Te=0;while(1){H=o+4|0;x=a[o>>2]|0;U=o+8|0;z=a[H>>2]|0;q=x>>>0>14;V=q?B:0;d=V+Te|0;j=z>>>0>14;W=j?B:0;Pe=j?15:z;h=x<<4;Y=q?240:h;K=Pe+Y|0;X=82816+(K<<2)|0;Z=a[X>>2]|0;Ne=d+Z|0;J=Ne+W|0;Q=U>>>0>>0;if(Q){o=U;Te=J}else{l=J;break}}$=l&65535;ee=l>>>16;re=ee>>>0>$>>>0;De=re?ye:ke;s=re?$:ee;ie=a[i>>2]|0;te=ie+s|0;a[i>>2]=te;t=De;return t|0}function St(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,a=0;a=c;return 0}function gt(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;M=c;l=a[82300>>2]|0;o=e;g=0;while(1){f=o+4|0;m=a[o>>2]|0;E=o+8|0;w=a[f>>2]|0;b=m<<1;_=b+w|0;p=l+_|0;k=t[p>>0]|0;S=k&255;u=S+g|0;h=E>>>0>>0;if(h){o=E;g=u}else{s=u;break}}d=a[n>>2]|0;v=d+s|0;a[n>>2]=v;return 1}function yt(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0;C=c;f=i+-1|0;u=89504+(f<<2)|0;S=a[u>>2]|0;F=82272+(S<<4)|0;O=a[F>>2]|0;A=(f|0)==1;R=A?83840:83880;o=e;P=0;while(1){T=o+4|0;N=a[o>>2]|0;D=o+8|0;h=a[T>>2]|0;d=ie(N,O)|0;v=d+h|0;m=R+(v<<2)|0;E=a[m>>2]|0;w=E+P|0;b=D>>>0>>0;if(b){o=D;P=w}else{l=w;break}}_=l&65535;p=l>>>16;k=p>>>0>_>>>0;n=k?_:p;g=k&1;s=g+S|0;y=a[t>>2]|0;M=y+n|0;a[t>>2]=M;return s|0}function Mt(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0;var K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0;re=c;d=i+-1|0;v=89504+(d<<2)|0;M=a[v>>2]|0;B=82272+(M<<4)|0;V=a[B>>2]|0;j=(82272+(M<<4)|0)+12|0;W=a[j>>2]|0;Y=M+1|0;K=(82272+(Y<<4)|0)+12|0;G=a[K>>2]|0;m=M+2|0;E=(82272+(m<<4)|0)+12|0;w=a[E>>2]|0;s=e;X=0;J=0;Q=0;while(1){b=s+4|0;_=a[s>>2]|0;p=s+8|0;k=a[b>>2]|0;S=ie(_,V)|0;g=S+k|0;y=W+g|0;F=t[y>>0]|0;O=F&255;A=O+X|0;R=G+g|0;T=t[R>>0]|0;N=T&255;D=N+J|0;P=w+g|0;L=t[P>>0]|0;C=L&255;I=C+Q|0;H=p>>>0>>0;if(H){s=p;X=A;J=D;Q=I}else{f=A;u=D;h=I;break}}x=f>>>0>u>>>0;o=x?Y:M;l=x?u:f;U=l>>>0>h>>>0;$=U?m:o;Z=U?h:l;z=a[n>>2]|0;q=z+Z|0;a[n>>2]=q;return $|0}function Ft(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0;D=c;r=e+85704|0;i=a[r>>2]|0;m=(i|0)==(0|0);if(!m){En(i);a[r>>2]=0}g=e+85708|0;y=a[g>>2]|0;M=(y|0)==(0|0);if(!M){En(y);a[g>>2]=0}F=e+85712|0;O=a[F>>2]|0;A=(O|0)==(0|0);if(!A){En(O);a[F>>2]=0}R=e+85716|0;t=a[R>>2]|0;n=(t|0)==(0|0);if(!n){En(t);a[R>>2]=0}o=e+85728|0;s=a[o>>2]|0;l=(s|0)==(0|0);if(!l){En(s);a[o>>2]=0;f=e+85732|0;a[f>>2]=0;u=e+85740|0;a[u>>2]=0}h=e+85744|0;d=a[h>>2]|0;v=(d|0)==(0|0);if(v){return}else{T=d}while(1){E=T+12|0;w=a[E>>2]|0;b=T+24|0;_=a[b>>2]|0;p=a[T>>2]|0;En(w);En(_);En(T);k=(p|0)==(0|0);if(k){break}else{T=p}}a[h>>2]=0;S=e+85748|0;a[S>>2]=0;return}function Ot(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0;J=c;X=0;while(1){n=(e+37192|0)+(X<<2)|0;o=a[n>>2]|0;b=(o|0)==(0|0);if(!b){En(o);a[n>>2]=0}R=X+1|0;G=(R|0)==641;if(G){break}else{X=R}}U=e+37184|0;V=a[U>>2]|0;j=(V|0)==(0|0);if(!j){En(V);a[U>>2]=0}W=e+37188|0;Y=a[W>>2]|0;K=(Y|0)==(0|0);if(!K){En(Y);a[W>>2]=0}s=e+284|0;l=a[s>>2]|0;f=(l|0)==(0|0);if(!f){En(l);a[s>>2]=0}u=e+85780|0;h=a[u>>2]|0;d=(h|0)==(0|0);if(!d){En(h);a[u>>2]=0;v=e+85776|0;a[v>>2]=0}m=e+85796|0;E=a[m>>2]|0;w=(E|0)==(0|0);if(!w){En(E)}_=e+85676|0;p=a[_>>2]|0;k=(p|0)==(0|0);if(!k){En(p)}S=e+52152|0;g=a[S>>2]|0;y=(g|0)==(0|0);if(!y){En(g)}M=e+52156|0;F=a[M>>2]|0;O=(F|0)==(0|0);if(!O){En(F)}Ft(e);A=e+85808|0;T=a[A>>2]|0;N=(T|0)==(0|0);if(!N){Be(T|0)|0;a[A>>2]=0}D=e+85800|0;P=a[D>>2]|0;L=(P|0)==(0|0);if(L){En(e);return}C=P+2156|0;B=a[C>>2]|0;I=(B|0)==(0|0);if(I){r=P}else{En(B);i=a[D>>2]|0;r=i}H=r+4316|0;x=a[H>>2]|0;z=(x|0)==(0|0);if(z){q=r}else{En(x);t=a[D>>2]|0;q=t}En(q);En(e);return}function At(e,r){e=e|0;r=+r;var i=0,t=0,n=0.0,o=0.0,s=0.0,l=0,u=0.0,h=0,d=0.0,v=0,m=0.0,E=0.0,w=0.0,b=0.0,_=0.0,p=0.0,k=0.0,S=0.0,g=0.0,y=0.0;var M=0.0,F=0.0,O=0.0,A=0.0,R=0.0,T=0.0,N=0.0,D=0.0,P=0.0,L=0.0,C=0.0,B=0.0,I=0.0,H=0,x=0.0,U=0.0,z=0.0,q=0,V=0.0,j=0;var Y=0.0,K=0,G=0.0,X=0.0,Z=0.0,J=0.0,Q=0.0,ee=0.0,re=0.0,ie=0.0,te=0.0,ne=0.0,ae=0.0,oe=0.0,se=0.0,le=0.0,fe=0.0,ue=0.0,ce=0.0,he=0.0;var de=0.0,ve=0.0,me=0.0,Ee=0.0,we=0.0,be=0.0,_e=0,pe=0.0,ke=0.0,Se=0,ge=0.0,ye=0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0.0,Re=0.0,Te=0.0,Ne=0.0,De=0.0;var Pe=0.0,Le=0.0,Ce=0.0,Be=0.0,Ie=0.0,He=0.0,xe=0.0,Ue=0.0,ze=0.0,qe=0.0,Ve=0.0,je=0.0,We=0.0,Ye=0.0,Ke=0.0,Ge=0.0,Xe=0.0,Ze=0.0,Je=0.0,Qe=0.0;var $e=0.0,er=0,rr=0.0,ir=0,tr=0,nr=0.0,ar=0,or=0.0,sr=0.0,lr=0.0,fr=0.0,ur=0.0,cr=0.0,hr=0.0,dr=0.0,vr=0.0,mr=0.0,Er=0.0,wr=0.0,br=0.0;var _r=0.0,pr=0.0,kr=0.0,Sr=0.0,gr=0.0,yr=0.0,Mr=0,Fr=0.0,Or=0,Ar=0.0,Rr=0,Tr=0.0,Nr=0,Dr=0.0,Pr=0.0,Lr=0.0,Cr=0.0,Br=0.0,Ir=0.0,Hr=0.0;var xr=0.0,Ur=0.0,zr=0.0,qr=0.0,Vr=0.0,jr=0.0,Wr=0.0,Yr=0.0,Kr=0,Gr=0.0,Xr=0.0,Zr=0.0,Jr=0.0,Qr=0.0,$r=0,ei=0.0,ri=0,ii=0.0,ti=0,ni=0.0;var ai=0.0,oi=0.0,si=0.0,li=0.0,fi=0.0,ui=0.0,ci=0.0,hi=0.0,di=0.0,vi=0.0,mi=0.0,Ei=0.0,wi=0.0,bi=0.0,_i=0.0,pi=0.0,ki=0.0,Si=0.0,gi=0.0,yi=0.0;var Mi=0,Fi=0.0,Oi=0.0,Ai=0.0,Ri=0.0,Ti=0.0,Ni=0.0,Di=0.0,Pi=0.0,Li=0.0,Ci=0.0,Bi=0.0,Ii=0.0,Hi=0.0,xi=0.0,Ui=0.0,zi=0.0,qi=0.0,Vi=0.0,ji=0.0;var Wi=0.0,Yi=0.0,Ki=0.0,Gi=0,Xi=0;Xi=c;i=e+192|0;t=a[i>>2]|0;switch(t|0){case 5:{H=e+188|0;x=+f[H>>2];z=r;q=z<-0.29999999999999999;Ti=r*0.0010000000474974513;V=q?3.4100000858306885:Ti;j=V<3.4100000858306885;Y=j?3.4100000858306885:V;K=Y>16.100000381469727;G=Y;X=K?16.100000381469727:G;Z=+W(+X,-0.80000000000000004);J=Z*3.6400000000000001;ee=X+-3.3999999999999999;Bi=ee*ee;re=Bi*-0.59999999999999998;ie=+$(+re);te=ie*6.7999999999999998;ne=J-te;ae=X+-8.6999999999999993;Vi=ae*ae;oe=Vi*-0.14999999999999999;se=+$(+oe);le=se*6.0;fe=ne+le;ce=x;he=ce*4.0000000000000003E-5;de=he+5.9999999999999995E-4;ve=+W(+X,4.0);me=ve*de;Ee=fe+me;we=Ee;Fi=we;return+Fi;break}case 1:{$e=r;er=$e<-0.29999999999999999;Ai=r*0.0010000000474974513;rr=er?3.4100000858306885:Ai;ir=rr<0.10000000149011612;nr=ir?0.10000000149011612:rr;ar=nr>24.0;or=nr;sr=ar?24.0:or;lr=+W(+sr,-0.80000000000000004);fr=lr*3.6400000000000001;ur=sr+-3.3999999999999999;Hi=ur*ur;cr=Hi*-0.59999999999999998;hr=+$(+cr);dr=hr*6.7999999999999998;mr=fr-dr;Er=sr+-8.6999999999999993;Wi=Er*Er;wr=Wi*-0.14999999999999999;br=+$(+wr);_r=br*6.0;pr=mr+_r;kr=+W(+sr,4.0);Sr=kr*5.5999999999999995E-4;gr=pr+Sr;yr=gr;Fi=yr;return+Fi;break}case 0:{Ye=r;tr=Ye<-0.29999999999999999;Oi=r*0.0010000000474974513;vr=tr?3.4100000858306885:Oi;Mr=vr<0.10000000149011612;Br=Mr?0.10000000149011612:vr;Kr=Br>24.0;ni=Br;mi=Kr?24.0:ni;n=+W(+mi,-0.80000000000000004);b=n*3.6400000000000001;R=mi+-3.3999999999999999;Li=R*R;U=Li*-0.59999999999999998;Q=+$(+U);ue=Q*6.7999999999999998;ke=b-ue;De=mi+-8.6999999999999993;zi=De*De;Ve=zi*-0.14999999999999999;We=+$(+Ve);Ke=We*6.0;Ge=ke+Ke;Xe=+W(+mi,4.0);Ze=Xe*9.5999999999999991E-4;Je=Ge+Ze;Qe=Je;Fi=Qe;return+Fi;break}case 3:{Qr=r;$r=Qr<-0.29999999999999999;Pi=r*0.0010000000474974513;ei=$r?3.4100000858306885:Pi;ri=ei<0.10000000149011612;ii=ri?0.10000000149011612:ei;ti=ii>24.0;ai=ii;oi=ti?24.0:ai;si=+W(+oi,-0.80000000000000004);li=si*3.6400000000000001;fi=oi+-3.3999999999999999;Ui=fi*fi;ui=Ui*-0.59999999999999998;ci=+$(+ui);hi=ci*6.7999999999999998;di=li-hi;vi=oi+-8.6999999999999993;Ki=vi*vi;Ei=Ki*-0.14999999999999999;wi=+$(+Ei);bi=wi*6.0;_i=di+bi;pi=+W(+oi,4.0);ki=pi*6.3999999999999994E-4;Si=_i+ki;gi=Si;yi=gi+6.0;Fi=yi;return+Fi;break}case 4:{Mi=e+188|0;o=+f[Mi>>2];s=r;l=s<-0.29999999999999999;Ri=r*0.0010000000474974513;u=l?3.4100000858306885:Ri;h=u<0.10000000149011612;d=h?0.10000000149011612:u;v=d>24.0;m=d;E=v?24.0:m;w=+W(+E,-0.80000000000000004);_=w*3.6400000000000001;p=E+-3.3999999999999999;Ci=p*p;k=Ci*-0.59999999999999998;S=+$(+k);g=S*6.7999999999999998;y=_-g;M=E+-8.6999999999999993;qi=M*M;F=qi*-0.14999999999999999;O=+$(+F);A=O*6.0;T=y+A;N=o;D=N*4.0000000000000003E-5;P=D+5.9999999999999995E-4;L=+W(+E,4.0);C=L*P;B=T+C;I=B;Fi=I;return+Fi;break}case 2:{Fr=r;Or=Fr<-0.29999999999999999;Di=r*0.0010000000474974513;Ar=Or?3.4100000858306885:Di;Rr=Ar<0.10000000149011612;Tr=Rr?0.10000000149011612:Ar;Nr=Tr>24.0;Dr=Tr;Pr=Nr?24.0:Dr;Lr=+W(+Pr,-0.80000000000000004);Cr=Lr*3.6400000000000001;Ir=Pr+-3.3999999999999999;xi=Ir*Ir;Hr=xi*-0.59999999999999998;xr=+$(+Hr);Ur=xr*6.7999999999999998;zr=Cr-Ur;qr=Pr+-8.6999999999999993;Yi=qr*qr;Vr=Yi*-0.14999999999999999;jr=+$(+Vr);Wr=jr*6.0;Yr=zr+Wr;Gr=+W(+Pr,4.0);Xr=Gr*5.9999999999999995E-4;Zr=Yr+Xr;Jr=Zr;Fi=Jr;return+Fi;break}default:{be=r;_e=be<-0.29999999999999999;Ni=r*0.0010000000474974513;pe=_e?3.4100000858306885:Ni;Se=pe<0.10000000149011612;ge=Se?0.10000000149011612:pe;ye=ge>24.0;Me=ge;Fe=ye?24.0:Me;Oe=+W(+Fe,-0.80000000000000004);Ae=Oe*3.6400000000000001;Re=Fe+-3.3999999999999999;Ii=Re*Re;Te=Ii*-0.59999999999999998;Ne=+$(+Te);Pe=Ne*6.7999999999999998;Le=Ae-Pe;Ce=Fe+-8.6999999999999993;ji=Ce*Ce;Be=ji*-0.14999999999999999;Ie=+$(+Be);He=Ie*6.0;xe=Le+He;Ue=+W(+Fe,4.0);ze=Ue*5.9999999999999995E-4;qe=xe+ze;je=qe;Fi=je;return+Fi}}return+0.0}function Rt(e){e=+e;var r=0.0,i=0,t=0.0,n=0.0,a=0.0,o=0.0,s=0.0,l=0.0,f=0.0,u=0.0,h=0.0,d=0.0,v=0.0,m=0.0,E=0.0,w=0.0,b=0,_=0;_=c;i=e<0.0;t=e;r=t*0.001;f=r;u=i?0.0:f;h=u;d=h*0.76000000000000001;v=+J(+d);m=v*13.0;E=u*u;w=E;n=w*0.017777777777777778;a=+J(+n);o=a*3.5;s=o+m;l=s;return+l}function Tt(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0;R=c;o=(i|0)<16000;n=o?2:r;s=(83944+(n<<6)|0)+4|0;m=a[s>>2]|0;g=m;O=2;while(1){E=(83944+(n<<6)|0)+(O<<2)|0;w=a[E>>2]|0;b=(w|0)>0;if(b){_=w-e|0;p=(_|0)>0;k=0-_|0;S=p?_:k;l=g-e|0;f=(l|0)>0;u=0-l|0;h=f?l:u;d=(S|0)<(h|0);t=d?w:g;y=t}else{y=g}v=O+1|0;F=(v|0)==15;if(F){M=y;break}else{g=y;O=v}}return M|0}function Nt(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0;F=c;n=e&65535;b=0;while(1){o=(b|0)<16;if(!o){p=16;S=320;g=16;y=320;break}f=b+1|0;u=89568+(f<<2)|0;h=a[u>>2]|0;d=(n|0)>(h|0);r=d?n:h;v=(r|0)==(n|0);if(v){b=f}else{i=f;t=h;_=b;M=4;break}}if((M|0)==4){m=89568+(_<<2)|0;E=a[m>>2]|0;p=_;S=E;g=i;y=t}w=y-n|0;s=n-S|0;l=(w|0)>(s|0);k=l?p:g;return k|0}function Dt(e){e=e|0;var r=0,i=0,t=0,n=0,a=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0;d=c;t=(e|0)<8001;if(t){i=8000}else{n=(e|0)<11026;if(n){i=11025}else{a=(e|0)<12001;if(a){i=12000}else{o=(e|0)<16001;if(o){i=16000}else{s=(e|0)<22051;if(s){i=22050}else{l=(e|0)<24001;if(l){i=24000}else{f=(e|0)<32001;if(f){i=32000}else{u=(e|0)<44101;r=u?44100:48000;i=r}}}}}}}return i|0}function Pt(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0;var W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;var ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0;var Ne=0;Ne=c;s=(i|0)<16000;o=s?2:r;l=83944+(o<<6)|0;p=a[l>>2]|0;N=(p|0)>0;q=(p|0)==(e|0);me=N&q;if(me){n=0;return n|0}$=(83944+(o<<6)|0)+4|0;ue=a[$>>2]|0;he=(ue|0)>0;de=(ue|0)==(e|0);Ee=he&de;if(Ee){n=1;return n|0}ve=(83944+(o<<6)|0)+8|0;f=a[ve>>2]|0;u=(f|0)>0;h=(f|0)==(e|0);Se=u&h;if(Se){n=2;return n|0}d=(83944+(o<<6)|0)+12|0;v=a[d>>2]|0;m=(v|0)>0;E=(v|0)==(e|0);ge=m&E;if(ge){n=3;return n|0}w=(83944+(o<<6)|0)+16|0;b=a[w>>2]|0;_=(b|0)>0;k=(b|0)==(e|0);ye=_&k;if(ye){n=4;return n|0}S=(83944+(o<<6)|0)+20|0;g=a[S>>2]|0;y=(g|0)>0;M=(g|0)==(e|0);Me=y&M;if(Me){n=5;return n|0}F=(83944+(o<<6)|0)+24|0;O=a[F>>2]|0;A=(O|0)>0;R=(O|0)==(e|0);Fe=A&R;if(Fe){n=6;return n|0}T=(83944+(o<<6)|0)+28|0;D=a[T>>2]|0;P=(D|0)>0;L=(D|0)==(e|0);Oe=P&L;if(Oe){n=7;return n|0}C=(83944+(o<<6)|0)+32|0;B=a[C>>2]|0;I=(B|0)>0;H=(B|0)==(e|0);Ae=I&H;if(Ae){n=8;return n|0}x=(83944+(o<<6)|0)+36|0;U=a[x>>2]|0;z=(U|0)>0;V=(U|0)==(e|0);Re=z&V;if(Re){n=9;return n|0}j=(83944+(o<<6)|0)+40|0;W=a[j>>2]|0;Y=(W|0)>0;K=(W|0)==(e|0);we=Y&K;if(we){n=10;return n|0}G=(83944+(o<<6)|0)+44|0;X=a[G>>2]|0;Z=(X|0)>0;J=(X|0)==(e|0);be=Z&J;if(be){n=11;return n|0}Q=(83944+(o<<6)|0)+48|0;ee=a[Q>>2]|0;re=(ee|0)>0;ie=(ee|0)==(e|0);_e=re&ie;if(_e){n=12;return n|0}te=(83944+(o<<6)|0)+52|0;ne=a[te>>2]|0;ae=(ne|0)>0;oe=(ne|0)==(e|0);pe=ae&oe;if(pe){n=13;return n|0}else{se=(83944+(o<<6)|0)+56|0;le=a[se>>2]|0;fe=(le|0)>0;ce=(le|0)==(e|0);ke=fe&ce;t=ke?14:-1;return t|0}return 0|0}function Lt(e,r){e=e|0;r=r|0;var i=0,t=0,n=0;n=c;do{if((e|0)==12000){a[r>>2]=0;i=1}else if((e|0)==44100){a[r>>2]=1;i=0}else if((e|0)==11025){a[r>>2]=0;i=0}else if((e|0)==16000){a[r>>2]=0;i=2}else if((e|0)==48000){a[r>>2]=1;i=1}else if((e|0)==22050){a[r>>2]=0;i=0}else if((e|0)==24000){a[r>>2]=0;i=1}else if((e|0)==8000){a[r>>2]=0;i=2}else if((e|0)==32000){a[r>>2]=1;i=2}else{a[r>>2]=0;i=-1}}while(0);return i|0}function Ct(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0.0,l=0.0,f=0,u=0,h=0,d=0,v=0.0,m=0,E=0,w=0;w=c;r=e+48|0;i=a[r>>2]|0;s=+(i|0);l=s*0.99949997663497925;f=~~l;u=e+44|0;h=a[u>>2]|0;d=(h|0)<(f|0);if(d){o=1;n=o&1;return n|0}v=s*1.000499963760376;m=~~v;t=(m|0)<(h|0);o=t;n=o&1;return n|0}function Bt(e,r,i,t,n,o){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;var s=0,l=0.0,h=0.0,d=0.0,v=0.0,m=0,E=0.0,w=0.0,b=0.0,_=0,p=0.0,k=0,S=0,g=0,y=0,M=0,F=0.0,O=0,A=0,R=0.0;var T=0,N=0,D=0,P=0,L=0,C=0.0,B=0.0,I=0.0,H=0.0,x=0.0,U=0.0,z=0,j=0.0,W=0,G=0,X=0,Z=0,J=0.0,Q=0.0,$=0;var ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0.0,de=0.0,ve=0.0,me=0.0,Ee=0.0,we=0.0,be=0,_e=0.0;var pe=0.0,ke=0,Se=0,ge=0,ye=0.0,Me=0.0,Fe=0.0,Oe=0.0,Ae=0.0,Re=0,Te=0.0,Ne=0.0,De=0.0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0;var Ue=0.0,ze=0,qe=0,Ve=0.0,je=0,We=0.0,Ye=0.0,Ke=0.0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0.0,tr=0.0,nr=0.0,ar=0.0;var or=0.0,sr=0.0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0;var Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0;var Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0.0,ei=0,ri=0.0,ii=0,ti=0,ni=0.0,ai=0,oi=0,si=0,li=0,fi=0,ui=0.0,ci=0.0;var hi=0.0,di=0,vi=0.0,mi=0,Ei=0.0,wi=0.0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0;var Di=0.0,Pi=0.0,Li=0.0,Ci=0,Bi=0.0,Ii=0.0,Hi=0.0,xi=0.0,Ui=0.0,zi=0.0,qi=0.0,Vi=0.0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0.0,Xi=0.0,Zi=0.0,Ji=0;var Qi=0,$i=0.0,et=0.0,rt=0.0,it=0,tt=0,nt=0,at=0.0,ot=0.0,st=0,lt=0.0,ft=0.0,ut=0.0,ct=0.0,ht=0.0,dt=0.0,vt=0.0,mt=0.0,Et=0.0,wt=0.0;var bt=0.0,_t=0.0,pt=0.0,kt=0.0,St=0.0,gt=0.0,yt=0.0,Mt=0,Ft=0,Ot=0,At=0,Rt=0.0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0;var Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0.0,Qt=0.0,$t=0,en=0;en=c;P=e+84036|0;L=a[P>>2]|0;zr=e+76|0;ii=a[zr>>2]|0;di=ii*576|0;yi=e+72|0;Ci=a[yi>>2]|0;Yi=e+64|0;tt=a[Yi>>2]|0;vt=+(tt|0);C=vt*0.99949997663497925;Z=~~C;se=e+60|0;be=a[se>>2]|0;Re=(be|0)<(Z|0);if(!Re){Ue=vt*1.000499963760376;Je=~~Ue;lr=(Je|0)<(be|0);if(!lr){Cr=(di|0)<(t|0);Br=Cr?di:t;Ir=Br<<2;Ft=0;while(1){Hr=r+(Ft<<2)|0;xr=a[Hr>>2]|0;Ur=xr+(L<<2)|0;Vr=i+(Ft<<2)|0;jr=a[Vr>>2]|0;yn(Ur|0,jr|0,Ir|0)|0;Wr=Ft+1|0;Yr=(Wr|0)<(Ci|0);if(Yr){Ft=Wr}else{break}}a[o>>2]=Br;a[n>>2]=Br;return}}_r=e+12|0;Tr=e+37184|0;qr=e+37188|0;Kr=e+37168|0;Gr=(ii|0)>0;ei=be;ti=tt;Mt=0;while(1){Xr=r+(Mt<<2)|0;Zr=a[Xr>>2]|0;Jr=i+(Mt<<2)|0;Qr=a[Jr>>2]|0;$r=+(ei|0);ri=+(ti|0);ni=$r/ri;ai=(ei|0)==0;if(ai){Ht=ti}else{xt=ti;Yt=ei;while(1){oi=(xt|0)%(Yt|0)&-1;si=(oi|0)==0;if(si){Ht=Yt;break}else{Ut=Yt;Yt=oi;xt=Ut}}}li=(ti|0)/(Ht|0)&-1;fi=(li|0)>320;s=fi?320:li;ui=ni+0.5;ci=+q(+ui);hi=ni-ci;vi=+V(+hi);mi=vi<1.0E-4;Ei=1.0/ni;wi=Ei;bi=wi>1.0;_i=mi?32:31;pi=_i+1|0;ki=a[_r>>2]|0;Si=(ki|0)==0;if(Si){gi=wn(pi,4)|0;a[Tr>>2]=gi;Mi=wn(pi,4)|0;a[qr>>2]=Mi;Fi=s<<1;Oi=(s|0)<0;if(Oi){a[Kr>>2]=0|0;a[Kr+4>>2]=0|0;a[Kr+8>>2]=0|0;a[Kr+12>>2]=0|0;zt=0}else{Tt=0;while(1){Ai=wn(pi,4)|0;Ri=(e+37192|0)+(Tt<<2)|0;a[Ri>>2]=Ai;Ti=Tt+1|0;Ni=(Tt|0)<(Fi|0);if(Ni){Tt=Ti}else{break}}a[Kr>>2]=0|0;a[Kr+4>>2]=0|0;a[Kr+8>>2]=0|0;a[Kr+12>>2]=0|0;Di=+(s|0);Pi=Di*2.0;Li=wi;p=Li*3.1415926535897931;Bi=p;Ii=bi?3.1415927410125732:Bi;Hi=+(_i|0);xi=Ii;Ui=xi*0.31830988618379069;zi=Ii*Hi;qi=+(_i|0);Vi=qi*3.1415926535897931;ji=(li|0)<320;k=li<<1;S=k^-2;g=-2-S|0;Wi=ji?g:640;qt=0;while(1){Ki=qt-s|0;Gi=+(Ki|0);Xi=Gi/Pi;Zi=Xi;Ji=(e+37192|0)+(qt<<2)|0;Qi=a[Ji>>2]|0;Nt=0;Jt=0.0;while(1){$i=+(Nt|0);et=$i-Zi;rt=et/Hi;it=rt<0.0;d=it?0.0:rt;nt=d>1.0;v=nt?1.0:d;at=v+-0.5;Rt=+V(+at);ot=Rt;st=ot<1.0000000000000001E-9;if(st){h=Ui}else{lt=at;ft=v*2.0;ut=ft;ct=ut*3.1415926535897931;ht=+Y(+ct);dt=ht*0.5;mt=0.41999999999999998-dt;Et=v*4.0;wt=Et;bt=wt*3.1415926535897931;_t=+Y(+bt);pt=_t*0.080000000000000002;kt=mt+pt;St=kt;gt=St;yt=zi*at;B=yt;I=+K(+B);H=gt*I;x=Vi*lt;U=H/x;h=U}l=h;z=Qi+(Nt<<2)|0;f[z>>2]=l;j=l+Jt;W=Nt+1|0;G=(Nt|0)<(_i|0);if(G){Nt=W;Jt=j}else{E=j;break}}Dt=0;while(1){X=Qi+(Dt<<2)|0;J=+f[X>>2];Q=J/E;f[X>>2]=Q;$=Dt+1|0;ee=(Dt|0)<(_i|0);if(ee){Dt=$}else{break}}re=qt+1|0;ie=(qt|0)<(Fi|0);if(ie){qt=re}else{break}}te=(Wi|0)>0;y=Wi|1;ne=te?y:1;zt=ne}a[_r>>2]=1;Vt=zt}else{Vt=0}ae=(e+37184|0)+(Mt<<2)|0;oe=a[ae>>2]|0;le=(e+37168|0)+(Mt<<3)|0;e:do{if(Gr){fe=_i>>>1;ue=_i-fe|0;ce=_i&1;he=+(ce|0);de=he*0.5;ve=+(s|0);me=ve*2.0;F=+u[le>>3];Xt=0;while(1){Ee=+(Xt|0);we=Ee*ni;_e=we-F;pe=+q(+_e);ke=~~pe;Se=ke+ue|0;ge=(Se|0)<(t|0);if(!ge){O=ue;or=F;jt=ke;Kt=Xt;break e}ye=+(ke|0);b=_e-de;Me=b-ye;Fe=Me;Oe=me*Fe;Ae=Oe+ve;Te=Ae;Ne=Te+0.5;De=+q(+Ne);Pe=~~De;Le=ke-fe|0;Ce=(e+37192|0)+(Pe<<2)|0;Be=a[Ce>>2]|0;Pt=0;Qt=0.0;while(1){Ie=Pt+Le|0;He=(Ie|0)<0;xe=Ie+pi|0;ze=oe+(xe<<2)|0;qe=Qr+(Ie<<2)|0;m=He?ze:qe;Ve=+f[m>>2];je=Be+(Pt<<2)|0;We=+f[je>>2];Ye=We*Ve;Ke=Ye+Qt;Ge=Pt+1|0;Xe=(Pt|0)<(_i|0);if(Xe){Pt=Ge;Qt=Ke}else{w=Ke;break}}D=Xt+L|0;Ze=Zr+(D<<2)|0;f[Ze>>2]=w;Qe=Xt+1|0;$e=(Qe|0)<(di|0);if($e){Xt=Qe}else{O=ue;or=F;jt=ke;Kt=Qe;break}}}else{R=+u[le>>3];T=_i>>>1;N=_i-T|0;O=N;or=R;jt=Vt;Kt=0}}while(0);er=jt+O|0;rr=(er|0)>(t|0);Zt=rr?t:er;a[n>>2]=Zt;ir=+(Zt|0);tr=+(Kt|0);nr=tr*ni;ar=or-nr;sr=ar+ir;u[le>>3]=sr;fr=(_i|0)<(Zt|0);if(fr){_=_i^-1;ur=Zt+_|0;Lt=0;while(1){cr=ur+Lt|0;hr=Qr+(cr<<2)|0;dr=a[hr>>2]|0;vr=oe+(Lt<<2)|0;a[vr>>2]=dr;mr=Lt+1|0;Er=(mr|0)<(pi|0);if(Er){Lt=mr}else{break}}}else{wr=pi-Zt|0;br=(wr|0)>0;if(br){Bt=0;while(1){Sr=Bt+Zt|0;gr=oe+(Sr<<2)|0;yr=a[gr>>2]|0;Mr=oe+(Bt<<2)|0;a[Mr>>2]=yr;Fr=Bt+1|0;At=(Fr|0)==(wr|0);if(At){Ct=wr;break}else{Bt=Fr}}}else{Ct=0}pr=(_i|0)<(Ct|0);if(!pr){kr=pi-Ct|0;It=Ct;Wt=0;while(1){Or=Qr+(Wt<<2)|0;Ar=a[Or>>2]|0;Rr=oe+(It<<2)|0;a[Rr>>2]=Ar;Nr=It+1|0;Dr=Wt+1|0;Ot=(Dr|0)==(kr|0);if(Ot){break}else{It=Nr;Wt=Dr}}}}Pr=Mt+1|0;Lr=(Pr|0)<(Ci|0);if(!Lr){Gt=Kt;break}M=a[se>>2]|0;A=a[Yi>>2]|0;ei=M;ti=A;Mt=Pr}a[o>>2]=Gt;return}function It(e,r){e=e|0;r=r|0;var i=0,t=0,n=0;n=c;i=a[E>>2]|0;pe(i|0,e|0,r|0)|0;ge(i|0)|0;return}function Ht(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0;h=c;c=c+16|0;f=h;t=(e|0)==(0|0);if(t){c=h;return}n=e+85828|0;o=a[n>>2]|0;s=(o|0)==(0|0);if(s){c=h;return}a[f>>2]=i;l=a[n>>2]|0;Gn[l&3](r,f);c=h;return}function xt(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0;h=c;c=c+16|0;f=h;t=(e|0)==(0|0);if(t){c=h;return}n=e+85836|0;o=a[n>>2]|0;s=(o|0)==(0|0);if(s){c=h;return}a[f>>2]=i;l=a[n>>2]|0;Gn[l&3](r,f);c=h;return}function Ut(){var e=0,r=0;r=c;return 0}function zt(){var e=0,r=0;r=c;return 0}function qt(){var e=0,r=0;r=c;return 0}function Vt(){var e=0,r=0;r=c;return 0}function jt(){var e=0,r=0;r=c;return}function Wt(){var e=0,r=0,i=0,t=0.0,n=0.0,o=0.0,s=0.0,l=0.0,u=0.0,h=0.0,d=0,v=0,m=0,E=0,w=0;w=c;e=a[89640>>2]|0;r=(e|0)==0;if(r){m=0}else{a[89640>>2]=1;return}while(1){t=+(m|0);n=t*0.001953125;o=n+1.0;s=o;l=+ee(+s);u=l*1.4426950408889634;h=u;d=89648+(m<<2)|0;f[d>>2]=h;i=m+1|0;v=(i|0)==513;if(v){break}else{m=i}}a[89640>>2]=1;return}function Yt(e){e=+e;var r=0,i=0,t=0,n=0.0,o=0.0,s=0.0,l=0,u=0,h=0.0,v=0.0,m=0.0,E=0.0,w=0,b=0,_=0.0,p=0,k=0.0,S=0.0,g=0,y=0;var M=0,F=0;F=c;r=(f[d>>2]=e,a[d>>2]|0);i=r>>>23;w=i&255;b=w+-127|0;_=+(b|0);p=r&16383;k=+(p|0);S=k*6.103515625E-5;g=r>>>14;y=g&511;t=89648+(y<<2)|0;n=+f[t>>2];o=1.0-S;s=n*o;l=y+1|0;u=89648+(l<<2)|0;h=+f[u>>2];v=h*S;m=s+_;E=m+v;return+E}function Kt(){var e=0,r=0;r=c;return 91704|0}function Gt(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0;var de=0,ve=0,me=0,Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0;var Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0;var $e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0;var _r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0;var xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0;var ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0;var Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0;var Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0;var ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0;pt=c;c=c+688|0;bt=pt+424|0;ji=pt+192|0;tt=pt;C=ie(i,r)|0;B=(C|0)==0;if(B){c=pt;return}N=C-i|0;fr=tt+4|0;a[fr>>2]=i;a[tt>>2]=i;Nr=i;ei=i;Zi=2;while(1){pr=Nr+i|0;Vr=pr+ei|0;ci=tt+(Zi<<2)|0;a[ci>>2]=Vr;Si=Vr>>>0>>0;Pi=Zi+1|0;if(Si){Dr=ei;ei=Vr;Zi=Pi;Nr=Dr}else{break}}I=0-i|0;G=e+N|0;oe=(N|0)>0;if(oe){we=(i|0)==0;Ae=G;Ze=1;Wr=0;Gi=e;ht=1;while(1){xe=Ze&3;or=(xe|0)==3;do{if(or){a[ji>>2]=Gi;sr=(ht|0)>1;e:do{if(sr){h=ht;b=Gi;vr=Gi;rt=1;while(1){lr=b+I|0;ur=h+-2|0;cr=tt+(ur<<2)|0;hr=a[cr>>2]|0;Et=hr+i|0;D=0-Et|0;dr=b+D|0;mr=Xn[t&1](vr,dr)|0;Er=(mr|0)>-1;if(Er){wr=Xn[t&1](vr,lr)|0;br=(wr|0)>-1;if(br){Ji=rt;break}}_r=Xn[t&1](dr,lr)|0;kr=(_r|0)>-1;Sr=rt+1|0;gr=ji+(rt<<2)|0;if(kr){a[gr>>2]=dr;yr=h+-1|0;o=dr;f=yr}else{a[gr>>2]=lr;o=lr;f=ur}Mr=(f|0)>1;if(!Mr){Ji=Sr;break}O=a[ji>>2]|0;h=f;b=o;vr=O;rt=Sr}Fr=(Ji|0)<2;if(!Fr){Or=ji+(Ji<<2)|0;a[Or>>2]=bt;if(!we){E=i;zr=bt;while(1){xr=E>>>0>256;Rr=xr?256:E;Ur=a[ji>>2]|0;yn(zr|0,Ur|0,Rr|0)|0;Ir=Ur;$i=0;while(1){Pr=ji+($i<<2)|0;Lr=$i+1|0;Cr=ji+(Lr<<2)|0;Br=a[Cr>>2]|0;yn(Ir|0,Br|0,Rr|0)|0;Hr=Ir+Rr|0;a[Pr>>2]=Hr;Wi=(Lr|0)==(Ji|0);if(Wi){break}else{Ir=Br;$i=Lr}}Ar=(E|0)==(Rr|0);if(Ar){break e}Tr=E-Rr|0;R=a[Or>>2]|0;E=Tr;zr=R}}}}else{}}while(0);qr=Ze>>>2;jr=Wr<<30;Yr=qr|jr;Kr=Wr>>>2;Gr=ht+2|0;V=Yr;ar=Kr;dt=Gr}else{Xr=ht+-1|0;Zr=tt+(Xr<<2)|0;Jr=a[Zr>>2]|0;Qr=Gi;$r=Ae-Qr|0;ri=Jr>>>0<$r>>>0;if(ri){a[ji>>2]=Gi;ii=(ht|0)>1;e:do{if(ii){d=ht;_=Gi;li=Gi;it=1;while(1){ti=_+I|0;ni=d+-2|0;ai=tt+(ni<<2)|0;oi=a[ai>>2]|0;wt=oi+i|0;P=0-wt|0;si=_+P|0;fi=Xn[t&1](li,si)|0;ui=(fi|0)>-1;if(ui){hi=Xn[t&1](li,ti)|0;di=(hi|0)>-1;if(di){Qi=it;break}}vi=Xn[t&1](si,ti)|0;mi=(vi|0)>-1;Ei=it+1|0;wi=ji+(it<<2)|0;if(mi){a[wi>>2]=si;bi=d+-1|0;s=si;u=bi}else{a[wi>>2]=ti;s=ti;u=ni}_i=(u|0)>1;if(!_i){Qi=Ei;break}A=a[ji>>2]|0;d=u;_=s;li=A;it=Ei}pi=(Qi|0)<2;if(!pi){ki=ji+(Qi<<2)|0;a[ki>>2]=bt;if(!we){w=i;Ci=bt;while(1){Di=w>>>0>256;yi=Di?256:w;Li=a[ji>>2]|0;yn(Ci|0,Li|0,yi|0)|0;Ti=Li;et=0;while(1){Fi=ji+(et<<2)|0;Oi=et+1|0;Ai=ji+(Oi<<2)|0;Ri=a[Ai>>2]|0;yn(Ti|0,Ri|0,yi|0)|0;Ni=Ti+yi|0;a[Fi>>2]=Ni;Yi=(Oi|0)==(Qi|0);if(Yi){break}else{Ti=Ri;et=Oi}}gi=(w|0)==(yi|0);if(gi){break e}Mi=w-yi|0;T=a[ki>>2]|0;w=Mi;Ci=T}}}}else{}}while(0)}else{Xt(Gi,i,t,Ze,Wr,ht,0,tt)}Bi=(ht|0)==1;if(Bi){Ii=Wr<<1;Hi=Ze>>>31;xi=Hi|Ii;Ui=Ze<<1;V=Ui;ar=xi;dt=0;break}else{zi=Xr>>>0>31;qi=ht+-33|0;n=zi?0:Ze;p=zi?Ze:Wr;k=zi?qi:Xr;Vi=p<>>H;U=x|Vi;z=n<>>0>>0;if(W){Ze=q;Wr=ar;Gi=j;ht=dt}else{y=ar;M=q;Ki=j;ct=dt;break}}}else{y=0;M=1;Ki=e;ct=1}Xt(Ki,i,t,M,y,ct,0,tt);Y=(ct|0)==1;K=(M|0)==1;ut=K&Y;X=(y|0)==0;ft=X&ut;if(ft){c=pt;return}else{Q=M;fe=y;Xi=Ki;vt=ct}while(1){Z=(vt|0)<2;if(!Z){ye=fe<<2;Me=Q>>>30;Fe=Me|ye;Oe=vt+-2|0;Re=Q<<1;Te=Re&2147483646;Ne=Me<<31;De=Te|Ne;Pe=De^3;Le=Fe>>>1;Ce=tt+(Oe<<2)|0;Be=a[Ce>>2]|0;mt=Be+i|0;L=0-mt|0;Ie=Xi+L|0;He=vt+-1|0;Xt(Ie,i,t,Pe,Le,He,1,tt);Ue=Le<<1;ze=Me&1;qe=Ue|ze;Ve=Pe<<1;je=Ve|1;We=Xi+I|0;Xt(We,i,t,je,qe,Oe,1,tt);Q=je;fe=qe;Xi=We;vt=Oe;continue}J=Q+-1|0;$=(J|0)==0;do{if($){ge=32;_t=56}else{ee=J&1;re=(ee|0)==0;if(re){v=J;nt=0;while(1){te=nt+1|0;ne=v>>>1;ae=ne&1;se=(ae|0)==0;if(se){v=ne;nt=te}else{S=te;break}}le=(S|0)==0;if(le){_t=51}else{pe=S}}else{_t=51}if((_t|0)==51){_t=0;ue=(fe|0)==0;if(ue){ge=64;_t=56;break}ce=fe&1;he=(ce|0)==0;if(he){m=fe;at=0}else{l=0;Ke=Q;Je=fe;rr=0;break}while(1){de=at+1|0;ve=m>>>1;me=ve&1;Ee=(me|0)==0;if(Ee){m=ve;at=de}else{g=de;ot=at;break}}be=ot+33|0;_e=(g|0)==0;if(_e){l=0;Ke=Q;Je=fe;rr=0;break}else{pe=be}}ke=pe>>>0>31;if(ke){ge=pe;_t=56}else{l=pe;Ke=Q;Je=fe;rr=pe}}}while(0);if((_t|0)==56){_t=0;Se=ge+-32|0;l=Se;Ke=fe;Je=0;rr=ge}Ye=Ke>>>l;Ge=32-l|0;Xe=Je<>>l;er=rr+vt|0;F=Xi+I|0;ir=(er|0)==1;tr=(Qe|0)==1;st=tr&ir;nr=($e|0)==0;lt=nr&st;if(lt){break}else{Q=Qe;fe=$e;Xi=F;vt=er}}c=pt;return}function Xt(e,r,i,t,n,o,s,l){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;s=s|0;l=l|0;var f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0;var T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0,X=0;var Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0;var Ee=0,we=0,be=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0;var Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0;var ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0;var Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0;var qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0;var li=0;li=c;c=c+720|0;oi=li+456|0;Vr=li+228|0;qr=li;a[qr>>2]=e;B=0-r|0;I=(t|0)!=1;le=(n|0)!=0;_e=le|I;e:do{if(_e){Te=l+(o<<2)|0;ze=a[Te>>2]|0;Qe=0-ze|0;fr=e+Qe|0;pr=Xn[i&1](fr,e)|0;Nr=(pr|0)<1;if(Nr){h=e;p=o;F=s;Yr=1;si=18}else{m=e;y=o;O=s;ne=fr;ge=n;Jr=1;ti=t;while(1){H=(O|0)==0;X=(y|0)>1;ii=H&X;if(ii){ee=m+B|0;re=y+-2|0;ie=l+(re<<2)|0;te=a[ie>>2]|0;ae=Xn[i&1](ee,ne)|0;oe=(ae|0)>-1;if(oe){d=m;k=y;Gr=Jr;break e}ni=te+r|0;L=0-ni|0;se=m+L|0;fe=Xn[i&1](se,ne)|0;ue=(fe|0)>-1;if(ue){d=m;k=y;Gr=Jr;break e}}ce=Jr+1|0;he=qr+(Jr<<2)|0;a[he>>2]=ne;de=ti+-1|0;ve=(de|0)==0;do{if(ve){Ie=32;si=15}else{me=de&1;Ee=(me|0)==0;if(Ee){b=de;$r=0;while(1){we=$r+1|0;be=b>>>1;pe=be&1;ke=(pe|0)==0;if(ke){b=be;$r=we}else{A=we;break}}Se=(A|0)==0;if(Se){si=10}else{Le=A}}else{si=10}if((si|0)==10){si=0;ye=(ge|0)==0;if(ye){Ie=64;si=15;break}Me=ge&1;Fe=(Me|0)==0;if(Fe){_=ge;ei=0}else{u=0;xe=ti;Ve=ge;Ke=0;break}while(1){Oe=ei+1|0;Ae=_>>>1;Re=Ae&1;Ne=(Re|0)==0;if(Ne){_=Ae;ei=Oe}else{R=Oe;ri=ei;break}}De=ri+33|0;Pe=(R|0)==0;if(Pe){u=0;xe=ti;Ve=ge;Ke=0;break}else{Le=De}}Ce=Le>>>0>31;if(Ce){Ie=Le;si=15}else{u=Le;xe=ti;Ve=ge;Ke=Le}}}while(0);if((si|0)==15){si=0;Be=Ie+-32|0;u=Be;xe=ge;Ve=0;Ke=Ie}He=xe>>>u;Ue=32-u|0;qe=Ve<>>u;Ye=Ke+y|0;Ge=(je|0)!=1;Xe=(We|0)!=0;Ze=Xe|Ge;if(!Ze){d=ne;k=Ye;Gr=ce;break e}T=a[qr>>2]|0;Je=l+(Ye<<2)|0;$e=a[Je>>2]|0;er=0-$e|0;rr=ne+er|0;ir=Xn[i&1](rr,T)|0;tr=(ir|0)<1;if(tr){h=ne;p=Ye;F=0;Yr=ce;si=18;break}else{E=ne;y=Ye;O=0;ne=rr;ge=We;Jr=ce;ti=je;m=E}}}}else{h=e;p=o;F=s;Yr=1;si=18}}while(0);if((si|0)==18){nr=(F|0)==0;if(nr){d=h;k=p;Gr=Yr}else{c=li;return}}ar=(Gr|0)<2;e:do{if(!ar){or=qr+(Gr<<2)|0;a[or>>2]=oi;sr=(r|0)==0;if(!sr){g=r;kr=oi;while(1){br=g>>>0>256;ur=br?256:g;_r=a[qr>>2]|0;yn(kr|0,_r|0,ur|0)|0;Er=_r;Zr=0;while(1){hr=qr+(Zr<<2)|0;dr=Zr+1|0;vr=qr+(dr<<2)|0;mr=a[vr>>2]|0;yn(Er|0,mr|0,ur|0)|0;wr=Er+ur|0;a[hr>>2]=wr;Wr=(dr|0)==(Gr|0);if(Wr){break}else{Er=mr;Zr=dr}}lr=(g|0)==(ur|0);if(lr){break e}cr=g-ur|0;P=a[or>>2]|0;g=cr;kr=P}}}}while(0);a[Vr>>2]=d;Sr=(k|0)>1;e:do{if(Sr){w=k;M=d;Ar=d;Qr=1;while(1){gr=M+B|0;yr=w+-2|0;Mr=l+(yr<<2)|0;Fr=a[Mr>>2]|0;ai=Fr+r|0;C=0-ai|0;Or=M+C|0;Rr=Xn[i&1](Ar,Or)|0;Tr=(Rr|0)>-1;if(Tr){Dr=Xn[i&1](Ar,gr)|0;Pr=(Dr|0)>-1;if(Pr){Kr=Qr;break}}Lr=Xn[i&1](Or,gr)|0;Cr=(Lr|0)>-1;Br=Qr+1|0;Ir=Vr+(Qr<<2)|0;if(Cr){a[Ir>>2]=Or;Hr=w+-1|0;f=Or;v=Hr}else{a[Ir>>2]=gr;f=gr;v=yr}xr=(v|0)>1;if(!xr){Kr=Br;break}N=a[Vr>>2]|0;w=v;M=f;Ar=N;Qr=Br}Ur=(Kr|0)<2;if(Ur){$=oi}else{zr=Vr+(Kr<<2)|0;a[zr>>2]=oi;x=(r|0)==0;if(x){$=oi}else{S=r;Q=oi;while(1){Z=S>>>0>256;z=Z?256:S;J=a[Vr>>2]|0;yn(Q|0,J|0,z|0)|0;K=J;Xr=0;while(1){V=Vr+(Xr<<2)|0;j=Xr+1|0;W=Vr+(j<<2)|0;Y=a[W>>2]|0;yn(K|0,Y|0,z|0)|0;G=K+z|0;a[V>>2]=G;jr=(j|0)==(Kr|0);if(jr){break}else{K=Y;Xr=j}}U=(S|0)==(z|0);if(U){$=oi;break e}q=S-z|0;D=a[zr>>2]|0;S=q;Q=D}}}}else{$=oi}}while(0);c=li;return}function Zt(e){e=e|0;var r=0,i=0,t=0,n=0,a=0;a=c;r=e+-65|0;i=r>>>0<26;t=i&1;return t|0}function Jt(e){e=e|0;var r=0,i=0,t=0,n=0,a=0,o=0;o=c;i=Zt(e)|0;t=(i|0)==0;n=e|32;r=t?e:n;return r|0}function Qt(e){e=+e;var r=0.0,i=0,t=0,n=0.0,o=0,s=0.0,l=0,h=0,v=0.0,m=0.0,E=0.0,w=0.0,b=0,_=0,p=0.0,k=0.0,S=0,g=0.0,y=0.0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0.0,D=0.0,P=0,L=0,C=0,B=0.0,I=0,H=0,x=0.0,U=0.0,z=0,q=0.0,V=0.0,j=0.0,W=0.0;var Y=0.0,K=0.0,G=0.0,X=0.0,Z=0.0,J=0.0,Q=0,$=0.0,ee=0.0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0;le=c;c=c+16|0;ae=le;u[d>>3]=e;i=a[d>>2]|0;t=a[d+4>>2]|0;_=t&2147483647;T=_>>>0>1083174911;do{if(T){z=_>>>0>1083179007;Q=(t|0)>-1;re=i>>>0>4294967295;ie=(t|0)==-1;te=ie&re;ne=Q|te;oe=ne&z;if(oe){n=e*8.9884656743115795E+307;r=n;c=le;return+r}o=_>>>0>2146435071;if(o){s=-1.0/e;r=s;c=le;return+r}l=(t|0)<0;if(l){h=!(e<=-1075.0);if(h){E=e+-4503599627370496.0;w=E+4503599627370496.0;b=w!=e;if(!b){break}p=-1.4012984643248171E-45/e;k=p;f[ae>>2]=k;break}else{v=-1.4012984643248171E-45/e;m=v;f[ae>>2]=m;r=0.0;c=le;return+r}}}else{S=_>>>0<1016070144;if(S){g=e+1.0;r=g;c=le;return+r}}}while(0);y=e+26388279066624.0;u[d>>3]=y;M=a[d>>2]|0;F=a[d+4>>2]|0;O=M+128|0;A=O&-256;R=(A|0)/256&-1;N=y+-26388279066624.0;D=e-N;P=O<<1;L=P&510;C=91712+(L<<3)|0;B=+u[C>>3];I=L|1;H=91712+(I<<3)|0;x=+u[H>>3];U=D-x;q=B*U;V=U*0.0013333559164630223;j=V+0.0096181298421260663;W=U*j;Y=W+0.055504108664821403;K=U*Y;G=K+0.2402265069591;X=U*G;Z=X+0.69314718055994529;J=q*Z;$=B+J;ee=+tn($,R);r=ee;c=le;return+r}function $t(e,r){e=+e;r=r|0;var i=0.0,t=0.0,n=0,o=0,s=0,l=0,f=0,h=0.0,v=0,m=0,E=0,w=0,b=0.0,_=0.0,p=0,k=0,S=0,g=0,y=0;y=c;u[d>>3]=e;n=a[d>>2]|0;o=a[d+4>>2]|0;v=gn(n|0,o|0,52)|0;m=D;E=v&2047;if((E|0)==0){w=e!=0.0;if(w){b=e*1.8446744073709552E+19;_=+$t(b,r);p=a[r>>2]|0;k=p+-64|0;t=_;S=k}else{t=e;S=0}a[r>>2]=S;i=t;return+i}else if((E|0)==2047){i=e;return+i}else{s=E+-1022|0;a[r>>2]=s;l=o&-2146435073;f=l|1071644672;a[d>>2]=n;a[d+4>>2]=f;h=+u[d>>3];i=h;return+i}return+0.0}function en(e,r){e=+e;r=r|0;var i=0.0,t=0,n=0;n=c;i=+$t(e,r);return+i}function rn(e){e=+e;var r=0.0,i=0,t=0,n=0.0,o=0.0,s=0.0,l=0,f=0,h=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0.0;var M=0,F=0.0,O=0.0,A=0.0,R=0,T=0.0,N=0.0,D=0.0,P=0.0,L=0.0,C=0.0,B=0.0,I=0.0,H=0.0,x=0.0,U=0,z=0.0,q=0.0,V=0.0,j=0.0;var W=0.0,Y=0.0,K=0.0,G=0.0,X=0,Z=0,J=0,Q=0.0,$=0.0,ee=0.0,re=0.0,ie=0.0,te=0.0,ne=0.0,ae=0.0,oe=0.0,se=0.0,le=0,fe=0.0,ue=0.0;var ce=0.0,he=0.0,de=0.0,ve=0.0,me=0.0,Ee=0.0,we=0.0,be=0.0,_e=0,pe=0,ke=0.0,Se=0.0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0;Ae=c;u[d>>3]=e;i=a[d>>2]|0;t=a[d+4>>2]|0;b=t>>>0<1048576;R=(t|0)<0;Me=R|b;do{if(Me){U=t&2147483647;J=(i|0)==0;le=(U|0)==0;_e=J≤if(_e){ke=e*e;Se=-1.0/ke;r=Se;return+r}if(!R){s=e*18014398509481984.0;u[d>>3]=s;l=a[d>>2]|0;f=a[d+4>>2]|0;M=l;pe=f;ge=f;ye=-1077;break}n=e-e;o=n/0.0;r=o;return+r}else{h=t>>>0>2146435071;if(h){r=e;return+r}v=(t|0)==1072693248;m=(i|0)==0;E=0==0;w=m&E;Fe=w&v;if(Fe){r=0.0;return+r}else{M=i;pe=t;ge=t;ye=-1023}}}while(0);_=ge+614242|0;p=_>>>20;k=ye+p|0;S=_&1048575;g=S+1072079006|0;a[d>>2]=M;a[d+4>>2]=g;y=+u[d>>3];F=y+-1.0;O=F*0.5;A=F*O;T=F+2.0;N=F/T;D=N*N;P=D*D;L=P*0.15313837699209373;C=L+0.22222198432149784;B=P*C;I=B+0.39999999999409419;H=P*I;x=P*0.14798198605116586;z=x+0.1818357216161805;q=P*z;V=q+0.28571428743662391;j=P*V;W=j+0.66666666666667351;Y=D*W;K=H+Y;G=F-A;u[d>>3]=G;X=a[d>>2]|0;Z=a[d+4>>2]|0;a[d>>2]=0;a[d+4>>2]=Z;Q=+u[d>>3];$=F-Q;ee=$-A;re=A+K;ie=N*re;te=ie+ee;ne=Q*0.43429448187816888;ae=+(k|0);oe=ae*0.30102999566361177;se=ae*3.6942390771589308E-13;fe=Q+te;ue=fe*2.5082946711645275E-11;ce=se+ue;he=te*0.43429448187816888;de=he+ce;ve=oe+ne;me=oe-ve;Ee=ne+me;we=Ee+de;be=ve+we;r=be;return+r}function tn(e,r){e=+e;r=r|0;var i=0,t=0,n=0,o=0,s=0.0,l=0,f=0.0,h=0,v=0,m=0,E=0,w=0,b=0.0,_=0.0,p=0,k=0,S=0.0,g=0,y=0,M=0;var F=0.0,O=0,A=0.0,R=0,T=0;T=c;o=(r|0)>1023;if(o){s=e*8.9884656743115795E+307;p=r+-1023|0;k=(p|0)>1023;if(k){S=s*8.9884656743115795E+307;g=r+-2046|0;y=(g|0)>1023;i=y?1023:g;t=i;A=S}else{t=p;A=s}}else{M=(r|0)<-1022;if(M){F=e*2.2250738585072014E-308;O=r+1022|0;l=(O|0)<-1022;if(l){f=F*2.2250738585072014E-308;h=r+2044|0;v=(h|0)<-1022;n=v?-1022:h;t=n;A=f}else{t=O;A=F}}else{t=r;A=e}}m=t+1023|0;E=Mn(m|0,0,52)|0;w=D;a[d>>2]=E;a[d+4>>2]=w;b=+u[d>>3];_=A*b;return+_}function nn(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,a=0,o=0;o=c;t=(e|0)==(0|0);if(t){i=0}else{n=an(e,r,0)|0;i=n}return i|0}function an(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0;re=c;o=(e|0)==(0|0);if(o){n=1;return n|0}s=r>>>0<128;if(s){_=r&255;t[e>>0]=_;n=1;return n|0}T=r>>>0<2048;if(T){z=r>>>6;G=z|192;X=G&255;Z=e+1|0;t[e>>0]=X;J=r&63;Q=J|128;l=Q&255;t[Z>>0]=l;n=2;return n|0}f=r>>>0<55296;u=r&-8192;h=(u|0)==57344;$=f|h;if($){d=r>>>12;v=d|224;m=v&255;E=e+1|0;t[e>>0]=m;w=r>>>6;b=w&63;p=b|128;k=p&255;S=e+2|0;t[E>>0]=k;g=r&63;y=g|128;M=y&255;t[S>>0]=M;n=3;return n|0}F=r+-65536|0;O=F>>>0<1048576;if(O){A=r>>>18;R=A|240;N=R&255;D=e+1|0;t[e>>0]=N;P=r>>>12;L=P&63;C=L|128;B=C&255;I=e+2|0;t[D>>0]=B;H=r>>>6;x=H&63;U=x|128;q=U&255;V=e+3|0;t[I>>0]=q;j=r&63;W=j|128;Y=W&255;t[V>>0]=Y;n=4;return n|0}else{K=Ye()|0;a[K>>2]=84;n=-1;return n|0}return 0|0}function on(e){e=e|0;var r=0,i=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0;var y=0,M=0,F=0,O=0;O=c;i=e+74|0;n=t[i>>0]|0;w=n<<24>>24;_=w+255|0;p=_|w;k=p&255;t[i>>0]=k;S=a[e>>2]|0;g=S&8;y=(g|0)==0;if(y){o=e+8|0;a[o>>2]=0;s=e+4|0;a[s>>2]=0;l=e+44|0;f=a[l>>2]|0;u=e+28|0;a[u>>2]=f;h=e+20|0;a[h>>2]=f;d=f;v=e+48|0;m=a[v>>2]|0;E=d+m|0;b=e+16|0;a[b>>2]=E;r=0;return r|0}else{M=S|32;a[e>>2]=M;r=-1;return r|0}return 0|0}function sn(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0;G=c;u=i+16|0;h=a[u>>2]|0;g=(h|0)==(0|0);do{if(g){L=on(i)|0;H=(L|0)==0;if(H){l=a[u>>2]|0;z=l;break}else{n=0;return n|0}}else{z=h}}while(0);x=i+20|0;U=a[x>>2]|0;q=z;V=U;d=q-V|0;v=d>>>0>>0;if(v){m=i+36|0;E=a[m>>2]|0;w=Yn[E&3](i,e,r)|0;n=w;return n|0}b=i+75|0;_=t[b>>0]|0;p=_<<24>>24>-1;e:do{if(p){j=r;while(1){k=(j|0)==0;if(k){o=r;s=e;P=U;Y=0;break e}S=j+-1|0;y=e+S|0;M=t[y>>0]|0;F=M<<24>>24==10;if(F){W=j;break}else{j=S}}O=i+36|0;A=a[O>>2]|0;R=Yn[A&3](i,e,W)|0;T=R>>>0>>0;if(T){n=W;return n|0}else{N=e+W|0;D=r-W|0;f=a[x>>2]|0;o=D;s=N;P=f;Y=W;break}}else{o=r;s=e;P=U;Y=0}}while(0);yn(P|0,s|0,o|0)|0;C=a[x>>2]|0;B=C+o|0;a[x>>2]=B;I=Y+o|0;n=I;return n|0}function ln(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0;s=c;c=c+16|0;n=s;a[n>>2]=i;t=cn(e,r,n)|0;c=s;return t|0}function fn(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0;var M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0;P=c;c=c+224|0;M=P+120|0;A=P+80|0;O=P;F=P+136|0;N=A;L=N+40|0;do{a[N>>2]=0|0;N=N+4|0}while((N|0)<(L|0));T=a[i>>2]|0;a[M>>2]=T;o=dn(0,r,M,O,A)|0;s=(o|0)<0;if(s){n=-1;c=P;return n|0}w=e+48|0;b=a[w>>2]|0;_=(b|0)==0;if(_){k=e+44|0;S=a[k>>2]|0;a[k>>2]=F;g=e+28|0;a[g>>2]=F;y=e+20|0;a[y>>2]=F;a[w>>2]=80;l=F+80|0;f=e+16|0;a[f>>2]=l;u=dn(e,r,M,O,A)|0;h=(S|0)==(0|0);if(h){R=u}else{d=e+36|0;v=a[d>>2]|0;Yn[v&3](e,0,0)|0;m=a[y>>2]|0;E=(m|0)==(0|0);t=E?-1:u;a[k>>2]=S;a[w>>2]=0;a[f>>2]=0;a[g>>2]=0;a[y>>2]=0;R=t}}else{p=dn(e,r,M,O,A)|0;R=p}n=R;c=P;return n|0}function un(e,r,i,n){e=e|0;r=r|0;i=i|0;n=n|0;var o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0;var O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0;C=c;c=c+128|0;N=C+112|0;D=C;P=D;B=95808;I=P+112|0;do{a[P>>2]=a[B>>2]|0;P=P+4|0;B=B+4|0}while((P|0)<(I|0));u=r+-1|0;h=u>>>0>2147483646;if(h){g=(r|0)==0;if(g){l=N;f=1}else{y=Ye()|0;a[y>>2]=75;s=-1;c=C;return s|0}}else{l=e;f=r}M=l;F=-2-M|0;O=f>>>0>F>>>0;o=O?F:f;A=D+48|0;a[A>>2]=o;R=D+20|0;a[R>>2]=l;T=D+44|0;a[T>>2]=l;d=l+o|0;v=D+16|0;a[v>>2]=d;m=D+28|0;a[m>>2]=d;E=fn(D,i,n)|0;w=(o|0)==0;if(w){s=E;c=C;return s|0}b=a[R>>2]|0;_=a[v>>2]|0;p=(b|0)==(_|0);k=p<<31>>31;S=b+k|0;t[S>>0]=0;s=E;c=C;return s|0}function cn(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,a=0;a=c;t=un(e,2147483647,r,i)|0;return t|0}function hn(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0;var F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0;var Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0;ue=c;m=r&255;E=e;O=E&3;H=(O|0)!=0;Y=(i|0)!=0;$=Y&H;e:do{if($){K=r&255;s=i;te=e;while(1){G=t[te>>0]|0;X=G<<24>>24==K<<24>>24;if(X){o=s;re=te;fe=6;break e}Z=te+1|0;J=s+-1|0;w=Z;b=w&3;_=(b|0)!=0;p=(J|0)!=0;Q=p&_;if(Q){s=J;te=Z}else{n=J;v=p;ee=Z;fe=5;break}}}else{n=i;v=Y;ee=e;fe=5}}while(0);if((fe|0)==5){if(v){o=n;re=ee;fe=6}else{d=0;ae=ee}}e:do{if((fe|0)==6){k=t[re>>0]|0;S=r&255;g=k<<24>>24==S<<24>>24;if(g){d=o;ae=re}else{y=ie(m,16843009)|0;M=o>>>0>3;r:do{if(M){f=o;se=re;while(1){F=a[se>>2]|0;A=F^y;R=A+-16843009|0;T=A&-2139062144;N=T^-2139062144;D=N&R;P=(D|0)==0;if(!P){u=f;le=se;break}L=se+4|0;C=f+-4|0;B=C>>>0>3;if(B){f=C;se=L}else{l=C;oe=L;fe=11;break r}}h=u;ne=le}else{l=o;oe=re;fe=11}}while(0);if((fe|0)==11){I=(l|0)==0;if(I){d=0;ae=oe;break}else{h=l;ne=oe}}while(1){x=t[ne>>0]|0;U=x<<24>>24==S<<24>>24;if(U){d=h;ae=ne;break e}z=ne+1|0;q=h+-1|0;V=(q|0)==0;if(V){d=0;ae=z;break}else{h=q;ne=z}}}}}while(0);j=(d|0)!=0;W=j?ae:0;return W|0}function dn(e,r,i,o,s){e=e|0;r=r|0;i=i|0;o=o|0;s=s|0;var l=0,f=0,h=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0;var N=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0;var Q=0,$=0,ee=0,re=0,te=0,ne=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0.0,ce=0.0,he=0,de=0,ve=0,me=0,Ee=0,we=0,be=0;var _e=0,pe=0,ke=0,Se=0.0,ge=0.0,ye=0.0,Me=0.0,Fe=0,Oe=0,Ae=0,Re=0,Te=0,Ne=0,De=0,Pe=0.0,Le=0,Ce=0,Be=0.0,Ie=0,He=0;var xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ke=0,Ge=0,Xe=0,Ze=0,Je=0,Qe=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0;var sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0.0,mr=0,Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0;var Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0;var Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0;var di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0;var Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0;var $i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0;var _t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0;var xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0,rn=0,tn=0,an=0,on=0,ln=0;var fn=0,un=0,cn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0,kn=0,yn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Ln=0,Cn=0,Bn=0;var In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0;var ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0.0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0.0,ka=0,Sa=0;var ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0;var Va=0,ja=0,Wa=0,Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0;var fo=0,uo=0,co=0,ho=0,vo=0,mo=0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0;var To=0,No=0,Do=0,Po=0,Lo=0,Co=0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0,Ko=0,Go=0,Xo=0;var Zo=0,Jo=0,Qo=0,$o=0,es=0,rs=0,is=0,ts=0,ns=0,as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0;var Es=0,ws=0,bs=0,_s=0,ps=0,ks=0,Ss=0,gs=0,ys=0,Ms=0,Fs=0,Os=0,As=0,Rs=0,Ts=0,Ns=0,Ds=0,Ps=0,Ls=0,Cs=0;var Bs=0,Is=0,Hs=0,xs=0,Us=0,zs=0,qs=0,Vs=0,js=0,Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0,Qs=0,$s=0,el=0,rl=0;var il=0,tl=0,nl=0,al=0,ol=0,sl=0,ll=0,fl=0,ul=0,cl=0,hl=0,dl=0,vl=0,ml=0,El=0,wl=0,bl=0,_l=0,pl=0,kl=0;var Sl=0,gl=0,yl=0,Ml=0,Fl=0,Ol=0,Al=0.0,Rl=0,Tl=0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0,Hl=0.0,xl=0,Ul=0,zl=0;var ql=0,Vl=0,jl=0,Wl=0,Yl=0,Kl=0,Gl=0,Xl=0,Zl=0,Jl=0,Ql=0,$l=0,ef=0,rf=0,tf=0,nf=0,af=0,of=0,sf=0,lf=0;var ff=0,uf=0,cf=0,hf=0,df=0,vf=0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0,Ff=0,Of=0,Af=0;var Rf=0,Tf=0,Nf=0,Df=0,Pf=0,Lf=0,Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0,Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0;var Xf=0,Zf=0,Jf=0,Qf=0,$f=0,eu=0,ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0,du=0,vu=0;var mu=0,Eu=0,wu=0,bu=0,_u=0,pu=0,ku=0,Su=0,gu=0,yu=0,Mu=0,Fu=0,Ou=0,Au=0,Ru=0,Tu=0,Nu=0,Du=0,Pu=0,Lu=0;var Cu=0,Bu=0,Iu=0,Hu=0,xu=0,Uu=0,zu=0,qu=0,Vu=0,ju=0,Wu=0,Yu=0,Ku=0,Gu=0,Xu=0,Zu=0,Ju=0,Qu=0,$u=0,ec=0;var rc=0,ic=0,tc=0,nc=0,ac=0,oc=0,sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0,mc=0,Ec=0,wc=0,bc=0,_c=0,pc=0;var kc=0,Sc=0,gc=0,yc=0,Mc=0,Fc=0,Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0,Ic=0,Hc=0,xc=0,Uc=0;var zc=0,qc=0,Vc=0,jc=0,Wc=0,Yc=0,Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0,eh=0,rh=0,ih=0,th=0,nh=0,ah=0,oh=0;var sh=0,lh=0,fh=0,uh=0,ch=0,hh=0,dh=0,vh=0,mh=0,Eh=0,wh=0,bh=0,_h=0,ph=0,kh=0.0,Sh=0,gh=0.0,yh=0,Mh=0,Fh=0;var Oh=0,Ah=0,Rh=0,Th=0,Nh=0,Dh=0,Ph=0,Lh=0,Ch=0,Bh=0,Ih=0,Hh=0,xh=0,Uh=0,zh=0,qh=0,Vh=0,jh=0,Wh=0,Yh=0;var Kh=0,Gh=0,Xh=0,Zh=0,Jh=0,Qh=0,$h=0,ed=0,rd=0,id=0,td=0,nd=0,ad=0,od=0,sd=0,ld=0,fd=0,ud=0,cd=0,hd=0.0;var dd=0.0,vd=0,md=0,Ed=0,wd=0,bd=0,_d=0,pd=0,kd=0,Sd=0,gd=0,yd=0,Md=0,Fd=0,Od=0,Ad=0,Rd=0.0,Td=0,Nd=0,Dd=0;var Pd=0,Ld=0.0,Cd=0.0,Bd=0.0,Id=0.0,Hd=0.0,xd=0.0,Ud=0,zd=0,qd=0,Vd=0,jd=0,Wd=0,Yd=0,Kd=0,Gd=0,Xd=0,Zd=0,Jd=0,Qd=0;var $d=0,ev=0,rv=0,iv=0,tv=0,nv=0,av=0,ov=0,sv=0,lv=0,fv=0,uv=0,cv=0,hv=0,dv=0,vv=0,mv=0,Ev=0,wv=0,bv=0;var _v=0,pv=0,kv=0,Sv=0,gv=0,yv=0,Mv=0,Fv=0,Ov=0,Av=0,Rv=0,Tv=0,Nv=0,Dv=0,Pv=0,Lv=0,Cv=0,Bv=0,Iv=0,Hv=0;var xv=0.0,Uv=0.0,zv=0.0,qv=0,Vv=0,jv=0,Wv=0,Yv=0,Kv=0,Gv=0,Xv=0,Zv=0,Jv=0,Qv=0,$v=0,em=0,rm=0.0,im=0,tm=0.0,nm=0.0;var am=0,om=0,sm=0,lm=0,fm=0,um=0,cm=0,hm=0,dm=0,vm=0,mm=0,Em=0,wm=0,bm=0.0,_m=0.0,pm=0.0,km=0,Sm=0,gm=0,ym=0;var Mm=0,Fm=0,Om=0,Am=0,Rm=0,Tm=0,Nm=0,Dm=0,Pm=0,Lm=0,Cm=0,Bm=0,Im=0,Hm=0,xm=0,Um=0,zm=0,qm=0,Vm=0,jm=0;var Wm=0,Ym=0,Km=0,Gm=0,Xm=0,Zm=0,Jm=0,Qm=0,$m=0,eE=0,rE=0,iE=0,tE=0,nE=0,aE=0,oE=0,sE=0,lE=0,fE=0,uE=0;var cE=0,hE=0,dE=0,vE=0,mE=0,EE=0,wE=0,bE=0,_E=0,pE=0,kE=0,SE=0,gE=0,yE=0,ME=0,FE=0,OE=0,AE=0.0,RE=0,TE=0;var NE=0,DE=0,PE=0,LE=0,CE=0,BE=0.0,IE=0,HE=0.0,xE=0.0,UE=0,zE=0,qE=0,VE=0,jE=0,WE=0,YE=0,KE=0,GE=0,XE=0,ZE=0;var JE=0,QE=0,$E=0,ew=0,rw=0,iw=0,tw=0,nw=0,aw=0,ow=0,sw=0,lw=0,fw=0,uw=0,cw=0,hw=0,dw=0,vw=0,mw=0,Ew=0;var ww=0,bw=0,_w=0,pw=0,kw=0,Sw=0,gw=0,yw=0,Mw=0,Fw=0,Ow=0,Aw=0,Rw=0,Tw=0,Nw=0,Dw=0,Pw=0,Lw=0,Cw=0,Bw=0;var Iw=0,Hw=0,xw=0,Uw=0,zw=0,qw=0,Vw=0,jw=0,Ww=0,Yw=0,Kw=0,Gw=0,Xw=0,Zw=0,Jw=0,Qw=0,$w=0,eb=0,rb=0,ib=0;var tb=0,nb=0,ab=0,ob=0,sb=0,lb=0,fb=0,ub=0,cb=0,hb=0,db=0,vb=0,mb=0,Eb=0,wb=0,bb=0,_b=0,pb=0,kb=0,Sb=0;var gb=0,yb=0,Mb=0,Fb=0,Ob=0,Ab=0,Rb=0,Tb=0,Nb=0,Db=0,Pb=0,Lb=0,Cb=0,Bb=0,Ib=0,Hb=0,xb=0,Ub=0,zb=0,qb=0;var Vb=0,jb=0,Wb=0,Yb=0,Kb=0,Gb=0,Xb=0,Zb=0,Jb=0,Qb=0,$b=0,e_=0,r_=0,i_=0,t_=0,n_=0,a_=0,o_=0,s_=0,l_=0;var f_=0,u_=0,c_=0,h_=0,d_=0,v_=0,m_=0,E_=0,w_=0,b_=0,__=0,p_=0,k_=0,S_=0,g_=0,y_=0,M_=0,F_=0,O_=0,A_=0;var R_=0,T_=0,N_=0.0,D_=0.0,P_=0,L_=0.0,C_=0,B_=0,I_=0,H_=0,x_=0,U_=0,z_=0,q_=0,V_=0,j_=0,W_=0,Y_=0,K_=0,G_=0;var X_=0,Z_=0,J_=0,Q_=0,$_=0,ep=0,rp=0,ip=0,tp=0,np=0,ap=0,op=0,sp=0,lp=0,fp=0,up=0,cp=0,hp=0,dp=0,vp=0;var mp=0,Ep=0,wp=0,bp=0,_p=0,pp=0,kp=0,Sp=0,gp=0,yp=0,Mp=0,Fp=0,Op=0,Ap=0,Rp=0,Tp=0,Np=0,Dp=0,Pp=0,Lp=0;var Cp=0,Bp=0,Ip=0,Hp=0,xp=0,Up=0,zp=0,qp=0,Vp=0,jp=0,Wp=0,Yp=0,Kp=0,Gp=0,Xp=0,Zp=0,Jp=0,Qp=0,$p=0,ek=0;var rk=0,ik=0,tk=0,nk=0,ak=0,ok=0,sk=0,lk=0,fk=0,uk=0,ck=0,hk=0,dk=0,vk=0,mk=0,Ek=0,wk=0,bk=0,_k=0,pk=0;var kk=0,Sk=0,gk=0,yk=0,Mk=0,Fk=0,Ok=0,Ak=0,Rk=0,Tk=0,Nk=0,Dk=0,Pk=0,Lk=0,Ck=0,Bk=0,Ik=0,Hk=0,xk=0,Uk=0;var zk=0,qk=0,Vk=0,jk=0,Wk=0,Yk=0,Kk=0,Gk=0,Xk=0,Zk=0,Jk=0,Qk=0,$k=0,eS=0,rS=0,iS=0,tS=0,nS=0,aS=0,oS=0;var sS=0,lS=0,fS=0,uS=0,cS=0,hS=0,dS=0,vS=0,mS=0,ES=0,wS=0,bS=0,_S=0,pS=0,kS=0,SS=0,gS=0,yS=0,MS=0,FS=0;var OS=0,AS=0,RS=0,TS=0,NS=0,DS=0,PS=0,LS=0,CS=0,BS=0,IS=0,HS=0,xS=0,US=0,zS=0,qS=0,VS=0,jS=0,WS=0,YS=0;var KS=0,GS=0,XS=0,ZS=0,JS=0,QS=0,$S=0,eg=0,rg=0,ig=0,tg=0,ng=0,ag=0,og=0,sg=0,lg=0,fg=0,ug=0,cg=0,hg=0;var dg=0,vg=0,mg=0,Eg=0,wg=0,bg=0,_g=0,pg=0,kg=0,Sg=0,gg=0,yg=0,Mg=0,Fg=0,Og=0,Ag=0,Rg=0,Tg=0,Ng=0,Dg=0;var Pg=0,Lg=0,Cg=0,Bg=0,Ig=0,Hg=0,xg=0,Ug=0,zg=0,qg=0,Vg=0,jg=0,Wg=0,Yg=0,Kg=0,Gg=0,Xg=0,Zg=0,Jg=0,Qg=0;var $g=0,ey=0,ry=0,iy=0,ty=0,ny=0,ay=0,oy=0,sy=0,ly=0,fy=0,uy=0,cy=0,hy=0,dy=0,vy=0,my=0,Ey=0,wy=0,by=0;var _y=0,py=0,ky=0,Sy=0,gy=0,yy=0,My=0,Fy=0,Oy=0,Ay=0,Ry=0,Ty=0,Ny=0,Dy=0,Py=0,Ly=0,Cy=0,By=0,Iy=0,Hy=0;var xy=0,Uy=0,zy=0,qy=0,Vy=0,jy=0,Wy=0,Yy=0,Ky=0,Gy=0,Xy=0,Zy=0,Jy=0,Qy=0,$y=0,eM=0,rM=0,iM=0,tM=0,nM=0;var aM=0,oM=0,sM=0,lM=0,fM=0,uM=0,cM=0,hM=0,dM=0,vM=0,mM=0,EM=0,wM=0,bM=0,_M=0,pM=0,kM=0,SM=0,gM=0,yM=0;var MM=0,FM=0,OM=0,AM=0,RM=0,TM=0,NM=0,DM=0,PM=0,LM=0,CM=0,BM=0,IM=0,HM=0,xM=0,UM=0,zM=0,qM=0,VM=0,jM=0;var WM=0,YM=0,KM=0,GM=0,XM=0,ZM=0,JM=0,QM=0,$M=0,eF=0,rF=0,iF=0,tF=0,nF=0,aF=0,oF=0,sF=0,lF=0,fF=0,uF=0;var cF=0,hF=0,dF=0,vF=0,mF=0,EF=0,wF=0,bF=0,_F=0,pF=0,kF=0,SF=0,gF=0,yF=0,MF=0,FF=0,OF=0,AF=0,RF=0,TF=0;var NF=0,DF=0,PF=0,LF=0,CF=0,BF=0,IF=0,HF=0,xF=0,UF=0,zF=0,qF=0,VF=0,jF=0,WF=0,YF=0,KF=0,GF=0,XF=0,ZF=0;var JF=0,QF=0,$F=0,eO=0,rO=0,iO=0,tO=0,nO=0,aO=0,oO=0,sO=0,lO=0,fO=0,uO=0,cO=0,hO=0,dO=0,vO=0,mO=0,EO=0;var wO=0,bO=0,_O=0,pO=0,kO=0,SO=0,gO=0,yO=0,MO=0,FO=0,OO=0,AO=0,RO=0,TO=0,NO=0,DO=0,PO=0,LO=0,CO=0,BO=0;var IO=0,HO=0,xO=0,UO=0,zO=0,qO=0,VO=0,jO=0,WO=0,YO=0,KO=0,GO=0,XO=0,ZO=0,JO=0,QO=0,$O=0,eA=0,rA=0,iA=0;var tA=0,nA=0,aA=0,oA=0,sA=0,lA=0,fA=0,uA=0,cA=0,hA=0,dA=0,vA=0,mA=0,EA=0,wA=0,bA=0,_A=0,pA=0,kA=0,SA=0;var gA=0,yA=0,MA=0,FA=0,OA=0,AA=0,RA=0,TA=0,NA=0,DA=0,PA=0,LA=0,CA=0,BA=0,IA=0,HA=0,xA=0,UA=0,zA=0,qA=0;var VA=0,jA=0,WA=0,YA=0,KA=0,GA=0,XA=0,ZA=0,JA=0,QA=0,$A=0,eR=0,rR=0,iR=0,tR=0,nR=0,aR=0,oR=0,sR=0,lR=0;var fR=0,uR=0,cR=0,hR=0,dR=0,vR=0,mR=0,ER=0,wR=0,bR=0,_R=0,pR=0,kR=0,SR=0,gR=0,yR=0,MR=0,FR=0,OR=0,AR=0;var RR=0,TR=0,NR=0,DR=0,PR=0,LR=0.0,CR=0.0,BR=0,IR=0,HR=0,xR=0,UR=0,zR=0,qR=0,VR=0,jR=0,WR=0,YR=0,KR=0,GR=0;var XR=0,ZR=0,JR=0,QR=0,$R=0.0,eT=0.0,rT=0,iT=0,tT=0,nT=0,aT=0,oT=0,sT=0,lT=0,fT=0,uT=0,cT=0,hT=0,dT=0,vT=0;var mT=0,ET=0,wT=0,bT=0,_T=0,pT=0,kT=0,ST=0,gT=0,yT=0,MT=0,FT=0,OT=0,AT=0,RT=0,TT=0,NT=0,DT=0,PT=0,LT=0;var CT=0,BT=0,IT=0,HT=0,xT=0,UT=0,zT=0,qT=0;qT=c;c=c+864|0;fM=qT+16|0;LM=qT+8|0;cM=qT+836|0;qr=cM;CM=qT+824|0;kR=qT+568|0;uM=qT+528|0;vT=qT;jA=qT+520|0;Vr=(e|0)!=(0|0);Ps=uM+40|0;If=Ps;Uc=uM+39|0;Vd=vT+4|0;Ym=vT;Xw=CM+12|0;Q_=CM+11|0;rS=Xw;jr=rS-qr|0;Kt=-2-qr|0;Qa=rS+2|0;fo=fM+288|0;ko=cM+9|0;Do=ko;Vo=cM+8|0;Aa=0;Na=0;dl=r;mM=0;PA=0;HA=0;e:while(1){es=(mM|0)>-1;do{if(es){cs=2147483647-mM|0;Ss=(PA|0)>(cs|0);if(Ss){Ls=Ye()|0;a[Ls>>2]=75;EM=-1;break}else{Ws=PA+mM|0;EM=Ws;break}}else{EM=mM}}while(0);il=t[dl>>0]|0;yl=il<<24>>24==0;if(yl){wM=EM;xA=HA;zT=344;break}else{Pa=il;Yl=dl}while(1){if(Pa<<24>>24==0){Ze=Yl;yT=Yl;break}else if(Pa<<24>>24==37){mf=Yl;MT=Yl;zT=9;break}Cl=Yl+1|0;Tr=t[Cl>>0]|0;Pa=Tr;Yl=Cl}r:do{if((zT|0)==9){while(1){zT=0;nf=mf+1|0;Ff=t[nf>>0]|0;Hf=Ff<<24>>24==37;if(!Hf){Ze=mf;yT=MT;break r}Xf=MT+1|0;ou=mf+2|0;wu=t[ou>>0]|0;Au=wu<<24>>24==37;if(Au){mf=ou;MT=Xf;zT=9}else{Ze=ou;yT=Xf;break}}}}while(0);xu=yT;Zu=dl;sc=xu-Zu|0;if(Vr){sn(dl,sc,e)|0}bc=(yT|0)==(dl|0);if(!bc){UA=HA;Da=Na;Ra=Aa;dl=Ze;mM=EM;PA=sc;HA=UA;Na=Da;Aa=Ra;continue}Rc=Ze+1|0;zc=t[Rc>>0]|0;Qc=zc<<24>>24;bA=Qc+-48|0;cA=bA>>>0<10;if(cA){fh=Ze+2|0;ph=t[fh>>0]|0;Nh=ph<<24>>24==36;qh=Ze+3|0;Ue=Nh?qh:Rc;Xe=Nh?1:HA;_A=Nh?bA:-1;Pr=t[Ue>>0]|0;ud=Pr;lM=_A;zA=Xe;tT=Ue}else{ud=zc;lM=-1;zA=HA;tT=Rc}$h=ud<<24>>24;kd=$h&-32;Dd=(kd|0)==32;r:do{if(Dd){rv=$h;im=ud;WO=0;oT=tT;while(1){jd=rv+-32|0;hv=1<>24;dm=Wv+-32|0;ym=1<>0]|0;mE=nE<<24>>24;FE=mE&-32;IE=(FE|0)==32;if(IE){rv=mE;im=nE;WO=Cm;oT=Km}else{GE=nE;jO=Cm;aT=Km;break}}}else{GE=ud;jO=0;aT=tT}}while(0);aw=GE<<24>>24==42;do{if(aw){Ew=aT+1|0;Ow=t[Ew>>0]|0;Hw=Ow<<24>>24;yA=Hw+-48|0;mA=yA>>>0<10;if(mA){Zw=aT+2|0;sb=t[Zw>>0]|0;bb=sb<<24>>24==36;if(bb){Rb=s+(yA<<2)|0;a[Rb>>2]=10;Ub=t[Ew>>0]|0;Jb=Ub<<24>>24;l_=Jb+-48|0;__=o+(l_<<3)|0;T_=__;z_=T_;$_=a[z_>>2]|0;up=T_+4|0;kp=up;Dp=a[kp>>2]|0;Vp=aT+3|0;qA=1;nT=Vp;uT=$_}else{zT=23}}else{zT=23}if((zT|0)==23){zT=0;ek=(zA|0)==0;if(!ek){h=-1;zT=363;break e}if(!Vr){Yi=Ew;YO=jO;VA=0;cT=0;break}by=a[i>>2]|0;ck=by;Sk=0+4|0;bO=Sk;qM=bO-1|0;Pk=ck+qM|0;jk=0+4|0;kO=jk;pO=kO-1|0;_O=pO^-1;iS=Pk&_O;dS=iS;yS=a[dS>>2]|0;Uy=dS+4|0;a[i>>2]=Uy;qA=0;nT=Ew;uT=yS}CS=(uT|0)<0;if(CS){YS=jO|8192;tg=0-uT|0;Yi=nT;YO=YS;VA=qA;cT=tg}else{Yi=nT;YO=jO;VA=qA;cT=uT}}else{vg=GE<<24>>24;SA=vg+-48|0;EA=SA>>>0<10;if(EA){Wr=aT;rA=0;MA=SA;while(1){Mg=rA*10|0;Bg=Mg+MA|0;Kg=Wr+1|0;ii=t[Kg>>0]|0;di=ii<<24>>24;pA=di+-48|0;hA=pA>>>0<10;if(hA){Wr=Kg;rA=Bg;MA=pA}else{Qe=Bg;er=Kg;break}}yi=(Qe|0)<0;if(yi){h=-1;zT=363;break e}else{Yi=er;YO=jO;VA=zA;cT=Qe}}else{Yi=aT;YO=jO;VA=zA;cT=0}}}while(0);Ci=t[Yi>>0]|0;tt=Ci<<24>>24==46;r:do{if(tt){vt=Yi+1|0;Mt=t[vt>>0]|0;Bt=Mt<<24>>24==42;if(!Bt){wo=Mt<<24>>24;gA=wo+-48|0;wA=gA>>>0<10;if(wA){So=vt;iA=0;FA=gA}else{La=vt;vR=0;break}while(1){bo=iA*10|0;_o=bo+FA|0;po=So+1|0;go=t[po>>0]|0;yo=go<<24>>24;kA=yo+-48|0;dA=kA>>>0<10;if(dA){So=po;iA=_o;FA=kA}else{La=po;vR=_o;break r}}}Gt=Yi+2|0;fn=t[Gt>>0]|0;Fn=fn<<24>>24;OA=Fn+-48|0;vA=OA>>>0<10;if(vA){xn=Yi+3|0;Zn=t[xn>>0]|0;sa=Zn<<24>>24==36;if(sa){ba=s+(OA<<2)|0;a[ba>>2]=10;Ta=t[Gt>>0]|0;qa=Ta<<24>>24;Ja=qa+-48|0;$a=o+(Ja<<3)|0;eo=$a;ro=eo;io=a[ro>>2]|0;to=eo+4|0;no=to;ao=a[no>>2]|0;oo=Yi+4|0;La=oo;vR=io;break}}so=(VA|0)==0;if(!so){h=-1;zT=363;break e}if(Vr){Sy=a[i>>2]|0;lo=Sy;uo=0+4|0;gO=uo;SO=gO-1|0;co=lo+SO|0;ho=0+4|0;FO=ho;MO=FO-1|0;yO=MO^-1;vo=co&yO;mo=vo;Eo=a[mo>>2]|0;Ky=mo+4|0;a[i>>2]=Ky;La=Gt;vR=Eo}else{La=Gt;vR=0}}else{La=Yi;vR=-1}}while(0);Fo=La;rT=0;while(1){Mo=t[Fo>>0]|0;Oo=Mo<<24>>24;Ao=Oo+-65|0;Ro=Ao>>>0>57;if(Ro){h=-1;zT=363;break e}To=Fo+1|0;No=(95920+(rT*58|0)|0)+Ao|0;Po=t[No>>0]|0;Lo=Po&255;Co=Lo+-1|0;Bo=Co>>>0<8;if(Bo){Fo=To;rT=Lo}else{rr=Fo;ir=To;tr=Po;nr=Lo;iT=rT;break}}Io=tr<<24>>24==0;if(Io){h=-1;zT=363;break}Ho=tr<<24>>24==19;xo=(lM|0)>-1;r:do{if(Ho){if(xo){h=-1;zT=363;break e}else{Ca=Aa;Ba=Na;zT=62}}else{if(xo){Uo=s+(lM<<2)|0;a[Uo>>2]=nr;zo=o+(lM<<3)|0;qo=a[zo>>2]|0;jo=zo+4|0;Wo=a[jo>>2]|0;Ca=Wo;Ba=qo;zT=62;break}if(!Vr){h=0;zT=363;break e}Yo=(tr&255)>20;if(Yo){Jl=Na;Af=Aa}else{do{switch(nr|0){case 15:{yy=a[i>>2]|0;el=yy;rl=0+4|0;tF=rl;iF=tF-1|0;tl=el+iF|0;nl=0+4|0;oF=nl;aF=oF-1|0;nF=aF^-1;al=tl&nF;ol=al;sl=a[ol>>2]|0;Wy=ol+4|0;a[i>>2]=Wy;ll=sl&255;fl=ll<<24>>24;ul=(fl|0)<0;cl=ul<<31>>31;JR=sl<<24;hl=JR>>24;Jl=hl;Af=cl;break r;break}case 12:{py=a[i>>2]|0;_s=py;ps=0+8|0;VO=ps;qO=VO-1|0;ks=_s+qO|0;gs=0+8|0;WM=gs;jM=WM-1|0;VM=jM^-1;ys=ks&VM;Ms=ys;Fs=Ms;Os=Fs;As=a[Os>>2]|0;Rs=Fs+4|0;Ts=Rs;Ns=a[Ts>>2]|0;qy=Ms+8|0;a[i>>2]=qy;Jl=As;Af=Ns;break r;break}case 17:{Fy=a[i>>2]|0;kl=Fy;Sl=0+8|0;dF=Sl;hF=dF-1|0;gl=kl+hF|0;Ml=0+8|0;EF=Ml;mF=EF-1|0;vF=mF^-1;Fl=gl&vF;Ol=Fl;Al=+u[Ol>>3];Gy=Ol+8|0;a[i>>2]=Gy;u[d>>3]=Al;Rl=a[d>>2]|0;Tl=a[d+4>>2]|0;Jl=Rl;Af=Tl;break r;break}case 11:{_y=a[i>>2]|0;hs=_y;ds=0+4|0;HO=ds;IO=HO-1|0;vs=hs+IO|0;ms=0+4|0;zO=ms;UO=zO-1|0;xO=UO^-1;Es=vs&xO;ws=Es;bs=a[ws>>2]|0;zy=ws+4|0;a[i>>2]=zy;Jl=bs;Af=0;break r;break}case 10:{xy=a[i>>2]|0;is=xy;ts=0+4|0;PO=ts;DO=PO-1|0;ns=is+DO|0;as=0+4|0;BO=as;CO=BO-1|0;LO=CO^-1;os=ns&LO;ss=os;ls=a[ss>>2]|0;sM=ss+4|0;a[i>>2]=sM;fs=(ls|0)<0;us=fs<<31>>31;Jl=ls;Af=us;break r;break}case 9:{Py=a[i>>2]|0;Ko=Py;Go=0+4|0;AO=Go;OO=AO-1|0;Xo=Ko+OO|0;Zo=0+4|0;NO=Zo;TO=NO-1|0;RO=TO^-1;Jo=Xo&RO;Qo=Jo;$o=a[Qo>>2]|0;nM=Qo+4|0;a[i>>2]=nM;rs=$o;Jl=rs;Af=Aa;break r;break}case 13:{ky=a[i>>2]|0;Ds=ky;Cs=0+4|0;KM=Cs;YM=KM-1|0;Bs=Ds+YM|0;Is=0+4|0;ZM=Is;XM=ZM-1|0;GM=XM^-1;Hs=Bs&GM;xs=Hs;Us=a[xs>>2]|0;Vy=xs+4|0;a[i>>2]=Vy;zs=Us&65535;qs=zs<<16>>16;Vs=(qs|0)<0;js=Vs<<31>>31;QR=Us<<16;Ys=QR>>16;Jl=Ys;Af=js;break r;break}case 16:{My=a[i>>2]|0;vl=My;ml=0+4|0;lF=ml;sF=lF-1|0;El=vl+sF|0;wl=0+4|0;cF=wl;uF=cF-1|0;fF=uF^-1;bl=El&fF;_l=bl;pl=a[_l>>2]|0;Yy=_l+4|0;a[i>>2]=Yy;_r=pl&255;Jl=_r;Af=0;break r;break}case 18:{Oy=a[i>>2]|0;Nl=Oy;Dl=0+8|0;bF=Dl;wF=bF-1|0;Pl=Nl+wF|0;Ll=0+8|0;kF=Ll;pF=kF-1|0;_F=pF^-1;Bl=Pl&_F;Il=Bl;Hl=+u[Il>>3];Xy=Il+8|0;a[i>>2]=Xy;u[d>>3]=Hl;xl=a[d>>2]|0;Ul=a[d+4>>2]|0;Jl=xl;Af=Ul;break r;break}case 14:{gy=a[i>>2]|0;Ks=gy;Gs=0+4|0;QM=Gs;JM=QM-1|0;Xs=Ks+JM|0;Zs=0+4|0;rF=Zs;eF=rF-1|0;$M=eF^-1;Js=Xs&$M;Qs=Js;$s=a[Qs>>2]|0;jy=Qs+4|0;a[i>>2]=jy;kr=$s&65535;Jl=kr;Af=0;break r;break}default:{Jl=Na;Af=Aa;break r}}}while(0)}}}while(0);if((zT|0)==62){zT=0;if(Vr){Jl=Ba;Af=Ca}else{Aa=Ca;Na=Ba;dl=ir;mM=EM;PA=sc;HA=VA;continue}}zl=t[rr>>0]|0;ql=zl<<24>>24;Vl=(iT|0)!=0;jl=ql&15;Wl=(jl|0)==3;lR=Vl&Wl;Kl=ql&-33;sT=lR?Kl:ql;Gl=YO&8192;Xl=(Gl|0)==0;Zl=YO&-65537;KO=Xl?YO:Zl;r:do{switch(sT|0){case 117:{yu=Af;Fu=Jl;SR=0;OR=96400;zT=84;break}case 111:{Qf=(Jl|0)==0;$f=(Af|0)==0;eu=Qf&$f;if(eu){y=Ps}else{oe=Ps;iu=Jl;su=Af;while(1){ru=iu&7;tu=ru|48;nu=tu&255;au=oe+-1|0;t[au>>0]=nu;lu=gn(iu|0,su|0,3)|0;fu=D;uu=(lu|0)==0;cu=(fu|0)==0;hu=uu&cu;if(hu){y=au;break}else{oe=au;iu=lu;su=fu}}}du=KO&8;vu=(du|0)==0;fR=vu|eu;Ne=fR?96400:96405;mu=fR&1;De=mu^1;tc=Jl;ac=Af;ny=y;XO=KO;ER=vR;yR=De;TR=Ne;zT=89;break}case 67:{a[vT>>2]=Jl;a[Vd>>2]=0;za=vT;Va=Ym;_R=-1;zT=97;break}case 83:{Nc=Jl;Dc=(vR|0)==0;if(Dc){ja=Jl;Wa=Nc;QO=0;zT=102}else{za=Nc;Va=Jl;_R=vR;zT=97}break}case 110:{switch(iT|0){case 7:{vf=(EM|0)<0;Ef=vf<<31>>31;wf=Jl;bf=wf;_f=bf;a[_f>>2]=EM;pf=bf+4|0;kf=pf;a[kf>>2]=Ef;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 0:{Ql=Jl;a[Ql>>2]=EM;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 1:{$l=Jl;a[$l>>2]=EM;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 2:{ef=(EM|0)<0;rf=ef<<31>>31;tf=Jl;af=tf;of=af;a[of>>2]=EM;sf=af+4|0;lf=sf;a[lf>>2]=rf;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 3:{ff=EM&65535;uf=Jl;n[uf>>1]=ff;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 4:{cf=EM&255;hf=Jl;t[hf>>0]=cf;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}case 6:{df=Jl;a[df>>2]=EM;Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e;break}default:{Aa=Af;Na=Jl;dl=ir;mM=EM;PA=sc;HA=VA;continue e}}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{a[d>>2]=Jl;a[d+4>>2]=Af;kh=+u[d>>3];a[LM>>2]=0;Sh=(Af|0)<0;if(Sh){gh=-kh;ue=gh;gR=1;RR=96424}else{yh=KO&2048;Mh=(yh|0)==0;if(Mh){Fh=KO&1;Oh=(Fh|0)==0;f=Oh?96425:96430;ue=kh;gR=Fh;RR=f}else{ue=kh;gR=1;RR=96427}}u[d>>3]=ue;Ah=a[d>>2]|0;Rh=a[d+4>>2]|0;Th=Rh&2146435072;Dh=Th>>>0<2146435072;Ph=0<0;Lh=(Th|0)==2146435072;Ch=Lh&Ph;Bh=Dh|Ch;do{if(Bh){hd=+en(ue,LM);dd=hd*2.0;vd=dd!=0.0;if(vd){md=a[LM>>2]|0;Ed=md+-1|0;a[LM>>2]=Ed}wd=sT|32;bd=(wd|0)==97;if(bd){_d=sT&32;pd=(_d|0)==0;Sd=RR+9|0;AR=pd?RR:Sd;gd=gR|2;yd=vR>>>0>11;Md=12-vR|0;Fd=(Md|0)==0;Od=yd|Fd;do{if(Od){ce=dd}else{PR=Md;LR=8.0;while(1){Ad=PR+-1|0;Rd=LR*16.0;Td=(Ad|0)==0;if(Td){vr=Rd;break}else{PR=Ad;LR=Rd}}Nd=t[AR>>0]|0;Pd=Nd<<24>>24==45;if(Pd){Ld=-dd;Cd=Ld-vr;Bd=vr+Cd;Id=-Bd;ce=Id;break}else{Hd=dd+vr;xd=Hd-vr;ce=xd;break}}}while(0);Ud=a[LM>>2]|0;zd=(Ud|0)<0;qd=0-Ud|0;Wd=zd?qd:Ud;Yd=(Wd|0)<0;if(Yd){Kd=(Wd|0)<0;Gd=Kd<<31>>31;le=Xw;Xd=Wd;Zd=Gd;while(1){Jd=Pn(Xd|0,Zd|0,10,0)|0;Qd=D;$d=Jd|48;ev=$d&255;iv=le+-1|0;t[iv>>0]=ev;tv=Dn(Xd|0,Zd|0,10,0)|0;nv=D;av=Zd>>>0>9;ov=Xd>>>0>4294967295;sv=(Zd|0)==9;lv=sv&ov;fv=av|lv;if(fv){le=iv;Xd=tv;Zd=nv}else{mr=iv;Ya=tv;Ka=nv;break}}g=mr;re=Ya}else{g=Xw;re=Wd}uv=(re|0)==0;if(uv){he=g}else{Ee=g;bT=re;while(1){cv=(bT>>>0)%10&-1;dv=cv|48;vv=dv&255;mv=Ee+-1|0;t[mv>>0]=vv;Ev=(bT>>>0)/10&-1;wv=bT>>>0<10;if(wv){he=mv;break}else{Ee=mv;bT=Ev}}}bv=(he|0)==(Xw|0);if(bv){t[Q_>>0]=48;BM=Q_}else{BM=he}_v=a[LM>>2]|0;pv=_v>>31;kv=pv&2;Sv=kv+43|0;yv=Sv&255;Mv=BM+-1|0;t[Mv>>0]=yv;Fv=sT+15|0;Ov=Fv&255;Av=BM+-2|0;t[Av>>0]=Ov;Rv=KO&8;Tv=(Rv|0)==0;if(Tv){YA=(vR|0)<1;if(YA){ye=ce;HR=cM;while(1){Nv=~~ye;Dv=96384+Nv|0;Pv=t[Dv>>0]|0;Cv=Pv&255;Bv=Cv|_d;Iv=Bv&255;Hv=HR+1|0;t[HR>>0]=Iv;xv=+(Nv|0);Uv=ye-xv;zv=Uv*16.0;qv=Hv;Vv=qv-qr|0;jv=(Vv|0)!=1;WA=zv==0.0;aR=jv|WA;if(aR){qR=Hv}else{Yv=HR+2|0;t[Hv>>0]=46;qR=Yv}Kv=zv!=0.0;if(Kv){ye=zv;HR=qR}else{UR=qR;break}}}else{ge=ce;IR=cM;while(1){Gv=~~ge;Xv=96384+Gv|0;Zv=t[Xv>>0]|0;Jv=Zv&255;Qv=Jv|_d;$v=Qv&255;em=IR+1|0;t[IR>>0]=$v;rm=+(Gv|0);tm=ge-rm;nm=tm*16.0;am=em;om=am-qr|0;sm=(om|0)==1;if(sm){lm=IR+2|0;t[em>>0]=46;zR=lm}else{zR=em}fm=nm!=0.0;if(fm){ge=nm;IR=zR}else{UR=zR;break}}}}else{Se=ce;BR=cM;while(1){um=~~Se;cm=96384+um|0;hm=t[cm>>0]|0;vm=hm&255;mm=vm|_d;Em=mm&255;wm=BR+1|0;t[BR>>0]=Em;bm=+(um|0);_m=Se-bm;pm=_m*16.0;km=wm;Sm=km-qr|0;gm=(Sm|0)==1;if(gm){Mm=BR+2|0;t[wm>>0]=46;xR=Mm}else{xR=wm}Fm=pm!=0.0;if(Fm){Se=pm;BR=xR}else{UR=xR;break}}}Om=(vR|0)!=0;Lr=UR;Am=Kt+Lr|0;Rm=(Am|0)<(vR|0);hR=Om&Rm;Tm=Av;Nm=Qa+vR|0;Dm=Nm-Tm|0;Pm=Av;Lm=jr-Pm|0;Bm=Lm+Lr|0;LA=hR?Dm:Bm;Im=LA+gd|0;Hm=KO&73728;xm=(Hm|0)==0;Um=(cT|0)>(Im|0);$A=xm&Um;if($A){zm=cT-Im|0;qm=zm>>>0>256;Vm=qm?256:zm;pn(kR|0,32,Vm|0)|0;jm=zm>>>0>255;if(jm){W=zm;while(1){sn(kR,256,e)|0;Wm=W+-256|0;Gm=Wm>>>0>255;if(Gm){W=Wm}else{break}}Xm=zm&255;F=Xm}else{F=zm}sn(kR,F,e)|0}sn(AR,gd,e)|0;Zm=(Hm|0)==65536;rR=Zm&Um;if(rR){Jm=cT-Im|0;Qm=Jm>>>0>256;$m=Qm?256:Jm;pn(kR|0,48,$m|0)|0;eE=Jm>>>0>255;if(eE){K=Jm;while(1){sn(kR,256,e)|0;rE=K+-256|0;iE=rE>>>0>255;if(iE){K=rE}else{break}}tE=Jm&255;A=tE}else{A=Jm}sn(kR,A,e)|0}aE=Lr-qr|0;sn(cM,aE,e)|0;oE=Av;sE=rS-oE|0;lE=LA-sE|0;fE=lE-aE|0;uE=(fE|0)>0;if(uE){cE=fE>>>0>256;hE=cE?256:fE;pn(kR|0,48,hE|0)|0;dE=fE>>>0>255;if(dE){X=fE;while(1){sn(kR,256,e)|0;vE=X+-256|0;EE=vE>>>0>255;if(EE){X=vE}else{break}}wE=fE&255;T=wE}else{T=fE}sn(kR,T,e)|0}sn(Av,sE,e)|0;bE=(Hm|0)==8192;nR=bE&Um;if(nR){_E=cT-Im|0;pE=_E>>>0>256;kE=pE?256:_E;pn(kR|0,32,kE|0)|0;SE=_E>>>0>255;if(SE){J=_E;while(1){sn(kR,256,e)|0;gE=J+-256|0;yE=gE>>>0>255;if(yE){J=gE}else{break}}ME=_E&255;P=ME}else{P=_E}sn(kR,P,e)|0}fT=Um?cT:Im;v=fT;break}OE=(vR|0)<0;Fr=OE?6:vR;if(vd){AE=dd*268435456.0;RE=a[LM>>2]|0;TE=RE+-28|0;a[LM>>2]=TE;Pe=AE;NE=TE}else{Nr=a[LM>>2]|0;Pe=dd;NE=Nr}DE=(NE|0)<0;Le=DE?fM:fo;PE=Le;Be=Pe;gT=Le;while(1){LE=~~Be>>>0;a[gT>>2]=LE;CE=gT+4|0;BE=+(LE>>>0);HE=Be-BE;xE=HE*1.0E+9;UE=xE!=0.0;if(UE){Be=xE;gT=CE}else{ar=CE;break}}Ar=a[LM>>2]|0;zE=(Ar|0)>0;if(zE){qE=Ar;sy=Le;AT=ar;while(1){VE=(qE|0)>29;jE=VE?29:qE;_M=AT+-4|0;WE=_M>>>0>>0;do{if(WE){fy=sy}else{hM=0;pM=_M;while(1){YE=a[pM>>2]|0;KE=Mn(YE|0,0,jE|0)|0;XE=D;ZE=Sn(KE|0,XE|0,hM|0,0)|0;JE=D;QE=Pn(ZE|0,JE|0,1000000000,0)|0;$E=D;a[pM>>2]=QE;ew=Dn(ZE|0,JE|0,1000000000,0)|0;rw=D;bM=pM+-4|0;iw=bM>>>0>>0;if(iw){or=ew;break}else{hM=ew;pM=bM}}tw=(or|0)==0;if(tw){fy=sy;break}nw=sy+-4|0;a[nw>>2]=or;fy=nw}}while(0);TT=AT;while(1){ow=TT>>>0>fy>>>0;if(!ow){NT=TT;break}sw=TT+-4|0;lw=a[sw>>2]|0;fw=(lw|0)==0;if(fw){TT=sw}else{NT=TT;break}}uw=a[LM>>2]|0;cw=uw-jE|0;a[LM>>2]=cw;hw=(cw|0)>0;if(hw){qE=cw;sy=fy;AT=NT}else{Rr=cw;oy=fy;OT=NT;break}}}else{Rr=Ar;oy=Le;OT=ar}dw=(Rr|0)<0;i:do{if(dw){vw=Fr+25|0;mw=(vw|0)/9&-1;ww=mw+1|0;bw=(wd|0)==102;if(!bw){rb=Rr;cy=oy;PT=OT;while(1){eb=0-rb|0;ib=(eb|0)>9;tb=ib?9:eb;nb=cy>>>0>>0;do{if(nb){fb=1<>>tb;dM=0;kM=cy;while(1){hb=a[kM>>2]|0;db=hb&ub;vb=hb>>>tb;mb=vb+dM|0;a[kM>>2]=mb;Eb=ie(db,cb)|0;wb=kM+4|0;_b=wb>>>0>>0;if(_b){dM=Eb;kM=wb}else{sr=Eb;break}}pb=a[cy>>2]|0;kb=(pb|0)==0;Sb=cy+4|0;ze=kb?Sb:cy;gb=(sr|0)==0;if(gb){Ke=ze;CT=PT;break}yb=PT+4|0;a[PT>>2]=sr;Ke=ze;CT=yb}else{ab=a[cy>>2]|0;ob=(ab|0)==0;lb=cy+4|0;We=ob?lb:cy;Ke=We;CT=PT}}while(0);Mb=CT;Fb=Ke;Ob=Mb-Fb|0;Ab=Ob>>2;Tb=(Ab|0)>(ww|0);Nb=Ke+(ww<<2)|0;Ur=Tb?Nb:CT;Db=a[LM>>2]|0;Pb=Db+tb|0;a[LM>>2]=Pb;Lb=(Pb|0)<0;if(Lb){rb=Pb;cy=Ke;PT=Ur}else{uy=Ke;DT=Ur;break i}}}_w=Le+(ww<<2)|0;kw=Rr;hy=oy;LT=OT;while(1){pw=0-kw|0;Sw=(pw|0)>9;gw=Sw?9:pw;yw=hy>>>0>>0;do{if(yw){$w=1<>>gw;vM=0;SM=hy;while(1){qw=a[SM>>2]|0;Vw=qw&jw;Ww=qw>>>gw;Yw=Ww+vM|0;a[SM>>2]=Yw;Kw=ie(Vw,Gw)|0;Jw=SM+4|0;Qw=Jw>>>0>>0;if(Qw){vM=Kw;SM=Jw}else{lr=Kw;break}}Rw=a[hy>>2]|0;Tw=(Rw|0)==0;Nw=hy+4|0;qe=Tw?Nw:hy;Dw=(lr|0)==0;if(Dw){je=qe;BT=LT;break}Pw=LT+4|0;a[LT>>2]=lr;je=qe;BT=Pw}else{Mw=a[hy>>2]|0;Fw=(Mw|0)==0;Aw=hy+4|0;Ve=Fw?Aw:hy;je=Ve;BT=LT}}while(0);Lw=BT;Cw=Lw-PE|0;Bw=Cw>>2;Iw=(Bw|0)>(ww|0);zr=Iw?_w:BT;xw=a[LM>>2]|0;Uw=xw+gw|0;a[LM>>2]=Uw;zw=(Uw|0)<0;if(zw){kw=Uw;hy=je;LT=zr}else{uy=je;DT=zr;break}}}else{uy=oy;DT=OT}}while(0);Cb=uy>>>0
>>0;do{if(Cb){Bb=uy;Ib=PE-Bb|0;Hb=Ib>>2;xb=Hb*9|0;zb=a[uy>>2]|0;qb=zb>>>0<10;if(qb){TM=xb;break}else{RM=xb;eA=10}while(1){Vb=eA*10|0;jb=RM+1|0;Wb=zb>>>0>>0;if(Wb){TM=jb;break}else{RM=jb;eA=Vb}}}else{TM=0}}while(0);Yb=(wd|0)!=102;Kb=Yb?TM:0;Gb=Fr-Kb|0;Xb=(wd|0)==103;Zb=(Fr|0)!=0;Qb=Zb&Xb;Sr=Qb<<31>>31;$b=Gb+Sr|0;e_=DT;r_=e_-PE|0;i_=r_>>2;t_=i_*9|0;n_=t_+-9|0;a_=($b|0)<(n_|0);if(a_){o_=$b+9216|0;s_=(o_|0)/9&-1;Br=s_+-1023|0;f_=Le+(Br<<2)|0;u_=(o_|0)%9&-1;RA=u_+1|0;c_=(RA|0)<9;if(c_){aA=10;TA=RA;while(1){h_=aA*10|0;AA=TA+1|0;zM=(AA|0)==9;if(zM){tA=h_;break}else{aA=h_;TA=AA}}}else{tA=10}d_=a[f_>>2]|0;v_=(d_>>>0)%(tA>>>0)&-1;m_=(v_|0)==0;if(m_){Ir=s_+-1022|0;E_=Le+(Ir<<2)|0;w_=(E_|0)==(DT|0);if(w_){Ey=uy;MM=f_;DM=TM}else{zT=221}}else{zT=221}do{if((zT|0)==221){zT=0;b_=(d_>>>0)/(tA>>>0)&-1;p_=b_&1;k_=(p_|0)==0;Me=k_?9007199254740992.0:9007199254740994.0;S_=(tA|0)/2&-1;g_=v_>>>0>>0;do{if(g_){$R=0.5}else{y_=(v_|0)==(S_|0);if(y_){Hr=s_+-1022|0;M_=Le+(Hr<<2)|0;F_=(M_|0)==(DT|0);if(F_){$R=1.0;break}}$R=1.5}}while(0);O_=(gR|0)==0;do{if(O_){CR=Me;eT=$R}else{A_=t[RR>>0]|0;R_=A_<<24>>24==45;if(!R_){CR=Me;eT=$R;break}N_=-Me;D_=-$R;CR=N_;eT=D_}}while(0);P_=d_-v_|0;a[f_>>2]=P_;L_=CR+eT;C_=L_!=CR;if(!C_){Ey=uy;MM=f_;DM=TM;break}B_=P_+tA|0;a[f_>>2]=B_;I_=B_>>>0>999999999;if(I_){vy=uy;yM=f_;while(1){H_=yM+-4|0;a[yM>>2]=0;x_=H_>>>0>>0;if(x_){U_=vy+-4|0;a[U_>>2]=0;my=U_}else{my=vy}q_=a[H_>>2]|0;V_=q_+1|0;a[H_>>2]=V_;j_=V_>>>0>999999999;if(j_){vy=my;yM=H_}else{dy=my;gM=H_;break}}}else{dy=uy;gM=f_}W_=dy;Y_=PE-W_|0;K_=Y_>>2;G_=K_*9|0;X_=a[dy>>2]|0;Z_=X_>>>0<10;if(Z_){Ey=dy;MM=gM;DM=G_;break}else{NM=G_;lA=10}while(1){J_=lA*10|0;ep=NM+1|0;rp=X_>>>0>>0;if(rp){Ey=dy;MM=gM;DM=ep;break}else{NM=ep;lA=J_}}}}while(0);ip=MM+4|0;tp=DT>>>0>ip>>>0;xr=tp?ip:DT;wy=Ey;PM=DM;UT=xr}else{wy=uy;PM=TM;UT=DT}np=0-PM|0;HT=UT;while(1){ap=HT>>>0>wy>>>0;if(!ap){Je=0;xT=HT;break}op=HT+-4|0;sp=a[op>>2]|0;lp=(sp|0)==0;if(lp){HT=op}else{Je=1;xT=HT;break}}do{if(Xb){fp=Zb&1;cp=fp^1;yr=cp+Fr|0;hp=(yr|0)>(PM|0);dp=(PM|0)>-5;dR=hp&dp;if(dR){vp=sT+-1|0;gr=yr+-1|0;mp=gr-PM|0;ae=vp;Re=mp}else{Ep=sT+-2|0;wp=yr+-1|0;ae=Ep;Re=wp}bp=KO&8;_p=(bp|0)==0;if(!_p){ve=ae;Ce=Re;Dr=bp;break}do{if(Je){pp=xT+-4|0;Sp=a[pp>>2]|0;gp=(Sp|0)==0;if(gp){DA=9;break}yp=(Sp>>>0)%10&-1;Mp=(yp|0)==0;if(Mp){uA=10;NA=0}else{DA=0;break}while(1){Fp=uA*10|0;Op=NA+1|0;Ap=(Sp>>>0)%(Fp>>>0)&-1;Rp=(Ap|0)==0;if(Rp){uA=Fp;NA=Op}else{DA=Op;break}}}else{DA=9}}while(0);Tp=ae|32;Np=(Tp|0)==102;Pp=xT;Lp=Pp-PE|0;Cp=Lp>>2;Bp=Cp*9|0;Ip=Bp+-9|0;if(Np){Hp=Ip-DA|0;xp=(Hp|0)<0;Fe=xp?0:Hp;Up=(Re|0)<(Fe|0);Oe=Up?Re:Fe;ve=ae;Ce=Oe;Dr=0;break}else{zp=Ip+PM|0;qp=zp-DA|0;jp=(qp|0)<0;Te=jp?0:qp;Wp=(Re|0)<(Te|0);Ae=Wp?Re:Te;ve=ae;Ce=Ae;Dr=0;break}}else{Cr=KO&8;ve=sT;Ce=Fr;Dr=Cr}}while(0);Yp=Ce|Dr;Kp=(Yp|0)!=0;Gp=Kp&1;Xp=ve|32;Zp=(Xp|0)==102;if(Zp){Jp=(PM|0)>0;Qp=Jp?PM:0;Or=Qp;UM=0}else{$p=(PM|0)<0;rk=$p?np:PM;ik=(rk|0)<0;if(ik){tk=(rk|0)<0;nk=tk<<31>>31;fe=Xw;ak=rk;ok=nk;while(1){sk=Pn(ak|0,ok|0,10,0)|0;lk=D;fk=sk|48;uk=fk&255;hk=fe+-1|0;t[hk>>0]=uk;dk=Dn(ak|0,ok|0,10,0)|0;vk=D;mk=ok>>>0>9;Ek=ak>>>0>4294967295;wk=(ok|0)==9;bk=wk&Ek;_k=mk|bk;if(_k){fe=hk;ak=dk;ok=vk}else{fr=hk;Ga=dk;Xa=vk;break}}L=fr;te=Ga}else{L=Xw;te=rk}pk=(te|0)==0;if(pk){HM=L}else{ke=L;ST=te;while(1){kk=(ST>>>0)%10&-1;gk=kk|48;yk=gk&255;Mk=ke+-1|0;t[Mk>>0]=yk;Fk=(ST>>>0)/10&-1;Ok=ST>>>0<10;if(Ok){HM=Mk;break}else{ke=Mk;ST=Fk}}}Ak=HM;Rk=rS-Ak|0;Tk=(Rk|0)<2;if(Tk){xM=HM;while(1){Nk=xM+-1|0;t[Nk>>0]=48;Dk=Nk;Lk=rS-Dk|0;Ck=(Lk|0)<2;if(Ck){xM=Nk}else{IM=Nk;break}}}else{IM=HM}Bk=PM>>31;Ik=Bk&2;Hk=Ik+43|0;xk=Hk&255;Uk=IM+-1|0;t[Uk>>0]=xk;zk=ve&255;qk=IM+-2|0;t[qk>>0]=zk;Vk=qk;Wk=rS-Vk|0;Or=Wk;UM=qk}Yk=gR+1|0;Kk=Yk+Ce|0;CA=Kk+Gp|0;Gk=CA+Or|0;Xk=KO&73728;Zk=(Xk|0)==0;Jk=(cT|0)>(Gk|0);sR=Zk&Jk;if(sR){Qk=cT-Gk|0;$k=Qk>>>0>256;eS=$k?256:Qk;pn(kR|0,32,eS|0)|0;tS=Qk>>>0>255;if(tS){$=Qk;while(1){sn(kR,256,e)|0;nS=$+-256|0;aS=nS>>>0>255;if(aS){$=nS}else{break}}oS=Qk&255;B=oS}else{B=Qk}sn(kR,B,e)|0}sn(RR,gR,e)|0;sS=(Xk|0)==65536;ZA=sS&Jk;if(ZA){lS=cT-Gk|0;fS=lS>>>0>256;uS=fS?256:lS;pn(kR|0,48,uS|0)|0;cS=lS>>>0>255;if(cS){x=lS;while(1){sn(kR,256,e)|0;hS=x+-256|0;vS=hS>>>0>255;if(vS){x=hS}else{break}}mS=lS&255;w=mS}else{w=lS}sn(kR,w,e)|0}if(Zp){ES=wy>>>0>Le>>>0;DR=ES?Le:wy;FM=DR;while(1){wS=a[FM>>2]|0;bS=(wS|0)==0;if(bS){de=ko}else{we=ko;_T=wS;while(1){_S=(_T>>>0)%10&-1;pS=_S|48;kS=pS&255;SS=we+-1|0;t[SS>>0]=kS;gS=(_T>>>0)/10&-1;MS=_T>>>0<10;if(MS){de=SS;break}else{we=SS;_T=gS}}}FS=(FM|0)==(DR|0);do{if(FS){TS=(de|0)==(ko|0);if(!TS){WR=de;break}t[Vo>>0]=48;WR=Vo}else{OS=de>>>0>cM>>>0;if(OS){jR=de}else{WR=de;break}while(1){AS=jR+-1|0;t[AS>>0]=48;RS=AS>>>0>cM>>>0;if(RS){jR=AS}else{WR=AS;break}}}}while(0);NS=WR;DS=Do-NS|0;sn(WR,DS,e)|0;PS=FM+4|0;LS=PS>>>0>Le>>>0;if(LS){hr=PS;break}else{FM=PS}}BS=(Yp|0)==0;if(!BS){sn(96480,1,e)|0}IS=hr>>>0>>0;HS=(Ce|0)>0;xS=HS&IS;if(xS){He=Ce;OM=hr;while(1){US=a[OM>>2]|0;zS=(US|0)==0;if(zS){KR=ko;zT=289}else{be=ko;pT=US;while(1){qS=(pT>>>0)%10&-1;VS=qS|48;jS=VS&255;WS=be+-1|0;t[WS>>0]=jS;KS=(pT>>>0)/10&-1;GS=pT>>>0<10;if(GS){dr=WS;break}else{be=WS;pT=KS}}XS=dr>>>0>cM>>>0;if(XS){KR=dr;zT=289}else{YR=dr}}if((zT|0)==289){while(1){zT=0;ZS=KR+-1|0;t[ZS>>0]=48;JS=ZS>>>0>cM>>>0;if(JS){KR=ZS;zT=289}else{YR=ZS;break}}}QS=(He|0)>9;$S=QS?9:He;sn(YR,$S,e)|0;eg=OM+4|0;rg=He+-9|0;ig=eg>>>0>>0;ng=QS&ig;if(ng){He=rg;OM=eg}else{Ie=rg;break}}}else{Ie=Ce}ag=(Ie|0)>0;if(ag){og=Ie>>>0>256;sg=og?256:Ie;pn(kR|0,48,sg|0)|0;lg=Ie>>>0>255;if(lg){U=Ie;while(1){sn(kR,256,e)|0;fg=U+-256|0;ug=fg>>>0>255;if(ug){U=fg}else{break}}cg=Ie&255;b=cg}else{b=Ie}sn(kR,b,e)|0}}else{hg=wy+4|0;IT=Je?xT:hg;dg=(Ce|0)>-1;do{if(dg){mg=(Dr|0)==0;xe=Ce;AM=wy;while(1){Eg=a[AM>>2]|0;wg=(Eg|0)==0;if(wg){zT=303}else{_e=ko;kT=Eg;while(1){bg=(kT>>>0)%10&-1;_g=bg|48;pg=_g&255;kg=_e+-1|0;t[kg>>0]=pg;Sg=(kT>>>0)/10&-1;gg=kT>>>0<10;if(gg){pe=_e;ur=kg;break}else{_e=kg;kT=Sg}}yg=(ur|0)==(ko|0);if(yg){zT=303}else{Za=pe;GR=ur}}if((zT|0)==303){zT=0;t[Vo>>0]=48;Za=ko;GR=Vo}Fg=(AM|0)==(wy|0);do{if(Fg){sn(GR,1,e)|0;Tg=(xe|0)<1;cR=mg&Tg;if(cR){ZR=Za;break}sn(96480,1,e)|0;ZR=Za}else{Og=GR>>>0>cM>>>0;if(Og){XR=GR}else{ZR=GR;break}while(1){Ag=XR+-1|0;t[Ag>>0]=48;Rg=Ag>>>0>cM>>>0;if(Rg){XR=Ag}else{ZR=Ag;break}}}}while(0);Ng=ZR;Dg=Do-Ng|0;Pg=(xe|0)>(Dg|0);Lg=Pg?Dg:xe;sn(ZR,Lg,e)|0;Cg=xe-Dg|0;Ig=AM+4|0;Hg=Ig>>>0>>0;xg=(Cg|0)>-1;Ug=Hg&xg;if(Ug){xe=Cg;AM=Ig}else{cr=Cg;break}}zg=(cr|0)>0;if(!zg){break}qg=cr>>>0>256;Vg=qg?256:cr;pn(kR|0,48,Vg|0)|0;jg=cr>>>0>255;if(jg){z=cr;while(1){sn(kR,256,e)|0;Wg=z+-256|0;Yg=Wg>>>0>255;if(Yg){z=Wg}else{break}}Gg=cr&255;_=Gg}else{_=cr}sn(kR,_,e)|0}else{}}while(0);Xg=UM;Zg=rS-Xg|0;sn(UM,Zg,e)|0}Jg=(Xk|0)==8192;XA=Jg&Jk;if(XA){Qg=cT-Gk|0;$g=Qg>>>0>256;ey=$g?256:Qg;pn(kR|0,32,ey|0)|0;ry=Qg>>>0>255;if(ry){H=Qg;while(1){sn(kR,256,e)|0;iy=H+-256|0;ty=iy>>>0>255;if(ty){H=iy}else{break}}Yr=Qg&255;E=Yr}else{E=Qg}sn(kR,E,e)|0}dT=Jk?cT:Gk;v=dT}else{Ih=sT&32;Hh=(Ih|0)!=0;xh=Hh?96448:96456;Uh=ue!=ue|0.0!=0.0;zh=Hh?96464:96472;MR=Uh?0:gR;VR=Uh?zh:xh;Vh=MR+3|0;jh=KO&8192;Wh=(jh|0)==0;Yh=(cT|0)>(Vh|0);JA=Wh&Yh;if(JA){Kh=cT-Vh|0;Gh=Kh>>>0>256;Xh=Gh?256:Kh;pn(kR|0,32,Xh|0)|0;Zh=Kh>>>0>255;if(Zh){q=Kh;while(1){sn(kR,256,e)|0;Jh=q+-256|0;Qh=Jh>>>0>255;if(Qh){q=Jh}else{break}}ed=Kh&255;p=ed}else{p=Kh}sn(kR,p,e)|0}sn(RR,MR,e)|0;sn(VR,3,e)|0;rd=KO&73728;id=(rd|0)==8192;QA=id&Yh;if(QA){td=cT-Vh|0;nd=td>>>0>256;ad=nd?256:td;pn(kR|0,32,ad|0)|0;od=td>>>0>255;if(od){j=td;while(1){sn(kR,256,e)|0;sd=j+-256|0;ld=sd>>>0>255;if(ld){j=sd}else{break}}fd=td&255;S=fd}else{S=td}sn(kR,S,e)|0}cd=Yh?cT:Vh;v=cd}}while(0);Aa=Af;Na=Jl;dl=ir;mM=EM;PA=v;HA=VA;continue e;break}case 112:{Sf=vR>>>0>8;gf=Sf?vR:8;yf=KO|8;GO=yf;mR=gf;lT=120;zT=73;break}case 88:case 120:{GO=KO;mR=vR;lT=sT;zT=73;break}case 105:case 100:{Eu=(Af|0)<0;if(Eu){bu=_n(0,0,Jl|0,Af|0)|0;_u=D;yu=_u;Fu=bu;SR=1;OR=96400;zT=84;break r}pu=KO&2048;ku=(pu|0)==0;if(ku){Su=KO&1;gu=(Su|0)==0;l=gu?96400:96402;yu=Af;Fu=Jl;SR=Su;OR=l;zT=84}else{yu=Af;Fu=Jl;SR=1;OR=96401;zT=84}break}case 99:{Ec=Jl&255;t[Uc>>0]=Ec;Ia=Af;Ha=Jl;ly=Uc;ZO=Zl;pR=1;FR=0;NR=96400;RT=Ps;break}case 109:{wc=Ye()|0;_c=a[wc>>2]|0;pc=$e(_c|0)|0;ay=pc;zT=94;break}case 115:{kc=Jl;Sc=(Jl|0)!=0;gc=Sc?kc:96416;ay=gc;zT=94;break}default:{Ia=Af;Ha=Jl;ly=dl;ZO=KO;pR=vR;FR=0;NR=96400;RT=Ps}}}while(0);if((zT|0)==73){zT=0;Mf=lT&32;Of=(Jl|0)==0;Rf=(Af|0)==0;Tf=Of&Rf;if(Tf){tc=Jl;ac=Af;ny=Ps;XO=GO;ER=mR;yR=0;TR=96400;zT=89}else{ne=Ps;Df=Jl;zf=Af;while(1){Nf=Df&15;Pf=96384+Nf|0;Lf=t[Pf>>0]|0;Cf=Lf&255;Bf=Cf|Mf;xf=Bf&255;Uf=ne+-1|0;t[Uf>>0]=xf;qf=gn(Df|0,zf|0,4)|0;Vf=D;jf=(qf|0)==0;Wf=(Vf|0)==0;Yf=jf&Wf;if(Yf){wr=Uf;break}else{ne=Uf;Df=qf;zf=Vf}}Kf=GO&8;Gf=(Kf|0)==0;if(Gf){tc=Jl;ac=Af;ny=wr;XO=GO;ER=mR;yR=0;TR=96400;zT=89}else{Zf=lT>>4;Jf=96400+Zf|0;tc=Jl;ac=Af;ny=wr;XO=GO;ER=mR;yR=2;TR=Jf;zT=89}}}else if((zT|0)==84){zT=0;Mu=yu>>>0>0;Ou=Fu>>>0>4294967295;Ru=(yu|0)==0;Tu=Ru&Ou;Nu=Mu|Tu;if(Nu){se=Ps;Du=Fu;Pu=yu;while(1){Lu=Pn(Du|0,Pu|0,10,0)|0;Cu=D;Bu=Lu|48;Iu=Bu&255;Hu=se+-1|0;t[Hu>>0]=Iu;Uu=Dn(Du|0,Pu|0,10,0)|0;zu=D;qu=Pu>>>0>9;Vu=Du>>>0>4294967295;ju=(Pu|0)==9;Wu=ju&Vu;Yu=qu|Wu;if(Yu){se=Hu;Du=Uu;Pu=zu}else{Er=Hu;xa=Uu;Ua=zu;break}}M=Er;ee=xa}else{M=Ps;ee=Fu}Ku=(ee|0)==0;if(Ku){tc=Fu;ac=yu;ny=M;XO=KO;ER=vR;yR=SR;TR=OR;zT=89}else{me=M;wT=ee;while(1){Gu=(wT>>>0)%10&-1;Xu=Gu|48;Ju=Xu&255;Qu=me+-1|0;t[Qu>>0]=Ju;$u=(wT>>>0)/10&-1;ec=wT>>>0<10;if(ec){tc=Fu;ac=yu;ny=Qu;XO=KO;ER=vR;yR=SR;TR=OR;zT=89;break}else{me=Qu;wT=$u}}}}else if((zT|0)==94){zT=0;yc=hn(ay,0,vR)|0;Mc=(yc|0)==(0|0);Fc=yc;Oc=ay;Ac=Fc-Oc|0;Tc=ay+vR|0;FT=Mc?Tc:yc;bR=Mc?vR:Ac;Ia=Af;Ha=Jl;ly=ay;ZO=Zl;pR=bR;FR=0;NR=96400;RT=FT}else if((zT|0)==97){zT=0;$O=0;BA=0;mT=za;while(1){Pc=a[mT>>2]|0;Lc=(Pc|0)==0;if(Lc){JO=$O;IA=BA;break}Cc=nn(jA,Pc)|0;Bc=(Cc|0)<0;Ic=_R-$O|0;Hc=Cc>>>0>Ic>>>0;uR=Bc|Hc;if(uR){JO=$O;IA=Cc;break}xc=mT+4|0;qc=Cc+$O|0;Vc=_R>>>0>qc>>>0;if(Vc){$O=qc;BA=Cc;mT=xc}else{JO=qc;IA=Cc;break}}jc=(IA|0)<0;if(jc){h=-1;zT=363;break}else{ja=Va;Wa=za;QO=JO;zT=102}}if((zT|0)==89){zT=0;rc=(ER|0)>-1;ic=XO&-65537;Ge=rc?ic:XO;nc=(tc|0)!=0;oc=(ac|0)!=0;lc=nc|oc;fc=(ER|0)!=0;KA=lc|fc;if(KA){uc=ny;cc=If-uc|0;hc=lc&1;dc=hc^1;vc=dc+cc|0;mc=(ER|0)>(vc|0);wR=mc?ER:vc;Ia=ac;Ha=tc;ly=ny;ZO=Ge;pR=wR;FR=yR;NR=TR;RT=Ps}else{Ia=ac;Ha=tc;ly=Ps;ZO=Ge;pR=0;FR=yR;NR=TR;RT=Ps}}else if((zT|0)==102){zT=0;Wc=KO&73728;Yc=(Wc|0)==0;Kc=(cT|0)>(QO|0);iR=Yc&Kc;if(iR){Gc=cT-QO|0;Xc=Gc>>>0>256;Zc=Xc?256:Gc;pn(kR|0,32,Zc|0)|0;Jc=Gc>>>0>255;if(Jc){G=Gc;while(1){sn(kR,256,e)|0;$c=G+-256|0;eh=$c>>>0>255;if(eh){G=$c}else{break}}rh=Gc&255;R=rh}else{R=Gc}sn(kR,R,e)|0}ih=(QO|0)==0;r:do{if(!ih){nA=0;ET=Wa;while(1){th=a[ET>>2]|0;nh=(th|0)==0;if(nh){break r}ah=nn(jA,th)|0;oh=ah+nA|0;sh=(oh|0)>(QO|0);if(sh){break r}lh=ET+4|0;sn(jA,ah,e)|0;uh=oh>>>0>>0;if(uh){nA=oh;ET=lh}else{break}}}}while(0);ch=(Wc|0)==8192;tR=ch&Kc;if(tR){hh=cT-QO|0;dh=hh>>>0>256;vh=dh?256:hh;pn(kR|0,32,vh|0)|0;mh=hh>>>0>255;if(mh){Z=hh;while(1){sn(kR,256,e)|0;Eh=Z+-256|0;wh=Eh>>>0>255;if(wh){Z=Eh}else{break}}bh=hh&255;N=bh}else{N=hh}sn(kR,N,e)|0}_h=Kc?cT:QO;Aa=Af;Na=ja;dl=ir;mM=EM;PA=_h;HA=VA;continue}Kr=RT;Gr=ly;Xr=Kr-Gr|0;Zr=(pR|0)<(Xr|0);Mr=Zr?Xr:pR;Jr=FR+Mr|0;Qr=(cT|0)<(Jr|0);hT=Qr?Jr:cT;$r=ZO&73728;ei=($r|0)==0;ri=(hT|0)>(Jr|0);oR=ei&ri;if(oR){ti=hT-Jr|0;ni=ti>>>0>256;ai=ni?256:ti;pn(kR|0,32,ai|0)|0;oi=ti>>>0>255;if(oi){Q=ti;while(1){sn(kR,256,e)|0;si=Q+-256|0;li=si>>>0>255;if(li){Q=si}else{break}}fi=ti&255;C=fi}else{C=ti}sn(kR,C,e)|0}sn(NR,FR,e)|0;ui=($r|0)==65536;eR=ui&ri;if(eR){ci=hT-Jr|0;hi=ci>>>0>256;vi=hi?256:ci;pn(kR|0,48,vi|0)|0;mi=ci>>>0>255;if(mi){Y=ci;while(1){sn(kR,256,e)|0;Ei=Y+-256|0;wi=Ei>>>0>255;if(wi){Y=Ei}else{break}}bi=ci&255;O=bi}else{O=ci}sn(kR,O,e)|0}_i=(Mr|0)>(Xr|0);if(_i){pi=Mr-Xr|0;ki=pi>>>0>256;Si=ki?256:pi;pn(kR|0,48,Si|0)|0;gi=pi>>>0>255;if(gi){V=pi;while(1){sn(kR,256,e)|0;Mi=V+-256|0;Fi=Mi>>>0>255;if(Fi){V=Mi}else{break}}Oi=pi&255;k=Oi}else{k=pi}sn(kR,k,e)|0}sn(ly,Xr,e)|0;Ai=($r|0)==8192;GA=Ai&ri;if(GA){Ri=hT-Jr|0;Ti=Ri>>>0>256;Ni=Ti?256:Ri;pn(kR|0,32,Ni|0)|0;Di=Ri>>>0>255;if(Di){I=Ri;while(1){sn(kR,256,e)|0;Pi=I+-256|0;Li=Pi>>>0>255;if(Li){I=Pi}else{break}}Bi=Ri&255;m=Bi}else{m=Ri}sn(kR,m,e)|0}Aa=Ia;Na=Ha;dl=ir;mM=EM;PA=hT;HA=VA}if((zT|0)==344){Ii=(e|0)==(0|0);if(!Ii){h=wM;c=qT;return h|0}Hi=(xA|0)==0;if(Hi){h=0;c=qT;return h|0}else{oA=1}while(1){xi=s+(oA<<2)|0;Ui=a[xi>>2]|0;zi=(Ui|0)==0;if(zi){sA=oA;break}Vi=o+(oA<<3)|0;ji=Ui>>>0>20;e:do{if(!ji){do{switch(Ui|0){case 9:{Ay=a[i>>2]|0;Wi=Ay;Ki=0+4|0;gF=Ki;SF=gF-1|0;Gi=Wi+SF|0;Xi=0+4|0;FF=Xi;MF=FF-1|0;yF=MF^-1;Zi=Gi&yF;Ji=Zi;Qi=a[Ji>>2]|0;Zy=Ji+4|0;a[i>>2]=Zy;a[Vi>>2]=Qi;break e;break}case 10:{Ry=a[i>>2]|0;$i=Ry;et=0+4|0;AF=et;OF=AF-1|0;rt=$i+OF|0;it=0+4|0;NF=it;TF=NF-1|0;RF=TF^-1;nt=rt&RF;at=nt;ot=a[at>>2]|0;Jy=at+4|0;a[i>>2]=Jy;st=(ot|0)<0;lt=st<<31>>31;ft=Vi;ut=ft;a[ut>>2]=ot;ct=ft+4|0;ht=ct;a[ht>>2]=lt;break e;break}case 11:{Ty=a[i>>2]|0;dt=Ty;mt=0+4|0;PF=mt;DF=PF-1|0;Et=dt+DF|0;wt=0+4|0;BF=wt;CF=BF-1|0;LF=CF^-1;bt=Et&LF;_t=bt;pt=a[_t>>2]|0;Qy=_t+4|0;a[i>>2]=Qy;kt=Vi;St=kt;a[St>>2]=pt;gt=kt+4|0;yt=gt;a[yt>>2]=0;break e;break}case 12:{Ny=a[i>>2]|0;Ft=Ny;Ot=0+8|0;HF=Ot;IF=HF-1|0;At=Ft+IF|0;Rt=0+8|0;zF=Rt;UF=zF-1|0;xF=UF^-1;Tt=At&xF;Nt=Tt;Dt=Nt;Pt=Dt;Lt=a[Pt>>2]|0;Ct=Dt+4|0;It=Ct;Ht=a[It>>2]|0;$y=Nt+8|0;a[i>>2]=$y;xt=Vi;Ut=xt;a[Ut>>2]=Lt;zt=xt+4|0;qt=zt;a[qt>>2]=Ht;break e;break}case 13:{Dy=a[i>>2]|0;Vt=Dy;jt=0+4|0;VF=jt;qF=VF-1|0;Wt=Vt+qF|0;Yt=0+4|0;YF=Yt;WF=YF-1|0;jF=WF^-1;Xt=Wt&jF;Zt=Xt;Jt=a[Zt>>2]|0;eM=Zt+4|0;a[i>>2]=eM;Qt=Jt&65535;$t=Qt<<16>>16;rn=($t|0)<0;tn=rn<<31>>31;an=Vi;on=an;a[on>>2]=$t;ln=an+4|0;un=ln;a[un>>2]=tn;break e;break}case 14:{Ly=a[i>>2]|0;cn=Ly;dn=0+4|0;GF=dn;KF=GF-1|0;vn=cn+KF|0;mn=0+4|0;JF=mn;ZF=JF-1|0;XF=ZF^-1;En=vn&XF;wn=En;bn=a[wn>>2]|0;rM=wn+4|0;a[i>>2]=rM;pr=bn&65535;kn=Vi;yn=kn;a[yn>>2]=pr;On=kn+4|0;An=On;a[An>>2]=0;break e;break}case 15:{Cy=a[i>>2]|0;Rn=Cy;Tn=0+4|0;$F=Tn;QF=$F-1|0;Nn=Rn+QF|0;Ln=0+4|0;iO=Ln;rO=iO-1|0;eO=rO^-1;Cn=Nn&eO;Bn=Cn;In=a[Bn>>2]|0;iM=Bn+4|0;a[i>>2]=iM;Hn=In&255;Un=Hn<<24>>24;zn=(Un|0)<0;qn=zn<<31>>31;Vn=Vi;jn=Vn;a[jn>>2]=Un;Wn=Vn+4|0;Yn=Wn;a[Yn>>2]=qn;break e;break}case 16:{By=a[i>>2]|0;Kn=By;Gn=0+4|0;nO=Gn;tO=nO-1|0;Xn=Kn+tO|0;Jn=0+4|0;sO=Jn;oO=sO-1|0;aO=oO^-1;Qn=Xn&aO;$n=Qn;ea=a[$n>>2]|0;tM=$n+4|0;a[i>>2]=tM;br=ea&255;ra=Vi;ia=ra;a[ia>>2]=br;ta=ra+4|0;na=ta;a[na>>2]=0;break e;break}case 17:{Iy=a[i>>2]|0;aa=Iy;oa=0+8|0;fO=oa;lO=fO-1|0;la=aa+lO|0;fa=0+8|0;hO=fa;cO=hO-1|0;uO=cO^-1;ua=la&uO;ca=ua;ha=+u[ca>>3];aM=ca+8|0;a[i>>2]=aM;u[Vi>>3]=ha;break e;break}case 18:{Hy=a[i>>2]|0;da=Hy;va=0+8|0;vO=va;dO=vO-1|0;ma=da+dO|0;Ea=0+8|0;wO=Ea;EO=wO-1|0;mO=EO^-1;wa=ma&mO;_a=wa;pa=+u[_a>>3];oM=_a+8|0;a[i>>2]=oM;u[Vi>>3]=pa;break e;break}default:{break e}}}while(0)}}while(0);ka=oA+1|0;Sa=(ka|0)<10;if(Sa){oA=ka}else{h=1;zT=363;break}}if((zT|0)==363){c=qT;return h|0}qi=(sA|0)<10;if(qi){fA=sA}else{h=1;c=qT;return h|0}while(1){Ma=s+(fA<<2)|0;Fa=a[Ma>>2]|0;Oa=(Fa|0)==0;ga=fA+1|0;if(!Oa){h=-1;zT=363;break}ya=(ga|0)<10;if(ya){fA=ga}else{h=1;zT=363;break}}if((zT|0)==363){c=qT;return h|0}}else if((zT|0)==363){c=qT;return h|0}return 0|0}function vn(e,r,i){e=e|0;r=r|0;i=i|0;var t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0;w=c;t=e+16|0;n=a[t>>2]|0;o=e+20|0;s=a[o>>2]|0;l=n;f=s;u=l-f|0;h=u>>>0>i>>>0;m=h?i:u;yn(s|0,r|0,m|0)|0;d=a[o>>2]|0;v=d+m|0;a[o>>2]=v;return i|0}function mn(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0;var fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0;var Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ke=0,Ge=0,Xe=0,Ze=0,Qe=0,$e=0;var er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0,Er=0,wr=0,br=0,_r=0;var pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0,Br=0,Ir=0,Hr=0,xr=0;var Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0,ii=0,ti=0,ni=0,ai=0;var oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0,Si=0,gi=0,yi=0,Mi=0;var Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0,qi=0,Vi=0,ji=0,Wi=0;var Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0,lt=0,ft=0,ut=0,ct=0;var ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0,At=0,Rt=0,Tt=0,Nt=0;var Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0,Gt=0,Xt=0,Zt=0,Jt=0;var Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0,mn=0,En=0,wn=0,bn=0;var _n=0,pn=0,kn=0,Sn=0,gn=0,yn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0,Cn=0,Bn=0,In=0,Hn=0;var xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0,ra=0,ia=0,ta=0,na=0;var aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0,ka=0,Sa=0,ga=0,ya=0;var Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0,za=0,qa=0,Va=0,ja=0;var Wa=0,Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0,so=0,lo=0,fo=0,uo=0;var co=0,ho=0,vo=0,mo=0,Eo=0,wo=0,bo=0,_o=0,po=0,ko=0,So=0,go=0,yo=0,Mo=0,Fo=0,Oo=0,Ao=0,Ro=0,To=0,No=0;var Do=0,Po=0,Lo=0,Co=0,Bo=0,Io=0,Ho=0,xo=0,Uo=0,zo=0,qo=0,Vo=0,jo=0,Wo=0,Yo=0,Ko=0,Go=0,Xo=0,Zo=0,Jo=0;var Qo=0,$o=0,es=0,rs=0,is=0,ts=0,ns=0,as=0,os=0,ss=0,ls=0,fs=0,us=0,cs=0,hs=0,ds=0,vs=0,ms=0,Es=0,ws=0;var bs=0,_s=0,ps=0,ks=0,Ss=0,gs=0,ys=0,Ms=0,Fs=0,Os=0,As=0,Rs=0,Ts=0,Ns=0,Ds=0,Ps=0,Ls=0,Cs=0,Bs=0,Is=0;var Hs=0,xs=0,Us=0,zs=0,qs=0,Vs=0,js=0,Ws=0,Ys=0,Ks=0,Gs=0,Xs=0,Zs=0,Js=0,Qs=0,$s=0,el=0,rl=0,il=0,tl=0;var nl=0,al=0,ol=0,sl=0,ll=0,fl=0,ul=0,cl=0,hl=0,dl=0,vl=0,ml=0,El=0,wl=0,bl=0,_l=0,pl=0,kl=0,Sl=0,gl=0;var yl=0,Ml=0,Fl=0,Ol=0,Al=0,Rl=0,Tl=0,Nl=0,Dl=0,Pl=0,Ll=0,Cl=0,Bl=0,Il=0,Hl=0,xl=0,Ul=0,zl=0,ql=0,Vl=0;var jl=0,Wl=0,Yl=0,Kl=0,Gl=0,Xl=0,Zl=0,Jl=0,Ql=0,$l=0,ef=0,rf=0,tf=0,nf=0,af=0,of=0,sf=0,lf=0,ff=0,uf=0;var cf=0,hf=0,df=0,vf=0,mf=0,Ef=0,wf=0,bf=0,_f=0,pf=0,kf=0,Sf=0,gf=0,yf=0,Mf=0,Ff=0,Of=0,Af=0,Rf=0,Tf=0;var Nf=0,Df=0,Pf=0,Lf=0,Cf=0,Bf=0,If=0,Hf=0,xf=0,Uf=0,zf=0,qf=0,Vf=0,jf=0,Wf=0,Yf=0,Kf=0,Gf=0,Xf=0,Zf=0;var Jf=0,Qf=0,$f=0,eu=0,ru=0,iu=0,tu=0,nu=0,au=0,ou=0,su=0,lu=0,fu=0,uu=0,cu=0,hu=0,du=0,vu=0,mu=0,Eu=0;var wu=0,bu=0,_u=0,pu=0,ku=0,Su=0,gu=0,yu=0,Mu=0,Fu=0,Ou=0,Au=0,Ru=0,Tu=0,Nu=0,Du=0,Pu=0,Lu=0,Cu=0,Bu=0;var Iu=0,Hu=0,xu=0,Uu=0,zu=0,qu=0,Vu=0,ju=0,Wu=0,Yu=0,Ku=0,Gu=0,Xu=0,Zu=0,Ju=0,Qu=0,$u=0,ec=0,rc=0,ic=0;var tc=0,nc=0,ac=0,oc=0,sc=0,lc=0,fc=0,uc=0,cc=0,hc=0,dc=0,vc=0,mc=0,Ec=0,wc=0,bc=0,_c=0,pc=0,kc=0,Sc=0;var gc=0,yc=0,Mc=0,Fc=0,Oc=0,Ac=0,Rc=0,Tc=0,Nc=0,Dc=0,Pc=0,Lc=0,Cc=0,Bc=0,Ic=0,Hc=0,xc=0,Uc=0,zc=0,qc=0;var Vc=0,jc=0,Wc=0,Yc=0,Kc=0,Gc=0,Xc=0,Zc=0,Jc=0,Qc=0,$c=0,eh=0,rh=0,ih=0,th=0,nh=0,ah=0,oh=0,sh=0,lh=0;var fh=0,uh=0,ch=0,hh=0,dh=0,vh=0,mh=0,Eh=0,wh=0,bh=0,_h=0,ph=0,kh=0,Sh=0,gh=0,yh=0,Mh=0,Fh=0,Oh=0,Ah=0;var Rh=0,Th=0,Nh=0,Dh=0,Ph=0,Lh=0,Ch=0,Bh=0,Ih=0,Hh=0,xh=0,Uh=0,zh=0,qh=0,Vh=0,jh=0,Wh=0,Yh=0,Kh=0,Gh=0;var Xh=0,Zh=0,Jh=0,Qh=0,$h=0,ed=0,rd=0,id=0,td=0,nd=0,ad=0,od=0,sd=0,ld=0,fd=0,ud=0,cd=0,hd=0,dd=0,vd=0;var md=0,Ed=0,wd=0,bd=0,_d=0,pd=0,kd=0,Sd=0,gd=0,yd=0,Md=0,Fd=0,Od=0,Ad=0,Rd=0,Td=0,Nd=0,Dd=0,Pd=0,Ld=0;var Cd=0,Bd=0,Id=0,Hd=0,xd=0,Ud=0,zd=0,qd=0,Vd=0,jd=0,Wd=0,Yd=0,Kd=0,Gd=0,Xd=0,Zd=0,Jd=0,Qd=0,$d=0,ev=0;var rv=0,iv=0,tv=0,nv=0,av=0,ov=0,sv=0,lv=0,fv=0,uv=0,cv=0,hv=0,dv=0,vv=0,mv=0,Ev=0,wv=0,bv=0,_v=0,pv=0;var kv=0,Sv=0,gv=0,yv=0,Mv=0,Fv=0,Ov=0,Av=0,Rv=0,Tv=0,Nv=0,Dv=0,Pv=0,Lv=0,Cv=0,Bv=0,Iv=0,Hv=0,xv=0,Uv=0;var zv=0,qv=0,Vv=0,jv=0,Wv=0,Yv=0,Kv=0,Gv=0,Xv=0,Zv=0,Jv=0,Qv=0,$v=0,em=0,rm=0,im=0,tm=0,nm=0,am=0,om=0;var sm=0,lm=0,fm=0,um=0,cm=0,hm=0,dm=0,vm=0,mm=0,Em=0,wm=0,bm=0,_m=0,pm=0,km=0,Sm=0,gm=0,ym=0,Mm=0,Fm=0;var Om=0,Am=0,Rm=0,Tm=0,Nm=0,Dm=0,Pm=0,Lm=0,Cm=0,Bm=0,Im=0,Hm=0,xm=0,Um=0,zm=0,qm=0,Vm=0,jm=0,Wm=0,Ym=0;var Km=0,Gm=0,Xm=0,Zm=0,Jm=0,Qm=0,$m=0,eE=0,rE=0,iE=0,tE=0,nE=0,aE=0,oE=0,sE=0,lE=0,fE=0,uE=0,cE=0,hE=0;var dE=0,vE=0,mE=0,EE=0,wE=0,bE=0,_E=0,pE=0,kE=0,SE=0,gE=0,yE=0,ME=0,FE=0,OE=0,AE=0,RE=0,TE=0,NE=0,DE=0;var PE=0,LE=0,CE=0,BE=0,IE=0,HE=0,xE=0,UE=0,zE=0,qE=0,VE=0,jE=0,WE=0,YE=0,KE=0,GE=0,XE=0,ZE=0,JE=0,QE=0;var $E=0,ew=0,rw=0,iw=0,tw=0,nw=0,aw=0,ow=0,sw=0,lw=0,fw=0,uw=0,cw=0,hw=0,dw=0,vw=0,mw=0,Ew=0,ww=0,bw=0;var _w=0,pw=0,kw=0,Sw=0,gw=0,yw=0,Mw=0,Fw=0,Ow=0,Aw=0,Rw=0,Tw=0,Nw=0,Dw=0,Pw=0,Lw=0,Cw=0,Bw=0,Iw=0,Hw=0;var xw=0,Uw=0,zw=0,qw=0,Vw=0,jw=0,Ww=0,Yw=0,Kw=0,Gw=0,Xw=0,Zw=0,Jw=0,Qw=0,$w=0,eb=0,rb=0,ib=0,tb=0,nb=0;var ab=0,ob=0,sb=0,lb=0,fb=0,ub=0,cb=0,hb=0,db=0,vb=0,mb=0,Eb=0,wb=0,bb=0,_b=0,pb=0,kb=0,Sb=0,gb=0,yb=0;var Mb=0,Fb=0,Ob=0,Ab=0,Rb=0,Tb=0,Nb=0,Db=0,Pb=0,Lb=0,Cb=0,Bb=0,Ib=0,Hb=0,xb=0,Ub=0,zb=0,qb=0,Vb=0,jb=0;var Wb=0,Yb=0,Kb=0,Gb=0,Xb=0,Zb=0,Jb=0,Qb=0,$b=0,e_=0,r_=0,i_=0,t_=0,n_=0,a_=0,o_=0,s_=0,l_=0,f_=0,u_=0;var c_=0,h_=0,d_=0,v_=0,m_=0,E_=0,w_=0,b_=0,__=0,p_=0,k_=0,S_=0,g_=0,y_=0,M_=0,F_=0,O_=0,A_=0,R_=0,T_=0;var N_=0,D_=0,P_=0,L_=0,C_=0,B_=0,I_=0,H_=0,x_=0,U_=0,z_=0,q_=0,V_=0,j_=0,W_=0,Y_=0,K_=0,G_=0,X_=0,Z_=0;var J_=0,Q_=0,$_=0,ep=0,rp=0,ip=0,tp=0,np=0,ap=0,op=0,sp=0,lp=0,fp=0,up=0,cp=0,hp=0,dp=0,vp=0,mp=0,Ep=0;var wp=0,bp=0,_p=0,pp=0,kp=0,Sp=0,gp=0,yp=0,Mp=0,Fp=0,Op=0,Ap=0,Rp=0,Tp=0,Np=0,Dp=0,Pp=0,Lp=0,Cp=0,Bp=0;var Ip=0,Hp=0,xp=0,Up=0,zp=0,qp=0,Vp=0,jp=0,Wp=0,Yp=0,Kp=0,Gp=0,Xp=0,Zp=0,Jp=0,Qp=0,$p=0,ek=0,rk=0,ik=0;var tk=0,nk=0,ak=0,ok=0,sk=0,lk=0,fk=0,uk=0,ck=0,hk=0,dk=0,vk=0,mk=0,Ek=0,wk=0,bk=0,_k=0,pk=0,kk=0,Sk=0;var gk=0,yk=0,Mk=0,Fk=0,Ok=0,Ak=0,Rk=0,Tk=0,Nk=0,Dk=0,Pk=0,Lk=0,Ck=0,Bk=0,Ik=0,Hk=0,xk=0,Uk=0,zk=0,qk=0;var Vk=0,jk=0,Wk=0,Yk=0,Kk=0,Gk=0,Xk=0,Zk=0,Jk=0,Qk=0,$k=0,eS=0,rS=0,iS=0,tS=0,nS=0,aS=0,oS=0,sS=0,lS=0;var fS=0,uS=0,cS=0,hS=0,dS=0,vS=0,mS=0,ES=0,wS=0,bS=0,_S=0,pS=0,kS=0,SS=0,gS=0,yS=0,MS=0,FS=0,OS=0,AS=0;var RS=0,TS=0,NS=0,DS=0,PS=0,LS=0,CS=0,BS=0,IS=0,HS=0,xS=0,US=0,zS=0,qS=0,VS=0,jS=0,WS=0,YS=0,KS=0,GS=0;var XS=0,ZS=0,JS=0,QS=0,$S=0,eg=0,rg=0,ig=0,tg=0,ng=0,ag=0,og=0,sg=0,lg=0,fg=0,ug=0,cg=0;cg=c;Mr=e>>>0<245;do{if(Mr){Fr=e>>>0<11;Kn=e+11|0;Jo=Kn&-8;ef=Fr?16:Jo;nc=ef>>>3;sd=a[96488>>2]|0;um=sd>>>nc;dw=um&3;E_=(dw|0)==0;if(!E_){Or=um&1;rt=Or^1;ht=rt+nc|0;gt=ht<<1;Lt=96528+(gt<<2)|0;Q=gt+2|0;Wt=96528+(Q<<2)|0;tn=a[Wt>>2]|0;vn=tn+8|0;Mn=a[vn>>2]|0;Bn=(Lt|0)==(Mn|0);do{if(Bn){Gn=1<>2]=Ea}else{Oa=a[96504>>2]|0;Ha=Mn>>>0>>0;if(Ha){be()}Xa=Mn+12|0;oo=a[Xa>>2]|0;bo=(oo|0)==(tn|0);if(bo){a[Xa>>2]=Lt;a[Wt>>2]=Mn;break}else{be()}}}while(0);Ro=ht<<3;Uo=Ro|3;Qo=tn+4|0;a[Qo>>2]=Uo;te=Ro|4;fs=tn+te|0;ps=a[fs>>2]|0;Ns=ps|1;a[fs>>2]=Ns;sS=vn;return sS|0}qs=a[96496>>2]|0;$s=ef>>>0>qs>>>0;if($s){ul=(um|0)==0;if(!ul){kl=um<>>12;vu=tu&16;Mu=Yf>>>vu;Bu=Mu>>>5;Ku=Bu&8;ac=Ku|vu;Ec=Mu>>>Ku;Oc=Ec>>>2;Hc=Oc&4;Xc=ac|Hc;oh=Ec>>>Hc;wh=oh>>>1;Ah=wh&2;xh=Xc|Ah;Zh=oh>>>Ah;ld=Zh>>>1;_d=ld&1;Td=xh|_d;zd=Zh>>>_d;Qd=Td+zd|0;fv=Qd<<1;pv=96528+(fv<<2)|0;or=fv+2|0;Nv=96528+(or<<2)|0;qv=a[Nv>>2]|0;$v=qv+8|0;cm=a[$v>>2]|0;Sm=(pv|0)==(cm|0);do{if(Sm){Pm=1<>2]=rE;Gb=qs}else{hE=a[96504>>2]|0;gE=cm>>>0>>0;if(gE){be()}LE=cm+12|0;WE=a[LE>>2]|0;iw=(WE|0)==(qv|0);if(iw){a[LE>>2]=pv;a[Nv>>2]=cm;E=a[96496>>2]|0;Gb=E;break}else{be()}}}while(0);vw=Qd<<3;Mw=vw-ef|0;Bw=ef|3;Kw=qv+4|0;a[Kw>>2]=Bw;nb=qv+ef|0;mb=Mw|1;mr=ef|4;Fb=qv+mr|0;a[Fb>>2]=mb;Ib=qv+vw|0;a[Ib>>2]=Mw;a_=(Gb|0)==0;if(!a_){w_=a[96508>>2]|0;A_=Gb>>>3;x_=A_<<1;Z_=96528+(x_<<2)|0;sp=a[96488>>2]|0;bp=1<>2]=Jp;O=x_+2|0;A=96528+(O<<2)|0;F=A;kk=Z_}else{pr=x_+2|0;lk=96528+(pr<<2)|0;Ar=a[lk>>2]|0;xr=a[96504>>2]|0;Zr=Ar>>>0>>0;if(Zr){be()}else{F=lk;kk=Ar}}a[F>>2]=w_;si=kk+12|0;a[si>>2]=w_;bi=w_+8|0;a[bi>>2]=kk;Ri=w_+12|0;a[Ri>>2]=Z_}a[96496>>2]=Mw;a[96508>>2]=nb;sS=$v;return sS|0}Ui=a[96492>>2]|0;Ji=(Ui|0)==0;if(Ji){lS=ef}else{$i=0-Ui|0;et=Ui&$i;it=et+-1|0;tt=it>>>12;nt=tt&16;at=it>>>nt;ot=at>>>5;st=ot&8;lt=st|nt;ft=at>>>st;ut=ft>>>2;ct=ut&4;dt=lt|ct;vt=ft>>>ct;mt=vt>>>1;Et=mt&2;wt=dt|Et;bt=vt>>>Et;_t=bt>>>1;pt=_t&1;kt=wt|pt;St=bt>>>pt;yt=kt+St|0;Mt=96792+(yt<<2)|0;Ft=a[Mt>>2]|0;Ot=Ft+4|0;At=a[Ot>>2]|0;Rt=At&-8;Tt=Rt-ef|0;MS=Tt;WS=Ft;ig=Ft;while(1){Nt=WS+16|0;Dt=a[Nt>>2]|0;Pt=(Dt|0)==(0|0);if(Pt){Ct=WS+20|0;Bt=a[Ct>>2]|0;It=(Bt|0)==(0|0);if(It){FS=MS;tg=ig;break}else{xt=Bt}}else{xt=Dt}Ht=xt+4|0;Ut=a[Ht>>2]|0;zt=Ut&-8;qt=zt-ef|0;Vt=qt>>>0>>0;L=Vt?qt:MS;yr=Vt?xt:ig;MS=L;WS=xt;ig=yr}jt=a[96504>>2]|0;Yt=tg>>>0>>0;if(Yt){be()}Kt=tg+ef|0;Gt=tg>>>0>>0;if(!Gt){be()}Xt=tg+24|0;Zt=a[Xt>>2]|0;Jt=tg+12|0;Qt=a[Jt>>2]|0;$t=(Qt|0)==(tg|0);do{if($t){cn=tg+20|0;hn=a[cn>>2]|0;dn=(hn|0)==(0|0);if(dn){mn=tg+16|0;En=a[mn>>2]|0;wn=(En|0)==(0|0);if(wn){Bk=0;break}else{Tk=En;xk=mn}}else{Tk=hn;xk=cn}while(1){bn=Tk+20|0;_n=a[bn>>2]|0;pn=(_n|0)==(0|0);if(!pn){Tk=_n;xk=bn;continue}kn=Tk+16|0;Sn=a[kn>>2]|0;gn=(Sn|0)==(0|0);if(gn){Pk=Tk;qk=xk;break}else{Tk=Sn;xk=kn}}yn=qk>>>0>>0;if(yn){be()}else{a[qk>>2]=0;Bk=Pk;break}}else{en=tg+8|0;rn=a[en>>2]|0;nn=rn>>>0>>0;if(nn){be()}an=rn+12|0;on=a[an>>2]|0;sn=(on|0)==(tg|0);if(!sn){be()}ln=Qt+8|0;fn=a[ln>>2]|0;un=(fn|0)==(tg|0);if(un){a[an>>2]=Qt;a[ln>>2]=rn;Bk=Qt;break}else{be()}}}while(0);Fn=(Zt|0)==(0|0);do{if(!Fn){On=tg+28|0;An=a[On>>2]|0;Rn=96792+(An<<2)|0;Tn=a[Rn>>2]|0;Nn=(tg|0)==(Tn|0);if(Nn){a[Rn>>2]=Bk;rS=(Bk|0)==(0|0);if(rS){Dn=1<>2]|0;Cn=Ln&Pn;a[96492>>2]=Cn;break}}else{In=a[96504>>2]|0;Hn=Zt>>>0>>0;if(Hn){be()}xn=Zt+16|0;Un=a[xn>>2]|0;zn=(Un|0)==(tg|0);if(zn){a[xn>>2]=Bk}else{qn=Zt+20|0;a[qn>>2]=Bk}Vn=(Bk|0)==(0|0);if(Vn){break}}jn=a[96504>>2]|0;Wn=Bk>>>0>>0;if(Wn){be()}Yn=Bk+24|0;a[Yn>>2]=Zt;Xn=tg+16|0;Zn=a[Xn>>2]|0;Jn=(Zn|0)==(0|0);do{if(!Jn){Qn=Zn>>>0>>0;if(Qn){be()}else{$n=Bk+16|0;a[$n>>2]=Zn;ea=Zn+24|0;a[ea>>2]=Bk;break}}}while(0);ra=tg+20|0;ia=a[ra>>2]|0;ta=(ia|0)==(0|0);if(!ta){na=a[96504>>2]|0;oa=ia>>>0>>0;if(oa){be()}else{sa=Bk+20|0;a[sa>>2]=ia;la=ia+24|0;a[la>>2]=Bk;break}}}}while(0);fa=FS>>>0<16;if(fa){ua=FS+ef|0;ca=ua|3;ha=tg+4|0;a[ha>>2]=ca;sr=ua+4|0;da=tg+sr|0;va=a[da>>2]|0;ma=va|1;a[da>>2]=ma}else{wa=ef|3;ba=tg+4|0;a[ba>>2]=wa;_a=FS|1;W=ef|4;pa=tg+W|0;a[pa>>2]=_a;K=FS+ef|0;ka=tg+K|0;a[ka>>2]=FS;Sa=a[96496>>2]|0;ga=(Sa|0)==0;if(!ga){ya=a[96508>>2]|0;Ma=Sa>>>3;Fa=Ma<<1;Aa=96528+(Fa<<2)|0;Ra=a[96488>>2]|0;Ta=1<>2]=Pa;w=Fa+2|0;P=96528+(w<<2)|0;y=P;pk=Aa}else{Qe=Fa+2|0;La=96528+(Qe<<2)|0;Ca=a[La>>2]|0;Ba=a[96504>>2]|0;Ia=Ca>>>0>>0;if(Ia){be()}else{y=La;pk=Ca}}a[y>>2]=ya;xa=pk+12|0;a[xa>>2]=ya;Ua=ya+8|0;a[Ua>>2]=pk;za=ya+12|0;a[za>>2]=Aa}a[96496>>2]=FS;a[96508>>2]=Kt}qa=tg+8|0;sS=qa;return sS|0}}else{lS=ef}}else{Va=e>>>0>4294967231;if(Va){lS=-1}else{ja=e+11|0;Wa=ja&-8;Ya=a[96492>>2]|0;Ka=(Ya|0)==0;if(Ka){lS=Wa}else{Ga=0-Wa|0;Za=ja>>>8;Ja=(Za|0)==0;if(Ja){oS=0}else{Qa=Wa>>>0>16777215;if(Qa){oS=31}else{$a=Za+1048320|0;eo=$a>>>16;ro=eo&8;io=Za<>>16;ao=no&4;so=ao|ro;lo=io<>>16;co=uo&2;ho=so|co;vo=14-ho|0;mo=lo<>>15;wo=vo+Eo|0;_o=wo<<1;po=wo+7|0;ko=Wa>>>po;So=ko&1;go=So|_o;oS=go}}yo=96792+(oS<<2)|0;Mo=a[yo>>2]|0;Fo=(Mo|0)==(0|0);e:do{if(Fo){RS=Ga;KS=0;og=0;ug=86}else{Oo=(oS|0)==31;Ao=oS>>>1;To=25-Ao|0;No=Oo?0:To;Do=Wa<>2]|0;Co=Lo&-8;Bo=Co-Wa|0;Io=Bo>>>0>>0;if(Io){Ho=(Co|0)==(Wa|0);if(Ho){NS=Bo;ZS=YS;fg=YS;ug=90;break e}else{AS=Bo;ag=YS}}else{AS=OS;ag=ng}xo=YS+20|0;zo=a[xo>>2]|0;qo=LS>>>31;Vo=(YS+16|0)+(qo<<2)|0;jo=a[Vo>>2]|0;Wo=(zo|0)==(0|0);Yo=(zo|0)==(jo|0);ES=Wo|Yo;PS=ES?DS:zo;Ko=(jo|0)==(0|0);Go=LS<<1;if(Ko){RS=AS;KS=PS;og=ag;ug=86;break}else{OS=AS;DS=PS;LS=Go;YS=jo;ng=ag}}}}while(0);if((ug|0)==86){Xo=(KS|0)==(0|0);Zo=(og|0)==(0|0);dS=Xo&Zo;if(dS){$o=2<>>12;ls=ss&16;us=os>>>ls;cs=us>>>5;hs=cs&8;ds=hs|ls;vs=us>>>hs;ms=vs>>>2;Es=ms&4;ws=ds|Es;bs=vs>>>Es;_s=bs>>>1;ks=_s&2;Ss=ws|ks;gs=bs>>>ks;ys=gs>>>1;Ms=ys&1;Fs=Ss|Ms;Os=gs>>>Ms;As=Fs+Os|0;Rs=96792+(As<<2)|0;Ts=a[Rs>>2]|0;GS=Ts;lg=0}else{GS=KS;lg=og}Ds=(GS|0)==(0|0);if(Ds){TS=RS;sg=lg}else{NS=RS;ZS=GS;fg=lg;ug=90}}if((ug|0)==90){while(1){ug=0;Ps=ZS+4|0;Ls=a[Ps>>2]|0;Cs=Ls&-8;Bs=Cs-Wa|0;Is=Bs>>>0>>0;C=Is?Bs:NS;XS=Is?ZS:fg;Hs=ZS+16|0;xs=a[Hs>>2]|0;Us=(xs|0)==(0|0);if(!Us){NS=C;ZS=xs;fg=XS;ug=90;continue}zs=ZS+20|0;Vs=a[zs>>2]|0;js=(Vs|0)==(0|0);if(js){TS=C;sg=XS;break}else{NS=C;ZS=Vs;fg=XS;ug=90}}}Ws=(sg|0)==(0|0);if(Ws){lS=Wa}else{Ys=a[96496>>2]|0;Ks=Ys-Wa|0;Gs=TS>>>0>>0;if(Gs){Xs=a[96504>>2]|0;Zs=sg>>>0>>0;if(Zs){be()}Js=sg+Wa|0;Qs=sg>>>0>>0;if(!Qs){be()}el=sg+24|0;rl=a[el>>2]|0;il=sg+12|0;tl=a[il>>2]|0;nl=(tl|0)==(sg|0);do{if(nl){ml=sg+20|0;El=a[ml>>2]|0;wl=(El|0)==(0|0);if(wl){bl=sg+16|0;_l=a[bl>>2]|0;pl=(_l|0)==(0|0);if(pl){Hk=0;break}else{Lk=_l;Vk=bl}}else{Lk=El;Vk=ml}while(1){Sl=Lk+20|0;gl=a[Sl>>2]|0;yl=(gl|0)==(0|0);if(!yl){Lk=gl;Vk=Sl;continue}Ml=Lk+16|0;Fl=a[Ml>>2]|0;Ol=(Fl|0)==(0|0);if(Ol){Ck=Lk;jk=Vk;break}else{Lk=Fl;Vk=Ml}}Al=jk>>>0>>0;if(Al){be()}else{a[jk>>2]=0;Hk=Ck;break}}else{al=sg+8|0;ol=a[al>>2]|0;sl=ol>>>0>>0;if(sl){be()}ll=ol+12|0;fl=a[ll>>2]|0;cl=(fl|0)==(sg|0);if(!cl){be()}hl=tl+8|0;dl=a[hl>>2]|0;vl=(dl|0)==(sg|0);if(vl){a[ll>>2]=tl;a[hl>>2]=ol;Hk=tl;break}else{be()}}}while(0);Rl=(rl|0)==(0|0);do{if(!Rl){Tl=sg+28|0;Nl=a[Tl>>2]|0;Pl=96792+(Nl<<2)|0;Ll=a[Pl>>2]|0;Cl=(sg|0)==(Ll|0);if(Cl){a[Pl>>2]=Hk;tS=(Hk|0)==(0|0);if(tS){Bl=1<>2]|0;xl=Hl&Il;a[96492>>2]=xl;break}}else{Ul=a[96504>>2]|0;zl=rl>>>0
    >>0;if(zl){be()}ql=rl+16|0;jl=a[ql>>2]|0;Wl=(jl|0)==(sg|0);if(Wl){a[ql>>2]=Hk}else{Yl=rl+20|0;a[Yl>>2]=Hk}Kl=(Hk|0)==(0|0);if(Kl){break}}Gl=a[96504>>2]|0;Xl=Hk>>>0>>0;if(Xl){be()}Zl=Hk+24|0;a[Zl>>2]=rl;Jl=sg+16|0;Ql=a[Jl>>2]|0;$l=(Ql|0)==(0|0);do{if(!$l){tf=Ql>>>0>>0;if(tf){be()}else{nf=Hk+16|0;a[nf>>2]=Ql;af=Ql+24|0;a[af>>2]=Hk;break}}}while(0);of=sg+20|0;sf=a[of>>2]|0;lf=(sf|0)==(0|0);if(!lf){ff=a[96504>>2]|0;uf=sf>>>0>>0;if(uf){be()}else{cf=Hk+20|0;a[cf>>2]=sf;hf=sf+24|0;a[hf>>2]=Hk;break}}}}while(0);vf=TS>>>0<16;e:do{if(vf){mf=TS+Wa|0;Ef=mf|3;wf=sg+4|0;a[wf>>2]=Ef;Ne=mf+4|0;bf=sg+Ne|0;_f=a[bf>>2]|0;pf=_f|1;a[bf>>2]=pf}else{kf=Wa|3;Sf=sg+4|0;a[Sf>>2]=kf;gf=TS|1;V=Wa|4;Mf=sg+V|0;a[Mf>>2]=gf;J=TS+Wa|0;Ff=sg+J|0;a[Ff>>2]=TS;Of=TS>>>3;Af=TS>>>0<256;if(Af){Rf=Of<<1;Tf=96528+(Rf<<2)|0;Nf=a[96488>>2]|0;Df=1<>2]=Bf;p=Rf+2|0;T=96528+(p<<2)|0;g=T;gk=Tf}else{Ae=Rf+2|0;If=96528+(Ae<<2)|0;Hf=a[If>>2]|0;xf=a[96504>>2]|0;Uf=Hf>>>0>>0;if(Uf){be()}else{g=If;gk=Hf}}a[g>>2]=Js;zf=gk+12|0;a[zf>>2]=Js;ye=Wa+8|0;qf=sg+ye|0;a[qf>>2]=gk;Fe=Wa+12|0;Vf=sg+Fe|0;a[Vf>>2]=Tf;break}jf=TS>>>8;Wf=(jf|0)==0;if(Wf){Mk=0}else{Kf=TS>>>0>16777215;if(Kf){Mk=31}else{Gf=jf+1048320|0;Xf=Gf>>>16;Zf=Xf&8;Jf=jf<>>16;eu=$f&4;ru=eu|Zf;iu=Jf<>>16;ou=au&2;su=ru|ou;lu=14-su|0;fu=iu<>>15;cu=lu+uu|0;hu=cu<<1;du=cu+7|0;mu=TS>>>du;Eu=mu&1;wu=Eu|hu;Mk=wu}}bu=96792+(Mk<<2)|0;Le=Wa+28|0;_u=sg+Le|0;a[_u>>2]=Mk;$e=Wa+16|0;pu=sg+$e|0;fr=Wa+20|0;ku=sg+fr|0;a[ku>>2]=0;a[pu>>2]=0;Su=a[96492>>2]|0;gu=1<>2]=Ou;a[bu>>2]=Js;dr=Wa+24|0;Au=sg+dr|0;a[Au>>2]=bu;Er=Wa+12|0;Ru=sg+Er|0;a[Ru>>2]=Js;br=Wa+8|0;Tu=sg+br|0;a[Tu>>2]=Js;break}Nu=a[bu>>2]|0;Du=Nu+4|0;Pu=a[Du>>2]|0;Lu=Pu&-8;Cu=(Lu|0)==(TS|0);r:do{if(Cu){Wk=Nu}else{Iu=(Mk|0)==31;Hu=Mk>>>1;xu=25-Hu|0;Uu=Iu?0:xu;zu=TS<>>31;Zu=(Gk+16|0)+(Xu<<2)|0;ju=a[Zu>>2]|0;Ju=(ju|0)==(0|0);if(Ju){m=Zu;Xk=Gk;break}qu=Ok<<1;Vu=ju+4|0;Wu=a[Vu>>2]|0;Yu=Wu&-8;Gu=(Yu|0)==(TS|0);if(Gu){Wk=ju;break r}else{Ok=qu;Gk=ju}}Qu=a[96504>>2]|0;$u=m>>>0>>0;if($u){be()}else{a[m>>2]=Js;re=Wa+24|0;ec=sg+re|0;a[ec>>2]=Xk;he=Wa+12|0;rc=sg+he|0;a[rc>>2]=Js;ke=Wa+8|0;ic=sg+ke|0;a[ic>>2]=Js;break e}}}while(0);tc=Wk+8|0;oc=a[tc>>2]|0;sc=a[96504>>2]|0;lc=oc>>>0>=sc>>>0;fS=Wk>>>0>=sc>>>0;fc=lc&fS;if(fc){uc=oc+12|0;a[uc>>2]=Js;a[tc>>2]=Js;_r=Wa+8|0;cc=sg+_r|0;a[cc>>2]=oc;kr=Wa+12|0;hc=sg+kr|0;a[hc>>2]=Wk;$=Wa+24|0;dc=sg+$|0;a[dc>>2]=0;break}else{be()}}}while(0);vc=sg+8|0;sS=vc;return sS|0}else{lS=Wa}}}}}}while(0);mc=a[96496>>2]|0;wc=mc>>>0>>0;if(!wc){bc=mc-lS|0;_c=a[96508>>2]|0;pc=bc>>>0>15;if(pc){kc=_c+lS|0;a[96508>>2]=kc;a[96496>>2]=bc;Sc=bc|1;Pe=lS+4|0;gc=_c+Pe|0;a[gc>>2]=Sc;yc=_c+mc|0;a[yc>>2]=bc;Mc=lS|3;Fc=_c+4|0;a[Fc>>2]=Mc}else{a[96496>>2]=0;a[96508>>2]=0;Ac=mc|3;Rc=_c+4|0;a[Rc>>2]=Ac;Y=mc+4|0;Tc=_c+Y|0;Nc=a[Tc>>2]|0;Dc=Nc|1;a[Tc>>2]=Dc}Pc=_c+8|0;sS=Pc;return sS|0}Lc=a[96500>>2]|0;Cc=Lc>>>0>lS>>>0;if(Cc){Bc=Lc-lS|0;a[96500>>2]=Bc;Ic=a[96512>>2]|0;xc=Ic+lS|0;a[96512>>2]=xc;Uc=Bc|1;B=lS+4|0;zc=Ic+B|0;a[zc>>2]=Uc;qc=lS|3;Vc=Ic+4|0;a[Vc>>2]=qc;jc=Ic+8|0;sS=jc;return sS|0}Wc=a[96960>>2]|0;Yc=(Wc|0)==0;do{if(Yc){Kc=Ie(30)|0;Gc=Kc+-1|0;Zc=Gc&Kc;Jc=(Zc|0)==0;if(Jc){a[96968>>2]=Kc;a[96964>>2]=Kc;a[96972>>2]=-1;a[96976>>2]=-1;a[96980>>2]=0;a[96932>>2]=0;Qc=Je(0|0)|0;$c=Qc&-16;eh=$c^1431655768;a[96960>>2]=eh;break}else{be()}}}while(0);rh=lS+48|0;ih=a[96968>>2]|0;th=lS+47|0;nh=ih+th|0;ah=0-ih|0;sh=nh&ah;lh=sh>>>0>lS>>>0;if(!lh){sS=0;return sS|0}fh=a[96928>>2]|0;uh=(fh|0)==0;if(!uh){ch=a[96920>>2]|0;hh=ch+sh|0;dh=hh>>>0<=ch>>>0;vh=hh>>>0>fh>>>0;mS=dh|vh;if(mS){sS=0;return sS|0}}mh=a[96932>>2]|0;Eh=mh&4;bh=(Eh|0)==0;e:do{if(bh){_h=a[96512>>2]|0;ph=(_h|0)==(0|0);r:do{if(ph){ug=174}else{CS=96936;while(1){kh=a[CS>>2]|0;Sh=kh>>>0>_h>>>0;if(!Sh){gh=CS+4|0;yh=a[gh>>2]|0;Mh=kh+yh|0;Fh=Mh>>>0>_h>>>0;if(Fh){d=CS;v=gh;break}}Oh=CS+8|0;Rh=a[Oh>>2]|0;Th=(Rh|0)==(0|0);if(Th){ug=174;break r}else{CS=Rh}}rd=a[96500>>2]|0;id=nh-rd|0;td=id&ah;nd=td>>>0<2147483647;if(nd){ad=Te(td|0)|0;od=a[d>>2]|0;fd=a[v>>2]|0;ud=od+fd|0;cd=(ad|0)==(ud|0);r=cd?td:0;if(cd){hd=(ad|0)==(-1|0);if(hd){$S=r}else{JS=ad;rg=r;ug=194;break e}}else{eS=ad;VS=td;QS=r;ug=184}}else{$S=0}}}while(0);do{if((ug|0)==174){Nh=Te(0)|0;Dh=(Nh|0)==(-1|0);if(Dh){$S=0}else{Ph=Nh;Lh=a[96964>>2]|0;Ch=Lh+-1|0;Bh=Ch&Ph;Ih=(Bh|0)==0;if(Ih){qS=sh}else{Hh=Ch+Ph|0;Uh=0-Lh|0;zh=Hh&Uh;qh=sh-Ph|0;Vh=qh+zh|0;qS=Vh}jh=a[96920>>2]|0;Wh=jh+qS|0;Yh=qS>>>0>lS>>>0;Kh=qS>>>0<2147483647;vS=Yh&Kh;if(vS){Gh=a[96928>>2]|0;Xh=(Gh|0)==0;if(!Xh){Jh=Wh>>>0<=jh>>>0;Qh=Wh>>>0>Gh>>>0;wS=Jh|Qh;if(wS){$S=0;break}}$h=Te(qS|0)|0;ed=($h|0)==(Nh|0);zS=ed?qS:0;if(ed){JS=Nh;rg=zS;ug=194;break e}else{eS=$h;VS=qS;QS=zS;ug=184}}else{$S=0}}}}while(0);r:do{if((ug|0)==184){dd=0-VS|0;vd=(eS|0)!=(-1|0);md=VS>>>0<2147483647;_S=md&vd;Ed=rh>>>0>VS>>>0;kS=Ed&_S;do{if(kS){wd=a[96968>>2]|0;bd=th-VS|0;pd=bd+wd|0;kd=0-wd|0;Sd=pd&kd;gd=Sd>>>0<2147483647;if(gd){yd=Te(Sd|0)|0;Md=(yd|0)==(-1|0);if(Md){Te(dd|0)|0;$S=QS;break r}else{Fd=Sd+VS|0;jS=Fd;break}}else{jS=VS}}else{jS=VS}}while(0);Od=(eS|0)==(-1|0);if(Od){$S=QS}else{JS=eS;rg=jS;ug=194;break e}}}while(0);Ad=a[96932>>2]|0;Rd=Ad|4;a[96932>>2]=Rd;eg=$S;ug=191}else{eg=0;ug=191}}while(0);if((ug|0)==191){Nd=sh>>>0<2147483647;if(Nd){Dd=Te(sh|0)|0;Pd=Te(0)|0;Ld=(Dd|0)!=(-1|0);Cd=(Pd|0)!=(-1|0);bS=Ld&Cd;Bd=Dd>>>0>>0;SS=Bd&bS;if(SS){Id=Pd;Hd=Dd;xd=Id-Hd|0;Ud=lS+40|0;qd=xd>>>0>Ud>>>0;gr=qd?xd:eg;if(qd){JS=Dd;rg=gr;ug=194}}}}if((ug|0)==194){Vd=a[96920>>2]|0;jd=Vd+rg|0;a[96920>>2]=jd;Wd=a[96924>>2]|0;Yd=jd>>>0>Wd>>>0;if(Yd){a[96924>>2]=jd}Kd=a[96512>>2]|0;Gd=(Kd|0)==(0|0);e:do{if(Gd){Xd=a[96504>>2]|0;Zd=(Xd|0)==(0|0);Jd=JS>>>0>>0;gS=Zd|Jd;if(gS){a[96504>>2]=JS}a[96936>>2]=JS;a[96940>>2]=rg;a[96948>>2]=0;$d=a[96960>>2]|0;a[96524>>2]=$d;a[96520>>2]=-1;aS=0;while(1){ev=aS<<1;rv=96528+(ev<<2)|0;I=ev+3|0;iv=96528+(I<<2)|0;a[iv>>2]=rv;G=ev+2|0;tv=96528+(G<<2)|0;a[tv>>2]=rv;nv=aS+1|0;nS=(nv|0)==32;if(nS){break}else{aS=nv}}av=rg+-40|0;ov=JS+8|0;sv=ov;lv=sv&7;uv=(lv|0)==0;cv=0-sv|0;hv=cv&7;dv=uv?0:hv;vv=JS+dv|0;mv=av-dv|0;a[96512>>2]=vv;a[96500>>2]=mv;Ev=mv|1;x=dv+4|0;wv=JS+x|0;a[wv>>2]=Ev;Ce=rg+-36|0;bv=JS+Ce|0;a[bv>>2]=40;_v=a[96976>>2]|0;a[96516>>2]=_v}else{IS=96936;while(1){kv=a[IS>>2]|0;Sv=IS+4|0;gv=a[Sv>>2]|0;yv=kv+gv|0;Mv=(JS|0)==(yv|0);if(Mv){f=kv;u=Sv;h=gv;HS=IS;ug=204;break}Fv=IS+8|0;Ov=a[Fv>>2]|0;Av=(Ov|0)==(0|0);if(Av){break}else{IS=Ov}}if((ug|0)==204){Rv=HS+12|0;Tv=a[Rv>>2]|0;Dv=Tv&8;Pv=(Dv|0)==0;if(Pv){Lv=Kd>>>0>=f>>>0;Cv=Kd>>>0>>0;pS=Cv&Lv;if(pS){Bv=h+rg|0;a[u>>2]=Bv;Iv=a[96500>>2]|0;Hv=Iv+rg|0;xv=Kd+8|0;Uv=xv;zv=Uv&7;Vv=(zv|0)==0;jv=0-Uv|0;Wv=jv&7;Yv=Vv?0:Wv;Kv=Kd+Yv|0;Gv=Hv-Yv|0;a[96512>>2]=Kv;a[96500>>2]=Gv;Xv=Gv|1;z=Yv+4|0;Zv=Kd+z|0;a[Zv>>2]=Xv;xe=Hv+4|0;Jv=Kd+xe|0;a[Jv>>2]=40;Qv=a[96976>>2]|0;a[96516>>2]=Qv;break}}}em=a[96504>>2]|0;rm=JS>>>0>>0;if(rm){a[96504>>2]=JS;bE=JS}else{bE=em}im=JS+rg|0;xS=96936;while(1){tm=a[xS>>2]|0;nm=(tm|0)==(im|0);if(nm){l=xS;US=xS;ug=212;break}am=xS+8|0;om=a[am>>2]|0;sm=(om|0)==(0|0);if(sm){BS=96936;break}else{xS=om}}if((ug|0)==212){lm=US+12|0;fm=a[lm>>2]|0;hm=fm&8;dm=(hm|0)==0;if(dm){a[l>>2]=JS;vm=US+4|0;mm=a[vm>>2]|0;Em=mm+rg|0;a[vm>>2]=Em;wm=JS+8|0;bm=wm;_m=bm&7;pm=(_m|0)==0;km=0-bm|0;gm=km&7;ym=pm?0:gm;Mm=JS+ym|0;ne=rg+8|0;Fm=JS+ne|0;Om=Fm;Am=Om&7;Rm=(Am|0)==0;Tm=0-Om|0;Nm=Tm&7;Dm=Rm?0:Nm;ae=Dm+rg|0;Lm=JS+ae|0;Cm=Lm;Bm=Mm;Im=Cm-Bm|0;q=ym+lS|0;Hm=JS+q|0;xm=Im-lS|0;Um=lS|3;Z=ym+4|0;zm=JS+Z|0;a[zm>>2]=Um;qm=(Lm|0)==(Kd|0);r:do{if(qm){Vm=a[96500>>2]|0;Wm=Vm+xm|0;a[96500>>2]=Wm;a[96512>>2]=Hm;Ym=Wm|1;hr=q+4|0;Km=JS+hr|0;a[Km>>2]=Ym}else{Gm=a[96508>>2]|0;Xm=(Lm|0)==(Gm|0);if(Xm){Zm=a[96496>>2]|0;Jm=Zm+xm|0;a[96496>>2]=Jm;a[96508>>2]=Hm;Qm=Jm|1;ur=q+4|0;$m=JS+ur|0;a[$m>>2]=Qm;cr=Jm+q|0;eE=JS+cr|0;a[eE>>2]=Jm;break}Ue=rg+4|0;oe=Ue+Dm|0;iE=JS+oe|0;tE=a[iE>>2]|0;nE=tE&3;aE=(nE|0)==1;if(aE){oE=tE&-8;sE=tE>>>3;lE=tE>>>0<256;i:do{if(lE){nr=Dm|8;_e=nr+rg|0;fE=JS+_e|0;uE=a[fE>>2]|0;ar=rg+12|0;pe=ar+Dm|0;cE=JS+pe|0;dE=a[cE>>2]|0;vE=sE<<1;mE=96528+(vE<<2)|0;EE=(uE|0)==(mE|0);do{if(!EE){wE=uE>>>0>>0;if(wE){be()}_E=uE+12|0;pE=a[_E>>2]|0;kE=(pE|0)==(Lm|0);if(kE){break}be()}}while(0);SE=(dE|0)==(uE|0);if(SE){yE=1<>2]|0;OE=FE&ME;a[96488>>2]=OE;break}AE=(dE|0)==(mE|0);do{if(AE){D=dE+8|0;M=D}else{RE=dE>>>0>>0;if(RE){be()}TE=dE+8|0;NE=a[TE>>2]|0;DE=(NE|0)==(Lm|0);if(DE){M=TE;break}be()}}while(0);PE=uE+12|0;a[PE>>2]=dE;a[M>>2]=uE}else{ir=Dm|24;se=ir+rg|0;CE=JS+se|0;BE=a[CE>>2]|0;vr=rg+12|0;le=vr+Dm|0;IE=JS+le|0;HE=a[IE>>2]|0;xE=(HE|0)==(Lm|0);do{if(xE){wr=Dm|16;Ee=Ue+wr|0;ZE=JS+Ee|0;JE=a[ZE>>2]|0;QE=(JE|0)==(0|0);if(QE){we=wr+rg|0;$E=JS+we|0;ew=a[$E>>2]|0;rw=(ew|0)==(0|0);if(rw){Ik=0;break}else{Nk=ew;Uk=$E}}else{Nk=JE;Uk=ZE}while(1){tw=Nk+20|0;nw=a[tw>>2]|0;aw=(nw|0)==(0|0);if(!aw){Nk=nw;Uk=tw;continue}ow=Nk+16|0;sw=a[ow>>2]|0;lw=(sw|0)==(0|0);if(lw){Dk=Nk;zk=Uk;break}else{Nk=sw;Uk=ow}}fw=zk>>>0>>0;if(fw){be()}else{a[zk>>2]=0;Ik=Dk;break}}else{tr=Dm|8;fe=tr+rg|0;UE=JS+fe|0;zE=a[UE>>2]|0;qE=zE>>>0>>0;if(qE){be()}VE=zE+12|0;jE=a[VE>>2]|0;YE=(jE|0)==(Lm|0);if(!YE){be()}KE=HE+8|0;GE=a[KE>>2]|0;XE=(GE|0)==(Lm|0);if(XE){a[VE>>2]=HE;a[KE>>2]=zE;Ik=HE;break}else{be()}}}while(0);uw=(BE|0)==(0|0);if(uw){break}er=rg+28|0;ue=er+Dm|0;cw=JS+ue|0;hw=a[cw>>2]|0;mw=96792+(hw<<2)|0;Ew=a[mw>>2]|0;ww=(Lm|0)==(Ew|0);do{if(ww){a[mw>>2]=Ik;iS=(Ik|0)==(0|0);if(!iS){break}bw=1<>2]|0;kw=pw&_w;a[96492>>2]=kw;break i}else{Sw=a[96504>>2]|0;gw=BE>>>0>>0;if(gw){be()}yw=BE+16|0;Fw=a[yw>>2]|0;Ow=(Fw|0)==(Lm|0);if(Ow){a[yw>>2]=Ik}else{Aw=BE+20|0;a[Aw>>2]=Ik}Rw=(Ik|0)==(0|0);if(Rw){break i}}}while(0);Tw=a[96504>>2]|0;Nw=Ik>>>0>>0;if(Nw){be()}Dw=Ik+24|0;a[Dw>>2]=BE;rr=Dm|16;ce=rr+rg|0;Pw=JS+ce|0;Lw=a[Pw>>2]|0;Cw=(Lw|0)==(0|0);do{if(!Cw){Iw=Lw>>>0>>0;if(Iw){be()}else{Hw=Ik+16|0;a[Hw>>2]=Lw;xw=Lw+24|0;a[xw>>2]=Ik;break}}}while(0);ve=Ue+rr|0;Uw=JS+ve|0;zw=a[Uw>>2]|0;qw=(zw|0)==(0|0);if(qw){break}Vw=a[96504>>2]|0;jw=zw>>>0>>0;if(jw){be()}else{Ww=Ik+20|0;a[Ww>>2]=zw;Yw=zw+24|0;a[Yw>>2]=Ik;break}}}while(0);Sr=oE|Dm;me=Sr+rg|0;Gw=JS+me|0;Xw=oE+xm|0;hS=Gw;yS=Xw}else{hS=Lm;yS=xm}Zw=hS+4|0;Jw=a[Zw>>2]|0;Qw=Jw&-2;a[Zw>>2]=Qw;$w=yS|1;ee=q+4|0;eb=JS+ee|0;a[eb>>2]=$w;ie=yS+q|0;rb=JS+ie|0;a[rb>>2]=yS;ib=yS>>>3;tb=yS>>>0<256;if(tb){ab=ib<<1;ob=96528+(ab<<2)|0;sb=a[96488>>2]|0;lb=1<>2]=cb;_=ab+2|0;N=96528+(_<<2)|0;S=N;Sk=ob}else{Ze=ab+2|0;hb=96528+(Ze<<2)|0;db=a[hb>>2]|0;vb=a[96504>>2]|0;Eb=db>>>0>>0;if(!Eb){S=hb;Sk=db;break}be()}}while(0);a[S>>2]=Hm;wb=Sk+12|0;a[wb>>2]=Hm;Ge=q+8|0;bb=JS+Ge|0;a[bb>>2]=Sk;Xe=q+12|0;_b=JS+Xe|0;a[_b>>2]=ob;break}pb=yS>>>8;kb=(pb|0)==0;do{if(kb){Fk=0}else{Sb=yS>>>0>16777215;if(Sb){Fk=31;break}gb=pb+1048320|0;yb=gb>>>16;Mb=yb&8;Ob=pb<>>16;Tb=Rb&4;Nb=Tb|Mb;Db=Ob<>>16;Cb=Lb&2;Bb=Nb|Cb;Hb=14-Bb|0;xb=Db<>>15;zb=Hb+Ub|0;qb=zb<<1;Vb=zb+7|0;jb=yS>>>Vb;Wb=jb&1;Yb=Wb|qb;Fk=Yb}}while(0);Kb=96792+(Fk<<2)|0;de=q+28|0;Xb=JS+de|0;a[Xb>>2]=Fk;Se=q+16|0;Zb=JS+Se|0;ge=q+20|0;Jb=JS+ge|0;a[Jb>>2]=0;a[Zb>>2]=0;Qb=a[96492>>2]|0;$b=1<>2]=i_;a[Kb>>2]=Hm;Me=q+24|0;t_=JS+Me|0;a[t_>>2]=Kb;Oe=q+12|0;n_=JS+Oe|0;a[n_>>2]=Hm;Re=q+8|0;o_=JS+Re|0;a[o_>>2]=Hm;break}s_=a[Kb>>2]|0;l_=s_+4|0;f_=a[l_>>2]|0;u_=f_&-8;c_=(u_|0)==(yS|0);i:do{if(c_){Kk=s_}else{h_=(Fk|0)==31;d_=Fk>>>1;v_=25-d_|0;m_=h_?0:v_;b_=yS<>>31;F_=(Zk+16|0)+(M_<<2)|0;k_=a[F_>>2]|0;O_=(k_|0)==(0|0);if(O_){i=F_;Jk=Zk;break}__=Rk<<1;p_=k_+4|0;S_=a[p_>>2]|0;g_=S_&-8;y_=(g_|0)==(yS|0);if(y_){Kk=k_;break i}else{Rk=__;Zk=k_}}R_=a[96504>>2]|0;T_=i>>>0>>0;if(T_){be()}else{a[i>>2]=Hm;je=q+24|0;N_=JS+je|0;a[N_>>2]=Jk;We=q+12|0;D_=JS+We|0;a[D_>>2]=Hm;Ke=q+8|0;P_=JS+Ke|0;a[P_>>2]=Hm;break r}}}while(0);L_=Kk+8|0;C_=a[L_>>2]|0;B_=a[96504>>2]|0;I_=C_>>>0>=B_>>>0;cS=Kk>>>0>=B_>>>0;H_=I_&cS;if(H_){U_=C_+12|0;a[U_>>2]=Hm;a[L_>>2]=Hm;ze=q+8|0;z_=JS+ze|0;a[z_>>2]=C_;qe=q+12|0;q_=JS+qe|0;a[q_>>2]=Kk;Ve=q+24|0;V_=JS+Ve|0;a[V_>>2]=0;break}else{be()}}}while(0);De=ym|8;j_=JS+De|0;sS=j_;return sS|0}else{BS=96936}}while(1){W_=a[BS>>2]|0;Y_=W_>>>0>Kd>>>0;if(!Y_){K_=BS+4|0;G_=a[K_>>2]|0;X_=W_+G_|0;J_=X_>>>0>Kd>>>0;if(J_){n=W_;o=G_;s=X_;break}}Q_=BS+8|0;$_=a[Q_>>2]|0;BS=$_}U=o+-47|0;X=o+-39|0;ep=n+X|0;rp=ep;ip=rp&7;tp=(ip|0)==0;np=0-rp|0;ap=np&7;op=tp?0:ap;He=U+op|0;lp=n+He|0;fp=Kd+16|0;up=lp>>>0>>0;cp=up?Kd:lp;hp=cp+8|0;dp=rg+-40|0;vp=JS+8|0;mp=vp;Ep=mp&7;wp=(Ep|0)==0;_p=0-mp|0;pp=_p&7;kp=wp?0:pp;Sp=JS+kp|0;gp=dp-kp|0;a[96512>>2]=Sp;a[96500>>2]=gp;yp=gp|1;H=kp+4|0;Mp=JS+H|0;a[Mp>>2]=yp;Be=rg+-36|0;Fp=JS+Be|0;a[Fp>>2]=40;Op=a[96976>>2]|0;a[96516>>2]=Op;Ap=cp+4|0;a[Ap>>2]=27;a[hp>>2]=a[96936>>2]|0;a[hp+4>>2]=a[96936+4>>2]|0;a[hp+8>>2]=a[96936+8>>2]|0;a[hp+12>>2]=a[96936+12>>2]|0;a[96936>>2]=JS;a[96940>>2]=rg;a[96948>>2]=0;a[96944>>2]=hp;Tp=cp+28|0;a[Tp>>2]=7;Np=cp+32|0;Dp=Np>>>0>>0;if(Dp){Lp=Tp;while(1){Pp=Lp+4|0;a[Pp>>2]=7;Cp=Lp+8|0;Bp=Cp>>>0>>0;if(Bp){Lp=Pp}else{break}}}Ip=(cp|0)==(Kd|0);if(!Ip){Hp=cp;xp=Kd;zp=Hp-xp|0;qp=a[Ap>>2]|0;Vp=qp&-2;a[Ap>>2]=Vp;jp=zp|1;Wp=Kd+4|0;a[Wp>>2]=jp;a[cp>>2]=zp;Yp=zp>>>3;Kp=zp>>>0<256;if(Kp){Gp=Yp<<1;Xp=96528+(Gp<<2)|0;Zp=a[96488>>2]|0;Qp=1<>2]=rk;b=Gp+2|0;R=96528+(b<<2)|0;k=R;_k=Xp}else{lr=Gp+2|0;ik=96528+(lr<<2)|0;tk=a[ik>>2]|0;nk=a[96504>>2]|0;ak=tk>>>0>>0;if(ak){be()}else{k=ik;_k=tk}}a[k>>2]=Kd;ok=_k+12|0;a[ok>>2]=Kd;sk=Kd+8|0;a[sk>>2]=_k;fk=Kd+12|0;a[fk>>2]=Xp;break}uk=zp>>>8;ck=(uk|0)==0;if(ck){yk=0}else{hk=zp>>>0>16777215;if(hk){yk=31}else{dk=uk+1048320|0;vk=dk>>>16;mk=vk&8;Ek=uk<>>16;Rr=bk&4;Tr=Rr|mk;Nr=Ek<>>16;Lr=Pr&2;Cr=Tr|Lr;Br=14-Cr|0;Ir=Nr<>>15;Ur=Br+Hr|0;zr=Ur<<1;qr=Ur+7|0;Vr=zp>>>qr;jr=Vr&1;Wr=jr|zr;yk=Wr}}Yr=96792+(yk<<2)|0;Kr=Kd+28|0;a[Kr>>2]=yk;Gr=Kd+20|0;a[Gr>>2]=0;a[fp>>2]=0;Xr=a[96492>>2]|0;Jr=1<>2]=ei;a[Yr>>2]=Kd;ri=Kd+24|0;a[ri>>2]=Yr;ii=Kd+12|0;a[ii>>2]=Kd;ti=Kd+8|0;a[ti>>2]=Kd;break}ni=a[Yr>>2]|0;ai=ni+4|0;oi=a[ai>>2]|0;li=oi&-8;fi=(li|0)==(zp|0);r:do{if(fi){Yk=ni}else{ui=(yk|0)==31;ci=yk>>>1;hi=25-ci|0;di=ui?0:hi;vi=zp<>>31;gi=(Qk+16|0)+(Si<<2)|0;wi=a[gi>>2]|0;yi=(wi|0)==(0|0);if(yi){t=gi;$k=Qk;break}mi=Ak<<1;Ei=wi+4|0;_i=a[Ei>>2]|0;pi=_i&-8;ki=(pi|0)==(zp|0);if(ki){Yk=wi;break r}else{Ak=mi;Qk=wi}}Mi=a[96504>>2]|0;Fi=t>>>0>>0;if(Fi){be()}else{a[t>>2]=Kd;Oi=Kd+24|0;a[Oi>>2]=$k;Ai=Kd+12|0;a[Ai>>2]=Kd;Ti=Kd+8|0;a[Ti>>2]=Kd;break e}}}while(0);Ni=Yk+8|0;Di=a[Ni>>2]|0;Pi=a[96504>>2]|0;Li=Di>>>0>=Pi>>>0;uS=Yk>>>0>=Pi>>>0;Ci=Li&uS;if(Ci){Bi=Di+12|0;a[Bi>>2]=Kd;a[Ni>>2]=Kd;Ii=Kd+8|0;a[Ii>>2]=Di;Hi=Kd+12|0;a[Hi>>2]=Yk;xi=Kd+24|0;a[xi>>2]=0;break}else{be()}}}}while(0);zi=a[96500>>2]|0;qi=zi>>>0>lS>>>0;if(qi){Vi=zi-lS|0;a[96500>>2]=Vi;ji=a[96512>>2]|0;Wi=ji+lS|0;a[96512>>2]=Wi;Yi=Vi|1;j=lS+4|0;Ki=ji+j|0;a[Ki>>2]=Yi;Gi=lS|3;Xi=ji+4|0;a[Xi>>2]=Gi;Zi=ji+8|0;sS=Zi;return sS|0}}Qi=Ye()|0;a[Qi>>2]=12;sS=0;return sS|0}function En(e){e=e|0;var r=0,i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0;var g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,D=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0;var V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ne=0,ae=0,oe=0,se=0,le=0;var fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0,_e=0,pe=0,ke=0,Se=0,ge=0,ye=0,Me=0,Fe=0,Oe=0,Ae=0,Re=0;var Te=0,Ne=0,De=0,Pe=0,Le=0,Ce=0,Be=0,Ie=0,He=0,xe=0,Ue=0,ze=0,qe=0,Ve=0,je=0,We=0,Ye=0,Ke=0,Ge=0,Xe=0;var Ze=0,Je=0,Qe=0,$e=0,er=0,rr=0,ir=0,tr=0,nr=0,ar=0,or=0,sr=0,lr=0,fr=0,ur=0,cr=0,hr=0,dr=0,vr=0,mr=0;var Er=0,wr=0,br=0,_r=0,pr=0,kr=0,Sr=0,gr=0,yr=0,Mr=0,Fr=0,Or=0,Ar=0,Rr=0,Tr=0,Nr=0,Dr=0,Pr=0,Lr=0,Cr=0;var Br=0,Ir=0,Hr=0,xr=0,Ur=0,zr=0,qr=0,Vr=0,jr=0,Wr=0,Yr=0,Kr=0,Gr=0,Xr=0,Zr=0,Jr=0,Qr=0,$r=0,ei=0,ri=0;var ii=0,ti=0,ni=0,ai=0,oi=0,si=0,li=0,fi=0,ui=0,ci=0,hi=0,di=0,vi=0,mi=0,Ei=0,wi=0,bi=0,_i=0,pi=0,ki=0;var Si=0,gi=0,yi=0,Mi=0,Fi=0,Oi=0,Ai=0,Ri=0,Ti=0,Ni=0,Di=0,Pi=0,Li=0,Ci=0,Bi=0,Ii=0,Hi=0,xi=0,Ui=0,zi=0;var qi=0,Vi=0,ji=0,Wi=0,Yi=0,Ki=0,Gi=0,Xi=0,Zi=0,Ji=0,Qi=0,$i=0,et=0,rt=0,it=0,tt=0,nt=0,at=0,ot=0,st=0;var lt=0,ft=0,ut=0,ct=0,ht=0,dt=0,vt=0,mt=0,Et=0,wt=0,bt=0,_t=0,pt=0,kt=0,St=0,gt=0,yt=0,Mt=0,Ft=0,Ot=0;var At=0,Rt=0,Tt=0,Nt=0,Dt=0,Pt=0,Lt=0,Ct=0,Bt=0,It=0,Ht=0,xt=0,Ut=0,zt=0,qt=0,Vt=0,jt=0,Wt=0,Yt=0,Kt=0;var Gt=0,Xt=0,Zt=0,Jt=0,Qt=0,$t=0,en=0,rn=0,tn=0,nn=0,an=0,on=0,sn=0,ln=0,fn=0,un=0,cn=0,hn=0,dn=0,vn=0;var mn=0,En=0,wn=0,bn=0,_n=0,pn=0,kn=0,Sn=0,gn=0,yn=0,Mn=0,Fn=0,On=0,An=0,Rn=0,Tn=0,Nn=0,Dn=0,Pn=0,Ln=0;var Cn=0,Bn=0,In=0,Hn=0,xn=0,Un=0,zn=0,qn=0,Vn=0,jn=0,Wn=0,Yn=0,Kn=0,Gn=0,Xn=0,Zn=0,Jn=0,Qn=0,$n=0,ea=0;var ra=0,ia=0,ta=0,na=0,aa=0,oa=0,sa=0,la=0,fa=0,ua=0,ca=0,ha=0,da=0,va=0,ma=0,Ea=0,wa=0,ba=0,_a=0,pa=0;var ka=0,Sa=0,ga=0,ya=0,Ma=0,Fa=0,Oa=0,Aa=0,Ra=0,Ta=0,Na=0,Da=0,Pa=0,La=0,Ca=0,Ba=0,Ia=0,Ha=0,xa=0,Ua=0;var za=0,qa=0,Va=0,ja=0,Wa=0,Ya=0,Ka=0,Ga=0,Xa=0,Za=0,Ja=0,Qa=0,$a=0,eo=0,ro=0,io=0,to=0,no=0,ao=0,oo=0;oo=c;C=(e|0)==(0|0);if(C){return}B=e+-8|0;Ur=a[96504>>2]|0;Vt=B>>>0>>0;if(Vt){be()}gn=e+-4|0;Ln=a[gn>>2]|0;Wn=Ln&3;ia=(Wn|0)==1;if(ia){be()}da=Ln&-8;u=da+-8|0;ya=e+u|0;I=Ln&1;G=(I|0)==0;do{if(G){ae=a[B>>2]|0;Ee=(Wn|0)==0;if(Ee){return}b=-8-ae|0;Ae=e+b|0;xe=ae+da|0;Ze=Ae>>>0>>0;if(Ze){be()}sr=a[96508>>2]|0;br=(Ae|0)==(sr|0);if(br){A=da+-4|0;z=e+A|0;q=a[z>>2]|0;V=q&3;j=(V|0)==3;if(!j){eo=Ae;ro=xe;break}a[96496>>2]=xe;W=q&-2;a[z>>2]=W;Y=xe|1;_=b+4|0;K=e+_|0;a[K>>2]=Y;a[ya>>2]=xe;return}Rr=ae>>>3;zr=ae>>>0<256;if(zr){R=b+8|0;Qr=e+R|0;fi=a[Qr>>2]|0;T=b+12|0;pi=e+T|0;Ni=a[pi>>2]|0;qi=Rr<<1;$i=96528+(qi<<2)|0;ut=(fi|0)==($i|0);if(!ut){kt=fi>>>0>>0;if(kt){be()}Dt=fi+12|0;jt=a[Dt>>2]|0;rn=(jt|0)==(Ae|0);if(!rn){be()}}dn=(Ni|0)==(fi|0);if(dn){En=1<>2]|0;_n=bn&wn;a[96488>>2]=_n;eo=Ae;ro=xe;break}pn=(Ni|0)==($i|0);if(pn){f=Ni+8|0;n=f}else{kn=Ni>>>0>>0;if(kn){be()}Sn=Ni+8|0;yn=a[Sn>>2]|0;Mn=(yn|0)==(Ae|0);if(Mn){n=Sn}else{be()}}Fn=fi+12|0;a[Fn>>2]=Ni;a[n>>2]=fi;eo=Ae;ro=xe;break}p=b+24|0;On=e+p|0;An=a[On>>2]|0;k=b+12|0;Rn=e+k|0;Tn=a[Rn>>2]|0;Nn=(Tn|0)==(Ae|0);do{if(Nn){g=b+20|0;qn=e+g|0;Vn=a[qn>>2]|0;jn=(Vn|0)==(0|0);if(jn){S=b+16|0;Yn=e+S|0;Kn=a[Yn>>2]|0;Gn=(Kn|0)==(0|0);if(Gn){Ua=0;break}else{Ha=Kn;ja=Yn}}else{Ha=Vn;ja=qn}while(1){Xn=Ha+20|0;Zn=a[Xn>>2]|0;Jn=(Zn|0)==(0|0);if(!Jn){Ha=Zn;ja=Xn;continue}Qn=Ha+16|0;$n=a[Qn>>2]|0;ea=($n|0)==(0|0);if(ea){xa=Ha;Wa=ja;break}else{Ha=$n;ja=Qn}}ra=Wa>>>0>>0;if(ra){be()}else{a[Wa>>2]=0;Ua=xa;break}}else{O=b+8|0;Dn=e+O|0;Pn=a[Dn>>2]|0;Cn=Pn>>>0>>0;if(Cn){be()}Bn=Pn+12|0;In=a[Bn>>2]|0;Hn=(In|0)==(Ae|0);if(!Hn){be()}xn=Tn+8|0;Un=a[xn>>2]|0;zn=(Un|0)==(Ae|0);if(zn){a[Bn>>2]=Tn;a[xn>>2]=Pn;Ua=Tn;break}else{be()}}}while(0);ta=(An|0)==(0|0);if(ta){eo=Ae;ro=xe}else{y=b+28|0;na=e+y|0;aa=a[na>>2]|0;oa=96792+(aa<<2)|0;sa=a[oa>>2]|0;la=(Ae|0)==(sa|0);if(la){a[oa>>2]=Ua;Ja=(Ua|0)==(0|0);if(Ja){fa=1<>2]|0;ha=ca&ua;a[96492>>2]=ha;eo=Ae;ro=xe;break}}else{va=a[96504>>2]|0;ma=An>>>0>>0;if(ma){be()}Ea=An+16|0;wa=a[Ea>>2]|0;ba=(wa|0)==(Ae|0);if(ba){a[Ea>>2]=Ua}else{_a=An+20|0;a[_a>>2]=Ua}pa=(Ua|0)==(0|0);if(pa){eo=Ae;ro=xe;break}}ka=a[96504>>2]|0;Sa=Ua>>>0>>0;if(Sa){be()}ga=Ua+24|0;a[ga>>2]=An;M=b+16|0;Ma=e+M|0;Fa=a[Ma>>2]|0;Oa=(Fa|0)==(0|0);do{if(!Oa){Aa=Fa>>>0>>0;if(Aa){be()}else{Ra=Ua+16|0;a[Ra>>2]=Fa;Ta=Fa+24|0;a[Ta>>2]=Ua;break}}}while(0);F=b+20|0;Na=e+F|0;Da=a[Na>>2]|0;Pa=(Da|0)==(0|0);if(Pa){eo=Ae;ro=xe}else{La=a[96504>>2]|0;H=Da>>>0>>0;if(H){be()}else{x=Ua+20|0;a[x>>2]=Da;U=Da+24|0;a[U>>2]=Ua;eo=Ae;ro=xe;break}}}}else{eo=B;ro=da}}while(0);X=eo>>>0>>0;if(!X){be()}w=da+-4|0;Z=e+w|0;J=a[Z>>2]|0;Q=J&1;$=(Q|0)==0;if($){be()}ee=J&2;re=(ee|0)==0;if(re){ie=a[96512>>2]|0;te=(ya|0)==(ie|0);if(te){ne=a[96500>>2]|0;oe=ne+ro|0;a[96500>>2]=oe;a[96512>>2]=eo;se=oe|1;le=eo+4|0;a[le>>2]=se;fe=a[96508>>2]|0;ue=(eo|0)==(fe|0);if(!ue){return}a[96508>>2]=0;a[96496>>2]=0;return}ce=a[96508>>2]|0;he=(ya|0)==(ce|0);if(he){de=a[96496>>2]|0;ve=de+ro|0;a[96496>>2]=ve;a[96508>>2]=eo;me=ve|1;we=eo+4|0;a[we>>2]=me;_e=eo+ve|0;a[_e>>2]=ve;return}pe=J&-8;ke=pe+ro|0;Se=J>>>3;ge=J>>>0<256;do{if(ge){ye=e+da|0;Me=a[ye>>2]|0;E=da|4;Fe=e+E|0;Oe=a[Fe>>2]|0;Re=Se<<1;Te=96528+(Re<<2)|0;Ne=(Me|0)==(Te|0);if(!Ne){De=a[96504>>2]|0;Pe=Me>>>0>>0;if(Pe){be()}Le=Me+12|0;Ce=a[Le>>2]|0;Be=(Ce|0)==(ya|0);if(!Be){be()}}Ie=(Oe|0)==(Me|0);if(Ie){He=1<>2]|0;qe=ze&Ue;a[96488>>2]=qe;break}Ve=(Oe|0)==(Te|0);if(Ve){l=Oe+8|0;t=l}else{je=a[96504>>2]|0;We=Oe>>>0>>0;if(We){be()}Ye=Oe+8|0;Ke=a[Ye>>2]|0;Ge=(Ke|0)==(ya|0);if(Ge){t=Ye}else{be()}}Xe=Me+12|0;a[Xe>>2]=Oe;a[t>>2]=Me}else{N=da+16|0;Je=e+N|0;Qe=a[Je>>2]|0;D=da|4;$e=e+D|0;er=a[$e>>2]|0;rr=(er|0)==(ya|0);do{if(rr){L=da+12|0;dr=e+L|0;vr=a[dr>>2]|0;mr=(vr|0)==(0|0);if(mr){P=da+8|0;Er=e+P|0;wr=a[Er>>2]|0;_r=(wr|0)==(0|0);if(_r){Va=0;break}else{za=wr;Ya=Er}}else{za=vr;Ya=dr}while(1){pr=za+20|0;kr=a[pr>>2]|0;Sr=(kr|0)==(0|0);if(!Sr){za=kr;Ya=pr;continue}gr=za+16|0;yr=a[gr>>2]|0;Mr=(yr|0)==(0|0);if(Mr){qa=za;Ka=Ya;break}else{za=yr;Ya=gr}}Fr=a[96504>>2]|0;Or=Ka>>>0>>0;if(Or){be()}else{a[Ka>>2]=0;Va=qa;break}}else{ir=e+da|0;tr=a[ir>>2]|0;nr=a[96504>>2]|0;ar=tr>>>0>>0;if(ar){be()}or=tr+12|0;lr=a[or>>2]|0;fr=(lr|0)==(ya|0);if(!fr){be()}ur=er+8|0;cr=a[ur>>2]|0;hr=(cr|0)==(ya|0);if(hr){a[or>>2]=er;a[ur>>2]=tr;Va=er;break}else{be()}}}while(0);Ar=(Qe|0)==(0|0);if(!Ar){d=da+20|0;Tr=e+d|0;Nr=a[Tr>>2]|0;Dr=96792+(Nr<<2)|0;Pr=a[Dr>>2]|0;Lr=(ya|0)==(Pr|0);if(Lr){a[Dr>>2]=Va;Qa=(Va|0)==(0|0);if(Qa){Cr=1<>2]|0;Hr=Ir&Br;a[96492>>2]=Hr;break}}else{xr=a[96504>>2]|0;qr=Qe>>>0>>0;if(qr){be()}Vr=Qe+16|0;jr=a[Vr>>2]|0;Wr=(jr|0)==(ya|0);if(Wr){a[Vr>>2]=Va}else{Yr=Qe+20|0;a[Yr>>2]=Va}Kr=(Va|0)==(0|0);if(Kr){break}}Gr=a[96504>>2]|0;Xr=Va>>>0>>0;if(Xr){be()}Zr=Va+24|0;a[Zr>>2]=Qe;v=da+8|0;Jr=e+v|0;$r=a[Jr>>2]|0;ei=($r|0)==(0|0);do{if(!ei){ri=$r>>>0>>0;if(ri){be()}else{ii=Va+16|0;a[ii>>2]=$r;ti=$r+24|0;a[ti>>2]=Va;break}}}while(0);m=da+12|0;ni=e+m|0;ai=a[ni>>2]|0;oi=(ai|0)==(0|0);if(!oi){si=a[96504>>2]|0;li=ai>>>0>>0;if(li){be()}else{ui=Va+20|0;a[ui>>2]=ai;ci=ai+24|0;a[ci>>2]=Va;break}}}}}while(0);hi=ke|1;di=eo+4|0;a[di>>2]=hi;vi=eo+ke|0;a[vi>>2]=ke;mi=a[96508>>2]|0;Ei=(eo|0)==(mi|0);if(Ei){a[96496>>2]=ke;return}else{io=ke}}else{wi=J&-2;a[Z>>2]=wi;bi=ro|1;_i=eo+4|0;a[_i>>2]=bi;ki=eo+ro|0;a[ki>>2]=ro;io=ro}Si=io>>>3;gi=io>>>0<256;if(gi){yi=Si<<1;Mi=96528+(yi<<2)|0;Fi=a[96488>>2]|0;Oi=1<>2]=Ti;i=yi+2|0;s=96528+(i<<2)|0;o=s;Ca=Mi}else{h=yi+2|0;Di=96528+(h<<2)|0;Pi=a[Di>>2]|0;Li=a[96504>>2]|0;Ci=Pi>>>0
  • >>0;if(Ci){be()}else{o=Di;Ca=Pi}}a[o>>2]=eo;Bi=Ca+12|0;a[Bi>>2]=eo;Ii=eo+8|0;a[Ii>>2]=Ca;Hi=eo+12|0;a[Hi>>2]=Mi;return}xi=io>>>8;Ui=(xi|0)==0;if(Ui){Ba=0}else{zi=io>>>0>16777215;if(zi){Ba=31}else{Vi=xi+1048320|0;ji=Vi>>>16;Wi=ji&8;Yi=xi<>>16;Xi=Gi&4;Zi=Xi|Wi;Ji=Yi<>>16;rt=et&2;it=Zi|rt;tt=14-it|0;nt=Ji<>>15;ot=tt+at|0;st=ot<<1;lt=ot+7|0;ft=io>>>lt;ct=ft&1;ht=ct|st;Ba=ht}}dt=96792+(Ba<<2)|0;vt=eo+28|0;a[vt>>2]=Ba;mt=eo+16|0;Et=eo+20|0;a[Et>>2]=0;a[mt>>2]=0;wt=a[96492>>2]|0;bt=1<>2]=St;a[dt>>2]=eo;gt=eo+24|0;a[gt>>2]=dt;yt=eo+12|0;a[yt>>2]=eo;Mt=eo+8|0;a[Mt>>2]=eo}else{Ft=a[dt>>2]|0;Ot=Ft+4|0;At=a[Ot>>2]|0;Rt=At&-8;Tt=(Rt|0)==(io|0);r:do{if(Tt){Ga=Ft}else{Nt=(Ba|0)==31;Pt=Ba>>>1;Lt=25-Pt|0;Ct=Nt?0:Lt;Bt=io<>>31;Yt=(Xa+16|0)+(Wt<<2)|0;xt=a[Yt>>2]|0;Kt=(xt|0)==(0|0);if(Kt){r=Yt;Za=Xa;break}It=Ia<<1;Ht=xt+4|0;Ut=a[Ht>>2]|0;zt=Ut&-8;qt=(zt|0)==(io|0);if(qt){Ga=xt;break r}else{Ia=It;Xa=xt}}Gt=a[96504>>2]|0;Xt=r>>>0>>0;if(Xt){be()}else{a[r>>2]=eo;Zt=eo+24|0;a[Zt>>2]=Za;Jt=eo+12|0;a[Jt>>2]=eo;Qt=eo+8|0;a[Qt>>2]=eo;break e}}}while(0);$t=Ga+8|0;en=a[$t>>2]|0;tn=a[96504>>2]|0;nn=en>>>0>=tn>>>0;$a=Ga>>>0>=tn>>>0;an=nn&$a;if(an){on=en+12|0;a[on>>2]=eo;a[$t>>2]=eo;sn=eo+8|0;a[sn>>2]=en;ln=eo+12|0;a[ln>>2]=Ga;fn=eo+24|0;a[fn>>2]=0;break}else{be()}}}while(0);un=a[96520>>2]|0;cn=un+-1|0;a[96520>>2]=cn;hn=(cn|0)==0;if(hn){no=96944}else{return}while(1){to=a[no>>2]|0;vn=(to|0)==(0|0);mn=to+8|0;if(vn){break}else{no=mn}}a[96520>>2]=-1;return}function wn(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0;_=c;t=(e|0)==0;if(t){w=0}else{n=ie(r,e)|0;l=r|e;f=l>>>0>65535;if(f){u=(n>>>0)/(e>>>0)&-1;h=(u|0)==(r|0);i=h?n:-1;w=i}else{w=n}}d=mn(w)|0;v=(d|0)==(0|0);if(v){return d|0}m=d+-4|0;E=a[m>>2]|0;o=E&3;s=(o|0)==0;if(s){return d|0}pn(d|0,0,w|0)|0;return d|0}function bn(){}function _n(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,a=0;n=e-i>>>0;a=r-t>>>0;a=r-t-(i>>>0>e>>>0|0)>>>0;return(D=a,n|0)|0}function pn(e,r,i){e=e|0;r=r|0;i=i|0;var n=0,o=0,s=0,l=0;n=e+i|0;if((i|0)>=20){r=r&0xff;l=e&3;o=r|r<<8|r<<16|r<<24;s=n&~3;if(l){l=e+4-l|0;while((e|0)<(l|0)){t[e>>0]=r;e=e+1|0}}while((e|0)<(s|0)){a[e>>2]=o;e=e+4|0}}while((e|0)<(n|0)){t[e>>0]=r;e=e+1|0}return e-i|0}function kn(e){e=e|0;var r=0;r=e;while(t[r>>0]|0){r=r+1|0}return r-e|0}function Sn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,a=0;n=e+i>>>0;a=r+t+(n>>>0>>0|0)>>>0;return(D=a,n|0)|0}function gn(e,r,i){e=e|0;r=r|0;i=i|0;var t=0;if((i|0)<32){t=(1<>>i;return e>>>i|(r&t)<<32-i}D=0;return r>>>i-32|0}function yn(e,r,i){e=e|0;r=r|0;i=i|0;var n=0;if((i|0)>=4096)return Le(e|0,r|0,i|0)|0;n=e|0;if((e&3)==(r&3)){while(e&3){if((i|0)==0)return n|0;t[e>>0]=t[r>>0]|0;e=e+1|0;r=r+1|0;i=i-1|0}while((i|0)>=4){a[e>>2]=a[r>>2]|0;e=e+4|0;r=r+4|0;i=i-4|0}}while((i|0)>0){t[e>>0]=t[r>>0]|0;e=e+1|0;r=r+1|0;i=i-1|0}return n|0}function Mn(e,r,i){e=e|0;r=r|0;i=i|0;var t=0;if((i|0)<32){t=(1<>>32-i;return e<>i;return e>>>i|(r&t)<<32-i}D=(r|0)<0?-1:0;return r>>i-32|0}function On(e){e=e|0;var r=0;r=t[m+(e&0xff)>>0]|0;if((r|0)<8)return r|0;r=t[m+(e>>8&0xff)>>0]|0;if((r|0)<8)return r+8|0;r=t[m+(e>>16&0xff)>>0]|0;if((r|0)<8)return r+16|0;return(t[m+(e>>>24)>>0]|0)+24|0}function An(e,r){e=e|0;r=r|0;var i=0,t=0,n=0,a=0,o=0,s=0,l=0;i=e&65535;t=r&65535;n=ie(t,i)|0;a=e>>>16;o=(n>>>16)+(ie(t,a)|0)|0;s=r>>>16;l=ie(s,i)|0;return(D=((o>>>16)+(ie(s,a)|0)|0)+(((o&65535)+l|0)>>>16)|0,0|(o+l<<16|n&65535))|0}function Rn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,f=0,u=0,c=0,h=0,d=0,v=0;n=r>>31|((r|0)<0?-1:0)<<1;a=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;o=t>>31|((t|0)<0?-1:0)<<1;s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;l=_n(n^e,a^r,n,a)|0;f=D;u=_n(o^i,s^t,o,s)|0;c=o^n;h=s^a;d=Ln(l,f,u,D,0)|0;v=_n(d^c,D^h,c,h)|0;return v|0}function Tn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0,s=0,l=0,f=0,u=0,h=0,d=0,v=0,m=0,E=0;E=c;c=c+8|0;n=E|0;o=r>>31|((r|0)<0?-1:0)<<1;s=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;l=t>>31|((t|0)<0?-1:0)<<1;f=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;u=_n(o^e,s^r,o,s)|0;h=D;d=_n(l^i,f^t,l,f)|0;Ln(u,h,d,D,n)|0;v=_n(a[n>>2]^o,a[n+4>>2]^s,o,s)|0;m=D;c=E;return(D=m,v)|0}function Nn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,a=0,o=0,s=0,l=0;n=e;a=i;o=An(n,a)|0;s=D;l=ie(r,a)|0;return(D=((ie(t,n)|0)+l|0)+s|s&0,0|o&-1)|0}function Dn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0;n=Ln(e,r,i,t,0)|0;return n|0}function Pn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;var n=0,o=0;o=c;c=c+8|0;n=o|0;Ln(e,r,i,t,n)|0;c=o;return(D=a[n+4>>2]|0,a[n>>2]|0)|0}function Ln(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;var o=0,s=0,l=0,f=0,u=0,c=0,h=0,d=0,v=0,m=0,E=0,w=0,b=0,_=0,p=0,k=0,S=0,g=0,y=0,M=0,F=0,O=0,A=0,R=0,T=0,N=0,P=0,L=0,C=0,B=0,I=0,H=0,x=0,U=0,z=0,q=0,V=0,j=0,W=0,Y=0,K=0,G=0,X=0,Z=0,J=0,Q=0,$=0,ee=0,re=0,ie=0,te=0,ae=0,oe=0,se=0,le=0,fe=0,ue=0,ce=0,he=0,de=0,ve=0,me=0,Ee=0,we=0;o=e;s=r;l=s;f=i;u=t;c=u;if((l|0)==0){h=(n|0)!=0;if((c|0)==0){if(h){a[n>>2]=(o>>>0)%(f>>>0);a[n+4>>2]=0}we=0;Ee=(o>>>0)/(f>>>0)>>>0;return(D=we,Ee)|0}else{if(!h){we=0;Ee=0;return(D=we,Ee)|0}a[n>>2]=e&-1;a[n+4>>2]=r&0;we=0;Ee=0;return(D=we,Ee)|0}}d=(c|0)==0;do{if((f|0)==0){if(d){if((n|0)!=0){a[n>>2]=(l>>>0)%(f>>>0);a[n+4>>2]=0}we=0;Ee=(l>>>0)/(f>>>0)>>>0;return(D=we,Ee)|0}if((o|0)==0){if((n|0)!=0){a[n>>2]=0;a[n+4>>2]=(l>>>0)%(c>>>0)}we=0;Ee=(l>>>0)/(c>>>0)>>>0;return(D=we,Ee)|0}v=c-1|0;if((v&c|0)==0){if((n|0)!=0){a[n>>2]=0|e&-1;a[n+4>>2]=v&l|r&0}we=0;Ee=l>>>((On(c|0)|0)>>>0);return(D=we,Ee)|0}m=ne(c|0)|0;E=m-(ne(l|0)|0)|0;if(E>>>0<=30){w=E+1|0;b=31-E|0;H=w;I=l<>>(w>>>0);B=l>>>(w>>>0);C=0;L=o<>2]=0|e&-1;a[n+4>>2]=s|r&0;we=0;Ee=0;return(D=we,Ee)|0}else{if(!d){A=ne(c|0)|0;R=A-(ne(l|0)|0)|0;if(R>>>0<=31){T=R+1|0;N=31-R|0;P=R-31>>31;H=T;I=o>>>(T>>>0)&P|l<>>(T>>>0)&P;C=0;L=o<>2]=0|e&-1;a[n+4>>2]=s|r&0;we=0;Ee=0;return(D=we,Ee)|0}_=f-1|0;if((_&f|0)!=0){k=(ne(f|0)|0)+33|0;S=k-(ne(l|0)|0)|0;g=64-S|0;y=32-S|0;M=y>>31;F=S-32|0;O=F>>31;H=S;I=y-1>>31&l>>>(F>>>0)|(l<>>(S>>>0))&O;B=O&l>>>(S>>>0);C=o<>>(F>>>0))&M|o<>31;break}if((n|0)!=0){a[n>>2]=_&o;a[n+4>>2]=0}if((f|0)==1){we=s|r&0;Ee=0|e&-1;return(D=we,Ee)|0}else{p=On(f|0)|0;we=0|l>>>(p>>>0);Ee=l<<32-p|o>>>(p>>>0)|0;return(D=we,Ee)|0}}}while(0);if((H|0)==0){he=L;ce=C;ue=B;fe=I;le=0;se=0}else{x=0|i&-1;U=u|t&0;z=Sn(x|0,U|0,-1,-1)|0;q=D;G=L;K=C;Y=B;W=I;j=H;V=0;while(1){X=K>>>31|G<<1;Z=V|K<<1;J=0|(W<<1|G>>>31);Q=W>>>31|Y<<1|0;_n(z,q,J,Q)|0;$=D;ee=$>>31|(($|0)<0?-1:0)<<1;re=ee&1;ie=_n(J,Q,ee&x,((($|0)<0?-1:0)>>31|(($|0)<0?-1:0)<<1)&U)|0;te=ie;ae=D;oe=j-1|0;if((oe|0)==0){break}else{G=X;K=Z;Y=ae;W=te;j=oe;V=re}}he=X;ce=Z;ue=ae;fe=te;le=0;se=re}de=ce;ve=0;me=he|ve;if((n|0)!=0){a[n>>2]=0|fe;a[n+4>>2]=ue|0}we=(0|de)>>>31|me<<1|(ve<<1|de>>>31)&0|le;Ee=(de<<1|0>>>31)&-2|se;return(D=we,Ee)|0}function Cn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;return Yn[e&3](r|0,i|0,t|0)|0}function Bn(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;return Kn[e&7](r|0,i|0,t|0,n|0)|0}function In(e,r,i){e=e|0;r=r|0;i=i|0;Gn[e&3](r|0,i|0)}function Hn(e,r,i){e=e|0;r=r|0;i=i|0;return Xn[e&1](r|0,i|0)|0}function xn(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;Zn[e&7](r|0,i|0,t|0,n|0)}function Un(e,r,i){e=e|0;r=r|0;i=i|0;ae(0);return 0}function zn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;ae(1);return 0}function qn(e,r){e=e|0;r=r|0;ae(2)}function Vn(e,r){e=e|0;r=r|0;ae(3);return 0}function jn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;ae(4)}function Wn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;Ge(e|0,r|0,i|0,t|0)}var Yn=[Un,vn,kt,Un];var Kn=[zn,St,gt,yt,Mt,zn,zn,zn];var Gn=[qn,Br,It,qn];var Xn=[Vn,bi];var Zn=[jn,ci,ui,di,hi,Wn,vi,jn];return{_i64Subtract:_n,_lame_set_brate:Ci,_lame_encode_buffer_ieee_float:Wr,_lame_close:Kr,_lame_set_in_samplerate:Ti,_i64Add:Sn,_lame_set_num_channels:Ni,_strlen:kn,_memset:pn,_malloc:mn,_memcpy:yn,_lame_init:Gr,_bitshift64Lshr:gn,_free:En,_lame_init_params:jr,_lame_encode_flush:Yr,_bitshift64Shl:Mn,_lame_set_mode:Li,runPostSets:bn,stackAlloc:lr,stackSave:fr,stackRestore:ur,establishStackSpace:cr,setThrew:hr,setTempRet0:mr,getTempRet0:Er,dynCall_iiii:Cn,dynCall_iiiii:Bn,dynCall_vii:In,dynCall_iii:Hn,dynCall_viiii:xn}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_i64Subtract=Module._i64Subtract=asm._i64Subtract,_lame_set_brate=Module._lame_set_brate=asm._lame_set_brate,_lame_encode_buffer_ieee_float=Module._lame_encode_buffer_ieee_float=asm._lame_encode_buffer_ieee_float,runPostSets=Module.runPostSets=asm.runPostSets,_lame_close=Module._lame_close=asm._lame_close,_lame_set_in_samplerate=Module._lame_set_in_samplerate=asm._lame_set_in_samplerate,_i64Add=Module._i64Add=asm._i64Add,_lame_set_num_channels=Module._lame_set_num_channels=asm._lame_set_num_channels,_strlen=Module._strlen=asm._strlen,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_lame_set_mode=Module._lame_set_mode=asm._lame_set_mode,_memcpy=Module._memcpy=asm._memcpy,_lame_init=Module._lame_init=asm._lame_init,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_free=Module._free=asm._free,_lame_init_params=Module._lame_init_params=asm._lame_init_params,_lame_encode_flush=Module._lame_encode_flush=asm._lame_encode_flush,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};e.math.Long=function(e,r){this.low_=0|e,this.high_=0|r},e.math.Long.IntCache_={},e.math.Long.fromInt=function(r){if(-128<=r&&r<128){var i=e.math.Long.IntCache_[r];if(i)return i}var t=new e.math.Long(0|r,r<0?-1:0);return-128<=r&&r<128&&(e.math.Long.IntCache_[r]=t),t},e.math.Long.fromNumber=function(r){return isNaN(r)||!isFinite(r)?e.math.Long.ZERO:r<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:r+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:r<0?e.math.Long.fromNumber(-r).negate():new e.math.Long(r%e.math.Long.TWO_PWR_32_DBL_|0,r/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(r,i){return new e.math.Long(r,i)},e.math.Long.fromString=function(r,i){if(0==r.length)throw Error("number format error: empty string");var t=i||10;if(t<2||36=0)throw Error('number format error: interior "-" character: '+r);for(var n=e.math.Long.fromNumber(Math.pow(t,8)),a=e.math.Long.ZERO,o=0;o=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var r=0!=this.high_?this.high_:this.low_,i=31;i>0&&0==(r&1<0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var r=this.isNegative(),i=e.isNegative();return r&&!i?-1:!r&&i?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(r){var i=this.high_>>>16,t=65535&this.high_,n=this.low_>>>16,a=65535&this.low_,o=r.high_>>>16,s=65535&r.high_,l=r.low_>>>16,f=0,u=0,c=0,h=0;return c+=(h+=a+(65535&r.low_))>>>16,h&=65535,u+=(c+=n+l)>>>16,c&=65535,f+=(u+=t+s)>>>16,u&=65535,f+=i+o,f&=65535,e.math.Long.fromBits(c<<16|h,f<<16|u)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(r){if(this.isZero())return e.math.Long.ZERO;if(r.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return r.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(r.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return r.isNegative()?this.negate().multiply(r.negate()):this.negate().multiply(r).negate();if(r.isNegative())return this.multiply(r.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&r.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*r.toNumber());var i=this.high_>>>16,t=65535&this.high_,n=this.low_>>>16,a=65535&this.low_,o=r.high_>>>16,s=65535&r.high_,l=r.low_>>>16,f=65535&r.low_,u=0,c=0,h=0,d=0;return h+=(d+=a*f)>>>16,d&=65535,c+=(h+=n*f)>>>16,h&=65535,c+=(h+=a*l)>>>16,h&=65535,u+=(c+=t*f)>>>16,c&=65535,u+=(c+=n*l)>>>16,c&=65535,u+=(c+=a*s)>>>16,c&=65535,u+=i*f+t*l+n*s+a*o,u&=65535,e.math.Long.fromBits(h<<16|d,u<<16|c)},e.math.Long.prototype.div=function(r){if(r.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(r.equals(e.math.Long.ONE)||r.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(r.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((n=this.shiftRight(1).div(r).shiftLeft(1)).equals(e.math.Long.ZERO))return r.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var i=this.subtract(r.multiply(n));return n.add(i.div(r))}if(r.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return r.isNegative()?this.negate().div(r.negate()):this.negate().div(r).negate();if(r.isNegative())return this.div(r.negate()).negate();var t=e.math.Long.ZERO;for(i=this;i.greaterThanOrEqual(r);){for(var n=Math.max(1,Math.floor(i.toNumber()/r.toNumber())),a=Math.ceil(Math.log(n)/Math.LN2),o=a<=48?1:Math.pow(2,a-48),s=e.math.Long.fromNumber(n),l=s.multiply(r);l.isNegative()||l.greaterThan(i);)n-=o,l=(s=e.math.Long.fromNumber(n)).multiply(r);s.isZero()&&(s=e.math.Long.ONE),t=t.add(s),i=i.subtract(l)}return t},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(r){return e.math.Long.fromBits(this.low_&r.low_,this.high_&r.high_)},e.math.Long.prototype.or=function(r){return e.math.Long.fromBits(this.low_|r.low_,this.high_|r.high_)},e.math.Long.prototype.xor=function(r){return e.math.Long.fromBits(this.low_^r.low_,this.high_^r.high_)},e.math.Long.prototype.shiftLeft=function(r){if(0==(r&=63))return this;var i=this.low_;if(r<32){var t=this.high_;return e.math.Long.fromBits(i<>>32-r)}return e.math.Long.fromBits(0,i<>>r|i<<32-r,i>>r)}return e.math.Long.fromBits(i>>r-32,i>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(r){if(0==(r&=63))return this;var i=this.high_;if(r<32){var t=this.low_;return e.math.Long.fromBits(t>>>r|i<<32-r,i>>>r)}return 32==r?e.math.Long.fromBits(i,0):e.math.Long.fromBits(i>>>r-32,0)};var r,i="Modern Browser";function t(e,r,i){null!=e&&("number"==typeof e?this.fromNumber(e,r,i):null==r&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,r))}function n(){return new t(null)}"Microsoft Internet Explorer"==i?(t.prototype.am=function(e,r,i,t,n,a){for(var o=32767&r,s=r>>15;--a>=0;){var l=32767&this[e],f=this[e++]>>15,u=s*l+f*o;n=((l=o*l+((32767&u)<<15)+i[t]+(1073741823&n))>>>30)+(u>>>15)+s*f+(n>>>30),i[t++]=1073741823&l}return n},r=30):"Netscape"!=i?(t.prototype.am=function(e,r,i,t,n,a){for(;--a>=0;){var o=r*this[e++]+i[t]+n;n=Math.floor(o/67108864),i[t++]=67108863&o}return n},r=26):(t.prototype.am=function(e,r,i,t,n,a){for(var o=16383&r,s=r>>14;--a>=0;){var l=16383&this[e],f=this[e++]>>14,u=s*l+f*o;n=((l=o*l+((16383&u)<<14)+i[t]+n)>>28)+(u>>14)+s*f,i[t++]=268435455&l}return n},r=28),t.prototype.DB=r,t.prototype.DM=(1<>>16)&&(e=r,i+=16),0!=(r=e>>8)&&(e=r,i+=8),0!=(r=e>>4)&&(e=r,i+=4),0!=(r=e>>2)&&(e=r,i+=2),0!=(r=e>>1)&&(e=r,i+=1),i}function h(e){this.m=e}function d(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<=0?e.mod(this.m):e},h.prototype.revert=function(e){return e},h.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},h.prototype.mulTo=function(e,r,i){e.multiplyTo(r,i),this.reduce(i)},h.prototype.sqrTo=function(e,r){e.squareTo(r),this.reduce(r)},d.prototype.convert=function(e){var r=n();return e.abs().dlShiftTo(this.m.t,r),r.divRemTo(this.m,null,r),e.s<0&&r.compareTo(t.ZERO)>0&&this.m.subTo(r,r),r},d.prototype.revert=function(e){var r=n();return e.copyTo(r),this.reduce(r),r},d.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var r=0;r>15)*this.mpl&this.um)<<15)&e.DM;for(e[i=r+this.m.t]+=this.m.am(0,t,e,r,0,this.m.t);e[i]>=e.DV;)e[i]-=e.DV,e[++i]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},d.prototype.mulTo=function(e,r,i){e.multiplyTo(r,i),this.reduce(i)},d.prototype.sqrTo=function(e,r){e.squareTo(r),this.reduce(r)},t.prototype.copyTo=function(e){for(var r=this.t-1;r>=0;--r)e[r]=this[r];e.t=this.t,e.s=this.s},t.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},t.prototype.fromString=function(e,r){var i;if(16==r)i=4;else if(8==r)i=3;else if(256==r)i=8;else if(2==r)i=1;else if(32==r)i=5;else{if(4!=r)return void this.fromRadix(e,r);i=2}this.t=0,this.s=0;for(var n=e.length,a=!1,o=0;--n>=0;){var s=8==i?255&e[n]:f(e,n);s<0?"-"==e.charAt(n)&&(a=!0):(a=!1,0==o?this[this.t++]=s:o+i>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==i&&0!=(128&e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},t.prototype.dlShiftTo=function(e,r){var i;for(i=this.t-1;i>=0;--i)r[i+e]=this[i];for(i=e-1;i>=0;--i)r[i]=0;r.t=this.t+e,r.s=this.s},t.prototype.drShiftTo=function(e,r){for(var i=e;i=0;--i)r[i+o+1]=this[i]>>n|s,s=(this[i]&a)<=0;--i)r[i]=0;r[o]=s,r.t=this.t+o+1,r.s=this.s,r.clamp()},t.prototype.rShiftTo=function(e,r){r.s=this.s;var i=Math.floor(e/this.DB);if(i>=this.t)r.t=0;else{var t=e%this.DB,n=this.DB-t,a=(1<>t;for(var o=i+1;o>t;t>0&&(r[this.t-i-1]|=(this.s&a)<>=this.DB;if(e.t>=this.DB;t+=this.s}else{for(t+=this.s;i>=this.DB;t-=e.s}r.s=t<0?-1:0,t<-1?r[i++]=this.DV+t:t>0&&(r[i++]=t),r.t=i,r.clamp()},t.prototype.multiplyTo=function(e,r){var i=this.abs(),n=e.abs(),a=i.t;for(r.t=a+n.t;--a>=0;)r[a]=0;for(a=0;a=0;)e[i]=0;for(i=0;i=r.DV&&(e[i+r.t]-=r.DV,e[i+r.t+1]=1)}e.t>0&&(e[e.t-1]+=r.am(i,r[i],e,2*i,0,1)),e.s=0,e.clamp()},t.prototype.divRemTo=function(e,r,i){var a=e.abs();if(!(a.t<=0)){var o=this.abs();if(o.t0?(a.lShiftTo(u,s),o.lShiftTo(u,i)):(a.copyTo(s),o.copyTo(i));var h=s.t,d=s[h-1];if(0!=d){var v=d*(1<1?s[h-2]>>this.F2:0),m=this.FV/v,E=(1<=0&&(i[i.t++]=1,i.subTo(p,i)),t.ONE.dlShiftTo(h,p),p.subTo(s,s);s.t=0;){var k=i[--b]==d?this.DM:Math.floor(i[b]*m+(i[b-1]+w)*E);if((i[b]+=s.am(0,k,i,_,0,h))0&&i.rShiftTo(u,i),l<0&&t.ZERO.subTo(i,i)}}},t.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var r=3&e;return(r=(r=(r=(r=r*(2-(15&e)*r)&15)*(2-(255&e)*r)&255)*(2-((65535&e)*r&65535))&65535)*(2-e*r%this.DV)%this.DV)>0?this.DV-r:-r},t.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},t.prototype.exp=function(e,r){if(e>4294967295||e<1)return t.ONE;var i=n(),a=n(),o=r.convert(this),s=c(e)-1;for(o.copyTo(i);--s>=0;)if(r.sqrTo(i,a),(e&1<0)r.mulTo(a,o,i);else{var l=i;i=a,a=l}return r.revert(i)},t.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var r;if(16==e)r=4;else if(8==e)r=3;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return this.toRadix(e);r=2}var i,t=(1<0)for(s>s)>0&&(n=!0,a=l(i));o>=0;)s>(s+=this.DB-r)):(i=this[o]>>(s-=r)&t,s<=0&&(s+=this.DB,--o)),i>0&&(n=!0),n&&(a+=l(i));return n?a:"0"},t.prototype.negate=function(){var e=n();return t.ZERO.subTo(this,e),e},t.prototype.abs=function(){return this.s<0?this.negate():this},t.prototype.compareTo=function(e){var r=this.s-e.s;if(0!=r)return r;var i=this.t;if(0!=(r=i-e.t))return this.s<0?-r:r;for(;--i>=0;)if(0!=(r=this[i]-e[i]))return r;return 0},t.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+c(this[this.t-1]^this.s&this.DM)},t.prototype.mod=function(e){var r=n();return this.abs().divRemTo(e,null,r),this.s<0&&r.compareTo(t.ZERO)>0&&e.subTo(r,r),r},t.prototype.modPowInt=function(e,r){var i;return i=e<256||r.isEven()?new h(r):new d(r),this.exp(e,i)},t.ZERO=u(0),t.ONE=u(1),t.prototype.fromRadix=function(e,r){this.fromInt(0),null==r&&(r=10);for(var i=this.chunkSize(r),n=Math.pow(r,i),a=!1,o=0,s=0,l=0;l=i&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(r,o)),this.dAddOffset(s,0)),a&&t.ZERO.subTo(this,this)},t.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},t.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},t.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},t.prototype.dAddOffset=function(e,r){if(0!=e){for(;this.t<=r;)this[this.t++]=0;for(this[r]+=e;this[r]>=this.DV;)this[r]-=this.DV,++r>=this.t&&(this[this.t++]=0),++this[r]}},t.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var r=this.chunkSize(e),i=Math.pow(e,r),t=u(i),a=n(),o=n(),s="";for(this.divRemTo(t,a,o);a.signum()>0;)s=(i+o.intValue()).toString(e).substr(1)+s,a.divRemTo(t,a,o);return o.intValue().toString(e)+s},t.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>=this.DB;if(e.t>=this.DB;t+=this.s}else{for(t+=this.s;i>=this.DB;t+=e.s}r.s=t<0?-1:0,t>0?r[i++]=t:t<-1&&(r[i++]=this.DV+t),r.t=i,r.clamp()};var v={abs:function(r,i){var t,n=new e.math.Long(r,i);t=n.isNegative()?n.negate():n,HEAP32[tempDoublePtr>>2]=t.low_,HEAP32[tempDoublePtr+4>>2]=t.high_},ensureTemps:function(){v.ensuredTemps||(v.ensuredTemps=!0,v.two32=new t,v.two32.fromString("4294967296",10),v.two64=new t,v.two64.fromString("18446744073709551616",10),v.temp1=new t,v.temp2=new t)},lh2bignum:function(e,r){var i=new t;i.fromString(r.toString(),10);var n=new t;i.multiplyTo(v.two32,n);var a=new t;a.fromString(e.toString(),10);var o=new t;return a.addTo(n,o),o},stringify:function(r,i,n){var a=new e.math.Long(r,i).toString();if(n&&"-"==a[0]){v.ensureTemps();var o=new t;o.fromString(a,10),a=new t,v.two64.addTo(o,a),a=a.toString(10)}return a},fromString:function(r,i,n,a,o){v.ensureTemps();var s=new t;s.fromString(r,i);var l=new t;l.fromString(n,10);var f=new t;if(f.fromString(a,10),o&&s.compareTo(t.ZERO)<0){var u=new t;s.addTo(v.two64,u),s=u}var c=!1;s.compareTo(l)<0?(s=l,c=!0):s.compareTo(f)>0&&(s=f,c=!0);var h=e.math.Long.fromString(s.toString());if(HEAP32[tempDoublePtr>>2]=h.low_,HEAP32[tempDoublePtr+4>>2]=h.high_,c)throw"range error"}};return v}(),initialStackTop;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function r(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),r()}),1)):r()))}function exit(e,r){if(!r||!Module.noExitRuntime)throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",(function(){process.exit(e)})),setTimeout((function(){process.exit(e)}),500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var r=e.length+1;function i(){for(var e=0;e<3;e++)t.push(0)}var t=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];i();for(var n=0;n0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var NUM_CH=2,HEAPU8=Module.HEAPU8,malloc=Module._malloc,free=Module._free,lame_init=Module._lame_init,lame_set_mode=Module._lame_set_mode,lame_set_num_channels=Module._lame_set_num_channels,lame_set_in_samplerate=Module._lame_set_in_samplerate,lame_set_brate=Module._lame_set_brate,lame_init_params=Module._lame_init_params,lame_encode_buffer_ieee_float=Module._lame_encode_buffer_ieee_float,lame_encode_flush=Module._lame_encode_flush,lame_close=Module._lame_close,Encoder=function(e,r){this.gfp=lame_init(),lame_set_mode(this.gfp,1),lame_set_num_channels(this.gfp,NUM_CH),lame_set_in_samplerate(this.gfp,e),lame_set_brate(this.gfp,r),lame_init_params(this.gfp),this.allocBuffers(8192),this.mp3Buffers=[]};Encoder.prototype.encode=function(e){var r=e[0].length;r>this.srcLen&&(this.freeBuffers(),this.allocBuffers(r));for(var i=0;i=l.length&&(s=!0)):s=!0),s&&(t.once&&(u[e]=null),t.callback(r))});-1!==u.indexOf(null);)u.splice(u.indexOf(null),1)}}]),e}();e.a=i}]).default}); \ No newline at end of file diff --git a/src/main/resources/static/js/lib/cutter.min.js b/src/main/resources/static/js/lib/cutter.min.js deleted file mode 100644 index ffe2dccd..00000000 --- a/src/main/resources/static/js/lib/cutter.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*MIT License https://github.com/lubenard/simple-mp3-cutter -Copyright (c) 2020 Lubenard*/ -class mp3cutter{constructor(e="/js/lib/",t=!1){self.Mp3LameEncoderConfig={memoryInitializerPrefixURL:e,TOTAL_MEMORY:1073741824},this.libPath=e,this.log=t;var a=document.getElementsByTagName("script")[0],n=document.createElement("script");n.src=this.libPath+"Mp3LameEncoder.min.js",a.parentNode.insertBefore(n,a)}logger(e){this.log}async cut(e,t,a,n,i=192){if(!e)throw"Invalid parameters!";if(t>a)throw"Start is bigger than end!";if(t<0||a<0)throw"Start or end is negative, cannot process";this.start=t,this.end=a,this.callback=n,this.bitrate=i;let s=await new Response(e).arrayBuffer();this.audioContext=new AudioContext,this.audioContext.decodeAudioData(s).then((e=>this.computeData(e)))}computeData(e){this.logger(e);let t=e.length*this.start/e.duration,a=e.length*this.end/e.duration;const n=this.audioContext.createBuffer(e.numberOfChannels,a-t,e.sampleRate);for(var i=0;it+0)).map((e=>n.getChannelData(e))),sampleRate:n.sampleRate,length:n.length};this.logger(r),s.encode(r.channels);let l=s.finish();this.logger(l),this.logger(URL.createObjectURL(l)),this.callback(l)}} \ No newline at end of file diff --git a/src/main/resources/static/js/lib/leaflet.min.js b/src/main/resources/static/js/lib/leaflet.min.js deleted file mode 100644 index 063b1e34..00000000 --- a/src/main/resources/static/js/lib/leaflet.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @preserve - * Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com - * (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade - * BSD-2-Clause - */ -!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function h(t){for(var i,e,n=1,o=arguments.length;n=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=O(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=O(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.xi.y&&n.y=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=N(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=N(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lati.lng&&n.lng';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}();function kt(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var Bt={ie:tt,ielt9:it,edge:et,webkit:nt,android:ot,android23:st,androidStock:at,opera:ht,chrome:ut,gecko:lt,safari:ct,phantom:_t,opera12:dt,win:pt,ie3d:mt,webkit3d:ft,gecko3d:gt,any3d:vt,mobile:yt,mobileWebkit:xt,mobileWebkit3d:wt,msPointer:Pt,pointer:Lt,touch:bt,mobileOpera:Tt,mobileGecko:Mt,retina:zt,passiveEvents:Ct,canvas:St,svg:Zt,vml:Et},At=Pt?"MSPointerDown":"pointerdown",It=Pt?"MSPointerMove":"pointermove",Ot=Pt?"MSPointerUp":"pointerup",Rt=Pt?"MSPointerCancel":"pointercancel",Nt={},Dt=!1;function jt(t,i,e,n){function o(t){Ut(t,r)}var s,r,a,h,u,l,c,_;function d(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Ut(t,h)}return"touchstart"===i?(u=t,l=e,c=n,_=p(function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ri(t),Ut(t,l)}),u["_leaflet_touchstart"+c]=_,u.addEventListener(At,_,!1),Dt||(document.addEventListener(At,Wt,!0),document.addEventListener(It,Ht,!0),document.addEventListener(Ot,Ft,!0),document.addEventListener(Rt,Ft,!0),Dt=!0)):"touchmove"===i?(h=e,(a=t)["_leaflet_touchmove"+n]=d,a.addEventListener(It,d,!1)):"touchend"===i&&(r=e,(s=t)["_leaflet_touchend"+n]=o,s.addEventListener(Ot,o,!1),s.addEventListener(Rt,o,!1)),this}function Wt(t){Nt[t.pointerId]=t}function Ht(t){Nt[t.pointerId]&&(Nt[t.pointerId]=t)}function Ft(t){delete Nt[t.pointerId]}function Ut(t,i){for(var e in t.touches=[],Nt)t.touches.push(Nt[e]);t.changedTouches=[t],i(t)}var Vt=Pt?"MSPointerDown":Lt?"pointerdown":"touchstart",qt=Pt?"MSPointerUp":Lt?"pointerup":"touchend",Gt="_leaflet_";var Kt,Yt,Xt,Jt,$t,Qt,ti=fi(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ii=fi(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ei="webkitTransition"===ii||"OTransition"===ii?ii+"End":"transitionend";function ni(t){return"string"==typeof t?document.getElementById(t):t}function oi(t,i){var e,n=t.style[i]||t.currentStyle&&t.currentStyle[i];return n&&"auto"!==n||!document.defaultView||(n=(e=document.defaultView.getComputedStyle(t,null))?e[i]:null),"auto"===n?null:n}function si(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ri(t){var i=t.parentNode;i&&i.removeChild(t)}function ai(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function hi(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function ui(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function li(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=pi(t);return 0this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,N(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},panInside:function(t,i){var e,n,o=A((i=i||{}).paddingTopLeft||i.padding||[0,0]),s=A(i.paddingBottomRight||i.padding||[0,0]),r=this.getCenter(),a=this.project(r),h=this.project(t),u=this.getPixelBounds(),l=u.getSize().divideBy(2),c=O([u.min.add(o),u.max.subtract(s)]);return c.contains(h)||(this._enforcingBounds=!0,e=a.subtract(h),n=A(h.x+e.x,h.y+e.y),(h.xc.max.x)&&(n.x=a.x-e.x,0c.max.y)&&(n.y=a.y-e.y,0=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,r=!1;s;){if((e=this._targets[m(s)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){r=!0;break}if(e&&e.listens(i,!0)){if(o&&!Vi(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!Vi(s,t)||(n=[this]),n},_handleDOMEvent:function(t){var i;this._loaded&&!Ui(t)&&("mousedown"!==(i=t.type)&&"keypress"!==i&&"keyup"!==i&&"keydown"!==i||Pi(t.target||t.srcElement),this._fireDOMEvent(t,i))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,e){var n;if("click"===t.type&&((n=h({},t)).type="preclick",this._fireDOMEvent(n,n.type,e)),!t._stopped&&(e=(e||[]).concat(this._findEventTargets(t,i))).length){var o=e[0];"contextmenu"===i&&o.listens(i,!0)&&Ri(t);var s,r={originalEvent:t};"keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type&&(s=o.getLatLng&&(!o._radius||o._radius<=10),r.containerPoint=s?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=s?o.getLatLng():this.layerPointToLatLng(r.layerPoint));for(var a=0;athis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(M(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,ci(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),setTimeout(p(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&_i(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),M(function(){this._moveEnd(!0)},this))}});function Yi(t){return new Xi(t)}var Xi=S.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return ci(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(ri(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+m(this),n),this._layerControlInputs.push(i),i.layerId=m(t.layer),zi(i,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("div");return e.appendChild(s),s.appendChild(i),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;0<=s;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;si.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),$i=Xi.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=si("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=si("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),Oi(s),zi(s,"click",Ni),zi(s,"click",o,this),zi(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";_i(this._zoomInButton,i),_i(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMinZoom()||ci(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMaxZoom()||ci(this._zoomInButton,i)}});Ki.mergeOptions({zoomControl:!0}),Ki.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new $i,this.addControl(this.zoomControl))});var Qi=Xi.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=si("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=si("div",i,e)),t.imperial&&(this._iScale=si("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;5280Leaflet'},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var i in(t.attributionControl=this)._container=si("div","leaflet-control-attribution"),Oi(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});Ki.mergeOptions({attributionControl:!0}),Ki.addInitHook(function(){this.options.attributionControl&&(new te).addTo(this)});Xi.Layers=Ji,Xi.Zoom=$i,Xi.Scale=Qi,Xi.Attribution=te,Yi.layers=function(t,i,e){return new Ji(t,i,e)},Yi.zoom=function(t){return new $i(t)},Yi.scale=function(t){return new Qi(t)},Yi.attribution=function(t){return new te(t)};var ie=S.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});ie.addTo=function(t,i){return t.addHandler(i,this),this};var ee,ne={Events:Z},oe=bt?"touchstart mousedown":"mousedown",se={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},re={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ae=E.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){c(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(zi(this._dragStartTarget,oe,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ae._dragging===this&&this.finishDrag(),Si(this._dragStartTarget,oe,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var i,e;!t._simulated&&this._enabled&&(this._moved=!1,li(this._element,"leaflet-zoom-anim")||ae._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((ae._dragging=this)._preventOutline&&Pi(this._element),xi(),Xt(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=bi(this._element),this._startPoint=new k(i.clientX,i.clientY),this._parentScale=Ti(e),zi(document,re[t.type],this._onMove,this),zi(document,se[t.type],this._onUp,this))))},_onMove:function(t){var i,e;!t._simulated&&this._enabled&&(t.touches&&1i&&(e.push(t[n]),o=n);oi.max.x&&(e|=2),t.yi.max.y&&(e|=8),e}function de(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||Oe.prototype._containsPoint.call(this,t,!0)}});var Ne=Ce.extend({initialize:function(t,i){c(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=g(t)?t:t.features;if(o){for(i=0,e=o.length;iu.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c]))},_onCloseButtonClick:function(t){this._close(),Ni(t)},_getAnchor:function(){return A(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ki.mergeOptions({closePopupOnClick:!0}),Ki.include({openPopup:function(t,i,e){return t instanceof tn||(t=new tn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Me.include({bindPopup:function(t,i){return t instanceof tn?(c(t,i),(this._popup=t)._source=this):(this._popup&&!i||(this._popup=new tn(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){return this._popup&&this._map&&(i=this._popup._prepareOpen(this,t,i),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Ni(t),i instanceof Be?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var en=Qe.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Qe.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Qe.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Qe.prototype.getEvents.call(this);return bt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=si("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,e=this._map,n=this._container,o=e.latLngToContainerPoint(e.getCenter()),s=e.layerPointToContainerPoint(t),r=this.options.direction,a=n.offsetWidth,h=n.offsetHeight,u=A(this.options.offset),l=this._getAnchor(),c="top"===r?(i=a/2,h):"bottom"===r?(i=a/2,0):(i="center"===r?a/2:"right"===r?0:"left"===r?a:s.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oe.max.x)||!i.wrapLat&&(t.ye.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return N(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new R(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new k(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(ri(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ci(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=a,t.onmousemove=a,it&&this.options.opacity<1&&mi(t,this.options.opacity),ot&&!st&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),p(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&M(p(this._tileReady,this,t,null,o)),vi(o,e),this._tiles[n]={el:o,coords:t,current:!0},i.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);(e=this._tiles[n])&&(e.loaded=+new Date,this._map._fadeAnimated?(mi(e.el,0),z(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(ci(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),it||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(p(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new k(this._wrapX?o(t.x,this._wrapX):t.x,this._wrapY?o(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new I(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var sn=on.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=c(this,i)).detectRetina&&zt&&0')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_n={_initContainer:function(){this._container=si("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(hn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=cn("shape");ci(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=cn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ri(i),t.removeInteractiveTarget(i),delete this._layers[m(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i=i||(t._stroke=cn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e=e||(t._fill=cn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){hi(t._container)},_bringToBack:function(t){ui(t._container)}},dn=Et?cn:J,pn=hn.extend({getEvents:function(){var t=hn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=dn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=dn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ri(this._container),Si(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){var t,i,e;this._map._animatingZoom&&this._bounds||(hn.prototype._update.call(this),i=(t=this._bounds).getSize(),e=this._container,this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),vi(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update"))},_initPath:function(t){var i=t._path=dn("path");t.options.className&&ci(i,t.options.className),t.options.interactive&&ci(i,"leaflet-interactive"),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ri(t._path),t.removeInteractiveTarget(t._path),delete this._layers[m(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,$(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){hi(t._path)},_bringToBack:function(t){ui(t._path)}});function mn(t){return Zt||Et?new pn(t):null}Et&&pn.include(_n),Ki.include({getRenderer:function(t){var i=(i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&ln(t)||mn(t)}});var fn=Re.extend({initialize:function(t,i){Re.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=N(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});pn.create=dn,pn.pointsToPath=$,Ne.geometryToLayer=De,Ne.coordsToLatLng=We,Ne.coordsToLatLngs=He,Ne.latLngToCoords=Fe,Ne.latLngsToCoords=Ue,Ne.getFeature=Ve,Ne.asFeature=qe,Ki.mergeOptions({boxZoom:!0});var gn=ie.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){zi(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Si(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ri(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Xt(),xi(),this._startPoint=this._map.mouseEventToContainerPoint(t),zi(document,{contextmenu:Ni,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=si("div","leaflet-zoom-box",this._container),ci(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new I(this._point,this._startPoint),e=i.getSize();vi(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ri(this._box),_i(this._container,"leaflet-crosshair")),Jt(),wi(),Si(document,{contextmenu:Ni,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){var i;1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(p(this._resetState,this),0),i=new R(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})))},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ki.addInitHook("addHandler","boxZoom",gn),Ki.mergeOptions({doubleClickZoom:!0});var vn=ie.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Ki.addInitHook("addHandler","doubleClickZoom",vn),Ki.mergeOptions({dragging:!0,inertia:!st,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var yn=ie.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new ae(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),ci(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){_i(this._map._container,"leaflet-grab"),_i(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,i=this._map;i._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=N(this._map.options.maxBounds),this._offsetLimit=O(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,i.fire("movestart").fire("dragstart"),i.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var i,e;this._map.options.inertia&&(i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(e),this._times.push(i),this._prunePositions(i)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)i.getMaxZoom()&&1= maxlength) { - - alert(getText("message.js.error.max-length")); - $('#message-send-input').val(data.substring(0, maxlength)); - } - }); -}); - -function sendMessage() { - - let data = $("#message-send-input").val(); - - if(data) { - $("#message-send-input").val(""); - $.ajax({ - type : "POST", - url : "/message/send/" + getConvoId(), - contentType : "text/plain", - data : data, - success : function() { - reloadMessages(0); - }, - error : function(e) { - console.log(e); - } - }); - } -} - -function reloadMessages(first) { - $.ajax({ - type : "GET", - url : "/message/get-messages/" + getConvoId() + "/" + first, - contentType : "text/plain", - success : function(res) { - if(res != "
    ") { - $("#messages-div").html(res); - $("#messages-div").scrollTop($("#messages-div")[0].scrollHeight); - } - if(first) { - hideLoader(); - } - }, - error : function(e) { - console.log(e); - if(first) { - hideLoader(); - } - } - }); -} - -function getConvoId() { - return $("#convo-id").val(); -} - - -function startVideoChat() { - var answer = window.confirm(getText("message.js.video.confirm")) - if (answer) { - let rand = randomString(); - let url = "https://meet.jit.si/" + rand; - let link = url; - $("#message-send-input").val(link); - sendMessage(); - window.open(url); - } -} - -//https://stackoverflow.com/a/10727155 -function randomString() { - const length = 32; - const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - var result = ''; - for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - return result; -} \ No newline at end of file diff --git a/src/main/resources/static/js/message.js b/src/main/resources/static/js/message.js deleted file mode 100644 index 867e3aab..00000000 --- a/src/main/resources/static/js/message.js +++ /dev/null @@ -1,20 +0,0 @@ -$(function() { - getUpdates(); -}); - -function viewMessageDetail(e, id) { - - var senderElement = e.target; - if($(e.target).is("img")) { - e.stopPropagation(); - return true; - } - - window.open("/chats/" + id ,"_self"); -} - -$('.profile-pic').click(function(event){ - event.stopPropagation(); - let val = $(event.target).attr("value"); - viewProfile(val); -}); \ No newline at end of file diff --git a/src/main/resources/static/js/notification.js b/src/main/resources/static/js/notification.js deleted file mode 100644 index 8cfcfc94..00000000 --- a/src/main/resources/static/js/notification.js +++ /dev/null @@ -1,3 +0,0 @@ -$(document).ready(function() { - getUpdates(); -}); \ No newline at end of file diff --git a/src/main/resources/static/js/password-reset.js b/src/main/resources/static/js/password-reset.js deleted file mode 100644 index 4a9850fa..00000000 --- a/src/main/resources/static/js/password-reset.js +++ /dev/null @@ -1,36 +0,0 @@ -$(function() { - - refreshCaptcha(); - let url = window.location.href; - - if (url.includes("?error")) { - alert(getGenericErrorText()); - } - - $("#form").submit(function(e) { - e.preventDefault(); - let captchaId = $("#captcha-id").val(); - let captchaText = $("#captcha").val(); - let email = $("#email").val(); - let url = "/password/reset"; - - let data = {}; - data.captchaId = captchaId; - data.captchaText = captchaText; - data.email = email; - - $.ajax({ - type : "POST", - url : url, - data : JSON.stringify(data), - contentType : "application/json", - success : function() { - location.href = "/?password-reset-requested"; - }, - error : function(e) { - location.href = "/password/reset?error"; - } - }); - - }); -}); \ No newline at end of file diff --git a/src/main/resources/static/js/profile-onboarding.js b/src/main/resources/static/js/profile-onboarding.js deleted file mode 100644 index 64825cd9..00000000 --- a/src/main/resources/static/js/profile-onboarding.js +++ /dev/null @@ -1,305 +0,0 @@ -//TODO -const maxImageSize = 600; - -var timerDescription; -var timeoutDescription = 500; -var description; -var genderSwitches; -var intentionSelected = false; -var profilePicUploaded = false; -var submit = document.getElementById("submit"); - -document.addEventListener("DOMContentLoaded", function(event) { - - $.ajax({ - type: "POST", - url: "/user/post", - error: function(e) { - if (e.status == 403) { - location.reload(); - } - } - }); - - description = document.getElementById("description"); - genderSwitches = document.getElementsByClassName("gender-switch"); - - var swiper = new Swiper(".onboarding-swiper", { - direction: "vertical", - simulateTouch: false, - slidesPerView: 1, - spaceBetween: 0, - mousewheel: true, - pagination: { - el: ".swiper-pagination", - clickable: true, - }, - }); - - let interest1 = $('#interest1'); - interest1.on('keyup paste', function() { - interest1.val(getCleanInterest(interest1.val())); - }); - - let interest2 = $('#interest2'); - interest2.on('keyup paste', function() { - interest2.val(getCleanInterest(interest2.val())); - }); - - let interest3 = $('#interest3'); - interest3.on('keyup paste', function() { - interest3.val(getCleanInterest(interest3.val())); - }); - - interest1.autocomplete({ - minLength: 3, - delay: 500, - source: function(request, response) { - $.getJSON("/user/interest/autocomplete/" + encodeURI(request.term), {}, response); - }, - focus: function(event, ui) { - interest1.val(ui.item.name); - return false; - }, - select: function(event, ui) { - interest1.val(ui.item.name); - return false; - } - }) - .autocomplete("instance")._renderItem = function(ul, item) { - return $("
  • ") - .append("
    " + item.name + ' (' + item.count + ")
    ") - .appendTo(ul); - }; - - interest2.autocomplete({ - minLength: 3, - delay: 500, - source: function(request, response) { - $.getJSON("/user/interest/autocomplete/" + encodeURI(request.term), {}, response); - }, - focus: function(event, ui) { - interest2.val(ui.item.name); - return false; - }, - select: function(event, ui) { - interest2.val(ui.item.name); - return false; - } - }) - .autocomplete("instance")._renderItem = function(ul, item) { - return $("
  • ") - .append("
    " + item.name + ' (' + item.count + ")
    ") - .appendTo(ul); - }; - - interest3.autocomplete({ - minLength: 3, - delay: 500, - source: function(request, response) { - $.getJSON("/user/interest/autocomplete/" + encodeURI(request.term), {}, response); - }, - focus: function(event, ui) { - interest3.val(ui.item.name); - return false; - }, - select: function(event, ui) { - interest3.val(ui.item.name); - return false; - } - }) - .autocomplete("instance")._renderItem = function(ul, item) { - return $("
  • ") - .append("
    " + item.name + ' (' + item.count + ")
    ") - .appendTo(ul); - }; - - let profilePicInput = $("#profilePictureUpload"); - profilePicInput.change(function() { - readURL(profilePicInput[0]); - }); - - $('input:radio').change(function() { - if (!intentionSelected) { - intentionSelected = true; - updateData(); - } - }); - - $('input:checkbox').change(function() { - updateData(); - }); - - //don't update at every keystroke - $("#description").on('keyup paste', function() { - if (timerDescription) { - clearTimeout(timerDescription); - } - timerDescription = setTimeout(function() { - updateData(); - }, timeoutDescription); - }); - - $('#submit').click(function(event) { - subscribe(function() { - showLoader(); - let data = {}; - data.intention = document.querySelector('input[name="intention"]:checked').value; - data.preferredGenders = []; - - $('input:checkbox').each(function(index) { - if ($(this).is(":checked")) { - data.preferredGenders.push($(this).val()); - } - }); - - data.description = description.value; - data.profilePicture = document.getElementById("profilePictureImg").src; - data.interests = []; - let interest1 = document.getElementById('interest1'); - let interest2 = document.getElementById('interest2'); - let interest3 = document.getElementById('interest3'); - if(interest1.value) { - data.interests.push(interest1.value); - } - if(interest2.value) { - data.interests.push(interest2.value); - } - if(interest3.value) { - data.interests.push(interest3.value); - } - - $.ajax({ - type: "POST", - url: "/user/onboarding", - contentType: "application/json", - data: JSON.stringify(data), - success: function(e) { - window.location = "/search"; - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - hideLoader(); - if (e.status == 403) { - location.reload(); - } - } - }); - }); - }); -}); - -function updateProfilePic() { - $("#profilePictureUpload").click(); -} - -function getCleanInterest(userInput) { - return userInput.replace(/[^a-zA-Z0-9-]/g, '').toLowerCase(); -} - -function interestInfo() { - let text = getText("profile.interest.info"); - alert(text); -} - -function updateData() { - return new Promise(r => { - let genderChecked = false; - for (var i = 0; i < genderSwitches.length && !genderChecked; i++) { - if (genderSwitches[i].checked) { - genderChecked = true; - } - } - - if (description.value && profilePicUploaded && intentionSelected && genderChecked) { - submit.disabled = false; - } else { - submit.disabled = true; - } - }); -} - -function readURL(input) { - if (input.files && input.files[0]) { - resizeImage(input.files[0], function(b64) { - let img = $('#profilePictureImg'); - img.attr('src', b64); - img.show(); - $('#profilePicture').hide(); - - if (!profilePicUploaded) { - updateData(); - profilePicUploaded = true; - } - }); - } -} - -function resizeImage(file, callback) { - - if(window.HTMLCanvasElement && window.CanvasRenderingContext2D) { - var reader = new FileReader(); - reader.onload = function(readerEvent) { - var img = new Image(); - img.onload = function() { - let canvas = document.createElement('canvas'); - let width = img.width; - let height = img.height; - let sx = 0; - let sy = 0; - - if (width > height) { - sx = width/2 - height/2; - width = height; - } else { - sy = height/2 - width/2; - height = width; - } - - canvas.height = maxImageSize; - canvas.width = maxImageSize; - - canvas.getContext('2d').drawImage(img, - sx, sy, width, height, - 0, 0, maxImageSize, maxImageSize); - - if(canvasProtected(canvas.getContext('2d'))) { - getBase64(file, callback); - } else { - let dataUrl = canvas.toDataURL('image/jpeg'); - callback(dataUrl); - } - } - img.src = readerEvent.target.result; - } - reader.readAsDataURL(file); - } else { - getBase64(file, callback); - } -} - -function getBase64InMB(base64) { - return (base64.length * (3 / 4) - 1) / 1000000; -} - -function getBase64(file, callback) { - var reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = function() { - callback(reader.result); - }; - reader.onerror = function() { - }; -} - -function canvasProtected(context) { - let data = context.getImageData(1, 1, 1, 1).data; - let data2 = context.getImageData(1, 1, 1, 1).data; - if(data[0] == data2[0] && data[1] == data2[1] && data[2] == data2[2]) { - return false; - } else { - return true; - } -} - diff --git a/src/main/resources/static/js/profile.js b/src/main/resources/static/js/profile.js deleted file mode 100644 index 37981428..00000000 --- a/src/main/resources/static/js/profile.js +++ /dev/null @@ -1,822 +0,0 @@ -//TODO -const descriptionMaxLength = 200; -const maxImageSize = 600; -const maxAudioSeconds = 10; -const twa_playstore = "android-app://com.alovoa.alovoa_playstore"; - -$(function() { - - getUpdates(); - //$(window).scrollTop(0); - bulmaSlider.attach(); - bulmaCollapsible.attach(); - - if (document.referrer.includes(twa_playstore)) { - localStorage.setItem("twa_playstore", true); - } - - var mediaMaxSize = $("#mediaMaxSize").val() / 1000000; - - var swiper = new Swiper('.swiper-container', { - centeredSlides: true, - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - pagination: { el: '.swiper-pagination' } - }); - - if (!navigator.canShare) { - $("#referral-share-btn").hide(); - } - - let interest = $('#interest'); - if(interest.length) { - interest.on('keyup paste', function() { - interest.val(getCleanInterest(interest.val())); - }); - interest.autocomplete({ - minLength: 3, - delay: 500, - source: function(request, response) { - $.getJSON("/user/interest/autocomplete/" + encodeURI(request.term), {}, response); - }, - focus: function(event, ui) { - interest.val(ui.item.name); - return false; - }, - select: function(event, ui) { - interest.val(ui.item.name); - $("#interest-form").submit(); - return false; - } - }) - .autocomplete("instance")._renderItem = function(ul, item) { - return $("
  • ") - .append("
    " + item.name + ' (' + item.count + ")
    ") - .appendTo(ul); - }; - } - - //updateProfileWarning(); - - $("#profilePicture").click(function(e) { - //TODO check verificationStatus first - openModal("profilepic-change-modal"); - }); - - $("#addImageDiv").click(function(e) { - $("#addImageInput").click(); - }); - - $("#profilePictureUpload").change(function() { - showLoader(); - let file = document.querySelector('#profilePictureUpload').files[0]; - - resizeImage(file, function(b64) { - if (b64) { - if (getBase64InMB(b64) > mediaMaxSize) { - hideLoader(); - alert(getText("error.media.max-size-exceeded")); - return; - } - - $.ajax({ - type: "POST", - url: "/user/update/profile-picture", - contentType: "text/plain", - data: b64, - success: function() { - location.reload(); - }, - error: function(e) { - console.log(e); - hideLoader(); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - }); - }); - - $("#addImageInput").change(function() { - let file = document.querySelector('#addImageInput').files[0]; - showLoader(); - resizeImage(file, function(b64) { - if (b64) { - if (getBase64InMB(b64) > mediaMaxSize) { - hideLoader(); - alert(getText("error.media.max-size-exceeded")); - return; - } - $.ajax({ - type: "POST", - url: "/user/image/add", - contentType: "text/plain", - data: b64, - success: function() { - location.reload(); - }, - error: function(e) { - console.log(e); - hideLoader(); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - - } - }); - } - }); - }); - - var timerDescription; - var timeoutDescription = 500; - - $('#description').on('keyup paste', function() { - - let data = $('#description').val(); - var maxlength = descriptionMaxLength; - var currentLength = $(this).val().length; - - if (currentLength >= maxlength) { - alert(getGenericMaxCharsErrorText()); - $('#description').val(data.substring(0, maxlength)); - } else { - - if (timerDescription) { - clearTimeout(timerDescription); - } - if ($('#description').val) { - timerDescription = setTimeout(function() { - $.ajax({ - type: "POST", - url: "/user/update/description", - contentType: "text/plain", - data: data, - success: function(e) { - updateProfileWarning(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - }, timeoutDescription); - } - } - }); - - $("#intention").change(function(e) { - - let data = $("#intention").val(); - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/intention/" + data, - success: function(e) { - //updateProfileWarning(); - alert(getText("profile.warning.intention.limit")) - //location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); - } - }); - - $("#min-age-slider").change(function(e) { - - let data = $("#min-age-slider").val(); - let dataMax = $("#max-age-slider").val(); - if (data > dataMax) { - data = dataMax; - $("#min-age-slider").val(data); - $("#min-age-slider-output").val(data); - } - - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/min-age/" + data, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - }); - - $("#max-age-slider").change(function(e) { - - let data = $("#max-age-slider").val(); - let dataMin = $("#min-age-slider").val(); - if (data < dataMin) { - data = dataMin; - $("#max-age-slider").val(data); - $("#max-age-slider-output").val(data); - } - - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/max-age/" + data, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - }); - - $(".gender-switch").change(function(e) { - - let obj = e.target; - let checked = obj.checked; - if (checked) { - checked = 1; - } else { - checked = 0; - } - let data = $(obj).val(); - - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/preferedGender/" + data + "/" + checked, - success: function() { - updateProfileWarning(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - - }); - - $(".gender-switch").change(function(e) { - - let obj = e.target; - let checked = obj.checked; - if (checked) { - checked = 1; - } else { - checked = 0; - } - let data = obj.value; - - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/preferedGender/" + data + "/" + checked, - success: function() { - updateProfileWarning(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - - }); - - $(".misc-info-switch").change(function(e) { - - let obj = e.target; - let checked = obj.checked; - if (checked) { - checked = 1; - } else { - checked = 0; - } - let data = obj.value; - - if (data) { - $.ajax({ - type: "POST", - url: "/user/update/misc-info/" + data + "/" + checked, - success: function() { - if (obj.classList.contains("misc-info-single")) { - let parent = obj.parentNode.parentNode; - let inputs = parent.getElementsByTagName('input'); - if (obj.checked) { - for (let i in inputs) { - if (inputs[i].value != obj.value) { - inputs[i].checked = false; - } - } - } - } - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - - }); - - $("#interest-form").submit(function(e) { - e.preventDefault(); - let val = e.target.elements['value'].value; - - $.ajax({ - url: "/user/interest/add/" + val, - type: 'POST', - success: function() { - location.reload(); - }, - error: function() { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - }); - - $("#password-change-submit").click(function(e) { - let url = "/password/reset"; - $.ajax({ - type: "POST", - url: url, - data: "{}", - contentType: "application/json", - success: function(e) { - alert(getText("index.js.password-reset-requested")); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - }); - - $("#delete-acc-submit").click(function(e) { - - $.ajax({ - type: "POST", - url: "/user/delete-account", - success: function(e) { - alert(getText("profile.delete-account.success")); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - }); - - //AUDIO - $("#audio-upload-button").click(function(e) { - $("#audio-file").click(); - }); - - $("#audio-file").change(function() { - showLoader(); - let file = document.querySelector('#audio-file').files[0]; - resizeAudio(file, function(b64) { - if (b64) { - if (getBase64InMB(b64) > mediaMaxSize) { - hideLoader(); - alert(getText("error.media.max-size-exceeded")); - return; - } - - var type = file.type.split('/')[1]; - - $.ajax({ - type: "POST", - url: "/user/update/audio/" + type, - contentType: "text/plain", - data: b64, - success: function() { - location.reload(); - }, - error: function(e) { - console.log(e); - hideLoader(); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - }); - }); - - $("#submit-verification-button").click(function(e) { - $("#verificationPictureUpload").click(); - }); - - $("#verificationPictureUpload").change(function() { - showLoader(); - let file = document.querySelector('#verificationPictureUpload').files[0]; - - resizeImage(file, function(b64) { - if (b64) { - if (getBase64InMB(b64) > mediaMaxSize) { - hideLoader(); - alert(getText("error.media.max-size-exceeded")); - return; - } - - $.ajax({ - type: "POST", - url: "/user/update/verification-picture", - contentType: "text/plain", - data: b64, - success: function() { - location.reload(); - }, - error: function(e) { - console.log(e); - hideLoader(); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } - }); - }); -}); - -function copyClipboard(txt) { - - const successMsg = getText("success.clipboard"); - - var m = document; - txt = m.createTextNode(txt); - var w = window; - var b = m.body; - b.appendChild(txt); - if (b.createTextRange) { - var d = b.createTextRange(); - d.moveToElementText(txt); - d.select(); - m.execCommand('copy'); - } - else { - var d = m.createRange(); - var g = w.getSelection; - d.selectNodeContents(txt); - g().removeAllRanges(); - g().addRange(d); - m.execCommand('copy'); - g().removeAllRanges(); - } - txt.remove(); - - alert(successMsg); -} - -async function shareUrl(url) { - const data = { - title: 'Alovoa', - text: 'Alovoa', - url: url - } - try { - await navigator.share(data) - } catch (err) { } -} - -function getCleanInterest(userInput) { - return userInput.replace(/[^a-zA-Z0-9-]/g, '').toLowerCase(); -} - -function deleteAudio() { - if (confirm(getText("profile.audio.delete"))) { - $.ajax({ - type: "POST", - url: "/user/delete/audio", - success: function(e) { - location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } -} - -function deleteInterest(val) { - $.ajax({ - type: "POST", - url: "/user/interest/delete/" + val, - success: function() { - location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); -} - -function interestInfo() { - let text = getText("profile.interest.info"); - alert(text); -} - -function audioInfo() { - let text = getText("profile.audio.info"); - alert(text); -} - -function referralInfo() { - let text = document.getElementById("referralInfo").innerHTML; - alert(text); -} - -function deleteImage(id) { - if (confirm(getText("profile.js.delete-image.confirm"))) { - $.ajax({ - type: "POST", - url: "/user/image/delete/" + id, - success: function(e) { - location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - } -} - -function updateAccentColor(color) { - $.ajax({ - type: "POST", - url: "/user/accent-color/update/" + color, - success: function(e) { - location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); -} - -function updateUiDesign() { - let des = $("#ui-design-select").val(); - $.ajax({ - type: "POST", - url: "/user/ui-design/update/" + des, - success: function(e) { - location.reload(); - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); -} - -function updateShowZodiac() { - let val = $("#show-zodiac-select").val(); - $.ajax({ - type: "POST", - url: "/user/show-zodiac/update/" + val, - success: function(e) { - return false; - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - return false; -} - -function updateUnits() { - let val = $("#ui-units-select").val(); - $.ajax({ - type: "POST", - url: "/user/units/update/" + val, - success: function(e) { - return false; - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - return false; -} - - -function updateProfileWarning() { - let url = "/profile/warning"; - - $.ajax({ - type: "GET", - url: url, - success: function(res) { - let warning = "profile-warning-collapsible"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - warning = "no-profile-picture"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - warning = "no-description"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - warning = "no-intention"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - warning = "no-gender"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - warning = "no-location"; - if (!res.includes(warning)) { - $("#" + warning).addClass("disabled"); - } else { - $("#" + warning).removeClass("disabled"); - } - }, - error: function(e) { - console.log(e); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - -} - -function getUserData(idEnc) { - let url = "/user/userdata/" + idEnc; - window.open(url); -} - -function modalVerificationImage() { - openModal("verification-modal"); -} - -function updateProfilePic() { - $("#profilePictureUpload").click(); -} - -function resizeAudio(file, callback) { - if (file.type == "audio/mpeg") { - try { - let cutter = new mp3cutter(); - cutter.cut(file, 0, maxAudioSeconds, function(cut) { - getBase64(cut, callback); - }); - } catch (e) { - console.log(e); - getBase64(file, callback); - } - } else if (file.type == "audio/x-wav" || file.type == "audio/wav") { - getBase64(file, callback); - } else { - hideLoader(); - alert(getText("error.format-not-supported")); - } -} - -function resizeImage(file, callback) { - - if (window.HTMLCanvasElement && window.CanvasRenderingContext2D) { - var reader = new FileReader(); - reader.onload = function(readerEvent) { - var img = new Image(); - img.onload = function() { - let canvas = document.createElement('canvas'); - let width = img.width; - let height = img.height; - let sx = 0; - let sy = 0; - - if (width > height) { - sx = width / 2 - height / 2; - width = height; - } else { - sy = height / 2 - width / 2; - height = width; - } - - canvas.height = maxImageSize; - canvas.width = maxImageSize; - - canvas.getContext('2d').drawImage(img, - sx, sy, width, height, - 0, 0, maxImageSize, maxImageSize); - - if (canvasProtected(canvas.getContext('2d'))) { - getBase64(file, callback); - } else { - let dataUrl = canvas.toDataURL('image/jpeg'); - callback(dataUrl); - } - } - img.src = readerEvent.target.result; - } - reader.readAsDataURL(file); - } else { - getBase64(file, callback); - } -} - -function getBase64InMB(base64) { - return (base64.length * (3 / 4) - 1) / 1000000; -} - -function getBase64(file, callback) { - var reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = function() { - callback(reader.result); - }; - reader.onerror = function() { - }; -} - -function canvasProtected(context) { - let data = context.getImageData(1, 1, 1, 1).data; - let data2 = context.getImageData(1, 1, 1, 1).data; - if (data[0] == data2[0] && data[1] == data2[1] && data[2] == data2[2]) { - return false; - } else { - return true; - } -} diff --git a/src/main/resources/static/js/register-oauth.js b/src/main/resources/static/js/register-oauth.js deleted file mode 100644 index 2a90f4bd..00000000 --- a/src/main/resources/static/js/register-oauth.js +++ /dev/null @@ -1,48 +0,0 @@ -//TODO -const minAge = 16; -const maxAge = 99; - -$(function() { - - let today = new Date(); - let startDate = new Date(today.setFullYear(today.getFullYear() - minAge)).toISOString().split('T')[0]; - let endDate = new Date(today.setFullYear(today.getFullYear() - maxAge)).toISOString().split('T')[0]; - - let dobInput = $("#dob-input"); - //dobInput.val(startDate); - dobInput.attr('max', startDate); - dobInput.attr('min', endDate); - - const referrer = localStorage.getItem("referrer"); - if (referrer) { - $("#referrer").val(referrer); - } - - $("#register-form").submit( - function(e) { - e.preventDefault(); - - var actionUrl = e.currentTarget.action; - let formdata = $("#register-form").serializeArray().reduce( - function(a, x) { - a[x.name] = x.value; - return a; - }, {}); - - $.ajax({ - url: actionUrl, - type: 'POST', - data: JSON.stringify(formdata), - contentType: "application/json", - success: function(data) { - localStorage.removeItem("referrer"); - window.location = "/profile"; - }, - error: function(e) { - console.log(e); - alert(e.responseText); - } - }); - - }); -}); diff --git a/src/main/resources/static/js/register.js b/src/main/resources/static/js/register.js deleted file mode 100644 index c7e11cca..00000000 --- a/src/main/resources/static/js/register.js +++ /dev/null @@ -1,70 +0,0 @@ -//TODO -const minAge = 16; -const maxAge = 99; - -$(function() { - - let today = new Date(); - let startDate = new Date(today.getTime()); - startDate.setFullYear(today.getFullYear() - minAge) - let endDate = new Date(today.getTime()); - endDate.setFullYear(today.getFullYear() - maxAge); - - let dobInput = $("#dob-input"); - //dobInput.val(startDate); - dobInput.attr('max', startDate.toISOString().split('T')[0]); - dobInput.attr('min', endDate.toISOString().split('T')[0]); - - const queryString = window.location.search; - const urlParams = new URLSearchParams(queryString); - const referrer = urlParams.get('referrer'); - if (referrer) { - localStorage.setItem("referrer", referrer); - $("#referrer").val(referrer); - } else if (localStorage.getItem("referrer")) { - $("#referrer").val(localStorage.getItem("referrer")); - } - - let url = window.location.href; - if (url.includes("?register.oauth.email-invalid")) { - let text = getText("backend.error.register.oauth.email-invalid"); - if (text) { - alert(text); - } - } - - $("#register-form").submit( - function(e) { - e.preventDefault(); - - var actionUrl = e.currentTarget.action; - let formdata = $("#register-form").serializeArray().reduce( - function(a, x) { - a[x.name] = x.value; - return a; - }, {}); - if (!checkPassword()) { - return; - } - - $.ajax({ - url: actionUrl, - type: 'POST', - data: JSON.stringify(formdata), - contentType: "application/json", - success: function() { - localStorage.removeItem("referrer"); - window.location = "/?confirm-registration"; - }, - error: function(e) { - console.log(e); - alert(e.responseText); - } - }); - - }); -}); - -function emailAuthClick() { - openModal("email-register-modal"); -} diff --git a/src/main/resources/static/js/search.js b/src/main/resources/static/js/search.js deleted file mode 100644 index 4d5bc09a..00000000 --- a/src/main/resources/static/js/search.js +++ /dev/null @@ -1,253 +0,0 @@ -var locationFound = false; -var mymap; -var popup; -var lat; -var lon; - -$(function() { - - getUpdates(); - lat = $("#lat").attr("value"); - lon = $("#lon").attr("value"); - - bulmaSlider.attach(); - - mymap = L.map('map').setView({ lon: 4.9, lat: 52.3 }, 4); - - // add the OpenStreetMap tiles - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - maxZoom: 8, - attribution: 'OpenStreetMap contributors' - }).addTo(mymap); - L.control.scale().addTo(mymap); - popup = L.popup(); - mymap.on('click', onMapClick); - - search(true); -}); - -window.addEventListener('resize', resize); - -function resize() { - mymap.invalidateSize(true); -} - - -function onMapClick(e) { - popup - .setLatLng(e.latlng) - .setContent('') - .openOn(mymap); -} - -function mapSearchButtonClicked() { - lat = $("#map-lat").val(); - lon = $("#map-lon").val(); - searchBase(); -} - -function search(defaultSearch) { - - - if (defaultSearch && document.getElementById("has-location")) { - mainContainerLoadCards("/search/users/default"); - } else { - showLoader(); - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition(function(position) { - lat = position.coords.latitude; - lon = position.coords.longitude; - searchBase(false); - }, function() { - hideLoader(); - openModal("map-modal"); - mymap.invalidateSize(true); - alert(getText("search.js.error.no-location")); - }); - } else { - hideLoader(); - alert(getText("search.js.error.no-geolocation")); - openModal("map-modal"); - mymap.invalidateSize(true); - } - } -} - -function searchBase(showLoader = true) { - let distance = $("#max-distance-slider").val(); - let sort = $("#sort").val(); - let url = "/search/users/" + lat + "/" - + lon + "/" + distance + "/" + sort; - mainContainerLoadCards(url, showLoader); - -} - -function mainContainerLoadCards(url, bShowLoader = true) { - - if(bShowLoader) { - showLoader(); - } - $("#main-container").load(url, function() { - - closeModal(); - - showDonatePopup(); - - let shortSwipes = true; - if(window.innerWidth <= 1024) { - shortSwipes = true; - } else { - shortSwipes = false; - } - - $('.swiper').each(function(index, element) { - $(this).addClass('s' + index); - let slider = new Swiper('.s' + index, { - initialSlide: 1, - shortSwipes: shortSwipes, - simulateTouch: true - }); - - slider.on('transitionEnd', function() { - let id = $(slider.el).attr("id"); - - if (slider.activeIndex == 0) { - likeUser(id); - } else if (slider.activeIndex == 2) { - hideUser(id); - } - }); - }); - - let searchMessageDiv = $("#search-message"); - if (searchMessageDiv) { - if (searchMessageDiv.text()) { - alert(searchMessageDiv.text()); - } - } - - hideLoader(); - - }); -} - -function searchSettingsClicked() { - let searchModal = document.getElementById("search-settings-modal"); - let isActive = searchModal.classList.contains("is-active"); - if (isActive) { - closeModal(); - } else { - openModal("search-settings-modal") - } -} - -function likeUser(idEnc) { - $.ajax({ - type: "POST", - url: "/user/like/" + idEnc, - success: function() { - hideProfileTile(idEnc); - }, - error: function(e) { - console.log(e); - hideProfileTile(idEnc); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); - -} - -function hideUser(idEnc) { - $.ajax({ - type: "POST", - url: "/user/hide/" + idEnc, - success: function() { - hideProfileTile(idEnc); - }, - error: function(e) { - console.log(e); - hideProfileTile(idEnc); - alert(getGenericErrorText()); - if (e.status == 403) { - location.reload(); - } - } - }); -} - -function toggleCardContent() { - $(".description").toggleClass("display-none"); -} - -function hideProfileTile(id) { - closeModal(); - let tile = $("#" + id); - $(tile).fadeOut(100, function() { - tile.hide(); - searchAgain(); - }); -} - -function getUserDivFromButton(btn) { - return $(btn).parent().parent().parent().parent(); -} - -function onDonateModalClicked() { - closeModal("donate-modal"); - window.open('/donate-list', '_blank'); -} - -function playPauseAudio(userIdEnc) { - let audio = document.getElementById("audio"); - if (!audio.paused) { - audio.pause(); - } else { - //showLoader(); - $.ajax({ - type: "GET", - url: "/user/get/audio/" + userIdEnc, - success: function(res) { - if (res) { - audio.src = res; - audio.load(); - audio.play(); - //hideLoader(); - } - }, - error: function(e) { - console.log(e); - //hideLoader(); - alert(getGenericErrorText()); - } - }); - } -} - -function showDonatePopup() { - let donationPopup = document.getElementById("show-donation-popup"); - if (donationPopup) { - openModal('donate-modal'); - donationPopup.remove(); - } -} - -function searchAgain() { - if (!hasVisibleUsers()) { - searchBase(); - } -} - -function hasVisibleUsers() { - let hasUsers = false; - $(".user-search-card").each(function(i, obj) { - if (!hasUsers && $(obj).is(":visible")) { - hasUsers = true; - } - }); - return hasUsers; -} diff --git a/src/main/resources/static/js/tools/copy-clipboard.js b/src/main/resources/static/js/tools/copy-clipboard.js deleted file mode 100644 index ba5f9e85..00000000 --- a/src/main/resources/static/js/tools/copy-clipboard.js +++ /dev/null @@ -1,29 +0,0 @@ -// https://stackoverflow.com/a/51126086/8744447 -function copyClipboard(txt) { - - const successMsg = getText("success.clipboard"); - - var m = document; - txt = m.createTextNode(txt); - var w = window; - var b = m.body; - b.appendChild(txt); - if (b.createTextRange) { - var d = b.createTextRange(); - d.moveToElementText(txt); - d.select(); - m.execCommand('copy'); - } - else { - var d = m.createRange(); - var g = w.getSelection; - d.selectNodeContents(txt); - g().removeAllRanges(); - g().addRange(d); - m.execCommand('copy'); - g().removeAllRanges(); - } - txt.remove(); - - alert(successMsg); -} \ No newline at end of file diff --git a/src/main/resources/static/js/tools/get-notification.js b/src/main/resources/static/js/tools/get-notification.js deleted file mode 100644 index 95a31360..00000000 --- a/src/main/resources/static/js/tools/get-notification.js +++ /dev/null @@ -1,74 +0,0 @@ -//TODO -var getUpdateInterval = 10000; -var getUpdate = setInterval(getUpdates, getUpdateInterval); -var newAlert = false; -var newMessage = false; - -const alertTitleText = "(!) "; - -function getUpdates() { - var res = []; - res.push(getNewAlert()); - res.push(getNewMessage()); - $.when.apply(this, res).done(function() { - if (newAlert) { - $("#nav-alerts").addClass("new"); - } - if (newMessage) { - $("#nav-chats").addClass("new"); - } - if((newAlert || newMessage) && !document.title.includes(alertTitleText)) { - document.title = alertTitleText + document.title; - } - else if(!(newAlert || newMessage) && document.title.includes(alertTitleText)) { - document.title = document.title.replace(alertTitleText, ''); - } - - }); -} - - -document.addEventListener("DOMContentLoaded", function() { - getNewAlert(); - getNewMessage(); - $.ajax({ - type: "POST", - url: "/user/post", - error: function(e) { - if (e.status == 403) { - location.reload(); - } - } - }); -}); - -function getNewAlert() { - return $.ajax({ - type: "GET", - url: "/user/status/new-alert", - success: function(bool) { - newAlert = bool; - }, - error: function(e) { - console.log(e); - // clearTimeout(alertTimeout); - if (e.status == 403) { - location.reload(); - } - } - }); -} - -function getNewMessage() { - return $.ajax({ - type: "GET", - url: "/user/status/new-message", - success: function(bool) { - newMessage = bool; - }, - error: function(e) { - console.log(e); - // clearTimeout(messageTimeout); - } - }); -} diff --git a/src/main/resources/static/js/user-profile-lib.js b/src/main/resources/static/js/user-profile-lib.js deleted file mode 100644 index 5bab5f46..00000000 --- a/src/main/resources/static/js/user-profile-lib.js +++ /dev/null @@ -1,162 +0,0 @@ -function viewProfile(idEnc) { - history.pushState(null, null, '/profile/view/' + idEnc); - let url = '/profile/view/modal/' + idEnc; - $("#user-profile-container").load(url, function() { - setTimeout(function() { openModal("user-profile-modal") }, 1); - }); -} - -function downloadAndPlayAudio() { - let userIdEnc = $("#user-id-enc").val(); - $.ajax({ - type : "GET", - url : "/user/get/audio/" + userIdEnc, - success : function(res) { - let audio = document.getElementById('audio-profile'); - $("#audio-profile").show(); - $("#audio-play-button").hide(); - audio.src = res; - audio.load(); - audio.play(); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); - -} - -function blockUser(idEnc) { - - var r = confirm(getText("userprofile.js.block-user")); - if (r == true) { - - $.ajax({ - type : "POST", - url : "/user/block/" + idEnc, - success : function() { - location.reload(true); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); - } -} - -function unblockUser(idEnc) { - - var r = confirm(getText("userprofile.js.unblock-user")); - if (r == true) { - $.ajax({ - type : "POST", - url : "/user/unblock/" + idEnc, - success : function() { - location.reload(true); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); - } -} - -function reportUser() { - var element = document.getElementById("report-user-div"); - element.classList.toggle("display-none"); - element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' }); -} - -function reportUserSubmit(idEncoded) { - $.ajax({ - type : "POST", - url : "/user/report/" + idEncoded, - contentType : "text/plain", - data: $("#report-comment").val(), - success : function() { - alert(getText("userprofile.js.success.report-user")); - location.reload(true); - }, - error : function(e) { - alert(getGenericErrorText()); - } - }); -} - -function likeUser(idEnc) { - $.ajax({ - type : "POST", - url : "/user/like/" + idEnc, - success : function() { - location.reload(true); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); - -} - -function hideUser(idEnc) { - $.ajax({ - type : "POST", - url : "/user/hide/" + idEnc, - success : function() { - location.reload(true); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); -} - -function verifyModal() { - let userProfileModalActive = false; - let userProfileModal = document.getElementById("user-profile-modal"); - if(userProfileModal) { - userProfileModalActive = userProfileModal.classList.contains("is-active"); - } - console.log(userProfileModalActive) - if (userProfileModalActive) { - closeModal("user-profile-modal"); - history.back(); - setTimeout(function() {openModal("verification-modal")}, 400); - } else { - openModal("verification-modal"); - } -} - -function upvoteVerification(idEnc) { - closeModal("verification-modal"); - $.ajax({ - type : "POST", - url : "/user/update/verification-picture/upvote/" + idEnc, - success : function() { - alert(getText("profile.verification.vote.success")); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); -} - -function downvoteVerification(idEnc) { - closeModal("verification-modal") - $.ajax({ - type : "POST", - url : "/user/update/verification-picture/downvote/" + idEnc, - success : function() { - alert(getText("profile.verification.vote.success")); - }, - error : function(e) { - console.log(e); - alert(getGenericErrorText()); - } - }); -} \ No newline at end of file diff --git a/src/main/resources/static/js/user-profile.js b/src/main/resources/static/js/user-profile.js deleted file mode 100644 index 39444917..00000000 --- a/src/main/resources/static/js/user-profile.js +++ /dev/null @@ -1,17 +0,0 @@ -var locationFound = false; - -$(function() { - new Swiper('.swiper-container-user-profile', { - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - pagination: { el : '.swiper-pagination'} - }); -}); - -$(window).on("popstate", function(e) { - if(!document.getElementById("user-profile-modal")) { - location.reload(); - } -}); \ No newline at end of file diff --git a/src/main/resources/static/sw.js b/src/main/resources/static/sw.js index bfa9f95e..fcc5944c 100644 --- a/src/main/resources/static/sw.js +++ b/src/main/resources/static/sw.js @@ -8,7 +8,7 @@ */ -const cacheName = '60'; +const cacheName = '61'; const staticAssets = [ '/favicon.ico', @@ -17,48 +17,29 @@ const staticAssets = [ '/js/lib/bulma-collapsible.min.js', '/js/lib/bulma-slider.min.js', '/js/lib/bulma-toast.min.js', - '/js/lib/cutter.min.js', '/js/lib/fontawesome.all.js', '/js/lib/jquery.min.js', '/js/lib/jquery-ui.min.js', '/js/lib/matter.min.js', - '/js/lib/Mp3LameEncoder.min.js', '/js/lib/notification.js', - '/js/lib/swiper.min.js', - '/js/lib/leaflet.min.js', '/js/lib/modal-fx.min.js', - '/js/tools/check-password.js', - '/js/tools/get-notification.js', + '/js/tools/check-password.js', '/js/tools/get-text.js', '/js/tools/loader.js', '/js/tools/modal.js', '/js/tools/refresh-captcha.js', - '/js/tools/copy-clipboard.js', '/js/alovoa.js', '/js/delete-account.js', - '/js/donate.js', '/js/donate-list.js', '/js/imprint.js', '/js/index.js', '/js/login.js', - '/js/message.js', - '/js/message-detail.js', '/js/password-change.js', - '/js/password-reset.js', - '/js/profile.js', - '/js/profile-onboarding.js', - '/js/register.js', - '/js/register-oauth.js', '/js/search.js', - '/js/user-profile.js', - '/js/user-profile-lib.js', '/css/lib/bulma.min.css', - '/css/lib/bulma.orange.css', - '/css/lib/bulma.purple.css', - '/css/lib/bulma.blue.css', '/css/lib/bulma-collapsible.min.css', '/css/lib/bulma-slider.min.css', '/css/lib/bulma-switch.min.css', @@ -68,19 +49,11 @@ const staticAssets = [ '/css/lib/modal-fx.min.css', '/css/lib/animate.min.css', - '/css/snips/ui-angular.css', - '/css/alovoa.css', - '/css/donate.css', '/css/donate-list.css', '/css/index.css', - '/css/message-detail.css', - '/css/notification.css', '/css/privacy.css', '/css/search.css', - '/css/profile.css', - '/css/profile-onboarding.css', - '/css/user-profile.css', '/img/search-cover.webp', '/img/ios-pwa.webp', @@ -88,8 +61,6 @@ const staticAssets = [ '/img/android-chrome-512x512.png', '/img/apple-touch-icon.png', '/img/share.png', - '/img/f-icon.svg', - '/img/g-icon.svg', '/img/m-icon.svg', '/img/r-icon.svg', '/img/t-icon.svg', @@ -106,16 +77,7 @@ const staticAssets = [ '/img/profile/7.png', '/img/profile/8.png', '/img/profile/9.png', - '/img/profile/10.png', - - '/img/onboarding/add-verification.svg', - '/img/onboarding/verification.svg', - '/img/onboarding/description.svg', - '/img/onboarding/genders.svg', - '/img/onboarding/intention.svg', - '/img/onboarding/interests.svg', - '/img/onboarding/match.svg', - '/img/onboarding/profilepic.svg' + '/img/profile/10.png' ]; diff --git a/src/main/resources/templates/admin-search.html b/src/main/resources/templates/admin-search.html new file mode 100644 index 00000000..667ff09e --- /dev/null +++ b/src/main/resources/templates/admin-search.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/admin-verification.html b/src/main/resources/templates/admin-verification.html index 6aa1f093..a337420f 100644 --- a/src/main/resources/templates/admin-verification.html +++ b/src/main/resources/templates/admin-verification.html @@ -11,8 +11,6 @@ - - diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html index e79a46f9..75e44907 100644 --- a/src/main/resources/templates/admin.html +++ b/src/main/resources/templates/admin.html @@ -11,8 +11,6 @@ - - @@ -21,7 +19,7 @@
    -
    +

    @@ -111,7 +109,7 @@

    Add donation

    diff --git a/src/main/resources/templates/blocked-users.html b/src/main/resources/templates/blocked-users.html deleted file mode 100644 index 6a082663..00000000 --- a/src/main/resources/templates/blocked-users.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/delete-account.html b/src/main/resources/templates/delete-account.html deleted file mode 100644 index 0f98e379..00000000 --- a/src/main/resources/templates/delete-account.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - -
    -
    -

    - -
    - -
    - -
    -
    -
    -
    - -
    - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/disliked-users.html b/src/main/resources/templates/disliked-users.html deleted file mode 100644 index 8a340031..00000000 --- a/src/main/resources/templates/disliked-users.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/donate-list.html b/src/main/resources/templates/donate-list.html index 145084a1..cd22c2eb 100644 --- a/src/main/resources/templates/donate-list.html +++ b/src/main/resources/templates/donate-list.html @@ -12,8 +12,6 @@ - - @@ -21,7 +19,7 @@
    -
    +
    -
    - - -
    - -
    - -
    - -
    -
    - - -
    @@ -452,463 +211,6 @@ -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - ♈︎ - ♉︎ - ♊︎ - ♋︎ - ♌︎ - ♍︎ - ♎︎ - ♏︎ - ♐︎ - ♑︎ - ♒︎ - ♓︎ - - - - -
    - - - - - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    - - - - -
    -
    -
    - - -
    -
    - - -
    -
    - -
    - - - -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - - -
    -
    - - - - -
    - - -
    - - - - -
    -
    -
    -
    - - - -
    -
    - -
    -
    -
    -
    - -
    - - -
    - - -
    - -
    - -
    - -
    diff --git a/src/main/resources/templates/imprint.html b/src/main/resources/templates/imprint.html index c337a62c..d3745dd1 100644 --- a/src/main/resources/templates/imprint.html +++ b/src/main/resources/templates/imprint.html @@ -10,8 +10,6 @@ - - @@ -21,7 +19,7 @@
    -
    +

    diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 1523b472..aced14ef 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,5 +1,5 @@ - + @@ -16,8 +16,6 @@ - - @@ -48,7 +46,7 @@
    -
    +
    @@ -58,7 +56,7 @@

    + th:href="${@environment.getProperty('app.url.front-end')}">
    diff --git a/src/main/resources/templates/liked-users.html b/src/main/resources/templates/liked-users.html deleted file mode 100644 index e944ab53..00000000 --- a/src/main/resources/templates/liked-users.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index 1baa36f8..fd850a0c 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -1,120 +1,90 @@ - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + -
    -
    -
    +
    +
    -
    -
    -

    -

    +
    +
    +

    +

    -
    -
    - - - - -
    -
    -
    -
    -

    -
    -
    - -
    - -
    -
    +
    +
    + + + + +
    +
    +
    +
    +

    + +
    + +
    + +
    +
    -
    - -
    - -
    -
    -
    -
    - -
    - - -
    -
    -
    +
    + +
    + +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    -
    - - -
    -
    -
    -
    -

    - -

    -

    - -

    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/message-detail.html b/src/main/resources/templates/message-detail.html deleted file mode 100644 index 9c74b2b6..00000000 --- a/src/main/resources/templates/message-detail.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/messages.html b/src/main/resources/templates/messages.html deleted file mode 100644 index 74a19c84..00000000 --- a/src/main/resources/templates/messages.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/notification.html b/src/main/resources/templates/notification.html deleted file mode 100644 index e923acad..00000000 --- a/src/main/resources/templates/notification.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/password-change.html b/src/main/resources/templates/password-change.html index e345c382..3d3ee9cf 100644 --- a/src/main/resources/templates/password-change.html +++ b/src/main/resources/templates/password-change.html @@ -1,62 +1,60 @@ - + - - - - - - - - - - - - - - + + + + + + + + + + + + -
    -
    -
    -
    -
    -

    -
    -
    - -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +

    +
    +
    + +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/password-reset.html b/src/main/resources/templates/password-reset.html deleted file mode 100644 index 69b18b38..00000000 --- a/src/main/resources/templates/password-reset.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -

    -
    -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/privacy.html b/src/main/resources/templates/privacy.html index 55d14e70..8a4988b8 100644 --- a/src/main/resources/templates/privacy.html +++ b/src/main/resources/templates/privacy.html @@ -10,8 +10,6 @@ - - @@ -20,7 +18,7 @@
    -
    +
    diff --git a/src/main/resources/templates/profile-onboarding.html b/src/main/resources/templates/profile-onboarding.html deleted file mode 100755 index b48c26c1..00000000 --- a/src/main/resources/templates/profile-onboarding.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
    - -
    - - -
    -
    -
    -
    - - - -
    -
    -
    -
    - - -
    - - - - -
    -
    -
    -
    -
    - - -
    - - - - - -
    - -
    -
    -
    -
    - - -
    - - -
    -
    - - - -
    - -
    -
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/profile.html b/src/main/resources/templates/profile.html deleted file mode 100644 index bcc0661f..00000000 --- a/src/main/resources/templates/profile.html +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - -
    - , -
    -
    - -
    - -
    - -
    -
    -
    -
    -
    - -
    - - - - -
    -
    - -
    -
    - -
    Verify yourself! -
    -
    -
    - -
    -
    - -
    -
    - - -
    -
    - -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    -
    - - -
    - -
    - -
    - -
    -
    - -
    - - -
    - - -
    -
    -
    -
    - -
    -
    -
    - - - - -
    -
    -
    -
    -
    - -
    - - -
    -
    -
    - -
    - - -
    -
    -
    -
    -
    -
    -
    - -
    -
    - - -
    -
    - -
    -
    -
    - - -
    -
    -
    - -
    - - -
    -
    -
    -
    -
    - -
    - -
    - -
    -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    -
    - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    -
    -
    -
    -
    - - - -
    - - -
    - -
    - -
    -
    -
    - -
    - -
    - -
    -
    - .mp3 .wav -
    - -
    -
    -
    - -
    -
    - -
    - - - - -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - -
    -
    - - -
    - - - -
    -
    - -
    - -
    - -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    - - - - - -
    -
    -
    - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/register-oauth.html b/src/main/resources/templates/register-oauth.html deleted file mode 100644 index b08eedf2..00000000 --- a/src/main/resources/templates/register-oauth.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    -

    -
    -
    -
    - * -
    - -
    -
    -
    - -
    -
    - * -
    - -
    -
    - -
    - * -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/register.html b/src/main/resources/templates/register.html deleted file mode 100644 index 860ce36b..00000000 --- a/src/main/resources/templates/register.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    -

    - - - - -
    -
    -
    - - -
    -
    -
    -
    -

    - -

    -
    -
    -
    -
    - - - -
    - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/search.html b/src/main/resources/templates/search.html deleted file mode 100644 index 3b052e09..00000000 --- a/src/main/resources/templates/search.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    - -
    -
    - -
    - -
    -
    - - - - - - - -
    - -
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/tos.html b/src/main/resources/templates/tos.html index 18b4b22b..b91b6dbd 100644 --- a/src/main/resources/templates/tos.html +++ b/src/main/resources/templates/tos.html @@ -10,8 +10,6 @@ - - @@ -20,7 +18,7 @@
    -
    +
    diff --git a/src/main/resources/templates/user-profile.html b/src/main/resources/templates/user-profile.html deleted file mode 100644 index 73175bd2..00000000 --- a/src/main/resources/templates/user-profile.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - -
    -
    - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/test/java/com/nonononoki/alovoa/html/BlockedUsersResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/BlockedUsersResourceTest.java deleted file mode 100644 index d57224c6..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/BlockedUsersResourceTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; - -import java.util.Date; -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserBlock; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class BlockedUsersResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private BlockedUsersResource blockedUsersResource; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - - User user = testUsers.get(0); - User blockUser = testUsers.get(1); - Mockito.when(authService.getCurrentUser()).thenReturn(user); - Mockito.when(authService.getCurrentUser(true)).thenReturn(user); - UserBlock block = new UserBlock(); - block.setUserFrom(user); - block.setUserTo(blockUser); - block.setDate(new Date()); - user.getBlockedUsers().add(block); - userRepo.saveAndFlush(user); - - blockedUsersResource.blockedUsers(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/DonateListResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/DonateListResourceTest.java deleted file mode 100644 index c3adc87d..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/DonateListResourceTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.nonononoki.alovoa.html; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class DonateListResourceTest { - - @Autowired - private DonateListResource donateListResource; - - @Test - void test() throws Exception { - donateListResource.donateList(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/DonateResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/DonateResourceTest.java deleted file mode 100644 index c5739ba1..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/DonateResourceTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; - -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class DonateResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private DonateResource donateResource; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - Mockito.when(authService.getCurrentUser()).thenReturn(testUsers.get(0)); - Mockito.when(authService.getCurrentUser(true)).thenReturn(testUsers.get(0)); - donateResource.donate(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/MessageResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/MessageResourceTest.java deleted file mode 100644 index 2984167d..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/MessageResourceTest.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.Conversation; -import com.nonononoki.alovoa.entity.user.Message; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class MessageResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private MessageResource messageResource; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - - User user = testUsers.get(2); - User currUser = testUsers.get(1); - - Mockito.when(authService.getCurrentUser()).thenReturn(currUser); - Mockito.when(authService.getCurrentUser(true)).thenReturn(currUser); - messageResource.chats(); - - List messages = new ArrayList<>(); - - Message message = new Message(); - message.setAllowedFormatting(false); - message.setContent("test"); - message.setDate(new Date()); - message.setUserFrom(currUser); - message.setUserTo(user); - - messages.add(message); - - Conversation convo = new Conversation(); - convo.setUsers(new ArrayList<>()); - convo.setDate(new Date()); - convo.getUsers().add(currUser); - convo.getUsers().add(user); - convo.setLastUpdated(new Date()); - convo.setMessages(messages); - convo = conversationRepo.saveAndFlush(convo); - - messageResource.chatsDetail(convo.getId()); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/NotificationResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/NotificationResourceTest.java deleted file mode 100644 index 29d7ea17..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/NotificationResourceTest.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; - -import java.util.Date; -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.entity.user.UserNotification; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class NotificationResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private NotificationResource notificationResource; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - Mockito.when(authService.getCurrentUser()).thenReturn(testUsers.get(0)); - Mockito.when(authService.getCurrentUser(true)).thenReturn(testUsers.get(0)); - - User user = testUsers.get(2); - User currUser = testUsers.get(1); - - UserNotification not = new UserNotification(); - not.setContent(UserNotification.USER_LIKE); - not.setDate(new Date()); - not.setUserFrom(currUser); - not.setUserTo(user); - currUser.getNotifications().add(not); - userRepo.saveAndFlush(currUser); - - notificationResource.notification(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/PasswordResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/PasswordResourceTest.java index d0cc7ec7..3b7e5a16 100644 --- a/src/test/java/com/nonononoki/alovoa/html/PasswordResourceTest.java +++ b/src/test/java/com/nonononoki/alovoa/html/PasswordResourceTest.java @@ -79,7 +79,6 @@ void after() throws Exception { void test() throws Exception { Mockito.when(authService.getCurrentUser()).thenReturn(testUsers.get(0)); Mockito.when(authService.getCurrentUser(true)).thenReturn(testUsers.get(0)); - passwordResource.passwordReset(); passwordResource.passwordChange("tokenString"); } } diff --git a/src/test/java/com/nonononoki/alovoa/html/RegisterResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/RegisterResourceTest.java deleted file mode 100644 index 7ef289d1..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/RegisterResourceTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.nonononoki.alovoa.html; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class RegisterResourceTest { - - @Autowired - private RegisterResource registerResource; - - @Test - void test() throws Exception { - registerResource.register(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/SearchResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/SearchResourceTest.java deleted file mode 100644 index 22ecf4e9..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/SearchResourceTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; - -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; - -@SpringBootTest -@ActiveProfiles("test") -@Transactional -class SearchResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private SearchResource searchResource; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - Mockito.when(authService.getCurrentUser()).thenReturn(testUsers.get(0)); - Mockito.when(authService.getCurrentUser(true)).thenReturn(testUsers.get(0)); - searchResource.search(); - } -} diff --git a/src/test/java/com/nonononoki/alovoa/html/UserProfileResourceTest.java b/src/test/java/com/nonononoki/alovoa/html/UserProfileResourceTest.java deleted file mode 100644 index 1d276a5b..00000000 --- a/src/test/java/com/nonononoki/alovoa/html/UserProfileResourceTest.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.nonononoki.alovoa.html; - -import static org.mockito.ArgumentMatchers.any; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import java.util.List; - -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.ResultActions; -import org.springframework.transaction.annotation.Transactional; - -import com.nonononoki.alovoa.component.TextEncryptorConverter; -import com.nonononoki.alovoa.entity.User; -import com.nonononoki.alovoa.model.UserDto; -import com.nonononoki.alovoa.repo.ConversationRepository; -import com.nonononoki.alovoa.repo.UserRepository; -import com.nonononoki.alovoa.service.AuthService; -import com.nonononoki.alovoa.service.CaptchaService; -import com.nonononoki.alovoa.service.MailService; -import com.nonononoki.alovoa.service.RegisterService; -import com.nonononoki.alovoa.service.RegisterServiceTest; -import com.nonononoki.alovoa.service.UserService; -import com.nonononoki.alovoa.util.AuthTestUtil; - -@SpringBootTest -@ActiveProfiles("test") -@AutoConfigureMockMvc -@Transactional -class UserProfileResourceTest { - - @Autowired - private RegisterService registerService; - - @Autowired - private CaptchaService captchaService; - - @Autowired - private UserService userService; - - @Autowired - private UserRepository userRepo; - - @Autowired - private ConversationRepository conversationRepo; - - @Value("${app.first-name.length-max}") - private int firstNameLengthMax; - - @Value("${app.first-name.length-min}") - private int firstNameLengthMin; - - @Autowired - private MockMvc mockMvc; - - @MockBean - private AuthService authService; - - @MockBean - private MailService mailService; - - private List testUsers; - - @Autowired - private TextEncryptorConverter textEncryptor; - - @BeforeEach - void before() throws Exception { - Mockito.when(mailService.sendMail(Mockito.any(String.class), any(String.class), any(String.class), - any(String.class))).thenReturn(true); - testUsers = RegisterServiceTest.getTestUsers(captchaService, registerService, firstNameLengthMax, - firstNameLengthMin); - } - - @AfterEach - void after() throws Exception { - RegisterServiceTest.deleteAllUsers(userService, authService, captchaService, conversationRepo, userRepo); - } - - @Test - void test() throws Exception { - User currUser = testUsers.get(0); - currUser.setLocationLatitude(0.0); - currUser.setLocationLongitude(0.0); - User user = testUsers.get(1); - user.setLocationLatitude(0.0); - user.setLocationLongitude(0.0); - userRepo.save(currUser); - userRepo.save(user); - userRepo.flush(); - Mockito.when(authService.getCurrentUser()).thenReturn(currUser); - Mockito.when(authService.getCurrentUser(true)).thenReturn(currUser); - AuthTestUtil.setAuthTo(currUser); - String encodedId = UserDto.encodeId(user.getId(), textEncryptor); - - ResultActions ra = mockMvc.perform(get("/profile/view/{0}", encodedId).secure(true)); - - ra.andExpect(status().isOk()); - } -}