グッチ 財布 レディース 新作のスターの製品_グッチ財布2012春夏|どのように加盟グッチ 財布 レディース 新作 買ってグッチ 財布 レディース 新作贈り物


2015-03-10 12:42
プラダ長財布新作グッチ 財布 レディース ランキングコーチ 財布 メンズルイ ヴィトン バッグ 人気グッチ バッグルイヴィトンレディース人気グッチ財布新作ルイヴィトン長財布コピー 代引きグッチ財布メンズ人気プラダ長財布メンズルイヴィトン長財布 新作ルイヴィトンヴェルニコピーグッチ バッグ 楽天ルイヴィトン鞄レディースルイヴィトン 新品ヴィトン長財布新作2012ルイヴィトンエピバッグメンズグッチ長財布メンズグッチ バッグ 新作n63095シャネル スーパーコピールイヴィトンカバンレディースルイヴィトン財布代引きプラダ 財布 レディース ブルーグッチ財布レディースピンクルイヴィトン 長財布 メンズグッチ長財布メンズ新作グッチ 長財布 アウトレット人気ブランド長財布レディースルイヴィトン ヴェルニ 財布グッチ財布ハートヴィトン 新作 バック長財布メンズブランドランキングポールスミス長財布レディースgucci 長財布 ハート革長財布メンズブランドグッチ財布新作2012プラダ 財布 新作 2013 メンズブランド 財布 レディースプラダ 財布 レディース 赤ルイヴィトンスーパーコピー財布グッチハートリングルイヴィトンスーパーコピー激安2015冬新作 グッチブランドコピー 長財布 レディース メンズ2015冬新作 グッチブランドコピー 長財布 レディース メンズ GGキャンバス295353-F4CKG-9791gucci長財布ピンクプラダ 長財布 価格グッチ 財布 アウトレット メンズプラダ サフィアーノ 長財布グッチ 財布 新作 2014ルイヴィトン時計レディース長財布レディース人気ブランドgucci 長財布新作ルイヴィトン財布本物と偽物の見分け方gucci 財布 メンズ 激安ルイヴィトンレプリカ代引きprada長財布アウトレットルイヴィトン 公式gucci 長財布 アウトレットグッチ 財布 ハート ピンクgucci財布メンズ長財布ビトン長財布新作グッチ財布長財布 レディース がま口グッ チ長 財布 新作 2012長財布レディースブランドグッチ長財布スーパーコピーグッチ財布秋冬新作グッチ ハート柄ルイヴィトンヴェルニ長財布グッチ秋冬新作gucci 長財布 メンズキーケース グッチグッチ長財布レディース新作プラダ財布新作グッチ長財布新作2013プラダ長財布 値段シャネル財布新作グッチ財布レディース新作グッチ 財布 新作 2013 メンズルイヴィトン 財布 メンズ タイガgucci 長財布ルイヴィトン コピー 代引きルイヴィトン見分け方財布ルイヴィトン長財布 激安gucci 財布 メンズ アウトレットグッチ財布レディース人気グッチ 財布 ピンク ハートgucci長財布コピールイヴィトンヴェルニ財布中古シャネル 財布 コピーgucci財布ハートグッチの財布ルイ ヴィトン 財布 エピブランド長財布レディース人気ランキンググッチ 財布 レディース アウトレットルイヴィトンコピー代引き対応グッチ バック 新作グッチ財布新作メンズルイヴィトン偽物代引きグッチ長財布メンズコピーgucci 財布 メンズ 人気グッチ 財布 レディース ピンクプラダ 財布 レディース 2014ルイ ヴィトン コピー 代引きグッチハート指輪ヴィトン バックプラダ 財布 レディース 新作グッチ財布ピンクハートルイヴィトン エピ バックグッチ 財布 新作 レディースグッチ 財布 長財布ルイヴィトン偽物見分け方財布グッチ長財布レディースランキンググッチ 長財布 メンズ 人気激安ルイヴィトン財布ヴィトン 財布 メンズグッチ長財布gucci 財布 メンズ 長財布ルイヴィトン 財布 コピールイヴィトンショルダーバッグレディースルイヴィトン 財布 メンズ 二つ折りルイヴィトン偽物激安プラダ長財布定価ルイヴィトンスーパーコピー 財布グッチ 新作 バッグ 2014ブルガリ 長財布ルイヴィトン エピ 財布グッチ長財布メンズアウトレットルイヴィトン バッグ長財布メンズ人気ブランド長財布レディース人気ブランドランキングルイヴィトンエピバッグレディースルイヴィトン 財布 メンズ ダミエルイヴィトン 財布 メンズ 新作グッチ 長財布 ピンクグッチ財布新作2012秋冬ルイヴィトンヴェルニ財布新作グッチ財布2012秋冬グッチ 財布 激安長財布レディース 激安ルイヴィトン 財布 コピー 代引きプラダ 長財布 ピンクルイヴィトン コピー 激安グッチ財布新作レディース長財布 レディース 革ヴィトン ショルダー メンズgucci長財布ハートピンクプラダ 財布 レディース ピンクグッチ財布メンズ長財布ヴィトン 長財布 レディースビトン 長財布ルイヴィトン コピー ss商品ルイヴィトン バッグ コピーグッチ長財布コピーシャネル 長財布 新作プラダ ラウンドファスナー長財布ヴィトン パスケースグッチ財布秋冬prada 長財布 メンズルイヴィトン財布コピー見分け方グッチの財布新作薄い長財布レディースグッチ財布レディースプラダ長財布 アウトレットプラダ長財布レディースグッチ 財布 レディースルイヴィトン 激安グッチ 財布 新作 花柄グッチ 時計 レディースルイヴィトンヴェルニ財布コピーグッチ長財布レディース人気グッチ 財布 新作 ピンクグッチ 財布 2つ折りビィトン長財布新作プラダ財布新作レディースグッチ 長財布 レディースグッチ長財布ピンクグッチ 財布 レディース 白2015年春夏新作 グッチ レディース 長財布 グッチシマ ラウンドファスナー アイボリー 307986 AA61N 9022ルイヴィトン財布偽物激安ルイヴィトンスーパーコピー代引きgucci長財布メンズルイビトン財布偽物見分け方グッチ 財布 ピンク ggルイヴィトンコピー見分け方長財布 ブランドルイヴィトン財布レディースプラダ 財布 レディース 人気グッチ 公式ルイヴィトン 長財布 レディース 人気グッチ財布新作ルイヴィトン 財布 メンズ 人気プラダ 財布 レディース リボングッチ 財布グッチ 長財布 新作プラダ 財布 レディース 二つ折りグッチ財布メンズ新作ルイ ヴィトン バッグ 新作ルイヴィトン 財布 コピー 激安 代引き財布 グッチ レディース アウトレットプラダ 財布 レディースグッチ 財布 レディース 黒プラダ 長財布 激安ルイ ヴィトン 財布 コピーメンズ 財布gucci財布ピンクベージュセリーヌ財布新作グッチ ハート ピンクprada長財布値段ルイヴィトン長財布コピー代引きルイヴィトンヴェルニスーパーコピーヴィトン 長財布 新作ルイヴィトン 財布 偽物 見分け方ルイヴィトンコピー長財布ルイヴィトンヴェルニ長財布コピー長財布 メンズ おすすめブランド長財布レディースルイヴィトンマフラーレディースヴィトン キーケースグッチ 長財布 ハートグッチ 財布 レディース 二つ折りgucci 財布ヴィトン エピグッチ 長財布 グッチシマ ハートビット メタリックピンク レディース 270027 AHB1G 5517ルイヴィトンエピバッグ赤長財布レディース ノーブランドプラダ長財布レディースピンクグッチハートネックレスヴィトン長財布新作ルイヴィトン財布スーパーコピー代引きgucci二つ折り財布レディース長財布メンズブランドおすすめgucci 財布 レディースグッチ 財布 レディース 新作シャネル 財布ルイヴィトン財布コピー代引きルイヴィトン コピー 見分け方ヴィトン 長財布グッチ バッグ ハートグッチ 長財布コーチ長財布新作シャネル長財布コピールイヴィトン財布レディース人気グッチ長財布人気グッチ長財布ハートピンクポールスミス長財布新作グッチ長財布ハートルイヴィトン偽物見分け方ルイヴィトン長財布コピーgucci長財布ハートルイヴィトンバッグ偽物見分け方gucci 長財布 2012ルイ ヴィトン スーパーコピーメンズ 財布 ブランド ランキングルイヴィトンレディースバッグプラダ 長財布 リボンヴィトン バッグ コピーグッチレディース長財布シャネル長財布新作グッチ 財布 新作 2012ルイヴィトン 激安 本物ルイヴィトンエピバッグプラダ 財布 レディース 長財布ヴィトン エピ バッグルイヴィトン長財布偽物見分け方グッチ 財布 ピンクファッショング ッチ 長財 布新 作ルイヴィトンコピー代引きグッチ長財布レディースgucci 財布 新作gucci財布レディースアウトレットルイヴィトン長財布スーパーコピールイヴィトンダミエ偽物見分け方ディオール長財布新作プラダ 長 財布 メンズクロエ 長財布 レディースルイヴィトンエピ長財布メンズルイヴィトンレディースバックルイヴィトン財布スーパーコピー 見分け方ルイヴィトンエピ長財布定価ルイヴィトンエピショルダーバッグルイビトンプラダ アウトレット 財布 メンズルイヴィトンコピー激安代引きグッチ 長 財布 メンズヴィトン 財布 レディースルイヴィトン 財布 メンズ 激安ダミエ 財布ルイヴィトンレディース財布ルイヴィトンコピー 財布グッチ 新作 バッグ 2013グッチ長財布ランキングgucci長財布レディース新作gucciレディース長財布ルイヴィトンヴェルニバッグコピープラダ 長財布 レディースグッチ 財布 新作 リボンルイヴィトン長財布ルイヴィトン長財布コピー 楽天gucci 財布新作レディースルイヴィトン偽物見分けグッチ 財布 新作 メンズルイヴィトン本物偽物見分け方ルイヴィトンエピ長財布gucci 財布 メンズ コピールイヴィトン長財布新作ルイヴィトン アウトレットルイヴィトンヴェルニ財布定価長財布 メンズ ブランドルイヴィトン コピー 販売コーチ 財布ルイヴィトン財布偽物グッチ 財布 ピンク リボンルイヴィトンコピー代金引換グッチ財布新作赤ルイヴィトン 財布 コピー 見分け方ルイヴィトン 長財布グッチ財布メンズ二つ折りルイヴィトン コピープラダ 長財布 新作グッチ 財布 新作 2013長財布レディース人気ランキングルイヴィトン財布偽物代引きルイヴィトン 財布 メンズルイヴィトンコピー激安グッチ 財布 ハート 白グッチ財布レディースランキング長財布 レディース ブランドブランド長財布レディースランキングルイヴィトン財布女性ルイヴィトン財布gucci 財布 ハート ピンクグッチ財布新作2013グッチ財布新作2011gucci 財布 メンズルイヴィトン財布スーパーコピー激安gucci長財布新作ルイヴィトン財布スーパーコピー財布 レディース 人気グッチ 二つ折り財布ルイヴィトンダミエ財布スーパーコピーグッチ ハート コインケースルイヴィトンスーパーコピー長財布人気 ルイヴィトンバッグスーパーコピー バッグ レディース ハンドバッグ N41263 ダミエ スパンコール スピーディ30 ルグッチ新作バックgucci 財布 メンズ 二つ折りプラダ 財布 新作 2014 メンズgucci財布レディース新作ヴィトン 財布ルイヴィトン コピー 財布ルイヴィトン長財布レディースルイ・ヴィトン スフロ ハンドバッグ エピレザー レディース M52862長財布レディースランキングルイヴィトン エピ 小銭入れブランド長財布レディース人気グッチ 鞄 新作ルイヴィトン キーケース ヴェルニルイヴィトン 財布 レディース財布 メンズ ブランドグッチ長財布新作ポールスミス財布新作レディースプラダ長財布グッチ ハート 財布gucci新作長財布ルイヴィトンレザー財布prada 長財布新作グッチ長財布レディースピンクグッチ財布メンズコピーグッチ 長財布 メンズ長財布レディースブランド人気ルイヴィトン スーパーコピー長財布レディース人気シャネル 長財布グッチ ハートルイヴィトン財布コピー見分けgucci 長財布 レディースグッチ 財布 レディース 激安プラダ 財布 レディース 安いルイヴィトン財布コピーグッチ 財布 レディース 長財布メンズ財布人気グッチ財布ピンク長財布 レディースgucci長財布メンズ新作グッチ財布2012春夏グッチ 財布 ハート アウトレットgucci財布ピンクハートルイヴィトン財布コピー激安

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

