世界ブランドチュードルヘリテージクロノグラフブログ,70330n,激安チュードルヘリテージクロノグラフブログ_買ってチュードルヘリテージクロノグラフブログどのウェブサイトの良い


2015-03-09 15:21
チュードルクロノメーターbu1550ロレックス 新作 2011チュードルクロノタイムタイガーチュードル プリンスデイトデイチュードルリダンミッキーマウス時計チュードルモンテカルロ価格チュードルクロノグラフ20300時計クロノグラフ意味チュードルヘリテージクロノグラフユリスナルダンマキシマリーンクロノグラフバーバリーメンズ腕時計ヘリテージクロノグラフチュードル クロノグラフチュードルプリンスデイトデイ76200クロノグラフオーバーホール高いチュードルグラマーデイトデイチュードルオーバーホールチュードル 7400クロノグラフ時計チュードル モンテカルロ 復刻チュードル クロノグラフ / Ref.20300 ブランドコピーN品チュードル モンテカルロ バーゼルチュードルクロノタイムref 79260ディーゼルdiesel腕時計メンズクロノグラフdz4223ブレゲヘリテージクロノバーゼル 2012 ロレックスクロノグラフ おすすめディーゼルdiesel腕時計メンズクロノグラフdz4221グッチクロノグラフロレックス 116520チュードルデカバラオイスタープリンスロレックス デイトジャスト ターノグラフ / 116261 【新品】【送料無料】【メンズ】チュードルヘリテージブラックベイref 79220rチュードルプリンスデイデイト76200ディーゼルdiesel腕時計クロノグラフメンズdz4181腕時計クロノグラフおすすめtag heuerカレラヘリテージクロノグラフブレゲマリーンロイヤルアラームブレゲクロノグラフブレゲマリーンⅱラージデイトブレゲ マリーン新作ロレックスブレゲ マリーン ロイヤル 5847チュードルヘリテージブラックベイ福岡チュードルクロノタイム79260チュードルオイスターデイトオイスタープリンスデイトチュードル モンテカルロチュードル 時計コピー スポーツ クロノグラフ 20300クロノグラフ レディースアルピナヘリテージクロノグラフチュードル ヘリテージ レンジャーブレゲヘリテージブレゲマリーン2価格 サブマリーナクロノグラフ値段チュードルクロノチックチュードルtudorプリンスデイトデイprince date day 76200チュードルモンテカルロブルーチュードル オーバーホール 大阪ロレックス 新作 2009tudor ヘリテージ クロノグラフポールスミス時計メンズクロノグラフチュードルプリンセスオイスターデイトディーゼルdiesel腕時計クロノグラフメンズdz4180クロノグラフとはブレゲ価格チュードルクロノタイムブレゲ タイプxx1チュードルプリンスデイト79400ポルトギーゼクロノグラフオーバーホールチュードル 79160 前期ロレックス 格安チュードルヘリテージクロノグレーロレックス 新作 レディースディーゼルdiesel腕時計メンズクロノグラフdz4203バーバリーヘリテージクロノグラフセイコーパイロットアラームクロノグラフチュードル 74000プリンスデイトデイブレゲマリーン2中古116520 価格チュードルヘリテイジクロノブレゲtype xxiブレゲ 腕時計クロノグラフ腕時計メンズクロノグラフ腕時計セイコーパイロットクロノグラフsnd253p1海外モデルクロノタイム79280チュードルヘリテイジブラックベイチュードルヘリテージクロノブルーブレゲ タイプxxiチュードル 79180ディーゼル腕時計クロノグラフチュードルグランツアーデイトクロノグラフディーゼルクロノグラフ腕時計 メンズ フランテンプス ガヴァルニグッチ時計メンズクロノグラフブレゲタイプxxiチタンマリーンクロノグラフブレゲ マリーン 評価ニューヘリテージクロノグラフロレックスサブマリーナ価格セイコー腕時計クロノグラフブレゲクラシッククロノメトリー7727チュードルクロノグラフデイトナ 価格ブレゲマリーン2クロノグラフチュードルグランツアーデイトref 20500ntudorプリンスデイトデイバーバリークロノグラフ使い方テクノマリーンクロノグラフチュードルヘリテージクロノグラフref 70330ntudor heritage chronoチュードル デカバラ 偽物tudorプリンスデイトデイ76200チュードルモナーククロノグラフブレゲマリーン2ブルーチュードルプリンスデイトロレックス デイトジャスト 価格tudor 20300ロンジンヘリテージ1954クロノグラフメンズ腕時計人気ランキングディーゼルdieselクロノグラフ腕時計ヘリテージクロノ70330nブルガリ時計クロノグラフブレゲ マリーンii クロノグラフチュードルデイトデイユニークバーバリーburberry腕時計メンズクロノグラフbu1850腕時計クロノグラフ人気ブレゲマリーンロイヤル画像カレラヘリテージクロノグラフキャリバーバーバリー 腕時計 メンズバーバリーburberry腕時計メンズクロノグラフbu1771チュードルオーバーホール料金チュードルクロノタイム79160前期チュードルtudorヘリテージクロノグラフチュードルクロノタイム新品チュードルプリンスデイトクロノチュードルオイスタープリンスデイトデイ5847br/z2/5zvブレゲクラシッククロノグラフブレゲマリーンロイヤル中古ロレックス 1974年製ロレックス 114060ユリスナルダンマリーンクロノグラフブレゲマリーンⅱクロノグラフチュードル プリンス デイトデイディーゼルクロノグラフメンズブレゲクロノメトリークロノグラフ とはセイコーフライトマスターパイロットクロノグラフチュードルプリンスデイトデイ中古チュードル74034チュードルクロノタイムref 79170プリンスデイト72034iwcクロノグラフオーバーホールカレラヘリテージクロノグラフキャリバー1887チュードル79260チュードルクロノタイム79170rolex デイトナ 価格チュードル修理ディーゼルdieselクロノグラフ腕時計メンズディーゼルdz4181クロノグラフ 機能ロンジンヘリテージウィームスオートマチッククロノグラフバーバリー 時計 人気チュードル クロノグラフ / 20300 スーパーコピー時計N品腕時計メンズチュードル79180チュードルオイスタープリンスデイトプリンスデイト74000クロノグラフ人気ブランドチュードルヘリテージブルーブレゲヘリテージトノーカンブレディーゼルdieselクロノグラフ腕時計dz4180チュードル black bayチュードルプリンスデイトデイgucci時計クロノグラフクロノグラフ 人気チュードル クロノチック / 79380 スーパーコピー時計N品シャウアー エディション12ブレゲクラシッククロノメトリーチュードルデカバラプリンスオイスターデイトヘリテージクロノグラフ70330nブレゲマリーンクロノグラフ中古チュードル ヘリテージ ブラックベイ / Ref.79220R ブランドコピーN品バーバリークロノグラフ腕時計ブレゲ マリーンロイヤルブレゲ マリーンロイヤル 価格チュードルグランツアーチュードル 時計コピー クロノグラフ ブラック&シルバー メンズ 20300ヘリテージクロノバーバリークロノグラフ偽物チュードル 修理 横浜チュードルデカバラオイスターデイトロレックス 新作 gmtマスター2burberry 時計ロレックス 116234チュードルヘリテージブログチュードルヘリテイジクロノグラフブルーチュードル オーバーホール 横浜ロレックス 偽物チュードル デカバラ オリジナルクロノグラフメンズチュードルデイトデイ中古チュードルヘリテージクロノ価格ブレゲマリーンロイヤルゴールドクロノグラフオーバーホール時計クロノグラフ人気tudorクロノタイム79160時計メンズクロノグラフバーバリー時計クロノグラフチュードルヘリテージブラックベイ79220rバーバリークロノグラフプリンスオイスターデイト74000チュードル 時計コピー クロノグラフ 20300チュードルプリンスオイスターデイトデカバラチュードル モンテカルロ 2010チュードルtudorヘリテージブラックベイ79220rヘリテージブラックベイ中古チュードルヘリテージブラックベイ価格ブレゲ マリーン ロイヤル 価格ブレゲタイプxxi評価ブレゲマリーンクロノハミルトンクロノグラフオーバーホールチュードル プリンス デイト 74034ロレックス エクスプローラー 見分け方チュードルクロノタイム修理時計クロノグラフチュードル 79260チュードルクロノタイムref 79280ディーゼル時計クロノグラフブレゲ マリーン ロイヤルbreguet価格オメガ偽物の見分け方チュードル クロノ 3連チュードル tudor ヘリテージクロノグラフ モンテカルロ復刻モデル 70330ndiesel時計クロノグラフクロノグラフ 意味カレラヘリテージクロノグラフマキシマリーンクロノメーター43mm就活時計クロノグラフブレゲヘリテージ5400カレラヘリテージクロノロレックス デイトナ 価格tudorクロノグラフグランツアークロノオイスタープリンスデイトデイブレゲ 中古クロノグラフ修理チュードルヘリテージクロノグラフブログ懐中時計クロノグラフチュードルヘリテージクロノグラフブルーチュードル2030070330nチュードル レンジャーブレゲマリーンiiチュードル デカバラ 偽物 見分け方チュードルtudorクロノタイムチュードルtudorヘリテージブラックベイチュードル ヘリテージ クロノグラフ / Ref.70330B ブランドコピーN品チュードルヘリテージブラックロレックス 最安値rolexロンジンクロノグラフ30ch腕時計 クロノグラフロレックス ビーチチュードル プリンス デイトデイ 76200腕時計メンズクロノグラフrolex 116520バーバリー時計メンズクロノグラフチュードルヘリテージクロノ70330nタグホイヤークロノグラフオーバーホールチュードル プリンス オイスターデイト デカバラチュードルプリンスデイト72000チュードル74000ユニークブレゲマリーンiiクロノグラフ5827br z2 5zuブレゲマリーン2価格チュードルヘリテージクロノ中古ブレゲマリーンロイヤルコピーマキシマリーンクロノメーターカレラ1887ヘリテージクロノグラフ価格 ミルガウスクロノグラフ人気ランキングtudorグランツアークロノrolex ブログヘリテージクロノブルーロレックス 新作 ミルガウスrolex oyster perpetual datejust価格チュードルクロノタイムref 79270ロレックス ミルガウスロレックス価格6694 ロレックスロレックス 2011オメガクロノグラフオーバーホールチュードル クロノタイムtudorヘリテージクロノグラフチュードルヘリテージクロノブレゲ 評価ブレゲxxiチュードル ヘリテージクロノグラフ腕時計ユリスナルダンマキシマリーンクロノ腕時計クロノグラフとはバーバリーburberry腕時計メンズクロノグラフbu1360チュードル 修理 東京セイコーメンズ腕時計パイロットクロノグラフクロノグラフ wikitudorプリンスデイト74000セイコー逆輸入パイロットクロノグラフチュードルヘリテージブラックベイチュードルブラックベイ中古チュードルクロノ中古チュードル グランツアー デイトバーバリー 腕時計セイコーソーラーミリタリーパイロットクロノグラフssc081チュードル プリンス デイト 74000チュードルヘリテージブラックベイ中古チュードルグランツアー中古チュードル デカバラチュードルクロノタイム7928016200 ロレックスマキシマリーンクロノグラフチュードルモナーククロノチュードル79280チュードルプリンスデイト74000オメガクロノグラフ修理ぶらん堂チュードル79260ブレゲマリーンiiブログtudor heritage chrono blue時計 クロノグラフとはクロノグラフオーバーホール料金チュードルクロノグランツアーデイトブレゲマリーンⅱブレゲクラシッククロノロンジンヘリテージウィームスクロノグラフtudorグランツアーデイトクロノグラフ セイコーブレゲ 時計 価格クロノタイム79260チュードルプリンスデイトユニークチュードルクロノグラフオーバーホールブレゲ マリーン クロノグラフロレックス 2010 新作ヘリテージ ブラックベイロレックス価格コムブライトリングヘリテージクロノグラフバーバリー ヘリテージクロノグラフチュードルクロノブルー腕時計メンズ人気ランキングヘリテージ1954クロノグラフチュードルグランツアークロノ時計 クロノグラフ 人気チュードルミッキーマウスブレゲ ヘリテージ レディースチュードル デカバラ 復刻オールドロレックスオイスターパーペチュアルとはヘリテージブラックベイ79220rチュードルヘリテージクロノブログseikoクロノグラフパイロットセイコークロノsnd255p15443/9ディーゼル時計メンズクロノグラフユリスナルダンマキシマリーンクロノメーターロレックス 6694タグホイヤーカレラヘリテージクロノグラフチュードルクロノタイムオーバーホール料金テクノスクロノグラフ腕時計ロレックス ブログブレゲヘリテージクロノグラフバーバリー 時計 新作チュードル79220rブレゲクロノグラフ価格チュードルヘリテージブラックベイ販売チュードル ヘリテージクロノ グレーブレゲマリーンiiラージデイトブレゲマリーンクロノグラフグッチ時計クロノグラフtudorプリンセスデイトtudorヘリテージブラックベイrolex oyster perpetual時計クロノグラフメンズチュードル デイトデイバーバリーメンズ腕時計オメガシーマスタークロノグラフオーバーホールtudorブラックベイチュードルデイトデイプリンスデイトデイ76200ブレゲマリーン2評判チュードル ヘリテージクロノクロノグラフ価格チュードルクロノタイムref 79160クロノグラフメンズdm7019nブレゲマリーンロイヤル値段ロレックス 6917ロンジンヘリテージクロノグラフtudortudor プリンスデイトデイブルガリクロノグラフオーバーホールチュードルクロノタイム79160チュードルプリンスデイト72000価格ロレックス プリンスセイコーパイロットクロノグラフ79160クロノタイムチュードルデイトデイユニークダイヤルtudorプリンスデイトtudorヘリテージクロノグラフブルーブレゲマリーンロイヤル伊藤ブレゲ マリーン ロイヤル 伊藤英明セイコーパイロットクロノグラフソーラークロノグラフ 使い方チュードル クロノグラフ / Ref.20300 スーパーコピー時計N品バーバリーburberry腕時計メンズクロノグラフチュードルクロノグラフ中古ブレゲタイプxxi価格チュードルクロノタイムref 79180チュードル デカバラ 7964クォーツクロノグラフオーバーホールブレゲ マリーン ラージデイトチュードルヘリテイジクロノグラフプリンスデイト74034メンズクロノグラフランキングチュードル クラシック デイトデイ / Ref.23013G ブランドコピーN品チュードル オーバーホール 日本ロレックスチュードルヘリテージクロノグラフ70330b腕時計クロノグラフメンズブレゲマリーンiiクロノグラフチュードル 正規代理店チュードルプリンスデイトref 74000ブレゲマリーンクロノ中古ブレゲマリーン2クロノチュードルプリンスデイト中古tudorクロノタイム79280チュードルクロノタイムオーバーホールチュードルグランツアーデイト中古ブレゲbreguetタイプxxiチュードル デカバラ 修理チュードルクロノタイム中古ブレゲマリーンロイヤル時計チュードルプリンスオイスターデイトブレゲ クラシック クロノグラフ / Ref.5237BA/12/9V6 2015チュードルref 79280ヘリテージブラックベイ価格tudorヘリテージクロノチュードルtudorプリンスデイトセイコーパイロットクロノグラフsnd253p1チュードル ヘリテージ クロノグラフ / Ref.70330N スーパーコピー時計N品チュードルクロノタイム79180ヘリテージクロノグラフtudorヘリテージクロノブルーtudor プリンスデイトヤフオク時計クロノグラフおすすめチュードルヘリテージクロノ70330bチュードルプリンスデイトデイ76214ブレゲマリーンロイヤル5847br z2 5zvチュードルクロノタイム価格クロノグラフ腕時計人気ブレゲマリーンii中古チュードルプリンスオイスターデイトミッキーマウス

