SAMPLING & SURVEY TECHNIQUES

Laporan Analisis Finance & Investment dengan 7 QC Tools

Logo


Data Dummy

1. Check Sheet: Tipe Transaksi Gagal

2. Control Chart: Fluktuasi Mingguan Portofolio

3. Fishbone Diagram: Penyebab Keterlambatan Transfer

4. Flowchart: Proses Investasi

5. Histogram: Frekuensi Pengeluaran

6. Pareto Chart: Tipe Transaksi Bermasalah

7. Scatter Diagram: Hubungan Nilai Investasi dan Return

LS0tICANCnRpdGxlOiAiU0FNUExJTkcgJiBTVVJWRVkgVEVDSE5JUVVFUyIgIA0Kc3VidGl0bGU6ICJMYXBvcmFuIEFuYWxpc2lzIEZpbmFuY2UgJiBJbnZlc3RtZW50IGRlbmdhbiA3IFFDIFRvb2xzIiAgDQphdXRob3I6IA0KICAtICJEQURBTiBSQU1EQU4gSElEQVlBVCBOSU1fNTIyNDAwMjgiDQogIC0gIk0uQWxmYXllZCBTYWZhYWQgTklNXzUyMjQwMDA5IiAgDQpkYXRlOiAgIk1pbmdndSwgMjAvMDQvMjAyNSIgDQpvdXRwdXQ6ICANCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICANCiAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZSAgDQogICAgdGh1bWJuYWlsczogdHJ1ZSAgDQogICAgbGlnaHRib3g6IHRydWUgIA0KICAgIGdhbGxlcnk6IHRydWUgIA0KICAgIGxpYl9kaXI6IGxpYnMgIA0KICAgIGRmX3ByaW50OiAicGFnZWQiICANCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93IiAgDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZSAgDQogICAgY3NzOiAic3R5bGUuY3NzIiAgDQotLS0gIA0KDQo8aW1nIHNyYz0ic3RhdGlzdGlrYS5qcGciIGFsdD0iTG9nbyIgc3R5bGU9IndpZHRoOjIwMHB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyI+DQoNCi0tLQ0KDQojIyBEYXRhIER1bW15DQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQ0KIyBQYXN0aWthbiBsaWJyYXJ5IERUIHN1ZGFoIHRlcnBhc2FuZw0KbGlicmFyeShEVCkNCg0KIyBNZW1idWF0IGRhdGEgZHVtbXkgdW50dWsgRmluYW5jZSAmIEludmVzdG1lbnQgZGVsYXkNCnNldC5zZWVkKDQ1NikNCmRhdGVzIDwtIHNhbXBsZShzZXEoYXMuRGF0ZSgiMjAyNS0wNC0wMSIpLCBhcy5EYXRlKCIyMDI1LTA0LTMwIiksIGJ5ID0gImRheSIpLCAxMDAsIHJlcGxhY2UgPSBUUlVFKQ0KcmVhc29ucyA8LSBjKA0KICAiTWFya2V0IFZvbGF0aWxpdHkiLA0KICAiU3lzdGVtIEVycm9yIiwNCiAgIkluc3VmZmljaWVudCBGdW5kcyIsDQogICJUcmFuc2FjdGlvbiBUaW1lb3V0IiwNCiAgIlJlZ3VsYXRvcnkgRGVsYXkiLA0KICAiTWFudWFsIEFwcHJvdmFsIE5lZWRlZCIsDQogICJEYXRhIE1pc21hdGNoIiwNCiAgIlRyYW5zZmVyIExpbWl0IEV4Y2VlZGVkIg0KKQ0KDQpmaW5hbmNlX2ludmVzdG1lbnRfZGVsYXkgPC0gZGF0YS5mcmFtZSgNCiAgRGF0ZSA9IGRhdGVzLA0KICBSZWFzb24gPSBzYW1wbGUocmVhc29ucywgMTAwLCByZXBsYWNlID0gVFJVRSkNCikNCg0KIyBUYW1waWxrYW4gRGF0YVRhYmxlDQpkYXRhdGFibGUoDQogIGZpbmFuY2VfaW52ZXN0bWVudF9kZWxheSwNCiAgb3B0aW9ucyA9IGxpc3QoDQogICAgc2Nyb2xsQ29sbGFwc2UgPSBUUlVFLA0KICAgIHNlYXJjaGluZyA9IFRSVUUsICAgIyBKaWthIGluZ2luIGFkYSBmaXR1ciBwZW5jYXJpYW4NCiAgICBwYWdpbmcgPSBUUlVFLCAgICAgICMgSmlrYSBpbmdpbiBhZGEgcGFnaW5hdGlvbg0KICAgIHBhZ2VMZW5ndGggPSAxMCAgICAgIyBKdW1sYWggYmFyaXMgcGVyIGhhbGFtYW4NCiAgKSwNCiAgY2FwdGlvbiA9IGh0bWx0b29sczo6dGFncyRjYXB0aW9uKA0KICAgIHN0eWxlID0gJ2NhcHRpb24tc2lkZTogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBib2xkOycsDQogICAgJ0RhdGEgRGVsYXkgS2V1YW5nYW4gZGFuIEludmVzdGFzaScNCiAgKSwNCiAgY2xhc3MgPSAnc3RyaXBlIGhvdmVyIGNvbXBhY3QnDQopDQpgYGANCg0KIyMgMS4gQ2hlY2sgU2hlZXQ6IFRpcGUgVHJhbnNha3NpIEdhZ2FsDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQ0KIyBQYXN0aWthbiBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbiBzdWRhaCB0ZXJwYXNhbmcNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KERUKQ0KbGlicmFyeShodG1sdG9vbHMpDQoNCiMgTWVtYnVhdCBkYXRhc2V0IGR1bW15IHRyYW5zYWtzaSBrZXVhbmdhbiBkYW4gaW52ZXN0YXNpDQpzZXQuc2VlZCgxMjMpDQoNCiMgR2VuZXJhdGUgdGFuZ2dhbCBkYWxhbSBidWxhbiBBcHJpbCAyMDI1DQpkYXRlcyA8LSBzYW1wbGUoc2VxKGFzLkRhdGUoIjIwMjUtMDQtMDEiKSwgYXMuRGF0ZSgiMjAyNS0wNC0zMCIpLCBieSA9ICJkYXkiKSwgMTAwLCByZXBsYWNlID0gVFJVRSkNCg0KIyBEYWZ0YXIgYWxhc2FuIGRlbGF5IHVtdW0gZGFsYW0ga29udGVrcyBrZXVhbmdhbiBkYW4gaW52ZXN0YXNpDQpyZWFzb25zIDwtIGMoDQogICJNYXJrZXQgVm9sYXRpbGl0eSIsDQogICJTeXN0ZW0gRXJyb3IiLA0KICAiSW5zdWZmaWNpZW50IEZ1bmRzIiwNCiAgIlRyYW5zYWN0aW9uIFRpbWVvdXQiLA0KICAiUmVndWxhdG9yeSBEZWxheSIsDQogICJNYW51YWwgQXBwcm92YWwgTmVlZGVkIiwNCiAgIkRhdGEgTWlzbWF0Y2giLA0KICAiVHJhbnNmZXIgTGltaXQgRXhjZWVkZWQiDQopDQoNCiMgTWVtYnVhdCBkYXRhc2V0IGR1bW15IGRlbGF5IHRyYW5zYWtzaQ0KZmluYW5jZV9pbnZlc3RtZW50X2RlbGF5IDwtIGRhdGEuZnJhbWUoDQogIERhdGUgPSBkYXRlcywNCiAgUmVhc29uID0gc2FtcGxlKHJlYXNvbnMsIDEwMCwgcmVwbGFjZSA9IFRSVUUpDQopDQoNCiMgTWVuZ2hpdHVuZyBmcmVrdWVuc2kgc2V0aWFwIGFsYXNhbiBkZWxheQ0KcmVhc29uX3N1bW1hcnkgPC0gZmluYW5jZV9pbnZlc3RtZW50X2RlbGF5ICU+JQ0KICBjb3VudChSZWFzb24sIHNvcnQgPSBUUlVFKSAlPiUNCiAgcmVuYW1lKEZhaWx1cmVfUmVhc29uID0gUmVhc29uLCBGcmVxdWVuY3kgPSBuKQ0KDQojIE1lbmFtcGlsa2FuIHRhYmVsIGludGVyYWt0aWYgZGVuZ2FuIERUDQpkYXRhdGFibGUoDQogIHJlYXNvbl9zdW1tYXJ5LA0KICBvcHRpb25zID0gbGlzdCgNCiAgICBzY3JvbGxDb2xsYXBzZSA9IFRSVUUsDQogICAgc2VhcmNoaW5nID0gRkFMU0UsDQogICAgcGFnaW5nID0gRkFMU0UsDQogICAgYXV0b1dpZHRoID0gVFJVRQ0KICApLA0KICByb3duYW1lcyA9IEZBTFNFLA0KICBjYXB0aW9uID0gdGFncyRjYXB0aW9uKA0KICAgIHN0eWxlPSdjYXB0aW9uLXNpZGU6IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogYm9sZDsnLA0KICAgICdDaGVjayBTaGVldDogU3VtbWFyeSBvZiBEZWxheSBSZWFzb25zIGluIEZpbmFuY2UgJiBJbnZlc3RtZW50Jw0KICApLA0KICBjbGFzcyA9ICdzdHJpcGUgaG92ZXIgY29tcGFjdCcNCikNCmBgYA0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9DQojIFBhc3Rpa2FuIGxpYnJhcnkgeWFuZyBkaXBlcmx1a2FuIHN1ZGFoIHRlcnBhc2FuZw0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoRFQpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoaHRtbHRvb2xzKQ0KDQojIDEuIE1lbWJ1YXQgZGF0YXNldCBkdW1teSB1bnR1ayBEZWxheSBkaSBiaWRhbmcgS2V1YW5nYW4gJiBJbnZlc3Rhc2kNCnNldC5zZWVkKDEyMykNCmRhdGVzIDwtIHNhbXBsZShzZXEoYXMuRGF0ZSgiMjAyNS0wNC0wMSIpLCBhcy5EYXRlKCIyMDI1LTA0LTMwIiksIGJ5ID0gImRheSIpLCAxMDAsIHJlcGxhY2UgPSBUUlVFKQ0KcmVhc29ucyA8LSBjKA0KICAiTWFya2V0IFZvbGF0aWxpdHkiLA0KICAiU3lzdGVtIEVycm9yIiwNCiAgIkluc3VmZmljaWVudCBGdW5kcyIsDQogICJUcmFuc2FjdGlvbiBUaW1lb3V0IiwNCiAgIlJlZ3VsYXRvcnkgRGVsYXkiLA0KICAiTWFudWFsIEFwcHJvdmFsIE5lZWRlZCIsDQogICJEYXRhIE1pc21hdGNoIiwNCiAgIlRyYW5zZmVyIExpbWl0IEV4Y2VlZGVkIg0KKQ0KDQpmaW5hbmNlX2ludmVzdG1lbnRfZGVsYXkgPC0gZGF0YS5mcmFtZSgNCiAgRGF0ZSA9IGRhdGVzLA0KICBSZWFzb24gPSBzYW1wbGUocmVhc29ucywgMTAwLCByZXBsYWNlID0gVFJVRSkNCikNCg0KIyAyLiBIaXR1bmcgZnJla3VlbnNpIGFsYXNhbiBkZWxheQ0KcmVhc29uX3N1bW1hcnkgPC0gZmluYW5jZV9pbnZlc3RtZW50X2RlbGF5ICU+JQ0KICBjb3VudChSZWFzb24sIHNvcnQgPSBUUlVFKSAlPiUNCiAgcmVuYW1lKEZhaWx1cmVfUmVhc29uID0gUmVhc29uLCBGcmVxdWVuY3kgPSBuKQ0KDQojIDMuIFRhbXBpbGthbiB0YWJlbCBpbnRlcmFrdGlmIERUDQpkYXRhdGFibGUoDQogIHJlYXNvbl9zdW1tYXJ5LA0KICBvcHRpb25zID0gbGlzdCgNCiAgICBzY3JvbGxDb2xsYXBzZSA9IFRSVUUsDQogICAgc2VhcmNoaW5nID0gRkFMU0UsDQogICAgcGFnaW5nID0gRkFMU0UsDQogICAgYXV0b1dpZHRoID0gVFJVRQ0KICApLA0KICByb3duYW1lcyA9IEZBTFNFLA0KICBjYXB0aW9uID0gdGFncyRjYXB0aW9uKA0KICAgIHN0eWxlPSdjYXB0aW9uLXNpZGU6IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogYm9sZDsnLA0KICAgICdDaGVjayBTaGVldDogU3VtbWFyeSBvZiBEZWxheSBSZWFzb25zIGluIEZpbmFuY2UgJiBJbnZlc3RtZW50Jw0KICApLA0KICBjbGFzcyA9ICdzdHJpcGUgaG92ZXIgY29tcGFjdCcNCikNCg0KIyA0LiBCdWF0IGJhciBjaGFydCBpbnRlcmFrdGlmIG1lbmdndW5ha2FuIHBsb3RseQ0KcGxvdF9seShyZWFzb25fc3VtbWFyeSwNCiAgICAgICAgeCA9IH5GcmVxdWVuY3ksDQogICAgICAgIHkgPSB+cmVvcmRlcihGYWlsdXJlX1JlYXNvbiwgRnJlcXVlbmN5KSwNCiAgICAgICAgdHlwZSA9ICdiYXInLA0KICAgICAgICBvcmllbnRhdGlvbiA9ICdoJywNCiAgICAgICAgbWFya2VyID0gbGlzdCgNCiAgICAgICAgICBjb2xvciA9IH5GcmVxdWVuY3ksDQogICAgICAgICAgY29sb3JzY2FsZSA9ICdWaXJpZGlzJywgICMgQWx0ZXJuYXRpZjogJ0JsdWVyZWQnLCAnQ2l2aWRpcycsICdZbE9yUmQnDQogICAgICAgICAgc2hvd3NjYWxlID0gVFJVRQ0KICAgICAgICApDQopICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiQ2hlY2sgU2hlZXQ6IEZyZXF1ZW5jeSBvZiBEZWxheSBSZWFzb25zIiwgZm9udCA9IGxpc3Qoc2l6ZSA9IDE4KSksDQogICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIkZyZXF1ZW5jeSIpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJSZWFzb24iKSwNCiAgICBtYXJnaW4gPSBsaXN0KGwgPSAxNTApDQogICkNCmBgYA0KDQojIyAyLiBDb250cm9sIENoYXJ0OiBGbHVrdHVhc2kgTWluZ2d1YW4gUG9ydG9mb2xpbw0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCg0KIyBMb2FkIGxpYnJhcmllcw0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGRwbHlyKQ0KDQojIERhdGEgZGVsYXkga2V1YW5nYW4gZGFuIGludmVzdGFzaSAoc2VzdWFpIGRhdGEgQW5kYSkNCnNldC5zZWVkKDQ1NikNCmRhdGVzIDwtIHNhbXBsZShzZXEoYXMuRGF0ZSgiMjAyNS0wNC0wMSIpLCBhcy5EYXRlKCIyMDI1LTA0LTMwIiksIGJ5ID0gImRheSIpLCAxMDAsIHJlcGxhY2UgPSBUUlVFKQ0KcmVhc29ucyA8LSBjKA0KICAiTWFya2V0IFZvbGF0aWxpdHkiLA0KICAiU3lzdGVtIEVycm9yIiwNCiAgIkluc3VmZmljaWVudCBGdW5kcyIsDQogICJUcmFuc2FjdGlvbiBUaW1lb3V0IiwNCiAgIlJlZ3VsYXRvcnkgRGVsYXkiLA0KICAiTWFudWFsIEFwcHJvdmFsIE5lZWRlZCIsDQogICJEYXRhIE1pc21hdGNoIiwNCiAgIlRyYW5zZmVyIExpbWl0IEV4Y2VlZGVkIg0KKQ0KDQpmaW5hbmNlX2ludmVzdG1lbnRfZGVsYXkgPC0gZGF0YS5mcmFtZSgNCiAgRGF0ZSA9IGRhdGVzLA0KICBSZWFzb24gPSBzYW1wbGUocmVhc29ucywgMTAwLCByZXBsYWNlID0gVFJVRSkNCikNCg0KIyBIaXR1bmcganVtbGFoIGRlbGF5IHBlciBoYXJpDQpkYWlseV9kZWxheSA8LSBmaW5hbmNlX2ludmVzdG1lbnRfZGVsYXkgJT4lDQogIGdyb3VwX2J5KERhdGUpICU+JQ0KICBzdW1tYXJpc2UoSnVtbGFoX0RlbGF5ID0gbigpKQ0KDQojIEhpdHVuZyBzdGF0aXN0aWsgZGFzYXIgdW50dWsgY29udHJvbCBjaGFydA0KbWVhbl9kZWxheSA8LSBtZWFuKGRhaWx5X2RlbGF5JEp1bWxhaF9EZWxheSkNCnNkX2RlbGF5IDwtIHNkKGRhaWx5X2RlbGF5JEp1bWxhaF9EZWxheSkNCg0KIyBUZW50dWthbiBiYXRhcyBrZW5kYWxpICgzLXNpZ21hKQ0KVUNMIDwtIG1lYW5fZGVsYXkgKyAzICogc2RfZGVsYXkNCkxDTCA8LSBpZmVsc2UobWVhbl9kZWxheSAtIDMgKiBzZF9kZWxheSA8IDAsIDAsIG1lYW5fZGVsYXkgLSAzICogc2RfZGVsYXkpDQpDTCA8LSBtZWFuX2RlbGF5DQoNCiMgVGFuZGFpIG91dGxpZXJzICh0ZXJnYW5qdXIgbWVsYW1wYXVpIGJhdGFzIGtlbmRhbGkpDQpkYWlseV9kZWxheSA8LSBkYWlseV9kZWxheSAlPiUNCiAgbXV0YXRlKE91dGxpZXIgPSBpZmVsc2UoSnVtbGFoX0RlbGF5ID4gVUNMIHwgSnVtbGFoX0RlbGF5IDwgTENMLCAiWWEiLCAiVGlkYWsiKSkNCg0KIyBCdWF0IHBsb3QgQ29udHJvbCBDaGFydA0KcGxvdF9seShkYWlseV9kZWxheSwgeCA9IH5EYXRlLCB5ID0gfkp1bWxhaF9EZWxheSwgdHlwZSA9ICdzY2F0dGVyJywgbW9kZSA9ICdsaW5lcyttYXJrZXJzJywNCiAgICAgICAgbGluZSA9IGxpc3QoY29sb3IgPSAnYmx1ZScpLCANCiAgICAgICAgbWFya2VyID0gbGlzdChzaXplID0gOCwgY29sb3IgPSBpZmVsc2UoZGFpbHlfZGVsYXkkT3V0bGllciA9PSAiWWEiLCAicmVkIiwgImJsdWUiKSksDQogICAgICAgIGhvdmVyaW5mbyA9ICd0ZXh0JywNCiAgICAgICAgdGV4dCA9IH5wYXN0ZSgiVGFuZ2dhbDoiLCBEYXRlLCAiPGJyPkp1bWxhaCBEZWxheToiLCBKdW1sYWhfRGVsYXkpKSAlPiUNCiAgYWRkX2xpbmVzKHkgPSByZXAoQ0wsIG5yb3coZGFpbHlfZGVsYXkpKSwgbmFtZSA9ICJDTCIsIGxpbmUgPSBsaXN0KGNvbG9yID0gJ2dyZWVuJywgZGFzaCA9ICdkb3QnKSkgJT4lDQogIGFkZF9saW5lcyh5ID0gcmVwKFVDTCwgbnJvdyhkYWlseV9kZWxheSkpLCBuYW1lID0gIlVDTCIsIGxpbmUgPSBsaXN0KGNvbG9yID0gJ3JlZCcsIGRhc2ggPSAnZG90JykpICU+JQ0KICBhZGRfbGluZXMoeSA9IHJlcChMQ0wsIG5yb3coZGFpbHlfZGVsYXkpKSwgbmFtZSA9ICJMQ0wiLCBsaW5lID0gbGlzdChjb2xvciA9ICdyZWQnLCBkYXNoID0gJ2RvdCcpKSAlPiUNCiAgbGF5b3V0KHRpdGxlID0gIkNvbnRyb2wgQ2hhcnQg4oCTIEp1bWxhaCBEZWxheSBLZXVhbmdhbiAmIEludmVzdGFzaSIsDQogICAgICAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiVGFuZ2dhbCIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIkp1bWxhaCBEZWxheSIpLA0KICAgICAgICAgbGVnZW5kID0gbGlzdChvcmllbnRhdGlvbiA9ICdoJywgeCA9IDAuMywgeSA9IC0wLjIpKQ0KYGBgDQoNCiMjIDMuIEZpc2hib25lIERpYWdyYW06IFBlbnllYmFiIEtldGVybGFtYmF0YW4gVHJhbnNmZXINCg0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9DQojIFBhc3Rpa2FuIGxpYnJhcnkgRGlhZ3JhbW1lUiBzdWRhaCB0ZXJwYXNhbmcNCmxpYnJhcnkoRGlhZ3JhbW1lUikNCg0KIyBEYXRhIGFsYXNhbiBkZWxheSBkYXJpIGRhdGFzZXQga2FtdQ0KcmVhc29ucyA8LSBjKA0KICAiTWFya2V0IFZvbGF0aWxpdHkiLA0KICAiU3lzdGVtIEVycm9yIiwNCiAgIkluc3VmZmljaWVudCBGdW5kcyIsDQogICJUcmFuc2FjdGlvbiBUaW1lb3V0IiwNCiAgIlJlZ3VsYXRvcnkgRGVsYXkiLA0KICAiTWFudWFsIEFwcHJvdmFsIE5lZWRlZCIsDQogICJEYXRhIE1pc21hdGNoIiwNCiAgIlRyYW5zZmVyIExpbWl0IEV4Y2VlZGVkIg0KKQ0KDQojIEJ1YXQgRmlzaGJvbmUgRGlhZ3JhbQ0KZ3JWaXooIg0KZGlncmFwaCBmaXNoYm9uZSB7DQogIGdyYXBoIFtsYXlvdXQgPSAnZG90JywgcmFua2Rpcj0nTFInXQ0KICANCiAgIyBNYXNhbGFoIHV0YW1hDQogIG5vZGUgW3NoYXBlPWJveCwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRibHVlLCBmb250bmFtZT1IZWx2ZXRpY2FdDQogIE1hc2FsYWggW2xhYmVsPSdEZWxheSBLZXVhbmdhbiAmIEludmVzdGFzaSddDQogIA0KICAjIEZha3RvciB1dGFtYQ0KICBub2RlIFtzaGFwZT1lbGxpcHNlLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1vcmFuZ2VdDQogIE1hbmFqZW1lbiBbbGFiZWw9J01hbmFqZW1lbiddDQogIFByb3NlcyBbbGFiZWw9J1Byb3NlcyddDQogIE1lc2luIFtsYWJlbD0nTWVzaW4vIFRla25vbG9naSddDQogIE1hbnVzaWEgW2xhYmVsPSdNYW51c2lhJ10NCiAgRGF0YSBbbGFiZWw9J0RhdGEgJiBJbmZvcm1hc2knXQ0KICBSZWd1bGFzaSBbbGFiZWw9J1JlZ3VsYXNpICYgS2ViaWpha2FuJ10NCiAgDQogICMgSHVidW5na2FuIGZha3RvciB1dGFtYSBrZSBtYXNhbGFoIHV0YW1hDQogIE1hc2FsYWggLT4gTWFuYWplbWVuDQogIE1hc2FsYWggLT4gUHJvc2VzDQogIE1hc2FsYWggLT4gTWVzaW4NCiAgTWFzYWxhaCAtPiBNYW51c2lhDQogIE1hc2FsYWggLT4gRGF0YQ0KICBNYXNhbGFoIC0+IFJlZ3VsYXNpDQogIA0KICAjIFN1Yi1mYWt0b3IgZGkgYmF3YWggTWFuYWplbWVuDQogIG5vZGUgW3NoYXBlPWVsbGlwc2UsIHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPXllbGxvd10NCiAgS2ViaWpha2FuIFtsYWJlbD0nS2ViaWpha2FuJ10NCiAgU3RydWt0dXIgW2xhYmVsPSdTdHJ1a3R1ciBPcmdhbmlzYXNpJ10NCiAgTWFuYWplbWVuIC0+IEtlYmlqYWthbg0KICBNYW5hamVtZW4gLT4gU3RydWt0dXINCiAgDQogICMgU3ViLWZha3RvciBkaSBiYXdhaCBQcm9zZXMNCiAgUHJvc2VkdXIgW2xhYmVsPSdQcm9zZWR1ciddDQogIFN0YW5kYXIgW2xhYmVsPSdTdGFuZGFyIE9wZXJhc2knXQ0KICBQcm9zZXMgLT4gUHJvc2VkdXINCiAgUHJvc2VzIC0+IFN0YW5kYXINCiAgDQogICMgU3ViLWZha3RvciBkaSBiYXdhaCBNZXNpbg0KICBIYXJkd2FyZSBbbGFiZWw9J0hhcmR3YXJlJ10NCiAgU29mdHdhcmUgW2xhYmVsPSdTb2Z0d2FyZSddDQogIE1lc2luIC0+IEhhcmR3YXJlDQogIE1lc2luIC0+IFNvZnR3YXJlDQogIA0KICAjIFN1Yi1mYWt0b3IgZGkgYmF3YWggTWFudXNpYQ0KICBUcmFpbmluZyBbbGFiZWw9J1BlbGF0aWhhbiddDQogIEtldGVyYW1waWxhbiBbbGFiZWw9J0tldGVyYW1waWxhbiddDQogIE1hbnVzaWEgLT4gVHJhaW5pbmcNCiAgTWFudXNpYSAtPiBLZXRlcmFtcGlsYW4NCiAgDQogICMgU3ViLWZha3RvciBkaSBEYXRhDQogIERhdGFRdWFsaXR5IFtsYWJlbD0nS3VhbGl0YXMgRGF0YSddDQogIERhdGFTeXN0ZW0gW2xhYmVsPSdTaXN0ZW0gRGF0YSddDQogIERhdGEgLT4gRGF0YVF1YWxpdHkNCiAgRGF0YSAtPiBEYXRhU3lzdGVtDQogIA0KICAjIFN1Yi1mYWt0b3IgZGkgUmVndWxhc2kNCiAgS2ViaWpha2FuUmVzIFtsYWJlbD0nS2ViaWpha2FuIFJlZ3VsYXRvcnknXQ0KICBQZW5nYXdhc2FuIFtsYWJlbD0nUGVuZ2F3YXNhbiddDQogIFJlZ3VsYXNpIC0+IEtlYmlqYWthblJlcw0KICBSZWd1bGFzaSAtPiBQZW5nYXdhc2FuDQp9DQoiKQ0KYGBgDQojIyA0LiBGbG93Y2hhcnQ6IFByb3NlcyBJbnZlc3Rhc2kNCg0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9DQoNCmxpYnJhcnkoRGlhZ3JhbW1lUikNCg0KZ3JWaXooIg0KZGlncmFwaCBwcm9zZXNfaW52ZXN0YXNpIHsNCiAgZ3JhcGggW2xheW91dCA9IGRvdCwgcmFua2RpciA9IFRCXQ0KICBub2RlIFtmb250bmFtZSA9IEhlbHZldGljYSwgZm9udHNpemUgPSAxMl0NCg0KICAvLyBOb2RlIGRlZmluaXRpb25zIHdpdGggc2hhcGUsIGNvbG9yLCBhbmQgbGFiZWxzDQogIFN0YXJ0IFtsYWJlbCA9ICdTdGFydCcsIHNoYXBlID0gZWxsaXBzZSwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRibHVlXQ0KICBJbmZvIFtsYWJlbCA9ICdLdW1wdWxrYW4gSW5mb3JtYXNpJywgc2hhcGUgPSBwYXJhbGxlbG9ncmFtLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZWVuXQ0KICBBbmFsaXNpcyBbbGFiZWwgPSAnQW5hbGlzaXMgUmlzaWtvICYgUmV0dXJuJywgc2hhcGUgPSBib3gsIHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPW9yYW5nZV0NCiAgVHVqdWFuIFtsYWJlbCA9ICdUZW50dWthbiBUdWp1YW4gSW52ZXN0YXNpJywgc2hhcGUgPSBkaWFtb25kLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodHBpbmtdDQogIFN0cmF0ZWdpIFtsYWJlbCA9ICdUZW50dWthbiBTdHJhdGVnaSBJbnZlc3Rhc2knLCBzaGFwZSA9IGJveCwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9b3JhbmdlXQ0KICBLZXB1dHVzYW4gW2xhYmVsID0gJ1NpYXAgQmVyaW52ZXN0YXNpPycsIHNoYXBlID0gZGlhbW9uZCwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRwaW5rXQ0KICBUdW5kYSBbbGFiZWwgPSAnVHVuZGEgJiBFdmFsdWFzaSBVbGFuZycsIHNoYXBlID0gbm90ZSwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9Z3JheV0NCiAgRWtzZWt1c2kgW2xhYmVsID0gJ0Vrc2VrdXNpIEludmVzdGFzaScsIHNoYXBlID0gYm94LCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1vcmFuZ2VdDQogIE1vbml0b3JpbmcgW2xhYmVsID0gJ01vbml0b3JpbmcgJiBFdmFsdWFzaScsIHNoYXBlID0gdHJhcGV6aXVtLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj10aGlzdGxlXQ0KICBSZWJhbGFuY2luZyBbbGFiZWwgPSAnUmViYWxhbmNpbmcgUG9ydG9mb2xpbz8nLCBzaGFwZSA9IGRpYW1vbmQsIHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0cGlua10NCiAgU2VsZXNhaSBbbGFiZWwgPSAnU2VsZXNhaScsIHNoYXBlID0gZWxsaXBzZSwgc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRibHVlXQ0KDQogIC8vIEFycm93cyBiZXR3ZWVuIG5vZGVzIChmbG93KQ0KICBTdGFydCAtPiBJbmZvDQogIEluZm8gLT4gQW5hbGlzaXMNCiAgQW5hbGlzaXMgLT4gVHVqdWFuDQogIFR1anVhbiAtPiBTdHJhdGVnaQ0KICBTdHJhdGVnaSAtPiBLZXB1dHVzYW4NCiAgS2VwdXR1c2FuIC0+IEVrc2VrdXNpIFtsYWJlbCA9ICdZYSddDQogIEtlcHV0dXNhbiAtPiBUdW5kYSBbbGFiZWwgPSAnVGlkYWsnXQ0KICBFa3Nla3VzaSAtPiBNb25pdG9yaW5nDQogIE1vbml0b3JpbmcgLT4gUmViYWxhbmNpbmcNCiAgUmViYWxhbmNpbmcgLT4gU3RyYXRlZ2kgW2xhYmVsID0gJ1lhJywgc3R5bGU9ZGFzaGVkXQ0KICBSZWJhbGFuY2luZyAtPiBTZWxlc2FpIFtsYWJlbCA9ICdUaWRhayddDQp9DQoiKQ0KDQpgYGANCg0KDQoNCiMjIDUuIEhpc3RvZ3JhbTogRnJla3VlbnNpIFBlbmdlbHVhcmFuDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQ0KIyBJbnN0YWxsIGRhbiBsb2FkIGxpYnJhcnkgeWFuZyBkaXBlcmx1a2FuDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBHZW5lcmF0ZSBkYXRhIGRpc3RyaWJ1c2kgbm9ybWFsIChtZWFuPTUwLCBzZD0xMCkNCnNldC5zZWVkKDEyMykNCm5vcm1hbF9kYXRhIDwtIHJub3JtKDEwMDAsIG1lYW4gPSA1MCwgc2QgPSAxMCkgICMgMTAwMCBkYXRhIGFjYWsNCg0KIyBIaXR1bmcgZGVuc2l0eSBkYXRhIGRhcmkgZGlzdHJpYnVzaSBub3JtYWwNCmRlbnNpdHlfZGF0YSA8LSBkZW5zaXR5KG5vcm1hbF9kYXRhKQ0KDQojIEJ1YXQgaGlzdG9ncmFtIGRlbmdhbiBwbG90bHkgZGFuIHRhbWJhaGthbiBrdXJ2YSBkZW5zaXR5DQpoaXN0b2dyYW1fcGxvdCA8LSBwbG90X2x5KA0KICB4ID0gbm9ybWFsX2RhdGEsDQogIHR5cGUgPSAnaGlzdG9ncmFtJywNCiAgbWFya2VyID0gbGlzdChjb2xvciA9ICdsaWdodGJsdWUnLCBsaW5lID0gbGlzdChjb2xvciA9ICdibGFjaycsIHdpZHRoID0gMSkpLA0KICBuYW1lID0gJ0hpc3RvZ3JhbSBvZiBOb3JtYWwgRGF0YScsDQogIG5iaW5zeCA9IDMwLA0KICBvcGFjaXR5ID0gMC42LA0KICBzaG93bGVnZW5kID0gVFJVRQ0KKSAlPiUNCiAgIyBUYW1iYWhrYW4ga3VydmEgZGVuc2l0eQ0KICBhZGRfdHJhY2UoDQogICAgeCA9IGRlbnNpdHlfZGF0YSR4LA0KICAgIHkgPSBkZW5zaXR5X2RhdGEkeSAqIGxlbmd0aChub3JtYWxfZGF0YSkgKiBkaWZmKHJhbmdlKG5vcm1hbF9kYXRhKSkgLyAzMCwNCiAgICB0eXBlID0gJ3NjYXR0ZXInLA0KICAgIG1vZGUgPSAnbGluZXMnLA0KICAgIG5hbWUgPSAnRGVuc2l0eSBDdXJ2ZScsDQogICAgbGluZSA9IGxpc3QoY29sb3IgPSAnYmxhY2snLCB3aWR0aCA9IDMpLA0KICAgIHNob3dsZWdlbmQgPSBUUlVFDQogICkgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9ICdIaXN0b2dyYW0gb2YgTm9ybWFsIERpc3RyaWJ1dGlvbiB3aXRoIERlbnNpdHkgQ3VydmUnLA0KICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICdWYWx1ZScsIHNob3dncmlkID0gRkFMU0UpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICdGcmVxdWVuY3kgLyBEZW5zaXR5Jywgc2hvd2dyaWQgPSBGQUxTRSksDQogICAgYmFyZ2FwID0gMC4xLA0KICAgIHBsb3RfYmdjb2xvciA9ICd3aGl0ZScsDQogICAgcGFwZXJfYmdjb2xvciA9ICd3aGl0ZScsDQogICAgc2hvd2xlZ2VuZCA9IFRSVUUsDQogICAgbGVnZW5kID0gbGlzdCgNCiAgICAgIG9yaWVudGF0aW9uID0gJ3YnLCAgICAjIExlZ2VuZCB2ZXJ0aWthbA0KICAgICAgeCA9IDAuOTgsICAgICAgICAgICAgICMgUG9zaXNpIGthbmFuIGF0YXMNCiAgICAgIHhhbmNob3IgPSAncmlnaHQnLA0KICAgICAgeSA9IDAuOTgsICAgICAgICAgICAgICMgUG9zaXNpIGF0YXMNCiAgICAgIHlhbmNob3IgPSAndG9wJywNCiAgICAgIGJnY29sb3IgPSAncmdiYSgyNTUsMjU1LDI1NSwwLjgpJywgICMgTGF0YXIgYmVsYWthbmcgc2VtaS10cmFuc3BhcmFuDQogICAgICBib3JkZXJjb2xvciA9ICdibGFjaycsDQogICAgICBib3JkZXJ3aWR0aCA9IDAuMw0KICAgICkNCiAgKQ0KDQojIFRhbXBpbGthbiBwbG90DQpoaXN0b2dyYW1fcGxvdA0KYGBgDQoNCiMjIDYuIFBhcmV0byBDaGFydDogVGlwZSBUcmFuc2Frc2kgQmVybWFzYWxhaA0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCiMgTG9hZCBsaWJyYXJpZXMNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoUkNvbG9yQnJld2VyKQ0KDQojIFBhc3Rpa2FuIGRhdGEgc3VkYWggYWRhOiBmaW5hbmNlX2ludmVzdG1lbnRfZGVsYXkNCiMgSmlrYSBiZWx1bSwgZ3VuYWthbiBkYXRhIHlhbmcgc3VkYWggZGlidWF0IHNlYmVsdW1ueWENCg0KIyBIaXR1bmcganVtbGFoIGRlbGF5IHBlciBhbGFzYW4NCnBhcmV0b19kYXRhIDwtIGZpbmFuY2VfaW52ZXN0bWVudF9kZWxheSAlPiUNCiAgY291bnQoUmVhc29uLCBzb3J0ID0gVFJVRSkgJT4lDQogIG11dGF0ZSgNCiAgICBjdW1fZnJlcSA9IGN1bXN1bShuKSAvIHN1bShuKSAqIDEwMCAgIyBwZXJzZW4ga3VtdWxhdGlmDQogICkNCg0KIyBCdWF0IHdhcm5hIGJlcmJlZGEgdW50dWsgc2V0aWFwIFJlYXNvbg0KY29sb3JzIDwtIGJyZXdlci5wYWwobiA9IG5yb3cocGFyZXRvX2RhdGEpLCBuYW1lID0gIlNldDMiKQ0KDQojIEJ1YXQgUGxvdGx5IFBhcmV0byBDaGFydA0KZmlnIDwtIHBsb3RfbHkoKQ0KDQojIFRhbWJhaGthbiBiYXIgY2hhcnQgKGp1bWxhaCBkZWxheSkNCmZpZyA8LSBmaWcgJT4lIGFkZF9iYXJzKA0KICB4ID0gfnJlb3JkZXIocGFyZXRvX2RhdGEkUmVhc29uLCAtcGFyZXRvX2RhdGEkbiksDQogIHkgPSB+cGFyZXRvX2RhdGEkbiwNCiAgbmFtZSA9ICdKdW1sYWggRGVsYXknLA0KICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gY29sb3JzKSwNCiAgeWF4aXMgPSAieTEiDQopDQoNCiMgVGFtYmFoa2FuIGdhcmlzIGt1bXVsYXRpZiBwZXJzZW4NCmZpZyA8LSBmaWcgJT4lIGFkZF9saW5lcygNCiAgeCA9IH5yZW9yZGVyKHBhcmV0b19kYXRhJFJlYXNvbiwgLXBhcmV0b19kYXRhJG4pLA0KICB5ID0gfnBhcmV0b19kYXRhJGN1bV9mcmVxLA0KICBuYW1lID0gJ0t1bXVsYXRpZiAoJSknLA0KICB5YXhpcyA9ICJ5MiIsDQogIGxpbmUgPSBsaXN0KGNvbG9yID0gJ3JlZCcsIGRhc2ggPSAnZGFzaCcpDQopDQoNCiMgVGFtYmFoa2FuIGdhcmlzIGJhdGFzIDgwJQ0KZmlnIDwtIGZpZyAlPiUgYWRkX2xpbmVzKA0KICB4ID0gfnJlb3JkZXIocGFyZXRvX2RhdGEkUmVhc29uLCAtcGFyZXRvX2RhdGEkbiksDQogIHkgPSByZXAoODAsIG5yb3cocGFyZXRvX2RhdGEpKSwNCiAgbmFtZSA9ICdCYXRhcyA4MCUnLA0KICB5YXhpcyA9ICJ5MiIsDQogIGxpbmUgPSBsaXN0KGNvbG9yID0gJ2dyZWVuJywgZGFzaCA9ICdkb3QnKQ0KKQ0KDQojIEF0dXIgbGF5b3V0DQpmaWcgPC0gZmlnICU+JSBsYXlvdXQoDQogIHRpdGxlID0gIlBhcmV0byBDaGFydCAtIEFsYXNhbiBEZWxheSBLZXVhbmdhbiAmIEludmVzdGFzaSIsDQogIHhheGlzID0gbGlzdCgNCiAgICB0aXRsZSA9ICJBbGFzYW4gRGVsYXkiLA0KICAgIHRpY2thbmdsZSA9IC00NSAgICMgbWlyaW5nIDQ1IGRlcmFqYXQNCiAgKSwNCiAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIkp1bWxhaCBEZWxheSIpLA0KICB5YXhpczIgPSBsaXN0KA0KICAgIHRpdGxlID0gIlBlcnNlbiBLdW11bGF0aWYgKCUpIiwNCiAgICBvdmVybGF5aW5nID0gInkiLA0KICAgIHNpZGUgPSAicmlnaHQiLA0KICAgIHJhbmdlID0gYygwLCAxMDApDQogICksDQogIGxlZ2VuZCA9IGxpc3QoeCA9IDAuOCwgeSA9IDAuNzUpLA0KICBzaGFwZXMgPSBsaXN0KA0KICAgIGxpc3QoDQogICAgICB0eXBlID0gImxpbmUiLA0KICAgICAgeDAgPSAtMC41LA0KICAgICAgeDEgPSBucm93KHBhcmV0b19kYXRhKSAtIDAuNSwNCiAgICAgIHkwID0gODAsDQogICAgICB5MSA9IDgwLA0KICAgICAgeXJlZiA9ICJ5MiIsDQogICAgICBsaW5lID0gbGlzdChjb2xvciA9ICJncmVlbiIsIHdpZHRoID0gMiwgZGFzaCA9ICJkb3QiKQ0KICAgICkNCiAgKQ0KKQ0KDQojIFRhbXBpbGthbiBjaGFydA0KZmlnDQpgYGANCg0KIyMgNy4gU2NhdHRlciBEaWFncmFtOiBIdWJ1bmdhbiBOaWxhaSBJbnZlc3Rhc2kgZGFuIFJldHVybg0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCiMgUGFzdGlrYW4gbGlicmFyeSBwbG90bHkgc3VkYWggdGVycGFzYW5nDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBCdWF0IGRhdGEgZHVtbXkgaW52ZXN0YXNpIGRhbiByZXR1cm4gYmVyZGFzYXJrYW4gZGF0YSBkZWxheSBwZXIgaGFyaQ0Kc2V0LnNlZWQoMTIzKQ0KZGFpbHlfZGVsYXkgPC0gZmluYW5jZV9pbnZlc3RtZW50X2RlbGF5ICU+JQ0KICBncm91cF9ieShEYXRlKSAlPiUNCiAgc3VtbWFyaXNlKEp1bWxhaF9EZWxheSA9IG4oKSkNCg0KIyBUYW1iYWhrYW4gZGF0YSBpbnZlc3Rhc2kgZGFuIHJldHVybiBzZWNhcmEgYWNhayB1bnR1ayBjb250b2gNCmRhaWx5X2RlbGF5IDwtIGRhaWx5X2RlbGF5ICU+JQ0KICBtdXRhdGUoDQogICAgaW52ZXN0YXNpID0gSnVtbGFoX0RlbGF5ICogMTAwMCArIHJub3JtKG4oKSwgbWVhbiA9IDAsIHNkID0gMjAwMCksICAgIyBuaWxhaSBpbnZlc3Rhc2kNCiAgICByZXR1cm5faW52ZXN0YXNpID0gaW52ZXN0YXNpICogMC4wNSArIHJub3JtKG4oKSwgbWVhbiA9IDAsIHNkID0gNTAwKSAgIyByZXR1cm4NCiAgKQ0KDQojIEhpdHVuZyBrb3JlbGFzaQ0KY29yX3ZhbHVlIDwtIGNvcihkYWlseV9kZWxheSRpbnZlc3Rhc2ksIGRhaWx5X2RlbGF5JHJldHVybl9pbnZlc3Rhc2kpDQoNCiMgQnVhdCBzY2F0dGVyIHBsb3QgZGVuZ2FuIHJlZ3Jlc2kgbGluaWVyDQpmaWcgPC0gcGxvdF9seShkYWlseV9kZWxheSwNCiAgICAgICAgICAgICAgIHggPSB+aW52ZXN0YXNpLA0KICAgICAgICAgICAgICAgeSA9IH5yZXR1cm5faW52ZXN0YXNpLA0KICAgICAgICAgICAgICAgdHlwZSA9ICdzY2F0dGVyJywNCiAgICAgICAgICAgICAgIG1vZGUgPSAnbWFya2VycycsDQogICAgICAgICAgICAgICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gJ2JsdWUnLCBzaXplID0gOCkpICU+JQ0KICBhZGRfbGluZXMoeCA9IH5pbnZlc3Rhc2ksDQogICAgICAgICAgICB5ID0gcHJlZGljdChsbShyZXR1cm5faW52ZXN0YXNpIH4gaW52ZXN0YXNpLCBkYXRhID0gZGFpbHlfZGVsYXkpKSwNCiAgICAgICAgICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gJ3JlZCcsIGRhc2ggPSAnZGFzaCcsIHdpZHRoID0gMiksDQogICAgICAgICAgICBuYW1lID0gJ1JlZ3Jlc3Npb24gTGluZScpICU+JQ0KICBsYXlvdXQodGl0bGUgPSBwYXN0ZSgiU2NhdHRlciBEaWFncmFtOiBJbnZlc3Rhc2kgdnMgUmV0dXJuPGJyPktvZWZpc2llbiBLb3JlbGFzaTogIiwgcm91bmQoY29yX3ZhbHVlLCAyKSksDQogICAgICAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiSW52ZXN0YXNpIChScCkiKSwNCiAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJSZXR1cm4gKFJwKSIpKQ0KDQojIFRhbXBpbGthbiBwbG90DQpmaWcNCmBgYA0KDQoNCg0K