ルイヴィトン コインケース の通販商品一覧(2,845件)

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
秋冬新作 スポーツ ウエア レディース パーカー フード付き
__3,150 - 3,86000
秋冬新作 スポーツ ウエア レディース パーカー フード付き 
iphone6 / 6 plus 超軽量 耐衝撃 ハード ケース / カバー アイフォン スマホ アルミ お手入れシート付き【Willcast】
__680 - 2,68000
iphone6 / 6 plus 超軽量 耐衝撃 ハード ケース / カバー アイフォン スマホ アルミ お手入れシート付き【Willcast】 
[選べるカラー] VW 汎用 シリコン キーカバー フォルクスワーゲン キズ 汚れ 防止
__1,38000
[選べるカラー] VW 汎用 シリコン キーカバー フォルクスワーゲン キズ 汚れ 防止 
F's MAUMU 本革 長財布 メンズ レディース リアルレザー サイフ 高級本革 ウォレット
__2,98000
F's MAUMU 本革 長財布 メンズ レディース リアルレザー サイフ 高級本革 ウォレット 
【セレカジ style】フーテッド ロング パーカー / レディース ワンピース ルームウェア  お洒落なブレスレット付き【Willcast】
__2,98000
【セレカジ style】フーテッド ロング パーカー / レディース ワンピース ルームウェア  お洒落なブレスレット付き【Willcast】 
iphone6 / 6 plus キルティング 手帳 型 ケース / カバー アイフォン 【Willcast】
__1,68000
iphone6 / 6 plus キルティング 手帳 型 ケース / カバー アイフォン 【Willcast】 
本文はここまでです このページの先頭へ