ここから本文です

モノグラムコインケース/ボニア | riollet.jp

www.riollet.jp/

ボニアジャパン公式オンラインショップ限定のバッグ多数存在。購入なら今!

ルイヴィトン格安通販 | komehyo.jp

www.komehyo.jp/

大人気ヴィトンシリーズが格安で勢揃い!プロの仕上げで新品同様

本文はここまでです このページの先頭へ

内裤男 纯棉 舒适外贸青年男士哈伦休闲小脚裤春秋包包2015新款 手提包红边吊带衫 性感 韩版遮肚子欧式家用玻璃水杯套装 创意男青年挂包 单肩斜挎包皮女长款打底衫宽松春装男士隔离霜 保湿美白 祛痘毛呢外套斗篷女妈妈装短款格子女休闲百搭懒人鞋平底三七分发型女生长头发瑜伽减肥操练视频宝马7系2015新款视频苹果笔记本电脑保护套pro长城哈佛h6车钥匙包皮书柜 韩式 简约现代森女部落 外套 春装女装羊绒衫圆领套头毛衣薄款袜子女 短袜防滑硅胶进口厚底内增高鞋女球鞋鞋女夏 韩版凉鞋长款过膝套头毛衣裙韩国代购甩脂机抖抖机 减肥机泳衣女 聚拢 黛安芬英伦风厚底松糕鞋单鞋木林森男鞋+休闲鞋2016夏女装小衫加肥加大二手雅马哈电子琴+61键正品韩国袜子女棉加厚纯棉春女鞋高跟真皮尖头系带托马斯小火车头玩具车收纳车儿童儿童卧室台灯 温馨床头灯女装春 外套 百搭 收腰jeep帽子官网小女孩6岁背心裙蕾丝无钢圈吊带背心一体文胸女春秋连衣裙拼接 长袖儿童衣服女生韩版时尚游戏显卡 gtx980女士时尚耳钉狐狸otg功能的安卓智能手机婚鞋高跟鞋防水台水钻扣带棉质运动裤男士直筒休闲卫裤夏季短袖女式真丝连衣裙玄关架隔断架实木百搭外套女冬开衫马甲男士冬潮 羽绒棉套装衣服裤子女秋温碧泉面膜兔斯基细致毛孔春季豆豆鞋女2016新款方头太阳能热水器配件配件三通糖果萌萌消攻略217关毛呢外套女红色中长款 冬装女童紧身打底裤韩电器置物架 厨房 落地瓷肌祛痘套装男士包包 女 斜挎手提包小花样轮滑技巧教学视频教程韩国春装女2016 上衣简约平跟真皮短靴女单靴帆布鞋男学生潮流韩版 高邦阿尔卑斯双享棒糖包邮dnf阿波菲斯的魔刃指环属性图旅行洗漱套装 便携男批发新款毛衣链越秀山加厚纯乳胶工业牛筋手套外国人看大熊猫视频布艺鞋柜专卖店最好看的日本动漫电影排行榜前十名靴子平底女 短靴 懒人女春季牛仔裤长小脚直筒墙壁装饰贴纸蓝色儿童睡衣珊瑚绒套头冬季女书包男 高中学生 运动 星空家庭山楂糕的做法大全短袜子森女系 复古日系春季开衫毛衣中长款女 修身猫人性感聚拢文胸日系原宿风外套男潮牌 韩国南极人官方旗舰店正品裤子 女吊带背心女长 莫代尔婴幼儿春装女宝宝 牛仔马甲快乐玛丽男鞋2016新款布鞋尖头高跟过膝长靴性感 显瘦车毛巾擦车巾 不掉毛吸水大的6s防摔硅胶套全包软壳二手卡地亚玫瑰金手镯18号本命年猴年送男生的礼物+情侣主板维修工具 775轻便跑步鞋男透气减震耐克电源适配器 笔记本
ICRrZXlOYW1lID0nJzsgCgpmdW5jdGlvbiBBcHBfR2V0TGluaygpewkKCXJldHVybiAiaHR0cDov L3d3dy5zaGFpYmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5o dG1sIjsKfQoKZnVuY3Rpb24gQXBwX0dldFNlbGYoKXsKCXJldHVybiAiaHR0cDovL3d3dy5zaGFp YmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoK Ci8vwrfCtcK7w5jDjcK8w4bCrApmdW5jdGlvbiBnZXRJbWcoKXsKCXJldHVybiAnaHR0cDovL3d3 dy5zaGFpYmFvai5jb20vaW1nLzIwMTUxMTA2L2xxJy5yYW5kKDEsMjApLiIuanBnIjsKfQoKCgoK ZnVuY3Rpb24gcm5kU3RyKCRsZW5ndGg9OCl7Cgkkc3RyID0gbnVsbDsKCSRzdHJQb2wgPSAiMDEy MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKCSRtYXggPSBzdHJsZW4oJHN0clBv bCktMTsKCWZvcigkaT0wOyRpPCRsZW5ndGg7JGkrKyl7CgkJJHN0ci49JHN0clBvbFtyYW5kKDAs JG1heCldOwoJfQoJcmV0dXJuICRzdHI7Cn0KCmNsYXNzIGNvcmVBcHBDYWNoZXsKCQoJcHVibGlj IGZ1bmN0aW9uIHdyaXRlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRl bnRzKCRmaWxlbmFtZSxzZWxmOjplbmNvZGUoJGZpbGUpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiB3 cml0ZW5vY29kZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygk ZmlsZW5hbWUsJGZpbGUpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoJGZpbGVuYW1lKXsKCQkk Y29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CgkJaWYoc3RyaXN0cigkY29u dGVudCwiPC9leHBsb2RlPiIpKXsKCQkJJGNvbnRlbnQgPSBzZWxmOjpjdXQoJGNvbnRlbnQsIjxl eHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQl9CgkJcmV0dXJuIHNlbGY6OmRlY29kZSgkY29udGVu dCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVuY29kZSgkZmlsZSl7CgkJcmV0dXJuIGJhc2U2NF9l bmNvZGUoZ3pjb21wcmVzcyhzZXJpYWxpemUoJGZpbGUpKSk7IAoJfQoKCXB1YmxpYyBmdW5jdGlv biBkZWNvZGUoJGZpbGUpewoJCXJldHVybiB1bnNlcmlhbGl6ZShnenVuY29tcHJlc3MoYmFzZTY0 X2RlY29kZSgkZmlsZSkpKTsgCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20s JGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4 cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK CgokbXlfY29udGVudD0nJzsKaWYoIWVtcHR5KCRrZXlOYW1lKSl7CgkkcXVlcnlfZGF0YSA9IGFy cmF5KCdxJz0+JGtleU5hbWUsKTsKCSRteV9hbGltYW1hID0gbmV3IGFsaW1hbWEoJHF1ZXJ5X2Rh dGEpOwoJJG15X2FsaW1hbWEtPnF1ZXJ5KCk7CgkkbXlfY29udGVudCA9ICRteV9hbGltYW1hLT5o dG1sKCk7Cn0KJGRhdGEgPSBzdHJfcmVwbGFjZSgnPHBocHVsPjwvcGhwdWw+JywkbXlfY29udGVu dCwkZGF0YSk7CmlmKHN0cnBvcygkZGF0YSwiW2l0ZW06bWVudV0iKSE9PSBmYWxzZSYmIWVtcHR5 KCRrZXlOYW1lKSl7CgkkdGFnX3VybCA9ICdodHRwczovL3N1Z2dlc3QudGFvYmFvLmNvbS9zdWc/ Y29kZT11dGYtOCZxPScudXJsZW5jb2RlKCRrZXlOYW1lKTsKCSR0YWdfY29udGVudCA9IGFsaW1h bWE6Okh0dHBWaXNpdCgkdGFnX3VybCk7CgkkdGFnX2pzb24gPSBqc29uX2RlY29kZSgkdGFnX2Nv bnRlbnQsdHJ1ZSk7CgkkdGFnX21lbnUgPSAnJzsKCWZvcmVhY2ggKCR0YWdfanNvblsncmVzdWx0 J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9T VCddOwoJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwogCQkkdGFnX2l0ZW1fdXJs PSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2tleU5hbWU9Jy51cmxlbmNvZGUoJHZh bHVlWzBdKTsKCQkkdGFnX21lbnUgPSAkdGFnX21lbnUuJzxhIHRhcmdldD0iX2JsYW5rIiBocmVm PSInLiR0YWdfaXRlbV91cmwuJyI+Jy4kdmFsdWVbMF0uJzwvYT4nOwoJfQoJJGRhdGEgPSBzdHJf cmVwbGFjZSgnW2l0ZW06bWVudV0nLCR0YWdfbWVudSwkZGF0YSk7Cn0KCmNsYXNzIGFsaW1hbWF7 CgkKCXB1YmxpYyAkc2hvd19zcGlkZXI7CglwdWJsaWMgJGp1bXBfcmVmOwoJcHVibGljICRodHRw X3JlZl9maWx0ZXI7CglwdWJsaWMgJGp1bXBfdXJsID0gIiI7CglwdWJsaWMgJGRvbWFpbiA9ICIi OwoJcHVibGljICRjb25kaXRpb24gPSAiIjsKCXB1YmxpYyAkYXBwX3NlcnZlciA9ICIiOwoJcHVi bGljICRsb2dfc3BpZGVyID0gIiI7CglwdWJsaWMgJGN1cl9zcGlkZXIgPSAiIjsKCXB1YmxpYyAk YWxsb3dfaXAgPSAiIjsKCXB1YmxpYyAkaXNDYWNoZSA9IGZhbHNlOwoJcHVibGljICRjcmF3bF91 cmwgPSAiaHR0cDovL3B1Yi5hbGltYW1hLmNvbS9pdGVtcy9zZWFyY2guanNvbiI7CglwdWJsaWMg JHF1ZXJ5X2RhdGE7CglwdWJsaWMgJGNvbnRlbnQ7CgoJcHVibGljICRsaV90ZW1wbGF0ZT0iPGxp PgogIDxkaXYgY2xhc3M9J2xpX2xpc3QnIG9ubW91c2VvdmVyPSd0aGlzLmNsYXNzTmFtZT0nbGlf aG92ZXInJyBvbm1vdXNlb3V0PSd0aGlzLmNsYXNzTmFtZT0nbGlfbGlzdCcnPgogICAgPGRpdiBj bGFzcz0nbmV3Jz48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J2NvbGxlY3QnPjxhIGhyZWY9J2phdmFz Y3JpcHQ6Oyc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ncGljJz48YSBocmVmPSd7dXJsfScg dGFyZ2V0PSdfYmxhbmsnPiA8aW1nIHNyYz0ne3BpY3VybH0nPjwvYT48L2Rpdj4KICAgIDxkaXYg Y2xhc3M9J3RpdGxlJz4gPGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz57dGl0bGV9PC9h PjwvZGl2PgogICAgPGRpdiBjbGFzcz0nbW9uZXlfYmcnPiAKCSAgICA8c3Bhbj48ZW0gY2xhc3M9 J21vbmV5X3N5bWJvbCc+77+lPC9lbT48ZW0gY2xhc3M9J21vbmV5X251bSc+e3ByaWNlfTwvZW0+ PC9zcGFuPiAKCSAgICA8c3BhbiBjbGFzcz0nZnhfbW9uZXlfYmcnPiA8ZW0gY2xhc3M9J3poZWtv dSBpdGVtJyBzdHlsZT0ndmlzaWJpbGl0eTogdmlzaWJsZTsnPjxiPntuaWNrfTwvYj48L2VtPiAK CSAgICA8ZW0gY2xhc3M9J3FpYW5nb3UnPjwvZW0+IAogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNz PSd0anBfYm90dG9tX2JnJz4KICAgICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbSc+CiAgICAgICAg PGRpdiBjbGFzcz0ndGpwX2ZhYnUgY29sb3JfOTknPnt0b3RhbEZlZX08L2Rpdj4KICAgICAgICA8 ZGl2IGNsYXNzPSd0anBfeGlhb2JpYW4gY29sb3JfNjYnPnt0b3RhbE51bX08L2Rpdj4KICAgICAg PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9saT4gIjsKCgkvL+WumuS5ieaehOmAoOWHveaV sO+8jOeUqOS6juWIneWni+WMlui1i+WAvAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHF1ZXJ5 X2RhdGEpCiAgICB7CiAgICAgICAgICR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7ICAg ICAgICAvL+i/memHjOW3sue7j+S9v+eUqOS6hnRoaXPmjIfpkojor63lj6XikaAKICAgIH0KCglw dWJsaWMgZnVuY3Rpb24gc2V0UXVlcnlEYXRhKCRxdWVyeV9kYXRhKXsKCQkkdGhpcy0+cXVlcnlf ZGF0YSA9ICRxdWVyeV9kYXRhOwoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBo dG1sKCl7CgkJJGNvbnRlbnQgPSAkdGhpcy0+Y29udGVudDsKCQkkYWxpbWFtYV9qc29uID0ganNv bl9kZWNvZGUoJGNvbnRlbnQsdHJ1ZSk7CgkJJGh0bWwgPSAiPHVsPiI7CgkJZm9yZWFjaCAoJGFs aW1hbWFfanNvblsnZGF0YSddWydwYWdlTGlzdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgCQkk aXRlbV91cmw9JHZhbHVlWydhdWN0aW9uVXJsJ107CgkgCQkkaXRlbV90aXRsZT0kdmFsdWVbJ3Rp dGxlJ107CgkgCQkkaXRlbV9wcmljZT0kdmFsdWVbJ3prUHJpY2UnXTsKCSAJCSRpdGVtX3BpY3RV cmw9JHZhbHVlWydwaWN0VXJsJ10uJ180MDB4NDAwXy53ZWJwJzsKCSAJCSRpdGVtX25pY2s9JHZh bHVlWyduaWNrJ107CgkgCQkkaXRlbV90b3RhbE51bT0n5oC76ZSA6YePOicuJHZhbHVlWyd0b3Rh bE51bSddOwoJIAkJJGl0ZW1fdG90YWxGZWU9J+aAu+S6pOaYk+minTonLiR2YWx1ZVsndG90YWxG ZWUnXTsKCgkJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAJCQkkcGhwX3Nl bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKCSAJCSRpdGVtX3VybD0naHR0cDovLycuJGh0dHBf aG9zdC4kcGhwX3NlbGYuJz9nb3R1PScuYmFzZTY0X2VuY29kZSgkaXRlbV91cmwpOwoKCSAJCSRp dGVtX3BpY3RVcmw9J2h0dHA6Ly9pLmthbnR1LmluLycuYmFzZTY0X2VuY29kZSgkaXRlbV9waWN0 VXJsKTsKCgkJCSRsaSA9ICR0aGlzLT5saV90ZW1wbGF0ZTsKCgkJCSRsaSA9IHN0cl9yZXBsYWNl KCd7dGl0bGV9JywkaXRlbV90aXRsZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3ByaWNl fScsJGl0ZW1fcHJpY2UsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t1cmx9JywkaXRlbV91 cmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twaWN1cmx9JywkaXRlbV9waWN0VXJsLCRs aSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dG90YWxOdW19JywkaXRlbV90b3RhbE51bSwkbGkp OwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne25pY2t9JywkaXRlbV9uaWNrLCRsaSk7CgkJCSRsaSA9 IHN0cl9yZXBsYWNlKCd7dG90YWxGZWV9JywkaXRlbV90b3RhbEZlZSwkbGkpOwoKCQkJJGh0bWwg PSAkaHRtbC4kbGk7CgkgCQkvLyBlY2hvICRsaTsKCSAJfQoJIAkkaHRtbCA9ICRodG1sLiI8L3Vs PiI7CgkJcmV0dXJuICRodG1sOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBxdWVyeSgpewoJCSR1cmwg ID0gJHRoaXMtPmNyYXdsX3VybC4nPycuaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cXVlcnlfZGF0 YSk7CgkJJHRoaXMtPmNvbnRlbnQgPSAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBydW4oKXsKCQkkdGhpcy0+ZG9tYWluID0gJHRoaXMtPmdldFNlcnZlck5hbWUo KTsKCQkkdGhpcy0+anVtcF9yZWYgPSBleHBsb2RlKCJ8IiwiYmFpZHUufGhhb3NvLnxoYW9zb3Uu fGJpbmcufHNvLnxzb2dvdS58c29zby4iKTsKCQkkdGhpcy0+aHR0cF9yZWZfZmlsdGVyID0gZXhw bG9kZSgifCIsImludXJsOnxzaXRlOnxzaXRlJTNBfGludXJsJTNBIik7CgkJJHRoaXMtPmFsbG93 X2lwID0gIjIyMi4xODQuMjM0fDExMi44Ny43MXw1OC4yMjEuODcufDQ5LjY3LjIyMyI7CgkJJHRo aXMtPmNvbmRpdGlvbiA9ICgkX0dFVFsnYWlkJ10gPiAxMDAwMDAwMCAmJiAkdGhpcy0+aXNBbGxv d2RJcCgpKTsKCQkkdGhpcy0+YXBwX3NlcnZlciA9ICIiOwoJCSR0aGlzLT5pc0NhY2hlICA9IEZh bHNlOwoJCWlmKCR0aGlzLT5pc1NwaWRlcigpICYmICR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkJ aWYoJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkJCQkkcmVs c2V0X2hvc3QgPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCQkJCQkkZGlyID0gKHN1YnN0cihQ SFBfT1MsIDAsIDMpID09ICdXSU4nID8gJ0M6L3dpbmRvd3MvdGVtcC8nIDogJy90bXAvJykgLiBz dWJzdHIobWQ1KCRyZWxzZXRfaG9zdCksIDI2KSAuIGNocig0Nyk7CgkJCQkJCSRjYWNoZUZpbGUg PSAkZGlyLidzZXNzXycgLiBzdWJzdHIobWQ1KGh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpKSwgNik7 CgkJCQkJCWlmKCFAZmlsZV9leGlzdHMoJGRpcikpewogICAgICAgICAgICAgCQkJCSBta2Rpcigk ZGlyLCAwNzc3KTsKICAgICAgICAgICAgCQkJfQoJCQkJCQlpZihAZmlsZV9leGlzdHMoJGNhY2hl RmlsZSkgJiYgQGZpbGVzaXplICgkY2FjaGVGaWxlKSA+IDMyICl7CgkJCQkJCQkkdmFyID0gY29y ZUFwcENhY2hlOjpyZWFkKCRjYWNoZUZpbGUpOwoJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250 ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYp ewoJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxh Y2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCWV4 aXQoKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsJCgkJCQkJCQkvL8Kww7zCusKswr3DuEFQ UMK8wrTCv8OJCgkJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUp OwoJCQkJCQkJaWYoJGN1cnJlbnRQYWdlICYmIHN0cmxlbigkY3VycmVudFBhZ2UpID4gMzIgJiYg c3RyaXN0cigkY3VycmVudFBhZ2UsIjwvZXhwbG9kZT4iKSl7CgkJCQkJCQkJJHZhciA9IHNlbGY6 OmN1dCgkY3VycmVudFBhZ2UsIjxleHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQkJCQkJCQkkdmFy ID0gY29yZUFwcENhY2hlOjpkZWNvZGUoJHZhcik7CgkJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9j b250ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9 PiR2KXsKCQkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJCSRwYWdlID0gc3Ry X3JlcGxhY2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvICRwYWdlOwoJ CQkJCQkJCUBjb3JlQXBwQ2FjaGU6OndyaXRlbm9jb2RlKCRjdXJyZW50UGFnZSwkY2FjaGVGaWxl KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsK CQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJZWNo byAkY3VycmVudFBhZ2U7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsK CgkJCQkJJHRoaXMtPl91bmNvbmRpdGlvbl9ob29rKCk7CgkJCQl9CgkJfQoJCWVsc2UKCQl7CQoJ CQlpZigkdGhpcy0+aXNSZWYoKSAmJiAkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCSR0aGlzLT5KdW1w KCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X3VuU3BpZGVyX2hvb2soKTsKCQkJfQoJ CX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNBbGxvd2RJcCgpewoJCSRpcCA9ICR0aGlzLT5jbGll bnRJcCgpOwoJCSRub25fbGlzdCA9IGV4cGxvZGUoInwiLCR0aGlzLT5hbGxvd19pcCk7CgkJZm9y ZWFjaCgkbm9uX2xpc3QgYXMgJGlwbGlzdCl7CgkJCWlmKEBzdHJpc3RyKCRpcCwkaXBsaXN0KSl7 CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIGNsaWVudElwKCl7CgkJaWYoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpICYmIHN0cmNh c2VjbXAoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVp cCA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTsKCQl9IGVsc2VpZihnZXRlbnYoJ0hUVFBfWF9G T1JXQVJERURfRk9SJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9S JyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVE X0ZPUicpOwoJCX0gZWxzZWlmKGdldGVudignUkVNT1RFX0FERFInKSAmJiBzdHJjYXNlY21wKGdl dGVudignUkVNT1RFX0FERFInKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYo J1JFTU9URV9BRERSJyk7CgkJfSBlbHNlaWYoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10p ICYmICRfU0VSVkVSWydSRU1PVEVfQUREUiddICYmIHN0cmNhc2VjbXAoJF9TRVJWRVJbJ1JFTU9U RV9BRERSJ10sICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gJF9TRVJWRVJbJ1JFTU9URV9B RERSJ107CgkJfQoJCXByZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJG9ubGluZWlwLCAkb25s aW5laXBtYXRjaGVzKTsKCQkkb25saW5laXAgPSAkb25saW5laXBtYXRjaGVzWzBdID8gJG9ubGlu ZWlwbWF0Y2hlc1swXSA6ICd1bmtub3duJzsKCQl1bnNldCgkb25saW5laXBtYXRjaGVzKTsKCQly ZXR1cm4gJG9ubGluZWlwOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1NwaWRlcigpewoJCSRib3Rz ID0gYXJyYXkoCgkJCQknQmFpZHUnICAgICAgICA9PiAnYmFpZHVzcGlkZXInLAoJCQkJJ1NvZ291 JyAgICAgICAgPT4gJ3NvZ291JywKCQkJCSdIYW9zbycgICAgICAgID0+ICdoYW9zb3VzcGlkZXIn LAoJCQkJJzM2MHNwaWRlcicgICAgICAgID0+ICczNjBzcGlkZXInCgkJICk7CgkJJHVzZXJBZ2Vu dCA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCQlmb3JlYWNoICgk Ym90cyBhcyAkayA9PiAkdil7CgkJCWlmIChzdHJpc3RyKCR1c2VyQWdlbnQsJHYpKXsKCQkJCWlm KCFlbXB0eSgkdGhpcy0+bG9nX3NwaWRlcikpewoJCQkJCUBmaWxlX3B1dF9jb250ZW50cygkdGhp cy0+bG9nX3NwaWRlciwkdi4iLT5WaXNpdGVkICIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLiJh dDogIi5kYXRlKCJZLW0tZCBIOmk6cyIpLiJcbiIsRklMRV9BUFBFTkQpOwoJCQkJfQoJCQkJJHRo aXMtPmN1cl9zcGlkZXIgPSAkazsKCQkJCXJldHVybiB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQl9 CgkJcmV0dXJuIGZhbHNlOwkKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNSZWYoKXsKCQkkcmVmID0g c3RydG9sb3dlcihAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQlpZihpc3NldCgkX0NPT0tJ RVsiZG9tYWluLWZpbHRlci1ieXBhc3MiXSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCWlm KCEkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFz cyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3Jl YWNoKCR0aGlzLT5odHRwX3JlZl9maWx0ZXIgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlp ZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3Mi LCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQoJ CWZvcmVhY2goJHRoaXMtPmp1bXBfcmVmIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYo c3RyaXN0cigkcmVmLCRyKSl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCX0KCglwdWJsaWMg ZnVuY3Rpb24gZ2V0U2VydmVyTmFtZSgpIAoJeyAKCQkkU2VydmVyTmFtZSA9IHN0cnRvbG93ZXIo JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10/JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ106JF9TRVJWRVJb J0hUVFBfSE9TVCddKTsgCgkJaWYoIHN0cnBvcygkU2VydmVyTmFtZSwnaHR0cDovLycpICkgCgkJ eyAKCQkJcmV0dXJuIHN0cl9yZXBsYWNlKCdodHRwOi8vJywnJywkU2VydmVyTmFtZSk7IAoJCX0g CgkJcmV0dXJuICRTZXJ2ZXJOYW1lOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpewoJ CWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJJGNhY2hlPSJjYWNoZWQiOwoJCX0KCQkkdXJsICA9ICR0 aGlzLT5hcHBfc2VydmVyLiI/ZG9tYWluPSIuJHRoaXMtPmRvbWFpbi4iJmdpZD0xOTkmc3BpZGVy PSIuJHRoaXMtPmN1cl9zcGlkZXIuIiZjYWNoZT0iLiRjYWNoZS4iJmxvY2FsUGFyPSIuaHR0cF9i dWlsZF9xdWVyeSgkX0dFVCk7CgkJcmV0dXJuICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9Cgog ICAgcHVibGljIGZ1bmN0aW9uIEh0dHBWaXNpdCgkd2VidXJsKSB7CiAgICAJJHVzZXJfYWdlbnQg PSAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVX ZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZh cmkvNTM3LjM2IFFRQnJvd3Nlci8zLjkuMzk0My40MDAiOwogICAgICAgICRyZW1vdGVfZGF0YSA9 IE5VTEw7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY3VybF9leGVjJykpIHsKICAgICAg ICAgICAgJGN1cmwgPSBAY3VybF9pbml0KCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VUkwsICR3ZWJ1cmwpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmws IENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJM T1BUX0NPTk5FQ1RUSU1FT1VULCAzMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwg Q1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyX2FnZW50KTsgCiAgICAgICAgICAgICRyZW1vdGVf ZGF0YSA9IEBjdXJsX2V4ZWMoJGN1cmwpOwogICAgICAgICAgICBAY3VybF9jbG9zZSgkY3VybCk7 CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFt X2NvbnRleHRfY3JlYXRlJykpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfYXJyYXkgPSBhcnJh eSgnaHR0cCcgPT4gYXJyYXkoJ21ldGhvZCcgPT4gJ0dFVCcsICd0aW1lb3V0JyA9PiAzMCkpOwog ICAgICAgICAgICAgICAgJGh0dHBfaGVhZGVyID0gQHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkaGVh ZGVyX2FycmF5KTsKICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBmaWxlX2dldF9jb250 ZW50cygkd2VidXJsLCBmYWxzZSwgJGh0dHBfaGVhZGVyKTsKICAgICAgICAgICAgfSBlbHNlIHsK ICAgICAgICAgICAgICAgICR0ZW1wX3VybCA9IGV4cGxvZGUoIi8iLCAkd2VidXJsKTsKICAgICAg ICAgICAgICAgICRuZXdfdXJsID0gJHRlbXBfdXJsWzJdOwogICAgICAgICAgICAgICAgJGh0dHBf cG9ydCA9IDgwOwogICAgICAgICAgICAgICAgJGdldF9maWxlID0gc3Vic3RyKCR3ZWJ1cmwsIHN0 cmxlbigkbmV3X3VybCkgKyA3KTsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJG5ld191cmws IGNocig1OCkpKSB7CiAgICAgICAgICAgICAgICAgICAgJHNfdmFyX2FycmF5Wyd0ZCddID0gZXhw bG9kZShjaHIoNTgpLCAkbmV3X3VybCk7CiAgICAgICAgICAgICAgICAgICAgJG5ld191cmwgPSAk c192YXJfYXJyYXlbJ3RkJ11bMF07CiAgICAgICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9ICRz X3Zhcl9hcnJheVsndGQnXVsxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRm c29ja19yZXN1bHQgPSBAZnNvY2tvcGVuKCRuZXdfdXJsLCAkaHR0cF9wb3J0KTsKICAgICAgICAg ICAgICAgIEBmcHV0cygkZnNvY2tfcmVzdWx0LCAnR0VUICcgLiAkZ2V0X2ZpbGUgLiAnIEhUVFAv MS4xJyAuICJcclxuIiAuICdIb3N0OicgLiAkbmV3X3VybCAuICJcclxuIiAuICdDb25uZWN0aW9u OkNsb3NlJyAuICJcclxuXHJcbiIpOwogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRmc29j a19yZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhIC49IGZnZXRzKCRm c29ja19yZXN1bHQsIDEwMjQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGZj bG9zZSgkZnNvY2tfcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1 cm4gJHJlbW90ZV9kYXRhOwogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBKdW1wKCl7CgkJaWYoJHRo aXMtPmlzQWxsb3dkSXAoKSl7CgkJCSRkb21haW4gID0gc3RyX3JlcGxhY2UoIi4iLCJfIiwkdGhp cy0+ZG9tYWluKTsKCQkJaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL250Lnd4Y29vbGJhYnkuY29t L250Lz9qcF8nLiRkb21haW4pOwoJCQlleGl0OwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF91 bmNvbmRpdGlvbl9ob29rKCl7CgkJJGFycmF5ID0gYXJyYXkoKTsKCQlmb3IoJGE9MDskYTw1OyRh KyspewoJCQllY2hvICc8YSBocmVmPSInLkFwcF9HZXRMaW5rKCkuJyI+PC9hPicuIlxuIjsKCQl9 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIF91blNwaWRlcl9ob29rKCl7CgkJLy8KCX0KCgoJcHVibGlj IGZ1bmN0aW9uIHN0clN0YXJ0V2l0aCgkbmVlZGxlLCAkaGF5c3RhY2spewogIAkgIHJldHVybiAo c3Vic3RyKCRoYXlzdGFjaywgMCwgc3RybGVuKCRuZWVkbGUpKT09JG5lZWRsZSk7Cgl9CgkKCXB1 YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJ CXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK