目前格式:HTML/XML
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<head>
<meta http-equiv="REFRESH" content="600">
<style type="text/css" th:nonce="${nonce}">
.overlay {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(51, 51, 51, 0.7);
z-index: 10;
}
.stealthy {
left: 0;
margin: 0;
max-height: 1px;
max-width: 1px;
opacity: 0;
outline: none;
overflow: hidden;
pointer-events: none;
position: absolute;
top: 0;
z-index: -1;
}
.loginFixInline1 {
background-color: #FFF;
}
.loginFixInline10 {
border-bottom: 1px #45a19a solid !important;
border-top: 0px !important;
border-left: 0px !important;
border-right: 0px !important;
font-size: 15px !important;
width: 220px !important;
}
.loginFixInline11 {
float: right;
padding-right: 40px;
}
.loginFixInline12 {
float: left;
padding-right: 10px;
padding-top: 5px;
}
.loginFixInline13 {
float: left;
padding-top: -5px;
}
.loginFixInline14 {
float: left;
font-size: 18px;
color: #333333;
font-weight: bold;
line-height: 60px;
padding-top: 30px;
}
#loginFixInline15 {
border-bottom: 1px #45a19a solid;
border-top: 0px;
border-left: 0px;
border-right: 0px;
font-size: 15px;
width: 218px;
}
.loginFixInline16 {
width: 100%;
padding-top: 180px;
font-size: 15px;
color: #FF0000;
padding-left: 0px;
}
.loginFixInline17 {
color: red
}
.loginFixInline18 {
width: 50%;
padding-top: 20px;
}
.loginFixInline19 {
float: left;
padding-top: 10px;
width: 150px;
}
.loginFixInline2 {
background-image: url('/images/AgentPorta_indexb00.jpg');
margin-bottom: -16px;
}
.loginFixInline20 {
line-height: 40px;
}
.loginFixInline21 {
width: 40%;
padding-top: 10px;
float: left;
}
.loginFixInline22 {
text-align: left;
line-height: 24px;
font-size: 14px;
color: #666666;
font-weight: bold;
}
.loginFixInline23 {
text-align: left;
line-height: 26px;
font-size: 14px;
color: #666666;
font-weight: bold;
list-style-type: decimal;
padding-left: 18px;
}
.loginFixInline24 {
padding-right: 10px;
padding-left: 0px
}
.loginFixInline3 {
background-color: #ececec;
}
.loginFixInline4 {
height: auto;
max-width: 100%;
max-height: 100%;
}
.loginFixInline5 {
width: 93%;
padding-top: 35px;
}
.loginFixInline6 {
float: left;
width: 450px;
padding-bottom: 0px;
background-color: #ececec;
height: 300px;
}
.loginFixInline7 {
float: left;
font-size: 18px;
color: #333333;
font-weight: bold;
line-height: 60px;
}
.loginFixInline8 {
float: right;
border: 0px #007d7d solid;
width: 380px;
height: 65px;
border-radius: 50px;
padding-left: 35px;
background-color: #FFFFFF;
}
.loginFixInline9 {
float: left;
}
.toggle-visibility {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
user-select: none;
}
</style>
</head>
<body class="loginFixInline1">
<div class="container" layout:fragment="content">
<div id="mask"></div>
<div class="container loginFixInline2">
<div class="content-wrap" align="center">
<!--隱藏menu-->
<div class="loginFixInline3">
<div class="">
<div>
<img src="/images/AgentPorta_index00_20220601.png"
th:src="@{/images/AgentPorta_index00_20220601.png}" border="0" class="loginFixInline4">
</div>
</div>
</div>
</div>
</div>
<div class="container loginFixInline3">
<div class="content-wrap loginFixInline3" align="center">
<div align="center" class="loginFixInline5">
<form name="loginForm" id="loginForm" th:action="@{/login}" th:object="${loginForm}" method="POST">
<input type="hidden" th:name="service" th:value="${service}">
<div class="loginFixInline6">
<!--帳號-->
<div class="loginFixInline7">
帳號
<div class="loginFixInline8">
<div class="loginFixInline9">
<input type="password" autocomplete="off" class="stealthy" tabindex="-1">
<!--1100900286-00--> <input type="text" data-name="userID" maxlength="10"
autocomplete="off" class="loginFixInline10"> <input type="password"
autocomplete="off" class="stealthy" tabindex="-1">
<!--1100900286-00-->
</div>
<div class="radiobutton-wrap text-left-top loginFixInline11">
<div class="checkbox-wrap text-left loginFixInline12">
<input type="checkbox" class="myCheckboxes" name="remembered"
id="remembered" value="A"><label for="remembered"></label>
</div>
<div class="loginFixInline13">
記住
</div>
</div>
</div>
</div>
<div class="loginFixInline14">
密碼
<div align="left" class="loginFixInline8">
<input type="password" autocomplete="off" class="stealthy" tabindex="-1">
<!--1100900286-00--> <input type="password" data-name="userPassword"
autocomplete="off" maxlength="16" id="loginFixInline15"> <input type="password"
autocomplete="off" class="stealthy" tabindex="-1">
<!--1100900286-00-->
</div>
</div>
<br>
<div class="loginFixInline16">
<span th:text="${Msg}" class="loginFixInline17"></span>
</div>
<div class="loginFixInline18">
<a id="login" href="#" target="_parent"><img src="../static/images/icon_login01.png"
th:src="@{/images/icon_login01.png}" alt="登入" title="登入" border="0"></a> <a
id="clear" href="#" target="_parent"><img src="../static/images/icon_cancel01.png"
th:src="@{/images/icon_cancel01.png}" alt="清除" title="清除" border="0"></a>
</div>
</div>
<div class="loginFixInline19">
<a th:href="@{/pdReset/{reLinkPath}(reLinkPath=${T(com.taiwanlife.agentportal.enums.PdResetTypeEnum).FORGET_PD.getType()})}"
target="_parent" class="loginFixInline20"><img src="/images/icon_forget01.png"
alt="忘記密碼" title="忘記密碼" border="0"></a>
<br><a
th:href="@{/pdReset/{reLinkPath}(reLinkPath=${T(com.taiwanlife.agentportal.enums.PdResetTypeEnum).RESET_ACOUNT.getType()})}"
target="_parent"><img src="/images/icon_Reset01.png" alt="重啟密碼" title="重啟密碼"
border="0"></a>
</div>
</form>
<div class="loginFixInline21">
<ol class="loginFixInline22">
<li>基於資訊安全原則:</li>
<ol class="loginFixInline23">
<li>請每三個月變更密碼。</li>
<li>密碼輸入連續錯誤五次,系統自動鎖住,請申請忘記密碼解鎖,<br>
一天內僅可申請五次。</li>
<li>帳號連續半年未使用,系統自動停用,請申請重啟帳號啟用。</li>
</ol>
</ol>
</div>
</div>
</div>
</div>
<div class="box-model" id="messageBox">
<div class="box-alert loginFixInline24">
<div class="row"></div>
<div class="text">
<p class="text-bold text-black"></p>
<p class="text-bold text-black">系統不支援 IE !</p>
<p class="text-bold text-black"></p>
</div>
</div>
</div>
</div>
<script th:nonce="${nonce}" type="text/javascript" th:inline="javascript" layout:fragment="contentScript">
//if (top != self)
// top.location = encodeURI(self.location);
function login() {
$("input[type=text][data-name]").attr("name", $("input[type=text][data-name]").attr("data-name"));
$("input[type=password][data-name]").attr("name", $("input[type=password][data-name]").attr("data-name"));
if ($('input[name="remembered"]:checked').length > 0
&& $("input[type=text][data-name]").val() != "") {
$.cookie("userId", $("input[type=text][data-name]").val().trim(), {expires: 90, path: "/"});
} else {
$.removeCookie("userId");
}
// 密碼加密for Payload display
$("input[type=password][data-name]").val(checkPw($("input[type=password][data-name]").val()));
$('#loginForm').submit();
}
function clear() {
$("form")[0].reset();
}
// Detect IE
$(window).on("load", function () {
let currBrowser = detectIE();
if (currBrowser != false) {
alert('業務e平台不支援IE瀏覽器');
document.getElementById('mask').classList.add('overlay');
}
});
$(document).ready(function () {
$('#clear').on('click', clear);
$('#login').on('click', login);
var userId = $.cookie("userId");
if (userId != undefined) {
$("input[type=text][data-name]").val(userId);
$('#remembered').prop("checked", true);
} else {
$('#remembered').prop("checked", false);
}
});
var checkPw = function (d) {var r = M(V(Y(X(d), 8 * d.length))); return r.toLowerCase()}; function M(d) {for (var _, m = "0123456789ABCDEF", f = "", r = 0; r < d.length; r++)_ = d.charCodeAt(r), f += m.charAt(_ >>> 4 & 15) + m.charAt(15 & _); return f} function X(d) {for (var _ = Array(d.length >> 2), m = 0; m < _.length; m++)_[m] = 0; for (m = 0; m < 8 * d.length; m += 8)_[m >> 5] |= (255 & d.charCodeAt(m / 8)) << m % 32; return _} function V(d) {for (var _ = "", m = 0; m < 32 * d.length; m += 8)_ += String.fromCharCode(d[m >> 5] >>> m % 32 & 255); return _} function Y(d, _) {d[_ >> 5] |= 128 << _ % 32, d[14 + (_ + 64 >>> 9 << 4)] = _; for (var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0; n < d.length; n += 16) {var h = m, t = f, g = r, e = i; f = checkPw_ii(f = checkPw_ii(f = checkPw_ii(f = checkPw_ii(f = checkPw_hh(f = checkPw_hh(f = checkPw_hh(f = checkPw_hh(f = checkPw_gg(f = checkPw_gg(f = checkPw_gg(f = checkPw_gg(f = checkPw_ff(f = checkPw_ff(f = checkPw_ff(f = checkPw_ff(f, r = checkPw_ff(r, i = checkPw_ff(i, m = checkPw_ff(m, f, r, i, d[n + 0], 7, -680876936), f, r, d[n + 1], 12, -389564586), m, f, d[n + 2], 17, 606105819), i, m, d[n + 3], 22, -1044525330), r = checkPw_ff(r, i = checkPw_ff(i, m = checkPw_ff(m, f, r, i, d[n + 4], 7, -176418897), f, r, d[n + 5], 12, 1200080426), m, f, d[n + 6], 17, -1473231341), i, m, d[n + 7], 22, -45705983), r = checkPw_ff(r, i = checkPw_ff(i, m = checkPw_ff(m, f, r, i, d[n + 8], 7, 1770035416), f, r, d[n + 9], 12, -1958414417), m, f, d[n + 10], 17, -42063), i, m, d[n + 11], 22, -1990404162), r = checkPw_ff(r, i = checkPw_ff(i, m = checkPw_ff(m, f, r, i, d[n + 12], 7, 1804603682), f, r, d[n + 13], 12, -40341101), m, f, d[n + 14], 17, -1502002290), i, m, d[n + 15], 22, 1236535329), r = checkPw_gg(r, i = checkPw_gg(i, m = checkPw_gg(m, f, r, i, d[n + 1], 5, -165796510), f, r, d[n + 6], 9, -1069501632), m, f, d[n + 11], 14, 643717713), i, m, d[n + 0], 20, -373897302), r = checkPw_gg(r, i = checkPw_gg(i, m = checkPw_gg(m, f, r, i, d[n + 5], 5, -701558691), f, r, d[n + 10], 9, 38016083), m, f, d[n + 15], 14, -660478335), i, m, d[n + 4], 20, -405537848), r = checkPw_gg(r, i = checkPw_gg(i, m = checkPw_gg(m, f, r, i, d[n + 9], 5, 568446438), f, r, d[n + 14], 9, -1019803690), m, f, d[n + 3], 14, -187363961), i, m, d[n + 8], 20, 1163531501), r = checkPw_gg(r, i = checkPw_gg(i, m = checkPw_gg(m, f, r, i, d[n + 13], 5, -1444681467), f, r, d[n + 2], 9, -51403784), m, f, d[n + 7], 14, 1735328473), i, m, d[n + 12], 20, -1926607734), r = checkPw_hh(r, i = checkPw_hh(i, m = checkPw_hh(m, f, r, i, d[n + 5], 4, -378558), f, r, d[n + 8], 11, -2022574463), m, f, d[n + 11], 16, 1839030562), i, m, d[n + 14], 23, -35309556), r = checkPw_hh(r, i = checkPw_hh(i, m = checkPw_hh(m, f, r, i, d[n + 1], 4, -1530992060), f, r, d[n + 4], 11, 1272893353), m, f, d[n + 7], 16, -155497632), i, m, d[n + 10], 23, -1094730640), r = checkPw_hh(r, i = checkPw_hh(i, m = checkPw_hh(m, f, r, i, d[n + 13], 4, 681279174), f, r, d[n + 0], 11, -358537222), m, f, d[n + 3], 16, -722521979), i, m, d[n + 6], 23, 76029189), r = checkPw_hh(r, i = checkPw_hh(i, m = checkPw_hh(m, f, r, i, d[n + 9], 4, -640364487), f, r, d[n + 12], 11, -421815835), m, f, d[n + 15], 16, 530742520), i, m, d[n + 2], 23, -995338651), r = checkPw_ii(r, i = checkPw_ii(i, m = checkPw_ii(m, f, r, i, d[n + 0], 6, -198630844), f, r, d[n + 7], 10, 1126891415), m, f, d[n + 14], 15, -1416354905), i, m, d[n + 5], 21, -57434055), r = checkPw_ii(r, i = checkPw_ii(i, m = checkPw_ii(m, f, r, i, d[n + 12], 6, 1700485571), f, r, d[n + 3], 10, -1894986606), m, f, d[n + 10], 15, -1051523), i, m, d[n + 1], 21, -2054922799), r = checkPw_ii(r, i = checkPw_ii(i, m = checkPw_ii(m, f, r, i, d[n + 8], 6, 1873313359), f, r, d[n + 15], 10, -30611744), m, f, d[n + 6], 15, -1560198380), i, m, d[n + 13], 21, 1309151649), r = checkPw_ii(r, i = checkPw_ii(i, m = checkPw_ii(m, f, r, i, d[n + 4], 6, -145523070), f, r, d[n + 11], 10, -1120210379), m, f, d[n + 2], 15, 718787259), i, m, d[n + 9], 21, -343485551), m = safe_add(m, h), f = safe_add(f, t), r = safe_add(r, g), i = safe_add(i, e)} return Array(m, f, r, i)} function checkPw_cmn(d, _, m, f, r, i) {return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m)} function checkPw_ff(d, _, m, f, r, i, n) {return checkPw_cmn(_ & m | ~_ & f, d, _, r, i, n)} function checkPw_gg(d, _, m, f, r, i, n) {return checkPw_cmn(_ & f | m & ~f, d, _, r, i, n)} function checkPw_hh(d, _, m, f, r, i, n) {return checkPw_cmn(_ ^ m ^ f, d, _, r, i, n)} function checkPw_ii(d, _, m, f, r, i, n) {return checkPw_cmn(m ^ (_ | ~f), d, _, r, i, n)} function safe_add(d, _) {var m = (65535 & d) + (65535 & _); return (d >> 16) + (_ >> 16) + (m >> 16) << 16 | 65535 & m} function bit_rol(d, _) {return d << _ | d >>> 32 - _}
</script>
</body>
</html>
PCFkb2N0eXBlIGh0bWw+CjxodG1sIHhtbG5zOnRoPSJodHRwOi8vd3d3LnRoeW1lbGVhZi5vcmciIHhtbG5zOmxheW91dD0iaHR0cDovL3d3dy51bHRyYXEubmV0Lm56L3RoeW1lbGVhZi9sYXlvdXQiCglsYXlvdXQ6ZGVjb3JhdGU9In57bGF5b3V0L2xheW91dH0iPgoKPGhlYWQ+Cgk8bWV0YSBodHRwLWVxdWl2PSJSRUZSRVNIIiBjb250ZW50PSI2MDAiPgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aDpub25jZT0iJHtub25jZX0iPgoJCS5vdmVybGF5IHsKCQkJcG9zaXRpb246IGZpeGVkOwoJCQl3aWR0aDogMTAwJTsKCQkJaGVpZ2h0OiAxMDAlOwoJCQlsZWZ0OiAwOwoJCQl0b3A6IDA7CgkJCWJhY2tncm91bmQ6IHJnYmEoNTEsIDUxLCA1MSwgMC43KTsKCQkJei1pbmRleDogMTA7CgkJfQoKCQkuc3RlYWx0aHkgewoJCQlsZWZ0OiAwOwoJCQltYXJnaW46IDA7CgkJCW1heC1oZWlnaHQ6IDFweDsKCQkJbWF4LXdpZHRoOiAxcHg7CgkJCW9wYWNpdHk6IDA7CgkJCW91dGxpbmU6IG5vbmU7CgkJCW92ZXJmbG93OiBoaWRkZW47CgkJCXBvaW50ZXItZXZlbnRzOiBub25lOwoJCQlwb3NpdGlvbjogYWJzb2x1dGU7CgkJCXRvcDogMDsKCQkJei1pbmRleDogLTE7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUxIHsKCQkJYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsKCQl9CgoJCS5sb2dpbkZpeElubGluZTEwIHsKCQkJYm9yZGVyLWJvdHRvbTogMXB4ICM0NWExOWEgc29saWQgIWltcG9ydGFudDsKCQkJYm9yZGVyLXRvcDogMHB4ICFpbXBvcnRhbnQ7CgkJCWJvcmRlci1sZWZ0OiAwcHggIWltcG9ydGFudDsKCQkJYm9yZGVyLXJpZ2h0OiAwcHggIWltcG9ydGFudDsKCQkJZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7CgkJCXdpZHRoOiAyMjBweCAhaW1wb3J0YW50OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lMTEgewoJCQlmbG9hdDogcmlnaHQ7CgkJCXBhZGRpbmctcmlnaHQ6IDQwcHg7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUxMiB7CgkJCWZsb2F0OiBsZWZ0OwoJCQlwYWRkaW5nLXJpZ2h0OiAxMHB4OwoJCQlwYWRkaW5nLXRvcDogNXB4OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lMTMgewoJCQlmbG9hdDogbGVmdDsKCQkJcGFkZGluZy10b3A6IC01cHg7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUxNCB7CgkJCWZsb2F0OiBsZWZ0OwoJCQlmb250LXNpemU6IDE4cHg7CgkJCWNvbG9yOiAjMzMzMzMzOwoJCQlmb250LXdlaWdodDogYm9sZDsKCQkJbGluZS1oZWlnaHQ6IDYwcHg7CgkJCXBhZGRpbmctdG9wOiAzMHB4OwoJCX0KCgkJI2xvZ2luRml4SW5saW5lMTUgewoJCQlib3JkZXItYm90dG9tOiAxcHggIzQ1YTE5YSBzb2xpZDsKCQkJYm9yZGVyLXRvcDogMHB4OwoJCQlib3JkZXItbGVmdDogMHB4OwoJCQlib3JkZXItcmlnaHQ6IDBweDsKCQkJZm9udC1zaXplOiAxNXB4OwoJCQl3aWR0aDogMjE4cHg7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUxNiB7CgkJCXdpZHRoOiAxMDAlOwoJCQlwYWRkaW5nLXRvcDogMTgwcHg7CgkJCWZvbnQtc2l6ZTogMTVweDsKCQkJY29sb3I6ICNGRjAwMDA7CgkJCXBhZGRpbmctbGVmdDogMHB4OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lMTcgewoJCQljb2xvcjogcmVkCgkJfQoKCQkubG9naW5GaXhJbmxpbmUxOCB7CgkJCXdpZHRoOiA1MCU7CgkJCXBhZGRpbmctdG9wOiAyMHB4OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lMTkgewoJCQlmbG9hdDogbGVmdDsKCQkJcGFkZGluZy10b3A6IDEwcHg7CgkJCXdpZHRoOiAxNTBweDsKCQl9CgoJCS5sb2dpbkZpeElubGluZTIgewoJCQliYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvQWdlbnRQb3J0YV9pbmRleGIwMC5qcGcnKTsKCQkJbWFyZ2luLWJvdHRvbTogLTE2cHg7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUyMCB7CgkJCWxpbmUtaGVpZ2h0OiA0MHB4OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lMjEgewoJCQl3aWR0aDogNDAlOwoJCQlwYWRkaW5nLXRvcDogMTBweDsKCQkJZmxvYXQ6IGxlZnQ7CgkJfQoKCQkubG9naW5GaXhJbmxpbmUyMiB7CgkJCXRleHQtYWxpZ246IGxlZnQ7CgkJCWxpbmUtaGVpZ2h0OiAyNHB4OwoJCQlmb250LXNpemU6IDE0cHg7CgkJCWNvbG9yOiAjNjY2NjY2OwoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCS5sb2dpbkZpeElubGluZTIzIHsKCQkJdGV4dC1hbGlnbjogbGVmdDsKCQkJbGluZS1oZWlnaHQ6IDI2cHg7CgkJCWZvbnQtc2l6ZTogMTRweDsKCQkJY29sb3I6ICM2NjY2NjY7CgkJCWZvbnQtd2VpZ2h0OiBib2xkOwoJCQlsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7CgkJCXBhZGRpbmctbGVmdDogMThweDsKCQl9CgoJCS5sb2dpbkZpeElubGluZTI0IHsKCQkJcGFkZGluZy1yaWdodDogMTBweDsKCQkJcGFkZGluZy1sZWZ0OiAwcHgKCQl9CgoJCS5sb2dpbkZpeElubGluZTMgewoJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOwoJCX0KCgkJLmxvZ2luRml4SW5saW5lNCB7CgkJCWhlaWdodDogYXV0bzsKCQkJbWF4LXdpZHRoOiAxMDAlOwoJCQltYXgtaGVpZ2h0OiAxMDAlOwoJCX0KCgkJLmxvZ2luRml4SW5saW5lNSB7CgkJCXdpZHRoOiA5MyU7CgkJCXBhZGRpbmctdG9wOiAzNXB4OwoJCX0KCgkJLmxvZ2luRml4SW5saW5lNiB7CgkJCWZsb2F0OiBsZWZ0OwoJCQl3aWR0aDogNDUwcHg7CgkJCXBhZGRpbmctYm90dG9tOiAwcHg7CgkJCWJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7CgkJCWhlaWdodDogMzAwcHg7CgkJfQoKCQkubG9naW5GaXhJbmxpbmU3IHsKCQkJZmxvYXQ6IGxlZnQ7CgkJCWZvbnQtc2l6ZTogMThweDsKCQkJY29sb3I6ICMzMzMzMzM7CgkJCWZvbnQtd2VpZ2h0OiBib2xkOwoJCQlsaW5lLWhlaWdodDogNjBweDsKCQl9CgoJCS5sb2dpbkZpeElubGluZTggewoJCQlmbG9hdDogcmlnaHQ7CgkJCWJvcmRlcjogMHB4ICMwMDdkN2Qgc29saWQ7CgkJCXdpZHRoOiAzODBweDsKCQkJaGVpZ2h0OiA2NXB4OwoJCQlib3JkZXItcmFkaXVzOiA1MHB4OwoJCQlwYWRkaW5nLWxlZnQ6IDM1cHg7CgkJCWJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7CgkJfQoKCQkubG9naW5GaXhJbmxpbmU5IHsKCQkJZmxvYXQ6IGxlZnQ7CgkJfQoKCQkudG9nZ2xlLXZpc2liaWxpdHkgewoJCQlwb3NpdGlvbjogYWJzb2x1dGU7CgkJCXJpZ2h0OiAxMHB4OwoJCQl0b3A6IDUwJTsKCQkJdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwoJCQljdXJzb3I6IHBvaW50ZXI7CgkJCXVzZXItc2VsZWN0OiBub25lOwoJCX0KCTwvc3R5bGU+CjwvaGVhZD4KCjxib2R5IGNsYXNzPSJsb2dpbkZpeElubGluZTEiPgoJPGRpdiBjbGFzcz0iY29udGFpbmVyIiBsYXlvdXQ6ZnJhZ21lbnQ9ImNvbnRlbnQiPgoJCTxkaXYgaWQ9Im1hc2siPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciBsb2dpbkZpeElubGluZTIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXAiIGFsaWduPSJjZW50ZXIiPgoJCQkJPCEtLemaseiXj21lbnUtLT4KCQkJCTxkaXYgY2xhc3M9ImxvZ2luRml4SW5saW5lMyI+CgkJCQkJPGRpdiBjbGFzcz0iIj4KCQkJCQkJPGRpdj4KCQkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL0FnZW50UG9ydGFfaW5kZXgwMF8yMDIyMDYwMS5wbmciCgkJCQkJCQkJdGg6c3JjPSJAey9pbWFnZXMvQWdlbnRQb3J0YV9pbmRleDAwXzIwMjIwNjAxLnBuZ30iIGJvcmRlcj0iMCIgY2xhc3M9ImxvZ2luRml4SW5saW5lNCI+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciBsb2dpbkZpeElubGluZTMiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXAgbG9naW5GaXhJbmxpbmUzIiBhbGlnbj0iY2VudGVyIj4KCQkJCTxkaXYgYWxpZ249ImNlbnRlciIgY2xhc3M9ImxvZ2luRml4SW5saW5lNSI+CgkJCQkJPGZvcm0gbmFtZT0ibG9naW5Gb3JtIiBpZD0ibG9naW5Gb3JtIiB0aDphY3Rpb249IkB7L2xvZ2lufSIgdGg6b2JqZWN0PSIke2xvZ2luRm9ybX0iIG1ldGhvZD0iUE9TVCI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHRoOm5hbWU9InNlcnZpY2UiIHRoOnZhbHVlPSIke3NlcnZpY2V9Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibG9naW5GaXhJbmxpbmU2Ij4KCQkJCQkJCTwhLS3luLPomZ8tLT4KCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ2luRml4SW5saW5lNyI+CgkJCQkJCQkJ5biz6Jmf44CACgkJCQkJCQkJPGRpdiBjbGFzcz0ibG9naW5GaXhJbmxpbmU4Ij4KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibG9naW5GaXhJbmxpbmU5Ij4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJwYXNzd29yZCIgYXV0b2NvbXBsZXRlPSJvZmYiIGNsYXNzPSJzdGVhbHRoeSIgdGFiaW5kZXg9Ii0xIj4KCQkJCQkJCQkJCTwhLS0xMTAwOTAwMjg2LTAwLS0+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBkYXRhLW5hbWU9InVzZXJJRCIgbWF4bGVuZ3RoPSIxMCIKCQkJCQkJCQkJCQlhdXRvY29tcGxldGU9Im9mZiIgY2xhc3M9ImxvZ2luRml4SW5saW5lMTAiPiA8aW5wdXQgdHlwZT0icGFzc3dvcmQiCgkJCQkJCQkJCQkJYXV0b2NvbXBsZXRlPSJvZmYiIGNsYXNzPSJzdGVhbHRoeSIgdGFiaW5kZXg9Ii0xIj4KCQkJCQkJCQkJCTwhLS0xMTAwOTAwMjg2LTAwLS0+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJyYWRpb2J1dHRvbi13cmFwIHRleHQtbGVmdC10b3AgbG9naW5GaXhJbmxpbmUxMSI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjaGVja2JveC13cmFwIHRleHQtbGVmdCBsb2dpbkZpeElubGluZTEyIj4KCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJteUNoZWNrYm94ZXMiIG5hbWU9InJlbWVtYmVyZWQiCgkJCQkJCQkJCQkJCWlkPSJyZW1lbWJlcmVkIiB2YWx1ZT0iQSI+PGxhYmVsIGZvcj0icmVtZW1iZXJlZCI+PC9sYWJlbD4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0ibG9naW5GaXhJbmxpbmUxMyI+CgkJCQkJCQkJCQkJ6KiY5L2PCgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ2luRml4SW5saW5lMTQiPgoJCQkJCQkJCeWvhueivOOAgAoJCQkJCQkJCTxkaXYgYWxpZ249ImxlZnQiIGNsYXNzPSJsb2dpbkZpeElubGluZTgiPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBjbGFzcz0ic3RlYWx0aHkiIHRhYmluZGV4PSItMSI+CgkJCQkJCQkJCTwhLS0xMTAwOTAwMjg2LTAwLS0+IDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgZGF0YS1uYW1lPSJ1c2VyUGFzc3dvcmQiCgkJCQkJCQkJCQlhdXRvY29tcGxldGU9Im9mZiIgbWF4bGVuZ3RoPSIxNiIgaWQ9ImxvZ2luRml4SW5saW5lMTUiPiA8aW5wdXQgdHlwZT0icGFzc3dvcmQiCgkJCQkJCQkJCQlhdXRvY29tcGxldGU9Im9mZiIgY2xhc3M9InN0ZWFsdGh5IiB0YWJpbmRleD0iLTEiPgoJCQkJCQkJCQk8IS0tMTEwMDkwMDI4Ni0wMC0tPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8YnI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJsb2dpbkZpeElubGluZTE2Ij4KCQkJCQkJCQk8c3BhbiB0aDp0ZXh0PSIke01zZ30iIGNsYXNzPSJsb2dpbkZpeElubGluZTE3Ij48L3NwYW4+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ2luRml4SW5saW5lMTgiPgoJCQkJCQkJCTxhIGlkPSJsb2dpbiIgaHJlZj0iIyIgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iLi4vc3RhdGljL2ltYWdlcy9pY29uX2xvZ2luMDEucG5nIgoJCQkJCQkJCQkJdGg6c3JjPSJAey9pbWFnZXMvaWNvbl9sb2dpbjAxLnBuZ30iIGFsdD0i55m75YWlIiB0aXRsZT0i55m75YWlIiBib3JkZXI9IjAiPjwvYT4gPGEKCQkJCQkJCQkJaWQ9ImNsZWFyIiBocmVmPSIjIiB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSIuLi9zdGF0aWMvaW1hZ2VzL2ljb25fY2FuY2VsMDEucG5nIgoJCQkJCQkJCQkJdGg6c3JjPSJAey9pbWFnZXMvaWNvbl9jYW5jZWwwMS5wbmd9IiBhbHQ9Iua4hemZpCIgdGl0bGU9Iua4hemZpCIgYm9yZGVyPSIwIj48L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxvZ2luRml4SW5saW5lMTkiPgoJCQkJCQkJPGEgdGg6aHJlZj0iQHsvcGRSZXNldC97cmVMaW5rUGF0aH0ocmVMaW5rUGF0aD0ke1QoY29tLnRhaXdhbmxpZmUuYWdlbnRwb3J0YWwuZW51bXMuUGRSZXNldFR5cGVFbnVtKS5GT1JHRVRfUEQuZ2V0VHlwZSgpfSl9IgoJCQkJCQkJCXRhcmdldD0iX3BhcmVudCIgY2xhc3M9ImxvZ2luRml4SW5saW5lMjAiPjxpbWcgc3JjPSIvaW1hZ2VzL2ljb25fZm9yZ2V0MDEucG5nIgoJCQkJCQkJCQlhbHQ9IuW/mOiomOWvhueivCIgdGl0bGU9IuW/mOiomOWvhueivCIgYm9yZGVyPSIwIj48L2E+CgkJCQkJCQk8YnI+PGEKCQkJCQkJCQl0aDpocmVmPSJAey9wZFJlc2V0L3tyZUxpbmtQYXRofShyZUxpbmtQYXRoPSR7VChjb20udGFpd2FubGlmZS5hZ2VudHBvcnRhbC5lbnVtcy5QZFJlc2V0VHlwZUVudW0pLlJFU0VUX0FDT1VOVC5nZXRUeXBlKCl9KX0iCgkJCQkJCQkJdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iL2ltYWdlcy9pY29uX1Jlc2V0MDEucG5nIiBhbHQ9IumHjeWVn+WvhueivCIgdGl0bGU9IumHjeWVn+WvhueivCIKCQkJCQkJCQkJYm9yZGVyPSIwIj48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZm9ybT4KCQkJCQk8ZGl2IGNsYXNzPSJsb2dpbkZpeElubGluZTIxIj4KCQkJCQkJPG9sIGNsYXNzPSJsb2dpbkZpeElubGluZTIyIj4KCQkJCQkJCTxsaT7ln7rmlrzos4foqIrlronlhajljp/liYfvvJo8L2xpPgoJCQkJCQkJPG9sIGNsYXNzPSJsb2dpbkZpeElubGluZTIzIj4KCQkJCQkJCQk8bGk+6KuL5q+P5LiJ5YCL5pyI6K6K5pu05a+G56K844CCPC9saT4KCQkJCQkJCQk8bGk+5a+G56K86Ly45YWl6YCj57qM6Yyv6Kqk5LqU5qyh77yM57O757Wx6Ieq5YuV6Y6W5L2P77yM6KuL55Sz6KuL5b+Y6KiY5a+G56K86Kej6Y6W77yMPGJyPgoJCQkJCQkJCQnkuIDlpKnlhaflg4Xlj6/nlLPoq4vkupTmrKHjgII8L2xpPgoJCQkJCQkJCTxsaT7luLPomZ/pgKPnuozljYrlubTmnKrkvb/nlKjvvIzns7vntbHoh6rli5XlgZznlKjvvIzoq4vnlLPoq4vph43llZ/luLPomZ/llZ/nlKjjgII8L2xpPgoJCQkJCQkJPC9vbD4KCQkJCQkJPC9vbD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJib3gtbW9kZWwiIGlkPSJtZXNzYWdlQm94Ij4KCQkJPGRpdiBjbGFzcz0iYm94LWFsZXJ0IGxvZ2luRml4SW5saW5lMjQiPgoJCQkJPGRpdiBjbGFzcz0icm93Ij48L2Rpdj4KCQkJCTxkaXYgY2xhc3M9InRleHQiPgoJCQkJCTxwIGNsYXNzPSJ0ZXh0LWJvbGQgdGV4dC1ibGFjayI+PC9wPgoJCQkJCTxwIGNsYXNzPSJ0ZXh0LWJvbGQgdGV4dC1ibGFjayI+57O757Wx5LiN5pSv5o+0IElFICE8L3A+CgkJCQkJPHAgY2xhc3M9InRleHQtYm9sZCB0ZXh0LWJsYWNrIj48L3A+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxzY3JpcHQgdGg6bm9uY2U9IiR7bm9uY2V9IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHRoOmlubGluZT0iamF2YXNjcmlwdCIgbGF5b3V0OmZyYWdtZW50PSJjb250ZW50U2NyaXB0Ij4KCQkvL2lmICh0b3AgIT0gc2VsZikKCQkvLyAgICB0b3AubG9jYXRpb24gPSBlbmNvZGVVUkkoc2VsZi5sb2NhdGlvbik7CgoJCWZ1bmN0aW9uIGxvZ2luKCkgewoJCQkkKCJpbnB1dFt0eXBlPXRleHRdW2RhdGEtbmFtZV0iKS5hdHRyKCJuYW1lIiwgJCgiaW5wdXRbdHlwZT10ZXh0XVtkYXRhLW5hbWVdIikuYXR0cigiZGF0YS1uYW1lIikpOwoJCQkkKCJpbnB1dFt0eXBlPXBhc3N3b3JkXVtkYXRhLW5hbWVdIikuYXR0cigibmFtZSIsICQoImlucHV0W3R5cGU9cGFzc3dvcmRdW2RhdGEtbmFtZV0iKS5hdHRyKCJkYXRhLW5hbWUiKSk7CgkJCWlmICgkKCdpbnB1dFtuYW1lPSJyZW1lbWJlcmVkIl06Y2hlY2tlZCcpLmxlbmd0aCA+IDAKCQkJCSYmICQoImlucHV0W3R5cGU9dGV4dF1bZGF0YS1uYW1lXSIpLnZhbCgpICE9ICIiKSB7CgkJCQkkLmNvb2tpZSgidXNlcklkIiwgJCgiaW5wdXRbdHlwZT10ZXh0XVtkYXRhLW5hbWVdIikudmFsKCkudHJpbSgpLCB7ZXhwaXJlczogOTAsIHBhdGg6ICIvIn0pOwoJCQl9IGVsc2UgewoJCQkJJC5yZW1vdmVDb29raWUoInVzZXJJZCIpOwoJCQl9CgkJCS8vIOWvhueivOWKoOWvhmZvciBQYXlsb2FkIGRpc3BsYXkKCQkJJCgiaW5wdXRbdHlwZT1wYXNzd29yZF1bZGF0YS1uYW1lXSIpLnZhbChjaGVja1B3KCQoImlucHV0W3R5cGU9cGFzc3dvcmRdW2RhdGEtbmFtZV0iKS52YWwoKSkpOwoJCQkkKCcjbG9naW5Gb3JtJykuc3VibWl0KCk7CgkJfQoKCQlmdW5jdGlvbiBjbGVhcigpIHsKCQkJJCgiZm9ybSIpWzBdLnJlc2V0KCk7CgkJfQoKCQkvLyBEZXRlY3QgSUUKCQkkKHdpbmRvdykub24oImxvYWQiLCBmdW5jdGlvbiAoKSB7CgkJCWxldCBjdXJyQnJvd3NlciA9IGRldGVjdElFKCk7CgoJCQlpZiAoY3VyckJyb3dzZXIgIT0gZmFsc2UpIHsKCQkJCWFsZXJ0KCfmpa3li5ll5bmz5Y+w5LiN5pSv5o+0SUXngI/opr3lmagnKTsKCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXNrJykuY2xhc3NMaXN0LmFkZCgnb3ZlcmxheScpOwoJCQl9CgkJfSk7CgoJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKCQkJJCgnI2NsZWFyJykub24oJ2NsaWNrJywgY2xlYXIpOwoJCQkkKCcjbG9naW4nKS5vbignY2xpY2snLCBsb2dpbik7CgkJCXZhciB1c2VySWQgPSAkLmNvb2tpZSgidXNlcklkIik7CgkJCWlmICh1c2VySWQgIT0gdW5kZWZpbmVkKSB7CgkJCQkkKCJpbnB1dFt0eXBlPXRleHRdW2RhdGEtbmFtZV0iKS52YWwodXNlcklkKTsKCQkJCSQoJyNyZW1lbWJlcmVkJykucHJvcCgiY2hlY2tlZCIsIHRydWUpOwoJCQl9IGVsc2UgewoJCQkJJCgnI3JlbWVtYmVyZWQnKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwoJCQl9CgkJfSk7CgoJCXZhciBjaGVja1B3ID0gZnVuY3Rpb24gKGQpIHt2YXIgciA9IE0oVihZKFgoZCksIDggKiBkLmxlbmd0aCkpKTsgcmV0dXJuIHIudG9Mb3dlckNhc2UoKX07IGZ1bmN0aW9uIE0oZCkge2ZvciAodmFyIF8sIG0gPSAiMDEyMzQ1Njc4OUFCQ0RFRiIsIGYgPSAiIiwgciA9IDA7IHIgPCBkLmxlbmd0aDsgcisrKV8gPSBkLmNoYXJDb2RlQXQociksIGYgKz0gbS5jaGFyQXQoXyA+Pj4gNCAmIDE1KSArIG0uY2hhckF0KDE1ICYgXyk7IHJldHVybiBmfSBmdW5jdGlvbiBYKGQpIHtmb3IgKHZhciBfID0gQXJyYXkoZC5sZW5ndGggPj4gMiksIG0gPSAwOyBtIDwgXy5sZW5ndGg7IG0rKylfW21dID0gMDsgZm9yIChtID0gMDsgbSA8IDggKiBkLmxlbmd0aDsgbSArPSA4KV9bbSA+PiA1XSB8PSAoMjU1ICYgZC5jaGFyQ29kZUF0KG0gLyA4KSkgPDwgbSAlIDMyOyByZXR1cm4gX30gZnVuY3Rpb24gVihkKSB7Zm9yICh2YXIgXyA9ICIiLCBtID0gMDsgbSA8IDMyICogZC5sZW5ndGg7IG0gKz0gOClfICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoZFttID4+IDVdID4+PiBtICUgMzIgJiAyNTUpOyByZXR1cm4gX30gZnVuY3Rpb24gWShkLCBfKSB7ZFtfID4+IDVdIHw9IDEyOCA8PCBfICUgMzIsIGRbMTQgKyAoXyArIDY0ID4+PiA5IDw8IDQpXSA9IF87IGZvciAodmFyIG0gPSAxNzMyNTg0MTkzLCBmID0gLTI3MTczMzg3OSwgciA9IC0xNzMyNTg0MTk0LCBpID0gMjcxNzMzODc4LCBuID0gMDsgbiA8IGQubGVuZ3RoOyBuICs9IDE2KSB7dmFyIGggPSBtLCB0ID0gZiwgZyA9IHIsIGUgPSBpOyBmID0gY2hlY2tQd19paShmID0gY2hlY2tQd19paShmID0gY2hlY2tQd19paShmID0gY2hlY2tQd19paShmID0gY2hlY2tQd19oaChmID0gY2hlY2tQd19oaChmID0gY2hlY2tQd19oaChmID0gY2hlY2tQd19oaChmID0gY2hlY2tQd19nZyhmID0gY2hlY2tQd19nZyhmID0gY2hlY2tQd19nZyhmID0gY2hlY2tQd19nZyhmID0gY2hlY2tQd19mZihmID0gY2hlY2tQd19mZihmID0gY2hlY2tQd19mZihmID0gY2hlY2tQd19mZihmLCByID0gY2hlY2tQd19mZihyLCBpID0gY2hlY2tQd19mZihpLCBtID0gY2hlY2tQd19mZihtLCBmLCByLCBpLCBkW24gKyAwXSwgNywgLTY4MDg3NjkzNiksIGYsIHIsIGRbbiArIDFdLCAxMiwgLTM4OTU2NDU4NiksIG0sIGYsIGRbbiArIDJdLCAxNywgNjA2MTA1ODE5KSwgaSwgbSwgZFtuICsgM10sIDIyLCAtMTA0NDUyNTMzMCksIHIgPSBjaGVja1B3X2ZmKHIsIGkgPSBjaGVja1B3X2ZmKGksIG0gPSBjaGVja1B3X2ZmKG0sIGYsIHIsIGksIGRbbiArIDRdLCA3LCAtMTc2NDE4ODk3KSwgZiwgciwgZFtuICsgNV0sIDEyLCAxMjAwMDgwNDI2KSwgbSwgZiwgZFtuICsgNl0sIDE3LCAtMTQ3MzIzMTM0MSksIGksIG0sIGRbbiArIDddLCAyMiwgLTQ1NzA1OTgzKSwgciA9IGNoZWNrUHdfZmYociwgaSA9IGNoZWNrUHdfZmYoaSwgbSA9IGNoZWNrUHdfZmYobSwgZiwgciwgaSwgZFtuICsgOF0sIDcsIDE3NzAwMzU0MTYpLCBmLCByLCBkW24gKyA5XSwgMTIsIC0xOTU4NDE0NDE3KSwgbSwgZiwgZFtuICsgMTBdLCAxNywgLTQyMDYzKSwgaSwgbSwgZFtuICsgMTFdLCAyMiwgLTE5OTA0MDQxNjIpLCByID0gY2hlY2tQd19mZihyLCBpID0gY2hlY2tQd19mZihpLCBtID0gY2hlY2tQd19mZihtLCBmLCByLCBpLCBkW24gKyAxMl0sIDcsIDE4MDQ2MDM2ODIpLCBmLCByLCBkW24gKyAxM10sIDEyLCAtNDAzNDExMDEpLCBtLCBmLCBkW24gKyAxNF0sIDE3LCAtMTUwMjAwMjI5MCksIGksIG0sIGRbbiArIDE1XSwgMjIsIDEyMzY1MzUzMjkpLCByID0gY2hlY2tQd19nZyhyLCBpID0gY2hlY2tQd19nZyhpLCBtID0gY2hlY2tQd19nZyhtLCBmLCByLCBpLCBkW24gKyAxXSwgNSwgLTE2NTc5NjUxMCksIGYsIHIsIGRbbiArIDZdLCA5LCAtMTA2OTUwMTYzMiksIG0sIGYsIGRbbiArIDExXSwgMTQsIDY0MzcxNzcxMyksIGksIG0sIGRbbiArIDBdLCAyMCwgLTM3Mzg5NzMwMiksIHIgPSBjaGVja1B3X2dnKHIsIGkgPSBjaGVja1B3X2dnKGksIG0gPSBjaGVja1B3X2dnKG0sIGYsIHIsIGksIGRbbiArIDVdLCA1LCAtNzAxNTU4NjkxKSwgZiwgciwgZFtuICsgMTBdLCA5LCAzODAxNjA4MyksIG0sIGYsIGRbbiArIDE1XSwgMTQsIC02NjA0NzgzMzUpLCBpLCBtLCBkW24gKyA0XSwgMjAsIC00MDU1Mzc4NDgpLCByID0gY2hlY2tQd19nZyhyLCBpID0gY2hlY2tQd19nZyhpLCBtID0gY2hlY2tQd19nZyhtLCBmLCByLCBpLCBkW24gKyA5XSwgNSwgNTY4NDQ2NDM4KSwgZiwgciwgZFtuICsgMTRdLCA5LCAtMTAxOTgwMzY5MCksIG0sIGYsIGRbbiArIDNdLCAxNCwgLTE4NzM2Mzk2MSksIGksIG0sIGRbbiArIDhdLCAyMCwgMTE2MzUzMTUwMSksIHIgPSBjaGVja1B3X2dnKHIsIGkgPSBjaGVja1B3X2dnKGksIG0gPSBjaGVja1B3X2dnKG0sIGYsIHIsIGksIGRbbiArIDEzXSwgNSwgLTE0NDQ2ODE0NjcpLCBmLCByLCBkW24gKyAyXSwgOSwgLTUxNDAzNzg0KSwgbSwgZiwgZFtuICsgN10sIDE0LCAxNzM1MzI4NDczKSwgaSwgbSwgZFtuICsgMTJdLCAyMCwgLTE5MjY2MDc3MzQpLCByID0gY2hlY2tQd19oaChyLCBpID0gY2hlY2tQd19oaChpLCBtID0gY2hlY2tQd19oaChtLCBmLCByLCBpLCBkW24gKyA1XSwgNCwgLTM3ODU1OCksIGYsIHIsIGRbbiArIDhdLCAxMSwgLTIwMjI1NzQ0NjMpLCBtLCBmLCBkW24gKyAxMV0sIDE2LCAxODM5MDMwNTYyKSwgaSwgbSwgZFtuICsgMTRdLCAyMywgLTM1MzA5NTU2KSwgciA9IGNoZWNrUHdfaGgociwgaSA9IGNoZWNrUHdfaGgoaSwgbSA9IGNoZWNrUHdfaGgobSwgZiwgciwgaSwgZFtuICsgMV0sIDQsIC0xNTMwOTkyMDYwKSwgZiwgciwgZFtuICsgNF0sIDExLCAxMjcyODkzMzUzKSwgbSwgZiwgZFtuICsgN10sIDE2LCAtMTU1NDk3NjMyKSwgaSwgbSwgZFtuICsgMTBdLCAyMywgLTEwOTQ3MzA2NDApLCByID0gY2hlY2tQd19oaChyLCBpID0gY2hlY2tQd19oaChpLCBtID0gY2hlY2tQd19oaChtLCBmLCByLCBpLCBkW24gKyAxM10sIDQsIDY4MTI3OTE3NCksIGYsIHIsIGRbbiArIDBdLCAxMSwgLTM1ODUzNzIyMiksIG0sIGYsIGRbbiArIDNdLCAxNiwgLTcyMjUyMTk3OSksIGksIG0sIGRbbiArIDZdLCAyMywgNzYwMjkxODkpLCByID0gY2hlY2tQd19oaChyLCBpID0gY2hlY2tQd19oaChpLCBtID0gY2hlY2tQd19oaChtLCBmLCByLCBpLCBkW24gKyA5XSwgNCwgLTY0MDM2NDQ4NyksIGYsIHIsIGRbbiArIDEyXSwgMTEsIC00MjE4MTU4MzUpLCBtLCBmLCBkW24gKyAxNV0sIDE2LCA1MzA3NDI1MjApLCBpLCBtLCBkW24gKyAyXSwgMjMsIC05OTUzMzg2NTEpLCByID0gY2hlY2tQd19paShyLCBpID0gY2hlY2tQd19paShpLCBtID0gY2hlY2tQd19paShtLCBmLCByLCBpLCBkW24gKyAwXSwgNiwgLTE5ODYzMDg0NCksIGYsIHIsIGRbbiArIDddLCAxMCwgMTEyNjg5MTQxNSksIG0sIGYsIGRbbiArIDE0XSwgMTUsIC0xNDE2MzU0OTA1KSwgaSwgbSwgZFtuICsgNV0sIDIxLCAtNTc0MzQwNTUpLCByID0gY2hlY2tQd19paShyLCBpID0gY2hlY2tQd19paShpLCBtID0gY2hlY2tQd19paShtLCBmLCByLCBpLCBkW24gKyAxMl0sIDYsIDE3MDA0ODU1NzEpLCBmLCByLCBkW24gKyAzXSwgMTAsIC0xODk0OTg2NjA2KSwgbSwgZiwgZFtuICsgMTBdLCAxNSwgLTEwNTE1MjMpLCBpLCBtLCBkW24gKyAxXSwgMjEsIC0yMDU0OTIyNzk5KSwgciA9IGNoZWNrUHdfaWkociwgaSA9IGNoZWNrUHdfaWkoaSwgbSA9IGNoZWNrUHdfaWkobSwgZiwgciwgaSwgZFtuICsgOF0sIDYsIDE4NzMzMTMzNTkpLCBmLCByLCBkW24gKyAxNV0sIDEwLCAtMzA2MTE3NDQpLCBtLCBmLCBkW24gKyA2XSwgMTUsIC0xNTYwMTk4MzgwKSwgaSwgbSwgZFtuICsgMTNdLCAyMSwgMTMwOTE1MTY0OSksIHIgPSBjaGVja1B3X2lpKHIsIGkgPSBjaGVja1B3X2lpKGksIG0gPSBjaGVja1B3X2lpKG0sIGYsIHIsIGksIGRbbiArIDRdLCA2LCAtMTQ1NTIzMDcwKSwgZiwgciwgZFtuICsgMTFdLCAxMCwgLTExMjAyMTAzNzkpLCBtLCBmLCBkW24gKyAyXSwgMTUsIDcxODc4NzI1OSksIGksIG0sIGRbbiArIDldLCAyMSwgLTM0MzQ4NTU1MSksIG0gPSBzYWZlX2FkZChtLCBoKSwgZiA9IHNhZmVfYWRkKGYsIHQpLCByID0gc2FmZV9hZGQociwgZyksIGkgPSBzYWZlX2FkZChpLCBlKX0gcmV0dXJuIEFycmF5KG0sIGYsIHIsIGkpfSBmdW5jdGlvbiBjaGVja1B3X2NtbihkLCBfLCBtLCBmLCByLCBpKSB7cmV0dXJuIHNhZmVfYWRkKGJpdF9yb2woc2FmZV9hZGQoc2FmZV9hZGQoXywgZCksIHNhZmVfYWRkKGYsIGkpKSwgciksIG0pfSBmdW5jdGlvbiBjaGVja1B3X2ZmKGQsIF8sIG0sIGYsIHIsIGksIG4pIHtyZXR1cm4gY2hlY2tQd19jbW4oXyAmIG0gfCB+XyAmIGYsIGQsIF8sIHIsIGksIG4pfSBmdW5jdGlvbiBjaGVja1B3X2dnKGQsIF8sIG0sIGYsIHIsIGksIG4pIHtyZXR1cm4gY2hlY2tQd19jbW4oXyAmIGYgfCBtICYgfmYsIGQsIF8sIHIsIGksIG4pfSBmdW5jdGlvbiBjaGVja1B3X2hoKGQsIF8sIG0sIGYsIHIsIGksIG4pIHtyZXR1cm4gY2hlY2tQd19jbW4oXyBeIG0gXiBmLCBkLCBfLCByLCBpLCBuKX0gZnVuY3Rpb24gY2hlY2tQd19paShkLCBfLCBtLCBmLCByLCBpLCBuKSB7cmV0dXJuIGNoZWNrUHdfY21uKG0gXiAoXyB8IH5mKSwgZCwgXywgciwgaSwgbil9IGZ1bmN0aW9uIHNhZmVfYWRkKGQsIF8pIHt2YXIgbSA9ICg2NTUzNSAmIGQpICsgKDY1NTM1ICYgXyk7IHJldHVybiAoZCA+PiAxNikgKyAoXyA+PiAxNikgKyAobSA+PiAxNikgPDwgMTYgfCA2NTUzNSAmIG19IGZ1bmN0aW9uIGJpdF9yb2woZCwgXykge3JldHVybiBkIDw8IF8gfCBkID4+PiAzMiAtIF99Cgk8L3NjcmlwdD4KPC9ib2R5PgoKPC9odG1sPgo=