IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJTU9PCiIgTWFpbnRhaW5lcjoJVGltbyBGcmVuYXkgPHRpbW9AZnJlbmF5Lm5ldD4KIiBMYXN0IENoYW5nZToJMjAwMSBPY3QgMDYKIiBOb3RlOgkJUmVxdWlyZXMgVmltIDYuMCBvciBhYm92ZQoKIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKaWYgdmVyc2lvbiA8IDYwMCB8fCBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogIGZpbmlzaAplbmRpZgoKIiBJbml0aWFsaXphdGlvbnMKc3luIGNhc2UgaWdub3JlCgoiIEMtc3R5bGUgY29tbWVudHMKc3luIG1hdGNoIG1vb1VuY29tbWVudGVkRXJyb3IgZGlzcGxheSB+XCovfgpzeW4gbWF0Y2ggbW9vQ1N0eWxlQ29tbWVudEVycm9yIGRpc3BsYXkgfi9cemVcKn4gY29udGFpbmVkCnN5biByZWdpb24gbW9vQ1N0eWxlQ29tbWVudCBtYXRjaGdyb3VwPW1vb0NvbW1lbnQgc3RhcnQ9fi9cKn4gZW5kPX5cKi9+IGNvbnRhaW5zPW1vb0NTdHlsZUNvbW1lbnRFcnJvcgoKIiBTdGF0ZW1lbnRzCmlmIGV4aXN0cygibW9vX2V4dGVuZGVkX2NzdHlsZV9jb21tZW50cyIpCiAgc3luIG1hdGNoIG1vb0lkZW50aWZpZXIgZGlzcGxheSB+XCUoXCUoL1wqLlx7LX1cKi9ccypcKSpcKVxAPlw8XGhcdypcPn4gY29udGFpbmVkIHRyYW5zcGFyZW50IGNvbnRhaW5zPW1vb0NTdHlsZUNvbW1lbnQsQG1vb0tleXdvcmQsbW9vVHlwZSxtb29WYXJpYWJsZQplbHNlCiAgc3luIG1hdGNoIG1vb0lkZW50aWZpZXIgZGlzcGxheSB+XDxcaFx3Klw+fiBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9QG1vb0tleXdvcmQsbW9vVHlwZSxtb29WYXJpYWJsZQplbmRpZgpzeW4ga2V5d29yZCBtb29TdGF0ZW1lbnQgYnJlYWsgY29udGludWUgZWxzZSBlbHNlaWYgZW5kZm9yIGVuZGZvcmsgZW5kaWYgZW5kdHJ5IGVuZHdoaWxlIGZpbmFsbHkgZm9yIGlmIHRyeQpzeW4ga2V5d29yZCBtb29TdGF0ZW1lbnQgZXhjZXB0IGZvcmsgd2hpbGUgbmV4dGdyb3VwPW1vb0lkZW50aWZpZXIgc2tpcHdoaXRlCnN5biBrZXl3b3JkIG1vb1N0YXRlbWVudCByZXR1cm4gbmV4dGdyb3VwPW1vb1N0cmluZyBza2lwd2hpdGUKCiIgT3BlcmF0b3JzCnN5biBrZXl3b3JkIG1vb09wZXJhdG9ySW4gaW4KCiIgRXJyb3IgY29uc3RhbnRzCnN5biBrZXl3b3JkIG1vb0FueSBBTlkKc3luIGtleXdvcmQgbW9vRXJyb3JDb25zdGFudCBFX0FSR1MgRV9JTlZBUkcgRV9ESVYgRV9GTE9BVCBFX0lOVklORCBFX01BWFJFQyBFX05BQ0MgRV9OT05FIEVfUEVSTSBFX1BST1BORiBFX1FVT1RBIEVfUkFOR0UgRV9SRUNNT1ZFIEVfVFlQRSBFX1ZBUk5GIEVfVkVSQk5GCgoiIEJ1aWx0aW4gdmFyaWFibGVzCnN5biBtYXRjaCBtb29UeXBlIGRpc3BsYXkgflw8XCUoRVJSXHxGTE9BVFx8SU5UXHxMSVNUXHxOVU1cfE9CSlx8U1RSXClcPn4Kc3luIG1hdGNoIG1vb1ZhcmlhYmxlIGRpc3BsYXkgflw8XCUoYXJnc1wlKHRyXClcPVx8Y2FsbGVyXHxkb2JqXCUoc3RyXClcPVx8aW9ialwlKHN0clwpXD1cfHBsYXllclx8cHJlcHN0clx8dGhpc1x8dmVyYlwpXD5+CgoiIFN0cmluZ3MKc3luIG1hdGNoIG1vb1N0cmluZ0Vycm9yIGRpc3BsYXkgflteXHQgLVtcXS1+XX4gY29udGFpbmVkCnN5biBtYXRjaCBtb29TdHJpbmdTcGVjaWFsQ2hhciBkaXNwbGF5IH5cXFsiXFxdfiBjb250YWluZWQKaWYgIWV4aXN0cygibW9vX25vX3JlZ2V4cCIpCiAgIiBSZWd1bGFyIGV4cHJlc3Npb25zCiAgc3luIG1hdGNoIG1vb1JlZ2V4cCBkaXNwbGF5IH4lJX4gY29udGFpbmVkIGNvbnRhaW5lZGluPW1vb1N0cmluZyxtb29SZWdleHBQYXJlbnRoZXNlcyB0cmFuc3BhcmVudCBjb250YWlucz1OT05FCiAgc3luIHJlZ2lvbiBtb29SZWdleHBQYXJlbnRoZXNlcyBkaXNwbGF5IG1hdGNoZ3JvdXA9bW9vUmVnZXhwT3Igc3RhcnQ9fiUofiBza2lwPX4lJX4gZW5kPX4lKX4gY29udGFpbmVkIGNvbnRhaW5lZGluPW1vb1N0cmluZyxtb29SZWdleHBQYXJlbnRoZXNlcyB0cmFuc3BhcmVudCBvbmVsaW5lCiAgc3luIG1hdGNoIG1vb1JlZ2V4cE9yIGRpc3BsYXkgfiV8fiBjb250YWluZWQgY29udGFpbmVkaW49bW9vU3RyaW5nLG1vb1JlZ2V4cFBhcmVudGhlc2VzCmVuZGlmCmlmICFleGlzdHMoIm1vb19ub19wcm9ub3VuX3N1YiIpCiAgIiBQcm9ub3VuIHN1YnN0aXR1dGlvbnMKICBzeW4gbWF0Y2ggbW9vUHJvbm91blN1YiBkaXNwbGF5IH4lJX4gY29udGFpbmVkIGNvbnRhaW5lZGluPW1vb1N0cmluZyB0cmFuc3BhcmVudCBjb250YWlucz1OT05FCiAgc3luIG1hdGNoIG1vb1Byb25vdW5TdWIgZGlzcGxheSB+JVsjZGlsbm9wcXJzdF1+IGNvbnRhaW5lZCBjb250YWluZWRpbj1tb29TdHJpbmcKICBzeW4gbWF0Y2ggbW9vUHJvbm91blN1YiBkaXNwbGF5IH4lXFsjW2RpbG50XVxdfiBjb250YWluZWQgY29udGFpbmVkaW49bW9vU3RyaW5nCiAgc3luIG1hdGNoIG1vb1Byb25vdW5TdWIgZGlzcGxheSB+JShcaFx3Kil+IGNvbnRhaW5lZCBjb250YWluZWRpbj1tb29TdHJpbmcKICBzeW4gbWF0Y2ggbW9vUHJvbm91blN1YiBkaXNwbGF5IH4lXFtbZGlsbnRdXGhcdypcXX4gY29udGFpbmVkIGNvbnRhaW5lZGluPW1vb1N0cmluZwogIHN5biBtYXRjaCBtb29Qcm9ub3VuU3ViIGRpc3BsYXkgfiU8XCUoW2RpbG50XTpcKVw9XGFcKz5+IGNvbnRhaW5lZCBjb250YWluZWRpbj1tb29TdHJpbmcKZW5kaWYKaWYgZXhpc3RzKCJtb29fdW5tYXRjaGVkX3F1b3RlcyIpCiAgc3luIHJlZ2lvbiBtb29TdHJpbmcgbWF0Y2hncm91cD1tb29TdHJpbmdFcnJvciBzdGFydD1+In4gZW5kPX4kfiBjb250YWlucz1AbW9vU3RyaW5nQ29udGVudHMga2VlcGVuZAogIHN5biByZWdpb24gbW9vU3RyaW5nIHN0YXJ0PX4ifiBza2lwPX5cXC5+IGVuZD1+In4gY29udGFpbnM9QG1vb1N0cmluZ0NvbnRlbnRzIG9uZWxpbmUga2VlcGVuZAplbHNlCiAgc3luIHJlZ2lvbiBtb29TdHJpbmcgc3RhcnQ9fiJ+IHNraXA9flxcLn4gZW5kPX4iXHwkfiBjb250YWlucz1AbW9vU3RyaW5nQ29udGVudHMga2VlcGVuZAplbmRpZgoKIiBOdW1iZXJzIGFuZCBvYmplY3QgbnVtYmVycwpzeW4gbWF0Y2ggbW9vTnVtYmVyIGRpc3BsYXkgflwlKFwlKFw8XGRcK1wpXD1cLlxkXCtcfFw8XGRcK1wpXCUoZVsrXC1dXD1cZFwrXClcPVw+fgpzeW4gbWF0Y2ggbW9vT2JqZWN0IGRpc3BsYXkgfiMtXD1cZFwrXD5+CgoiIFByb3BlcnRpZXMgYW5kIHZlcmJzCmlmIGV4aXN0cygibW9vX2J1aWx0aW5fcHJvcGVydGllcyIpCiAgIkJ1aWx0aW4gcHJvcGVydGllcwogIHN5biBrZXl3b3JkIG1vb0J1aWx0aW5Qcm9wZXJ0eSBjb250ZW50cyBmIGxvY2F0aW9uIG5hbWUgb3duZXIgcHJvZ3JhbW1lciByIHcgd2l6YXJkIGNvbnRhaW5lZCBjb250YWluZWRpbj1tb29Qcm9wUmVmCmVuZGlmCmlmIGV4aXN0cygibW9vX2V4dGVuZGVkX2NzdHlsZV9jb21tZW50cyIpCiAgc3luIG1hdGNoIG1vb1Byb3BSZWYgZGlzcGxheSB+XC5ccypcJShcJSgvXCouXHstfVwqL1xzKlwpKlwpXEA+XGhcdypcPn4gdHJhbnNwYXJlbnQgY29udGFpbnM9bW9vQ1N0eWxlQ29tbWVudCxAbW9vS2V5d29yZAogIHN5biBtYXRjaCBtb29WZXJiUmVmIGRpc3BsYXkgfjpccypcJShcJSgvXCouXHstfVwqL1xzKlwpKlwpXEA+XGhcdypcPn4gdHJhbnNwYXJlbnQgY29udGFpbnM9bW9vQ1N0eWxlQ29tbWVudCxAbW9vS2V5d29yZAplbHNlCiAgc3luIG1hdGNoIG1vb1Byb3BSZWYgZGlzcGxheSB+XC5ccypcaFx3Klw+fiB0cmFuc3BhcmVudCBjb250YWlucz1AbW9vS2V5d29yZAogIHN5biBtYXRjaCBtb29WZXJiUmVmIGRpc3BsYXkgfjpccypcaFx3Klw+fiB0cmFuc3BhcmVudCBjb250YWlucz1AbW9vS2V5d29yZAplbmRpZgoKIiBCdWlsdGluIGZ1bmN0aW9ucywgY29yZSBwcm9wZXJ0aWVzIGFuZCBjb3JlIHZlcmJzCmlmIGV4aXN0cygibW9vX2V4dGVuZGVkX2NzdHlsZV9jb21tZW50cyIpCiAgc3luIG1hdGNoIG1vb0J1aWx0aW5GdW5jdGlvbiBkaXNwbGF5IH5cPFxoXHcqXHMqXCUoXCUoL1wqLlx7LX1cKi9ccypcKSpcKVxAPlx6ZSh+IGNvbnRhaW5zPW1vb0NTdHlsZUNvbW1lbnQKICBzeW4gbWF0Y2ggbW9vQ29yZVByb3BPclZlcmIgZGlzcGxheSB+XCRccypcJShcJSgvXCouXHstfVwqL1xzKlwpKlwpXEA+XCUoaW5cPlwpXEAhXGhcdypcPn4gY29udGFpbnM9bW9vQ1N0eWxlQ29tbWVudCxAbW9vS2V5d29yZAplbHNlCiAgc3luIG1hdGNoIG1vb0J1aWx0aW5GdW5jdGlvbiBkaXNwbGF5IH5cPFxoXHcqXHMqXHplKH4gY29udGFpbnM9Tk9ORQogIHN5biBtYXRjaCBtb29Db3JlUHJvcE9yVmVyYiBkaXNwbGF5IH5cJFxzKlwlKGluXD5cKVxAIVxoXHcqXD5+IGNvbnRhaW5zPUBtb29LZXl3b3JkCmVuZGlmCmlmIGV4aXN0cygibW9vX3Vua25vd25fYnVpbHRpbl9mdW5jdGlvbnMiKQogIHN5biBtYXRjaCBtb29Vbmtub3duQnVpbHRpbkZ1bmN0aW9uIH5cPFxoXHcqXD5+IGNvbnRhaW5lZCBjb250YWluZWRpbj1tb29CdWlsdGluRnVuY3Rpb24gY29udGFpbnM9bW9vS25vd25CdWlsdGluRnVuY3Rpb24KICAiIEtub3duIGJ1aWx0aW4gZnVuY3Rpb25zIGFzIG9mIHZlcnNpb24gMS44LjEgb2YgdGhlIHNlcnZlcgogICIgQWRkIHlvdXIgb3duIGV4dGVuc2lvbnMgdG8gdGhpcyBncm91cCBpZiB5b3UgbGlrZQogIHN5biBrZXl3b3JkIG1vb0tub3duQnVpbHRpbkZ1bmN0aW9uIGFicyBhY29zIGFkZF9wcm9wZXJ0eSBhZGRfdmVyYiBhc2luIGF0YW4gYmluYXJ5X2hhc2ggYm9vdF9wbGF5ZXIgYnVmZmVyZWRfb3V0cHV0X2xlbmd0aCBjYWxsZXJzIGNhbGxlcl9wZXJtcyBjYWxsX2Z1bmN0aW9uIGNlaWwgY2hpbGRyZW4gY2hwYXJlbnQgY2xlYXJfcHJvcGVydHkgY29ubmVjdGVkX3BsYXllcnMgY29ubmVjdGVkX3NlY29uZHMgY29ubmVjdGlvbl9uYW1lIGNvbm5lY3Rpb25fb3B0aW9uIGNvbm5lY3Rpb25fb3B0aW9ucyBjb3MgY29zaCBjcmVhdGUgY3J5cHQgY3RpbWUgZGJfZGlza19zaXplIGRlY29kZV9iaW5hcnkgZGVsZXRlX3Byb3BlcnR5IGRlbGV0ZV92ZXJiIGRpc2Fzc2VtYmxlIGR1bXBfZGF0YWJhc2UgZW5jb2RlX2JpbmFyeSBlcXVhbCBldmFsIGV4cCBmbG9hdHN0ciBmbG9vciBmbHVzaF9pbnB1dCBmb3JjZV9pbnB1dCBmdW5jdGlvbl9pbmZvIGlkbGVfc2Vjb25kcyBpbmRleCBpc19jbGVhcl9wcm9wZXJ0eSBpc19tZW1iZXIgaXNfcGxheWVyIGtpbGxfdGFzayBsZW5ndGggbGlzdGFwcGVuZCBsaXN0ZGVsZXRlIGxpc3RlbiBsaXN0ZW5lcnMgbGlzdGluc2VydCBsaXN0c2V0IGxvZyBsb2cxMCBtYXRjaCBtYXggbWF4X29iamVjdCBtZW1vcnlfdXNhZ2UgbWluIG1vdmUgbm90aWZ5IG9iamVjdF9ieXRlcyBvcGVuX25ldHdvcmtfY29ubmVjdGlvbiBvdXRwdXRfZGVsaW1pdGVycyBwYXJlbnQgcGFzcyBwbGF5ZXJzIHByb3BlcnRpZXMgcHJvcGVydHlfaW5mbyBxdWV1ZWRfdGFza3MgcXVldWVfaW5mbyByYWlzZSByYW5kb20gcmVhZCByZWN5Y2xlIHJlbnVtYmVyIHJlc2V0X21heF9vYmplY3QgcmVzdW1lIHJpbmRleCBybWF0Y2ggc2Vjb25kc19sZWZ0IHNlcnZlcl9sb2cgc2VydmVyX3ZlcnNpb24gc2V0YWRkIHNldHJlbW92ZSBzZXRfY29ubmVjdGlvbl9vcHRpb24gc2V0X3BsYXllcl9mbGFnIHNldF9wcm9wZXJ0eV9pbmZvIHNldF90YXNrX3Blcm1zIHNldF92ZXJiX2FyZ3Mgc2V0X3ZlcmJfY29kZSBzZXRfdmVyYl9pbmZvIHNodXRkb3duIHNpbiBzaW5oIHNxcnQgc3RyY21wIHN0cmluZ19oYXNoIHN0cnN1YiBzdWJzdGl0dXRlIHN1c3BlbmQgdGFuIHRhbmggdGFza19pZCB0YXNrX3N0YWNrIHRpY2tzX2xlZnQgdGltZSB0b2Zsb2F0IHRvaW50IHRvbGl0ZXJhbCB0b251bSB0b29iaiB0b3N0ciB0cnVuYyB0eXBlb2YgdW5saXN0ZW4gdmFsaWQgdmFsdWVfYnl0ZXMgdmFsdWVfaGFzaCB2ZXJicyB2ZXJiX2FyZ3MgdmVyYl9jb2RlIHZlcmJfaW5mbyBjb250YWluZWQKZW5kaWYKCiKgRW5jbG9zZWQgZXhwcmVzc2lvbnMKc3luIG1hdGNoIG1vb1VuZW5jbG9zZWRFcnJvciBkaXNwbGF5IH5bJylcXXx9XX4Kc3luIG1hdGNoIG1vb1BhcmVudGhlc2VzRXJyb3IgZGlzcGxheSB+Wyc7XF18fV1+IGNvbnRhaW5lZApzeW4gcmVnaW9uIG1vb1BhcmVudGhlc2VzIHN0YXJ0PX4ofiBlbmQ9fil+IHRyYW5zcGFyZW50IGNvbnRhaW5zPUBtb29FbmNsb3NlZENvbnRlbnRzLG1vb1BhcmVudGhlc2VzRXJyb3IKc3luIG1hdGNoIG1vb0JyYWNrZXRzRXJyb3IgZGlzcGxheSB+WycpO3x9XX4gY29udGFpbmVkCnN5biByZWdpb24gbW9vQnJhY2tldHMgc3RhcnQ9flxbfiBlbmQ9flxdfiB0cmFuc3BhcmVudCBjb250YWlucz1AbW9vRW5jbG9zZWRDb250ZW50cyxtb29CcmFja2V0c0Vycm9yCnN5biBtYXRjaCBtb29CcmFjZXNFcnJvciBkaXNwbGF5IH5bJyk7XF18XX4gY29udGFpbmVkCnN5biByZWdpb24gbW9vQnJhY2VzIHN0YXJ0PX57fiBlbmQ9fn1+IHRyYW5zcGFyZW50IGNvbnRhaW5zPUBtb29FbmNsb3NlZENvbnRlbnRzLG1vb0JyYWNlc0Vycm9yCnN5biBtYXRjaCBtb29RdWVzdGlvbkVycm9yIGRpc3BsYXkgflsnKTtcXX1dfiBjb250YWluZWQKc3luIHJlZ2lvbiBtb29RdWVzdGlvbiBzdGFydD1+P34gZW5kPX58fiB0cmFuc3BhcmVudCBjb250YWlucz1AbW9vRW5jbG9zZWRDb250ZW50cyxtb29RdWVzdGlvbkVycm9yCnN5biBtYXRjaCBtb29DYXRjaEVycm9yIGRpc3BsYXkgflspO1xdfH1dfiBjb250YWluZWQKc3luIHJlZ2lvbiBtb29DYXRjaCBtYXRjaGdyb3VwPW1vb0V4Y2xhbWF0aW9uIHN0YXJ0PX5gfiBlbmQ9fid+IHRyYW5zcGFyZW50IGNvbnRhaW5zPUBtb29FbmNsb3NlZENvbnRlbnRzLG1vb0NhdGNoRXJyb3IsbW9vRXhjbGFtYXRpb24KaWYgZXhpc3RzKCJtb29fZXh0ZW5kZWRfY3N0eWxlX2NvbW1lbnRzIikKICBzeW4gbWF0Y2ggbW9vRXhjbGFtYXRpb24gZGlzcGxheSB+W1x0ICElJigqKyxcLS88PT4/QFteYHt8XVxAPCFccypcJShcJSgvXCouXHstfVwqL1xzKlwpKlwpXEA+IT1cQCF+IGNvbnRhaW5lZCBjb250YWlucz1tb29DU3R5bGVDb21tZW50CmVsc2UKICBzeW4gbWF0Y2ggbW9vRXhjbGFtYXRpb24gZGlzcGxheSB+W1x0ICElJigqKyxcLS88PT4/QFteYHt8XVxAPCFccyohPVxAIX4gY29udGFpbmVkCmVuZGlmCgoiIENvbW1lbnRzCnN5biBtYXRjaCBtb29Db21tZW50U3BlY2lhbENoYXIgZGlzcGxheSB+XFxbIlxcXX4gY29udGFpbmVkIHRyYW5zcGFyZW50IGNvbnRhaW5zPU5PTkUKc3luIG1hdGNoIG1vb0NvbW1lbnQgfltcdCAhJSYqKyxcLS88PT4/QF58XVxAPCFccyoiXChbXlwiXVx8XFwuXCkqIlxzKjt+IGNvbnRhaW5zPW1vb1N0cmluZ0Vycm9yLG1vb0NvbW1lbnRTcGVjaWFsQ2hhcgoKIiBOb24tY29kZQpzeW4gcmVnaW9uIG1vb05vbkNvZGUgc3RhcnQ9fl5ccypAXDx+IGVuZD1+JH4Kc3luIG1hdGNoIG1vb05vbkNvZGUgZGlzcGxheSB+XlwuJH4Kc3luIG1hdGNoIG1vb05vbkNvZGUgZGlzcGxheSB+XlxzKlxkXCs6fmhlPWUtMQoKIiBPdmVycmlkaW5nIG1hdGNoZXMKc3luIG1hdGNoIG1vb1JhbmdlT3BlcmF0b3IgZGlzcGxheSB+XC5cLn4gdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQpzeW4gbWF0Y2ggbW9vT3JPcGVyYXRvciBkaXNwbGF5IH58fH4gdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQppZiBleGlzdHMoIm1vb19leHRlbmRlZF9jc3R5bGVfY29tbWVudHMiKQogIHN5biBtYXRjaCBtb29TY2F0dGVyaW5nIH5bLHtdXEA8PVxzKlwlKFwlKC9cKi5cey19XCovXHMqXCkqXClcQD4/fiB0cmFuc3BhcmVudCBjb250YWlucz1tb29DU3R5bGVDb21tZW50CmVsc2UKICBzeW4gbWF0Y2ggbW9vU2NhdHRlcmluZyB+Wyx7XVxAPD1ccyo/fiB0cmFuc3BhcmVudCBjb250YWlucz1OT05FCmVuZGlmCgoiIENsdXN0ZXJzCnN5biBjbHVzdGVyIG1vb0tleXdvcmQgY29udGFpbnM9bW9vU3RhdGVtZW50LG1vb09wZXJhdG9ySW4sbW9vQW55LG1vb0Vycm9yQ29uc3RhbnQKc3luIGNsdXN0ZXIgbW9vU3RyaW5nQ29udGVudHMgY29udGFpbnM9bW9vU3RyaW5nRXJyb3IsbW9vU3RyaW5nU3BlY2lhbENoYXIKc3luIGNsdXN0ZXIgbW9vRW5jbG9zZWRDb250ZW50cyBjb250YWlucz1UT1AsbW9vVW5lbmNsb3NlZEVycm9yLG1vb0NvbW1lbnQsbW9vTm9uQ29kZQoKIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgpoaSBkZWYgbGluayBtb29VbmNvbW1lbnRlZEVycm9yIEVycm9yCmhpIGRlZiBsaW5rIG1vb0NTdHlsZUNvbW1lbnRFcnJvciBFcnJvcgpoaSBkZWYgbGluayBtb29DU3R5bGVDb21tZW50IENvbW1lbnQKaGkgZGVmIGxpbmsgbW9vU3RhdGVtZW50IFN0YXRlbWVudApoaSBkZWYgbGluayBtb29PcGVyYXRvckluIE9wZXJhdG9yCmhpIGRlZiBsaW5rIG1vb0FueSBDb25zdGFudCAiIGxpbmsgdGhpcyB0byBLZXl3b3JkIGlmIHlvdSB3YW50CmhpIGRlZiBsaW5rIG1vb0Vycm9yQ29uc3RhbnQgQ29uc3RhbnQKaGkgZGVmIGxpbmsgbW9vVHlwZSBUeXBlCmhpIGRlZiBsaW5rIG1vb1ZhcmlhYmxlIFR5cGUKaGkgZGVmIGxpbmsgbW9vU3RyaW5nRXJyb3IgRXJyb3IKaGkgZGVmIGxpbmsgbW9vU3RyaW5nU3BlY2lhbENoYXIgU3BlY2lhbENoYXIKaGkgZGVmIGxpbmsgbW9vUmVnZXhwT3IgU3BlY2lhbENoYXIKaGkgZGVmIGxpbmsgbW9vUHJvbm91blN1YiBTcGVjaWFsQ2hhcgpoaSBkZWYgbGluayBtb29TdHJpbmcgU3RyaW5nCmhpIGRlZiBsaW5rIG1vb051bWJlciBOdW1iZXIKaGkgZGVmIGxpbmsgbW9vT2JqZWN0IE51bWJlcgpoaSBkZWYgbGluayBtb29CdWlsdGluUHJvcGVydHkgVHlwZQpoaSBkZWYgbGluayBtb29CdWlsdGluRnVuY3Rpb24gRnVuY3Rpb24KaGkgZGVmIGxpbmsgbW9vVW5rbm93bkJ1aWx0aW5GdW5jdGlvbiBFcnJvcgpoaSBkZWYgbGluayBtb29Lbm93bkJ1aWx0aW5GdW5jdGlvbiBGdW5jdGlvbgpoaSBkZWYgbGluayBtb29Db3JlUHJvcE9yVmVyYiBJZGVudGlmaWVyCmhpIGRlZiBsaW5rIG1vb1VuZW5jbG9zZWRFcnJvciBFcnJvcgpoaSBkZWYgbGluayBtb29QYXJlbnRoZXNlc0Vycm9yIEVycm9yCmhpIGRlZiBsaW5rIG1vb0JyYWNrZXRzRXJyb3IgRXJyb3IKaGkgZGVmIGxpbmsgbW9vQnJhY2VzRXJyb3IgRXJyb3IKaGkgZGVmIGxpbmsgbW9vUXVlc3Rpb25FcnJvciBFcnJvcgpoaSBkZWYgbGluayBtb29DYXRjaEVycm9yIEVycm9yCmhpIGRlZiBsaW5rIG1vb0V4Y2xhbWF0aW9uIEV4Y2VwdGlvbgpoaSBkZWYgbGluayBtb29Db21tZW50IENvbW1lbnQKaGkgZGVmIGxpbmsgbW9vTm9uQ29kZSBQcmVQcm9jCgpsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJtb28iCgoiIHZpbTogdHM9OAo=