VGhpcyBwcm9qZWN0IGhhcyBiZWVuIGFsaXZlIGZvciBzZXZlcmFsIHllYXJzLiBDb3VudGxlc3MgcGVvcGxlIGhhdmUgcHJvdmlkZWQKZmVlZGJhY2sgdGhhdCBoYXZlIGltcHJvdmVkIGN1cmwuIEhlcmUgZm9sbG93cyBhIChpbmNvbXBsZXRlKSBsaXN0IG9mIHBlb3BsZQp0aGF0IGhhdmUgY29udHJpYnV0ZWQgd2l0aCBub24tdHJpdmlhbCBwYXJ0czoKCiAtIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CiAtIFJhZmFlbCBTYWd1bGEgPHNhZ3VsYUBpbmYudWZyZ3MuYnI+CiAtIFNhbXBvIEtlbGxvbWFraSA8c2FtcG9AaWtpLmZpPgogLSBMaW5hcyBWZXBzdGFzIDxsaW5hc0BsaW5hcy5vcmc+CiAtIEJqb3JuIFJlZXNlIDxicmVlc2VAbWFpbDEuc3RvZmFuZXQuZGs+CiAtIEpvaGFuIEFuZGVyc29uIDxqb2hhbkBob21lbWFpbC5jb20+CiAtIEtqZWxsIEVyaWNzb24gPEtqZWxsLkVyaWNzb25AaGF4eC5zZT4KIC0gVHJveSBFbmdlbCA8dGVuZ2VsQHNvbmljLm5ldD4KIC0gUnlhbiBOZWxzb24gPHJ5YW5AaW5jaC5jb20+CiAtIEJq9nJuIFN0ZW5iZXJnIDxiam9ybkBoYXh4LnNlPgogLSBBbmd1cyBNYWNrYXkgPGFtYWNrYXlAZ3VzLm1sLm9yZz4KIC0gRXJpYyBZb3VuZyA8ZWF5QGNyeXB0c29mdC5jb20+CiAtIFNpbW9uIERpY2sgPHNpbW9uZEB0b3RhbGx5LmlycmVsZXZhbnQub3JnPgogLSBPcmVuIFRpcm9zaCA8b3JlbkBtb250eS5oaXNob21lLm5ldD4KIC0gU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgogLSBHaWxiZXJ0IFJhbWlyZXogSnIuIDxncmFtQHZlcmRpY3QudXRoc2NzYS5lZHU+CiAtIEFuZHLpcyBHYXJj7WEgPG9ybmFsdXhAcmVkZXN0Yi5lcz4KIC0gRG91Z2xhcyBFLiBXZWdzY2hlaWQgPHdlZ3NjZEB3aGlybHBvb2wuY29tPgogLSBNYXJrIEJ1dGxlciA8YnV0bGVybUB4bWlzc2lvbi5jb20+CiAtIEVyaWMgVGhlbGluIDxlcmljQGdlbmVyYXRpb24taS5jb20+CiAtIE1hcmMgQm91Y2hlciA8bWFyY0BtYnNpLmNhPgogLSBHcmVnIE9udWZlciA8R3JlZy5PbnVmZXJARW5nLlN1bi5DT00+CiAtIERvdWcgS2F1Zm1hbiA8ZGthdWZtYW5AcmFodWwubmV0PgogLSBEYXZpZCBFcmlrc3NvbiA8ZGF2aWRAMmdvb2QuY29tPgogLSBSYWxwaCBCZWNrbWFubiA8cmFiZUB1bmktcGFkZXJib3JuLmRlPgogLSBULiBZYW1hZGEgPHRhaUBpbWFzeS5vci5qcD4KIC0gTGFycyBKLiBBYXMgPGxhcnNhQHNpbS5ubz4KIC0gSvZybiBIYXJ0cm90aCA8Sm9lcm4uSGFydHJvdGhAY29tcHV0ZXIub3JnPgogLSBNYXR0aGV3IENsYXJrZSA8Y2xhbWF0QHZhbi5tYXZlcy5jYT4KIC0gTGludXMgTmllbHNlbiBGZWx0emluZyA8bGludXNAaGF4eC5zZT4KIC0gRmVsaXggdm9uIExlaXRuZXIgPGZlbGl4QGNvbnZlcmdlbmNlLmRlPgogLSBEYW4gWml0dGVyIDxkeml0dGVyQHppdHRlci5uZXQ+CiAtIEpvbmdraSBTdXdhbmRpIDxKb25na2kuU3V3YW5kaUBlbmcuc3VuLmNvbT4KIC0gQ2hyaXMgTWFsdGJ5IDxjaHJpc0BhdXJlbWEuY29tPgogLSBSb24gWmFwcCA8cnphcHBlckB5YWhvby5jb20+CiAtIFBhdWwgTWFycXVpcyA8cG1hcnF1aXNAaW5hbWUuY29tPgogLSBFbGxpcyBQcml0Y2hhcmQgPGVsbGlzQGNpdHJpYS5jb20+CiAtIERhbWllbiBBZGFudCA8ZGFtc0B1c2EubmV0PgogLSBDaHJpcyA8Y2JheWxpc3NAY3NjLmNvbWU+CiAtIE1hcmNvIEcuIFNhbHZhZ25vIDxtZ3NAd2hpei5jamIubmV0PgogLSBQYXVsIE1hcnF1aXMgPHBtYXJxdWlzQGluYW1lLmNvbT4KIC0gRGF2aWQgTGVCbGFuYyA8ZGxlYmxhbmNAcW54LmNvbT4KIC0gUmljaCBHcmF5IGF0IFBsdXMgVGVjaG5vbG9naWVzCiAtIEx1b25nIERpbmggRHVuZyA8dThsdW9uZ0BsaHN5c3RlbXMuaHU+CiAtIFRvcnN0ZW4gRm9lcnRzY2ggPHRvcnN0ZW4uZm9lcnRzY2hAZ214Lm5ldD4KIC0gS3Jpc3RpYW4gS/ZobnRvcHAgPGtyaXNAa29laG50b3BwLmRlPgogLSBGcmVkIE5veiA8Rk5vekBzaWFjLmNvbT4KIC0gQ2FvbGFuIE1jTmFtYXJhIDxjYW9sYW5AY3NuLnVsLmllPgogLSBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CiAtIFN0ZXBoZW4gS2ljayA8c2tpY2tAZXBpY3JlYWxtLmNvbT4KIC0gTWFydGluIEhlZGVuZmFsayA8bWhlQHN0YWNrZW4ua3RoLnNlPgogLSBSaWNoYXJkIFByZXNjb3R0IDxyaXAgYXQgc3RlcC5wb2x5bXRsLmNhPgogLSBKYXNvbiBTLiBQcmllYmUgPHByaWViZUB3cmFsLXR2LmNvbT4KIC0gVC4gQmhhcmF0aCA8VEJoYXJhdGhAcmVzcG9uc2VuZXR3b3Jrcy5jb20+CiAtIEFsZXhhbmRlciBLb3VyYWtvcyA8YXdrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIC0gSmFtZXMgR3JpZmZpdGhzIDxncmlmZml0aHNfamFtZXNAeWFob28uY29tPgogLSBMb2ljIERhY2hhcnkgPGxvaWNAc2VuZ2Eub3JnPgogLSBSb2JlcnQgV2VhdmVyIDxyb2JlcnQud2VhdmVyQHNhYnJlLmNvbT4KIC0gSW5nbyBSYWxmIEJsdW0gPGluZ29yYWxmYmx1bUBpbmdvcmFsZmJsdW0uY29tPgogLSBKdW4taWNoaXJvIGl0b2p1biBIYWdpbm8gPGl0b2p1bkBpaWpsYWIubmV0PgogLSBGcmVkZXJpYyBMZXBpZWQgPGZsZXBpZWRAbWFuZHJha2Vzb2Z0LmNvbT4KIC0gR2VvcmcgSG9ybiA8aG9ybkBrb2JsZW56LW5ldC5kZT4KIC0gQ3JpcyBCYWlsaWZmIDxjLmJhaWxpZmZAYXdheXdlYi5jb20+CiAtIFN0ZXJsaW5nIEh1Z2hlcyA8c3RlcmxpbmdAZGVzaWdubXVsdGltZWRpYS5jb20+CiAtIFMuIE1vb25lc2FteQogLSBJbmdvIFdpbGtlbiA8aXdAV1dXLkVjY2UtVGVycmFtLkRFPgogLSBQYXdlbCBBLiBHYWpkYSA8bWlzQGsyLm5ldC5wbD4KIC0gUGF0cmljayBCaWhhbi1GYW91CiAtIE5pY28gQmFnZ3VzIDxOaWNvLkJhZ2d1c0BtYWlsLmluZy5ubD4KIC0gU2VyZ2lvIEJhbGxlc3RyZXJvCiAtIEFuZHJldyBGcmFuY2lzIDxsb2N1c3RAZmFtaWx5aGVhbHRoLmNvbS5hdT4KIC0gVG9tYXN6IExhY2tpIDxUb21hc3ouTGFja2lAcHJpbWFyay5wbD4KIC0gR2VvcmcgSHVldHRlbmVnZ2VyIDxnZW9yZ0Bpc3Qub3JnPgogLSBKb2huIExhc2sgPGpvaG5sYXNrQGhvdG1haWwuY29tPgogLSBFcmljIExhdmlnbmUgPGVybGF2aWduZUB3YW5hZG9vLmZyPgogLSBNYXJjdXMgV2Vic3RlciA8bWFyY3VzLndlYnN0ZXJAcGhvY2lzLmNvbT4KIC0gR/Z0eiBCYWJpbi1FYmVsbCA8YmFiaW6tZWJlbGxAdHJ1c3RjZW50ZXIuZGU+CiAtIEFuZHJlYXMgRGFtbSA8YW5kcmVhcy1zb3VyY2Vmb3JnZUByYWRhYi5vcmc+CiAtIEphY2t5IExhbSA8c3lsYW1AZW1zb2Z0bHRkLmNvbT4K