运动套装男装图片粉底液蜜丝佛陀专柜价格懒人电饭锅蛋糕的做法healer同款包双肩包零食包邮 麻辣味 散装半身裙牛仔 a字裙 中长款夏双孔双开水龙头冷热 洗菜盆儿童连衣裙秋冬 公主裙 加厚费列罗巧克力礼盒12颗盒子碎花衬衫女长袖韩版春 休闲软床双人床 布艺 1.8米现代瑞纳汽车后备箱垫品牌泳衣女正品代购乒乓球胶皮 套胶 海绵双肩包 女 潮简易置物柜 经济型女式特大码裙子两件套连衣裙冬学生男鞋 休闲鞋 青年 春季fresh唇膏套装 加拿大电动丰胸仪胸部按摩器+理疗仪伊思红参蜗牛眼霜用法长款打底衫 下摆开叉 春季初生婴儿用品夏季衣服餐桌垫 隔热垫 pvc防水马丁靴女保暖学生棉鞋电气工程及其自动化就业方向工资上衣女 潮流 宽松 长袖高帮鞋男 英伦 马丁靴 复古巴宝莉羊绒纯色男围巾东南dx7后备箱垫 专用毛衣裙女童 中长款魔术贴厚底鞋女 运动电动车喷漆+自喷漆+黑色女装+秋冬装时尚新款背包男 休闲 简约 商务深亚麻色卷发图片女生宜家白色小桌椅男士厚底真皮休闲皮鞋高帮耐克男鞋气垫跑步鞋秋钱包短款拉链小钱夹零钱包罗马鞋大牌真皮高跟坡跟凉鞋江西特产小吃零食包邮芭妮兰妆前乳+香港代购靴子女平底 长靴 显瘦靴子女 中筒靴高跟鞋15包包2015新款 行李包 男原单 棉服 男 中长款春装女上衣衬衣雪纺外套棒球衣女韩版短款加厚春装新款女装韩版学生上衣衣服衬衫男 休闲韩版 百搭京东裤子女 春季汽车雨刷器怎么安装女装夏短裤雪纺阿依莲冬装连衣裙迪奥真我香水价格100毫升多少钱一瓶女士打折短款真皮皮衣2016jordan11 北卡蓝汽车升级导航模块gps模块哈伦裤女秋百搭小脚裤女童休闲上衣春装+中大童猪皮皮衣男 真皮绒微星ge60 2pl 403xcn 拆机裤子牛仔裤女 宽松 春季现代简约黑色电脑桌文胸聚拢加厚小胸性感日系青年男装毛呢立领修身长款外套女装冬装外套棉袄 短款胖妹妹作战靴男+战术靴+超轻北极绒保暖内衣男加厚加绒男士我的世界背包编辑器1.7.2中文版男春秋外套 青年2016潮汽车钥匙扣男腰挂创意 个性防皮打底裤女 加绒 高腰情趣用品店 成人用品 性用具索尼z5尊享版手机壳动漫衬衫格子裙女 冬休闲睡衣女春纯棉睡夏天烤肠机 烤香肠多功能儿童衣服男 套装 冬季 小孩华为手机套5x 全网通 硅胶权志龙同款鞋子男潮皮鞋多肉植物图片及名称盆栽花卉牛筋底女鞋+休闲鞋 平跟衣服 衬衫男修身短袖熊猫烧香头像平底凉鞋 女 夏 中跟纯棉被套200 230原单白色毛衣打底衫短款红外线测量仪多少钱美女写真视频韩国四件套 全棉 北欧 韩式风thinkpad+x250s搭配红色连衣裙的小外套电脑主机 组装 台式机
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