IyBNZW5zYWplcyBlbiBlc3Bh8W9sIHBhcmEgR05VIG1ha2UuCiMgQ29weXJpZ2h0IChDKSAxOTk2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIE1heCBkZSBNZW5kaXrhYmFsIDxtYXhAYWNlci5jb20ubXg+LCAxOTk2LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBHTlUgbWFrZSAzLjc0LjRcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAxOTk2LTA1LTIyIDA5OjExLTA0MDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDE5OTYtMTEtMjEgMjA6MTMrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBNYXggZGUgTWVuZGl64WJhbCA8bWF4QHRpcmFuaWEubnVjbGVjdS51bmFtLm14PlxuIgoiTGFuZ3VhZ2UtVGVhbTogU3BhbmlzaCA8ZXNAbGkub3JnPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBcbiIKCiM6IGFyLmM6NDgKIywgYy1mb3JtYXQKbXNnaWQgImF0dGVtcHQgdG8gdXNlIHVuc3VwcG9ydGVkIGZlYXR1cmU6IGAlcyciCm1zZ3N0ciAiU2UgaW50ZW508yB1dGlsaXphciB1bmEgY2FyYWN0ZXLtc3RpY2Egbm8gaW1wbGVtZW50YWRhOiBgJXMnIgoKIzogYXIuYzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgIkVycm9yIGluIGxiciRpbmlfY29udHJvbCwgJWRcbiIKbXNnc3RyICJFcnJvciBlbiBsYnIkaW5pX2NvbnRyb2wsICVkXG4iCgojOiBhci5jOjE0NwojLCBjLWZvcm1hdAptc2dpZCAiRXJyb3Igb3BlbmluZyBsaWJyYXJ5ICVzIHRvIGxvb2t1cCBtZW1iZXIgJXMsICVkXG4iCm1zZ3N0ciAiRXJyb3IgYWwgYWJyaXIgbGEgYmlibGlvdGVjYSAlcyBwYXJhIGJ1c2NhciBhbCBlbGVtZW50byAlcywgJWRcbiIKCiM6IGFyLmM6MTUzCiMsIGMtZm9ybWF0Cm1zZ2lkICJFcnJvciBsb29raW5nIHVwIG1vZHVsZSAlcyBpbiBsaWJyYXJ5ICVzLCAlZFxuIgptc2dzdHIgIkVycm9yIGFsIGJ1c2NhciBlbCBt82R1bG8gJXMgZW4gbGEgYmlibGlvdGVjYSAlcywgJWRcbiIKCiM6IGFyLmM6MTU5CiMsIGMtZm9ybWF0Cm1zZ2lkICJFcnJvciBnZXR0aW5nIG1vZHVsZSBpbmZvLCAlZFxuIgptc2dzdHIgIkVycm9yIGFsIGludGVudGFyIG9idGVuZXIgbGEgaW5mb3JtYWNp824gZGVsIG3zZHVsbywgJWRcbiIKCiMgU3VnZXJlbmNpYTogdG91Y2ggLT4gYHRvdWNoJy4gc3YKIyBPaywgYWNlcHRhZGEuIEEgZmFsdGEgZGUgY3Vyc2l2YXMuLi4gbW0KIyBObyB2ZW8gcG9ycXXpIG5vIHNlIGhhIGRlIHVzYXIgJ3RvY2FyJyBlbiB2ZXogZGUgdG91Y2ggZW0rCiMgRWwgbWVuc2FqZSBhZGVt4XMgaGFjZSByZWZlcmVuY2lhIGEgdW4gdG91Y2ggZGUgdW4gb2JqZXRvIGRlbnRybwojIGRlIHVuYSBsaWJyZXLtYSwgeSBkZSBlc28gbm8gc2UgZGljZSBuYWRhIGVuIGVsIG1lbnNhamUuIENyZW8gcXVlCiMgaGF5IHF1ZSB0ZW5lciBjdWlkYWRvIGNvbiBlc3RhcyBjb3Nhcy4KIyBFbCBwcm9ncmFtYSBwYXJhIHRvY2FyIHVuIG1pZW1icm8gZGUgdW4gYXJjaGl2byAuLi4gLCB5IGFoaSBlc3RhbW9zCiMgeWEgZW4gcHJvYmxlbWFzIGNvbiBlbCBkaWNob3NvIGFyY2hpdm8vZmljaGVyby4KIyBBIHZlciBxdWUgc2Ugb3Mgb2N1cnJlIGVtKwojIEVucmlxdWU6IHRvdWNoIGVzIHVuIHByb2dyYW1hIGRlbCBzaXN0ZW1hIG9wZXJhdGl2byB5IHNpcnZlIHBhcmEKIyBjYW1iaWFyIGxhIGZlY2hhIGRlIHVuIHByb2dyYW1hIG8gYXJjaGl2by4gRXMgZGVjaXIgbG8gInRvY2EiIHkKIyBtb2RpZmljYSBzdXMgYXRyaWJ1dG9zLiBQb3IgZXNvIHByZWZlcu0gbm8gdHJhZHVjaXJsby4KIzogYXIuYzoyNDQKbXNnaWQgInRvdWNoIGFyY2hpdmUgbWVtYmVyIGlzIG5vdCBhdmFpbGFibGUgb24gVk1TIgptc2dzdHIgIkVsIHByb2dyYW1hIHBhcmEgaGFjZXIgdW4gYHRvdWNoJyBubyBlc3ThIGRpc3BvbmlibGUgZW4gVk1TIgoKIzogYXIuYzoyNzYKIywgYy1mb3JtYXQKbXNnaWQgInRvdWNoOiBBcmNoaXZlIGAlcycgZG9lcyBub3QgZXhpc3QiCm1zZ3N0ciAidG91Y2g6IEVsIGFyY2hpdm8gYCVzJyBubyBleGlzdGUiCgojOiBhci5jOjI3OQojLCBjLWZvcm1hdAptc2dpZCAidG91Y2g6IGAlcycgaXMgbm90IGEgdmFsaWQgYXJjaGl2ZSIKbXNnc3RyICJ0b3VjaDogYCVzJyBubyBlcyB1biBhcmNoaXZvIHbhbGlkbyIKCiM6IGFyLmM6MjgyCm1zZ2lkICJ0b3VjaDogIgptc2dzdHIgInRvdWNoOiAiCgojOiBhci5jOjI4NQojLCBjLWZvcm1hdAptc2dpZCAidG91Y2g6IE1lbWJlciBgJXMnIGRvZXMgbm90IGV4aXN0IGluIGAlcyciCm1zZ3N0ciAidG91Y2g6IEVsIG1pZW1icm8gYCVzJyBubyBleGlzdGUgZW4gYCVzJyIKCiM6IGFyLmM6MjkxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0b3VjaDogQmFkIHJldHVybiBjb2RlIGZyb20gYXJfbWVtYmVyX3RvdWNoIG9uIGAlcyciCm1zZ3N0ciAidG91Y2g6IEPzZGlnbyBkZSByZXRvcm5vIGVycvNuZW8gZGUgYXJfbWVtYmVyX3RvdWNoIGVuIGAlcyciCgojOiBhcnNjYW4uYzo1NTAKbXNnaWQgIiAobmFtZSBtaWdodCBiZSB0cnVuY2F0ZWQpIgptc2dzdHIgIiAoZWwgbm9tYnJlIHB1ZWRlIGVzdGFyIHRydW5jYWRvKSIKCiM6IGFyc2Nhbi5jOjU1MgojLCBjLWZvcm1hdAptc2dpZCAiICBEYXRlICVzIgptc2dzdHIgIiAgRmVjaGEgJXMiCgojOiBhcnNjYW4uYzo1NTMKIywgYy1mb3JtYXQKbXNnaWQgIiAgdWlkID0gJWQsIGdpZCA9ICVkLCBtb2RlID0gMCVvLlxuIgptc2dzdHIgIiAgdWlkID0gJWQsIGdpZCA9ICVkLCBtb2RvID0gMCVvLlxuIgoKIzogZGlyLmM6Njc4Cm1zZ2lkICIiCiJcbiIKIiMgRGlyZWN0b3JpZXNcbiIKbXNnc3RyICIiCiJcbiIKIiMgRGlyZWN0b3Jpb3NcbiIKCiM6IGRpci5jOjY4NgojLCBjLWZvcm1hdAptc2dpZCAiIyAlczogY291bGQgbm90IGJlIHN0YXQnZC5cbiIKbXNnc3RyICIjICVzOiBwb2Ry7WEgbm8gZXN0YXIgZXN0YWJsZWNpZG8uXG4iCgojIEVuIGVsIEsgJiBSIGFwYXJlY2UgaW5vZGUgdHJhZHVjaWRvIGNvbW8gbm9kby1pLiC/cXXpIHRlIHBhcmVjZT8gc3YKIyBCaWVuLiBNZSBndXN0YSBjb24gZWwgZ3Vpb25jaXRvLiBtbQojOiBkaXIuYzo2ODkKIywgYy1mb3JtYXQKbXNnaWQgIiMgJXMgKGRldmljZSAlZCwgaW5vZGUgWyVkLCVkLCVkXSk6IGNvdWxkIG5vdCBiZSBvcGVuZWQuXG4iCm1zZ3N0ciAiIgoiIyAlcyAoZGlzcG9zaXRpdm8gJWQsIG5vZG8taSBbJWQsJWQsJWRdKTogcG9zaWJsZW1lbnRlIG5vIHNlIHB1ZWRhIGFicmlyLlxuIgoKIyC/Tm8gc29icmFy7WEgZWwgInBvc2libGVtZW50ZSI/CiMgUHJvcG9uZ28gZGVqYXJsbyBlbiAiIG5vIHNlIHB1ZG8gYWJyaXIgIi4gc3YKIyBPay4gRXMgY29uc2lzdGVudGUgY29uIG90cmFzIHRyYWR1Y2Npb25lcy4gbW0KIzogZGlyLmM6Njk0CiMsIGMtZm9ybWF0Cm1zZ2lkICIjICVzIChkZXZpY2UgJWQsIGlub2RlICVkKTogY291bGQgbm90IGJlIG9wZW5lZC5cbiIKbXNnc3RyICIjICVzIChkaXNwb3NpdGl2byAlZCwgbm9kby1pICVkKTogbm8gc2UgcHVkbyBhYnJpci5cbiIKCiM6IGRpci5jOjcwOQojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoZGV2aWNlICVkLCBpbm9kZSBbJWQsJWQsJWRdKTogIgptc2dzdHIgIiMgJXMgKGRpc3Bvc2l0aXZvICVkLCBub2RvLWkgWyVkLCVkLCVkXSk6ICIKCiM6IGRpci5jOjcxNAojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoZGV2aWNlICVkLCBpbm9kZSAlZCk6ICIKbXNnc3RyICIjICVzIChkaXNwb3NpdGl2byAlZCwgbm9kby1pICVkKTogIgoKIzogZGlyLmM6NzE4IGRpci5jOjczOAptc2dpZCAiTm8iCm1zZ3N0ciAiTm8iCgojOiBkaXIuYzo3MjEgZGlyLmM6NzQxCm1zZ2lkICIgZmlsZXMsICIKbXNnc3RyICIgYXJjaGl2b3MsICIKCiM6IGRpci5jOjcyMyBkaXIuYzo3NDMKbXNnaWQgIm5vIgptc2dzdHIgIm5vIgoKIzogZGlyLmM6NzI2Cm1zZ2lkICIgaW1wb3NzaWJpbGl0aWVzIgptc2dzdHIgIiBpbXBvc2liaWxpZGFkZXMiCgojIL8iU28gZmFyIiBubyBlcmEgImhhc3RhIGFob3JhIj8gKG5vIG1lIGhhZ2FzIG11Y2hvIGNhc28pIHN2CiMgU2kgdHUgdHJhZHVjY2nzbiBlcyBtZWpvci4gQWNlcHRhZGEuIG1tCiM6IGRpci5jOjczMAptc2dpZCAiIHNvIGZhci4iCm1zZ3N0ciAiIGhhc3RhIGFob3JhLiIKCiM6IGRpci5jOjc0NgojLCBjLWZvcm1hdAptc2dpZCAiIGltcG9zc2liaWxpdGllcyBpbiAldSBkaXJlY3Rvcmllcy5cbiIKbXNnc3RyICIgaW1wb3NpYmlsaWRhZGVzIGVuICV1IGRpcmVjdG9yaW9zLlxuIgoKIyBDcmVvIHF1ZSBldmVudHVhbGx5IHNlcu1hICJmaW5hbG1lbnRlIiBvIGFsZ28gYXPtLiBzdgojIFNpLCBlcyBmaW5hbG1lbnRlIG5vIGEgdmVjZXMuIE9rLiBtbQojIHJlZmVyZW5jaWEgbWUgcGFyZWNlIHF1ZSBubyBsbGV2YSB0aWxkZS4gc3YKIyBObywgbm8gbGxldmEgYWNlbnRvLiBNZSBlbW9jaW9u6SBjb24gZWxvcy4gbW0KIyBDcmVlaXMgZGUgdmVyYXMgcXVlIHRpZW5lIHNlbnRpZG8gJ2ZpbmFsbWVudGUnZW0rCiMgeW8gcG9uZHLtYSBzZXIgdGVybWluYSBhdXRvcmVmZXJlbmNpYW5kbywgcG9yCiMgZWplbXBsbyBlbSsKIyBNZWpvciBsbyBlbGltaW5hbW9zLiBFcyBkZSBhbGd1bmEgZm9ybWEgcmVpdGVyYXRpdm8gZSBpbm5lY2VzYXJpby4KIyBMbyBkZSBgYWwgZmluYWwnIHB1ZWRlIHNlciBt4XMgY29uZnVzby4gbW0KIzogZXhwYW5kLmM6OTIgZXhwYW5kLmM6OTcKIywgYy1mb3JtYXQKbXNnaWQgIlJlY3Vyc2l2ZSB2YXJpYWJsZSBgJXMnIHJlZmVyZW5jZXMgaXRzZWxmIChldmVudHVhbGx5KSIKbXNnc3RyICJMYSB2YXJpYWJsZSByZWN1cnNpdmEgYCVzJyBzZSBhdXRvLXJlZmVyZW5jaWEiCgojIL9RdekgdGUgcGFyZWNlICJhdGVuY2nzbiI/IExvIGhlbW9zIHVzYWRvIG11Y2hvIGVuIG90cm9zIHByb2dyYW1hcy4gc3YKIyBQZXJvIHF1ZSBiZXN0aWEgc295LiBQZXJk824gcG9yIGVsIGRlc2JhcnJlLiBtbQojOiBleHBhbmQuYzoxMjAKIywgYy1mb3JtYXQKbXNnaWQgIndhcm5pbmc6IHVuZGVmaW5lZCB2YXJpYWJsZSBgJS4qcyciCm1zZ3N0ciAiYXRlbmNp8246IGxhIHZhcmlhYmxlIGAlLipzJyBubyBoYSBzaWRvIGRlZmluaWRhIgoKIyBObyBtZSBndXN0YSBuYWRhICggbG8gc2llbnRvICkKIyC/IFF16SB0YWwgOiBMYSByZWZlcmVuY2lhIGEgdW5hIHZhcmlhYmxlIGVzdOEgc2luIHRlcm1pbmFyIGVtKwojIENyZW8gcXVlIHRpZW5lcyByYXrzbiBsYSB2b3ogcGFzaXZhIGVzIG11eSBkZXNhZ3JhZGFibGUuIG1tLgojOiBleHBhbmQuYzoyMjMgZXhwYW5kLmM6MjI1Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgdmFyaWFibGUgcmVmZXJlbmNlIgptc2dzdHIgImxhIHJlZmVyZW5jaWEgYSBsYSB2YXJpYWJsZSBlc3ThIHNpbiB0ZXJtaW5hciIKCiM6IGZpbGUuYzoyNjQKIywgYy1mb3JtYXQKbXNnaWQgIkNvbW1hbmRzIHdlcmUgc3BlY2lmaWVkIGZvciBmaWxlIGAlcycgYXQgJXM6JXUsIgptc2dzdHIgIkxhcyBpbnN0cnVjY2lvbmVzIGZ1ZXJvbiBlc3BlY2lmaWNhZGFzIHBhcmEgZWwgYXJjaGl2byBgJXMnIGVuICVzOiV1LCIKCiMgQnVzY2FuZG8gZW4gbGFzIGxlZ3JhcyBpbXBs7WNpdGFzIGVtKwojIFV0aWxpY+kgcG9yIGL6c3F1ZWRhIGVuIHBhcmEgZXZpdGFyIGVsIGdlcnVuZGlvLiBtbQojOiBmaWxlLmM6MjcwCiMsIGMtZm9ybWF0Cm1zZ2lkICJDb21tYW5kcyBmb3IgZmlsZSBgJXMnIHdlcmUgZm91bmQgYnkgaW1wbGljaXQgcnVsZSBzZWFyY2gsIgptc2dzdHIgIiIKIkxhcyBpbnN0cnVjY2lvbmVzIHBhcmEgZWwgYXJjaGl2byBgJXMnIHNlIGVuY29udHJhcm9uIHBvciBi+nNxdWVkYSBlbiByZWdsYXMgIgoiaW1wbO1jaXRhcywiCgojICJub3ciIGVzICJhaG9yYSIuIL90ZSBsbyBoYXMgY29taWRvIGNvbnNjaWVudGUgbyBpbmNvbnNjaWVudGVtZW50ZT8gc3YKIyBpbmNvbnNjaWVudGVtZW50ZS4gbW0KIzogZmlsZS5jOjI3NAojLCBjLWZvcm1hdAptc2dpZCAiYnV0IGAlcycgaXMgbm93IGNvbnNpZGVyZWQgdGhlIHNhbWUgZmlsZSBhcyBgJXMnLiIKbXNnc3RyICJwZXJvIGAlcycgc2UgY29uc2lkZXJhIGFob3JhIGNvbW8gZWwgbWlzbW8gYXJjaGl2byBxdWUgYCVzJy4iCgojIExvIHJlcGV0aXLpIHVuYSB5IG1pbCB2ZWNlcy4uLiA6LSkKIyAiVG8gaWdub3JlIiAqbm8qIGVzIGlnbm9yYXIuIHN2CiMgUHJvcG9uZ28gIm5vIHNlcuFuIHRlbmlkYXMgZW4gY3VlbnRhIiBhIGZhbHRhIGRlIGFsZ28gbWVqb3IuCiMgT2suIE1pIG5lY2VkYWQgc29icmVwYXNhIGVsIG1pbGVuaW8uIG1tCiM6IGZpbGUuYzoyNzgKIywgYy1mb3JtYXQKbXNnaWQgIkNvbW1hbmRzIGZvciBgJXMnIHdpbGwgYmUgaWdub3JlZCBpbiBmYXZvciBvZiB0aG9zZSBmb3IgYCVzJy4iCm1zZ3N0ciAiTGFzIGluc3RydWNjaW9uZXMgcGFyYSBgJXMnIG5vIHNlcuFuIHRlbmlkYXMgZW4gY3VlbnRhIGVuIGZhdm9yIGRlIGxhcyBxdWUgZXN04W4gZW4gYCVzJy4iCgojIE1lIHN1ZW5hIHF1ZSBlc28gZGUgY29sb24gZXMgYWxnbyBhc+0gY29tbyBwdW50bywgZG9zIHB1bnRvcyBvIHB1bnRvIHkgY29tYS4KIyC/UG9kcu1hcyBjb21wcm9iYXJsbz8gc3YKIyBFcyB1biBwdW50byBzZW5jaWxsbyAoLikuIEEgdmVyIHNpIHRlIGd1c3RhIG1pIHByb3B1ZXN0YS4gbW0KIzogZmlsZS5jOjI5OQojLCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgcmVuYW1lIHNpbmdsZS1jb2xvbiBgJXMnIHRvIGRvdWJsZS1jb2xvbiBgJXMnIgptc2dzdHIgIm5vIHNlIHB1ZWRlIGNhbWJpYXIgdW4gcHVudG8gKC4pIGAlcycgcG9yIGRvcyBwdW50b3MgKDopIGAlcyciCgojIExvIG1pc21vLiBzdgojOiBmaWxlLmM6MzAyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW4ndCByZW5hbWUgZG91YmxlLWNvbG9uIGAlcycgdG8gc2luZ2xlLWNvbG9uIGAlcyciCm1zZ3N0ciAibm8gc2UgcHVlZGVuIGNhbWJpYXIgZG9zIHB1bnRvcyAoOikgYCVzJyBwb3IgdW4gcHVudG8gKC4pIGAlcyciCgojIFByb3BvbmdvIHVuIGNhbWJpbyBlbiBlbCB0aWVtcG8gdmVyYmFsOiBTZSBib3JyYSBlbCBhcmNoaXZvIHRlbXBvcmFsLiBzdgojIE9rLiBtbQojOiBmaWxlLmM6MzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogRGVsZXRpbmcgaW50ZXJtZWRpYXRlIGZpbGUgYCVzJyIKbXNnc3RyICIqKiogU2UgYm9ycmEgZWwgYXJjaGl2byB0ZW1wb3JhbCBgJXMnIgoKIzogZmlsZS5jOjUyMwptc2dpZCAiIyBOb3QgYSB0YXJnZXQ6Igptc2dzdHIgIiMgTm8gZXMgdW4gb2JqZXRpdm86IgoKIyBQb25kcu1hOiBlcyB1bmEgZGVwZW5kZW5jaWEgZGUgZW0rCiMgU2ksIHRpZW5lcyByYXrzbi4gbW0KIzogZmlsZS5jOjUzMQptc2dpZCAiIyAgUHJlY2lvdXMgZmlsZSAoZGVwZW5kZW5jeSBvZiAuUFJFQ0lPVVMpLiIKbXNnc3RyICIjICBBcmNoaXZvIHZhbGlvc28gKGVzIHVuYSBkZXBlbmRlbmNpYSBkZSAuUFJFQ0lPVVMpLiIKCiMgTG8gbWlzbW8uIFkgdHJhZHVjaXIgcG9yIGZhbHNvIGVzIHBvY28gbWVub3MgcXVlIHBvY28gZXhhY3RvLgojIExvcyBwaG9ueSB0YXJnZXQgZGUgbWFrZSBzb24gYXF1ZWxsb3MgcXVlIHNlIGVqZWN1dGFuIHNpZW1wcmUKIyBzaW4gdGVuZXIgZW4gY3VlbnRhIHNpIGV4aXN0ZSB1biBhcmNoaXZvIGNvbiBlbCBub21icmUgZGVsIG9iamV0aXZvCiMgeSBkZSBzaSBlcyBhY3R1YWwuIFByb3BvbmRy7WEgaW5jb25kaWNpb25hbCBlbiB2ZXogZGUgZmFsc28sIHlhIHF1ZQojIGV4cGxpY2EgZXhhY3RhbWVudGUgcXXpIGVzIHVuIHBob255IHRhcmdldCBlbSsKIyBOby4gSW5jb25kaWNpb25hbCBubyBlcyB1bmEgdHJhZHVjY2nzbiBjb3JyZWN0YS4gUXVlIHRhbCBzaSBhbCByYXRvCiMgc2UgbGVzIG9jdXJyZSBoYWNlciB1bmEgbnVldmEgaW5zdHJ1Y2Np824gLklOQ09ORElUSU9OQUwuCiMgU2kgcXVpZXJlcyBwb2Ry7WFtb3MgcGVuc2FyIGVuIG90cmEgdHJhZHVjY2nzbiBjb21vIHNl8XVlbG8gbyBhbGdvIGFz7S4gbW0KIzogZmlsZS5jOjUzMwptc2dpZCAiIyAgUGhvbnkgdGFyZ2V0IChkZXBlbmRlbmN5IG9mIC5QSE9OWSkuIgptc2dzdHIgIiMgIG9iamV0aXZvIGZhbHNvIChkZXBlbmRlbmNpYSBkZSAuUEhPTlkpLiIKCiMgRlVaWlkKIyBQb25kcmlhIGztbmVhIGRlIGNvbWFuZG9zCiMgWSBjcmVvIHF1ZSBubyBz6SBleGFjdGFtZW50ZSBhIHF1ZSBzZSByZWZpZXJlLCBObyBjcmVvIHF1ZSBoYXlhIHZpc3RvCiMgZXN0ZSBtZW5zYWplIG51bmNhIGVuIG1ha2UgbG8gbWFyY28gY29uIEZVWlpZIGVtKwojIEVzdOFuIHRyYWR1Y2llbmRvIGNvbW1hbmRzIGNvbW8gY29tYW5kb3M/IFNvbiBt4XMgYmllbiBvcmRlbmVzIG8KIyBpbnN0cnVjY2lvbmVzLiBQb3IgbWkgcGFydGUgbm8gaGF5IHByb2JsZW1hLCBpbmNsdXNvIG1lIGd1c3RhIG3hcwojIGNvbWFuZG9zLCBwZXJvIGVzIHVuIGFuZ2xpY2lzbW8uIG1tCiM6IGZpbGUuYzo1MzUKbXNnaWQgIiMgIENvbW1hbmQtbGluZSB0YXJnZXQuIgptc2dzdHIgIiMgIE9iamV0aXZvIGRlIGztbmVhIGRlIGluc3RydWNjaW9uZXMuIgoKIyBIYWJy7WEgcXVlIGVudGVuZGVyIGVzdG8KIyBDcmVvIHF1ZSBlc3RvIGVzIGxvIHF1ZSBzaWduaWZpY2EuIEVsIGZ1ZW50ZSBubyBlcyBkZW1hc2lhZG8gY2xhcm8uIG1tCiMgU2UgcmVmaWVyZSBhIHF1ZSBlbCBmaWNoZXJvIG1ha2VmaWxlIGVzIHVubyBxdWUgZW5jdWVudHJhIHBvcgojIGRlZmVjdG8gKCBlbiBlc3RlIG9yZGVuIEdOVW1ha2VmaWxlLCBNYWtlZmlsZSB5IG1ha2VmaWxlICkgbyB1bm8KIyBxdWUgZXN04SBkZWZpbmlkbyBlbiBsYSB2YXJpYWJsZSBkZSBlbnRvcm5vIE1BS0VGSUxFIGVtKwojIEFz7SBwdWVzIHR1IHRyYWR1Y2Np824gZXMgY29tcGxldGFtZW50ZSBlcXVpdm9jYWRhLCBsbyBzaWVudG8uCiMgUG9uZHLtYTogRmljaGVybyBwb3IgZGVmZWN0byBvIGRlZmluaWRvIGVuIGxhIHZhcmlhYmxlIE1BS0VGSUxFIGVtKwojIENpZXJ0bywgbG8gaGFzIGVudGVuZGlkbyBiaWVuLiBBcnJlZ2xvIGFjb3JkZS4gbW0KIzogZmlsZS5jOjUzNwptc2dpZCAiIyAgQSBkZWZhdWx0IG9yIE1BS0VGSUxFUyBtYWtlZmlsZS4iCm1zZ3N0ciAiIyAgQXJjaGl2byBwb3IgZGVmZWN0byBvIGRlZmluaWRvIGVuIGxhIHZhcmlhYmxlIE1BS0VGSUxFLiIKCiMgUHJvcG9uZ28gZWZlY3R1YWRhIGVuIGx1Z2FyIGRlIHRlcm1pbmFkYS4gc3YKIyBPay4gRXMgbeFzIGxpdGVyYWwuIG1tCiMgQXRlbmNp824gISAsIGVzIGxhIGL6c3F1ZWRhICdkZSdyZWdsYXMgaW1wbO1jaXRhcyBlbSsKIyBPay4gT2pvLCBkZWJvIHBsdXJhbGl6YXIgcmVnbGEgZSBpbXBs7WNpdGEuIFBsYXRpY2FybG8gY29uIFVscmljaC4gbW0KIzogZmlsZS5jOjUzOAojLCBjLWZvcm1hdAptc2dpZCAiIyAgSW1wbGljaXQgcnVsZSBzZWFyY2ggaGFzJXMgYmVlbiBkb25lLlxuIgptc2dzdHIgIiMgIExhIGL6c3F1ZWRhIGRlIHJlZ2xhKHMpIGltcGztY2l0YShzKSVzIGhhIHNpZG8gZWZlY3R1YWRhLlxuIgoKIzogZmlsZS5jOjUzOSBmaWxlLmM6NTY0Cm1zZ2lkICIgbm90Igptc2dzdHIgIiBubyIKCiM6IGZpbGUuYzo1NDEKIywgYy1mb3JtYXQKbXNnaWQgIiMgIEltcGxpY2l0L3N0YXRpYyBwYXR0ZXJuIHN0ZW06IGAlcydcbiIKbXNnc3RyICIjICByYW1hIGRlbCBwYXRy824gaW1wbO1jaXRhL2VzdOF0aWNhOiBgJXMnXG4iCgojOiBmaWxlLmM6NTQzCm1zZ2lkICIjICBGaWxlIGlzIGFuIGludGVybWVkaWF0ZSBkZXBlbmRlbmN5LiIKbXNnc3RyICIjICBFbCBhcmNoaXZvIGVzIHVuYSBkZXBlbmRlbmNpYSBpbnRlcm1lZGlhLiIKCiMgU3VnZXJlbmNpYTogImNyZWEiLiBzdgojIE9rLiBBdW5xdWUsIHZpZW5kb2xvIGJpZW4sIHF1ZSB0YWwgImhhY2UiPyBtbS4KIzogZmlsZS5jOjU0Ngptc2dpZCAiIyAgQWxzbyBtYWtlczoiCm1zZ3N0ciAiIyAgVGFtYmnpbiBoYWNlOiIKCiMgv3kgImNvbXByb2LzIj8gc3YKIyBPay4gTWVqb3JhLiBtbQojIE5vIHBvbmRy7WEgbnVuY2EsIHNpbm8gc2ltcGxlbWVudGUgJ25vIHNlIGNvbXByb2LzICdlbSsKIyBTaSwgZXMgbG8gbWlzbW8gcGVybyBlcyBt4XMgZXNwYfFvbC4gbW0KIzogZmlsZS5jOjU1Mgptc2dpZCAiIyAgTW9kaWZpY2F0aW9uIHRpbWUgbmV2ZXIgY2hlY2tlZC4iCm1zZ3N0ciAiIyAgTGEgZmVjaGEgZGUgbW9kaWZpY2FjafNuIG5vIHNlIGNvbXByb2LzLiIKCiM6IGZpbGUuYzo1NTQKbXNnaWQgIiMgIEZpbGUgZG9lcyBub3QgZXhpc3QuIgptc2dzdHIgIiMgIEVsIGFyY2hpdm8gbm8gZXhpc3RlLiIKCiM6IGZpbGUuYzo1NTcKIywgYy1mb3JtYXQKbXNnaWQgIiMgIExhc3QgbW9kaWZpZWQgJS4yNHMgKCUwbHgpXG4iCm1zZ3N0ciAiIyAg2mx0aW1hIG1vZGlmaWNhY2nzbiAlLjI0cyAoJTBseClcbiIKCiM6IGZpbGUuYzo1NjAKIywgYy1mb3JtYXQKbXNnaWQgIiMgIExhc3QgbW9kaWZpZWQgJS4yNHMgKCVsZClcbiIKbXNnc3RyICIjICDabHRpbWEgbW9kaWZpY2FjafNuICUuMjRzICglbGQpXG4iCgojOiBmaWxlLmM6NTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIjICBGaWxlIGhhcyVzIGJlZW4gdXBkYXRlZC5cbiIKbXNnc3RyICIjICBFbCBhcmNoaXZvJXMgaGEgc2lkbyBhY3R1YWxpemFkby5cbiIKCiM6IGZpbGUuYzo1NjgKbXNnaWQgIiMgIENvbW1hbmRzIGN1cnJlbnRseSBydW5uaW5nIChUSElTIElTIEEgQlVHKS4iCm1zZ3N0ciAiIyAgTGFzIGluc3RydWNjaW9uZXMgc2lndWVuIGVqZWN1dOFuZG9zZSAoRVNUTyBFUyBVTiBCVUcpLiIKCiMgv05vIHNlcu1hIG3hcyBiaWVuICJsYXMgaW5zdHJ1Y2Npb25lcyBkZSBsYXMgZGVwZW5kZW5jaWFzIj8gc3YKIyBTaSwgcXVlIGJhYmFzIHNveS4gQWhvcmEgY29ycmlqby4gbW0KIzogZmlsZS5jOjU3MQptc2dpZCAiIyAgRGVwZW5kZW5jaWVzIGNvbW1hbmRzIHJ1bm5pbmcgKFRISVMgSVMgQSBCVUcpLiIKbXNnc3RyICIjICBMYXMgaW5zdHJ1Y2Npb25lcyBkZSBsYXMgZGVwZW5kZW5jaWFzIHNpZ3VlbiBlamVjdXThbmRvc2UgKEVTVE8gRVMgVU4gQlVHKS4iCgojOiBmaWxlLmM6NTgwCm1zZ2lkICIjICBTdWNjZXNzZnVsbHkgdXBkYXRlZC4iCm1zZ3N0ciAiIyAgQWN0dWFsaXphZG8gY29uIOl4aXRvLiIKCiM6IGZpbGUuYzo1ODQKbXNnaWQgIiMgIE5lZWRzIHRvIGJlIHVwZGF0ZWQgKC1xIGlzIHNldCkuIgptc2dzdHIgIiMgIE5lY2VzaXRhIHNlciBhY3R1YWxpemFkbyAobGEgb3BjafNuIC1xIGVzdOEgYWN0aXZhKS4iCgojOiBmaWxlLmM6NTg3Cm1zZ2lkICIjICBGYWlsZWQgdG8gYmUgdXBkYXRlZC4iCm1zZ3N0ciAiIyAgRmFsbG8gYWwgc2VyIGFjdHVhbGl6YWRvLiIKCiMgIyMgTGUgaGUgYfFhZGlkbyB1biAioSIgY29uIHR1IHBlcm1pc28uCiMgR3JhY2lhcy4gTm8gbG8gcHVzZSBwb3JxdWUgbm8gc2UgY29tbyBwb25lciBlc2Ugc+1tYm9sbyBjb24gZWwKIyBpc28tYWNjZW50cy1tb2RlIHkgbHVlZ28gc2UgbWUgb2x2aWTzLiBQb3IgY2llcnRvLCBjb21vIHNlIGhhY2U/CiMgdGFtYmnpbiB0ZW5nbyBkdWRhIGRlIGxhIGludGVycm9nYWNp824gYWJpZXJ0YS4KIzogZmlsZS5jOjU5MAptc2dpZCAiIyAgSW52YWxpZCB2YWx1ZSBpbiBgdXBkYXRlX3N0YXR1cycgbWVtYmVyISIKbXNnc3RyICIjICChVmFsb3IgaW524WxpZG8gZW4gZWwgbWllbWJybyBgdXBkYXRlX3N0YXR1cychIgoKIyAjIyBMbyBtaXNtby4KIzogZmlsZS5jOjU5Nwptc2dpZCAiIyAgSW52YWxpZCB2YWx1ZSBpbiBgY29tbWFuZF9zdGF0ZScgbWVtYmVyISIKbXNnc3RyICIjICChVmFsb3IgaW524WxpZG8gZW4gZWwgbWllbWJybyBgY29tbWFuZF9zdGF0ZSchIgoKIzogZmlsZS5jOjYxNgptc2dpZCAiIgoiXG4iCiIjIEZpbGVzIgptc2dzdHIgIiIKIlxuIgoiIyBBcmNoaXZvcyIKCiMgRXN0byBoYWJy7WEgcXVlIHJldmlzYXJsby4gc3YKIyBFbiBlZmVjdG8sIGhhYu1hIHF1ZSByZXZpc2FybG8sIG5vIGVzIG76bWVybyBkZSBhcmNoaXZvcwojIHNpbm8gcXVlIG5vIGhheSBhcmNoaXZvcy4gbW0KIzogZmlsZS5jOjYzOQptc2dpZCAiIgoiXG4iCiIjIE5vIGZpbGVzLiIKbXNnc3RyICIiCiJcbiIKIiMgTm8gaGF5IGFyY2hpdm9zLiIKCiMgU3VnZXJlbmNpYTogaGFzaCBidWNrZXRzIC0+IGBoYXNoIGJ1Y2tldHMnCiMgKGFsIG1lbm9zIGhhc3RhIHF1ZSBzZXBhbW9zIGxvIHF1ZSBlcywgY3JlbyBxdWUgbWUgc2FsafMgYWxnbyBwYXJlY2lkbwojIGVuIHJlY29kZSkuIHN2CiMgTGl0ZXJhbG1lbnRlIHVuIGhhc2ggYnVja2V0IGVzIHVuIHRvbmVsIGRlIHRyb3pvcy4gRW4gdW4gcHJvY2VzbyBkZQojIHBhcnRpY2nzbiBwb3IgcGljYWRpbGxvIChoYXNoKSBzZSBkZWJlbiBkZWZpbmlyICJ0b25lbGVzIiBvICJjdWJldGFzIgojIHBhcmEgZ3VhcmRhciBhbGztIGxhIGluZm9ybWFjafNuICJoYXNoZWFkYSIuIEVuIG90cmFzIHBhbGFicmFzIGVzIGVsCiMgdGFtYfFvIGRlIGxhcyBlbnRyYWRhcyBkZSDtbmRpY2UgaGFzaC4gQ2xhcm8gY29tbyBlbCBsb2RvPwojIEZpbmFsbWVudGUsIG9rLiBQb3IgYWhvcmEgbm8gdHJhZHVjaW1vcyBoYXN0YSBwb25lcm5vcyBkZSBhY3VlcmRvLgojOiBmaWxlLmM6NjQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiMgJXUgZmlsZXMgaW4gJXUgaGFzaCBidWNrZXRzLlxuIgptc2dzdHIgIiIKIlxuIgoiIyAldSBhcmNoaXZvcyBlbiAldSBgaGFzaCBidWNrZXRzJy5cbiIKCiM6IGZpbGUuYzo2NDQKIywgYy1mb3JtYXQKbXNnaWQgIiMgYXZlcmFnZSAlLjFmIGZpbGVzIHBlciBidWNrZXQsIG1heCAldSBmaWxlcyBpbiBvbmUgYnVja2V0LlxuIgptc2dzdHIgIiIKIiMgcHJvbWVkaW8gZGUgJS4xZiBhcmNoaXZvcyBwb3IgYGJ1Y2tldCcsIG1heCAldSBhcmNoaXZvcyBlbiB1biBgYnVja2V0Jy5cbiIKCiM6IGZ1bmN0aW9uLmM6NjQ4Cm1zZ2lkICJ1bmRlZmluZWQiCm1zZ3N0ciAiaW5kZWZpbmlkbyIKCiM6IGZ1bmN0aW9uLmM6NjU3IHZhcmlhYmxlLmM6NzM2Cm1zZ2lkICJkZWZhdWx0Igptc2dzdHIgInBvciBkZWZlY3RvIgoKIzogZnVuY3Rpb24uYzo2NjAgdmFyaWFibGUuYzo3MzkKbXNnaWQgImVudmlyb25tZW50Igptc2dzdHIgImVudG9ybm8iCgojOiBmdW5jdGlvbi5jOjY2Mwptc2dpZCAiZmlsZSIKbXNnc3RyICJhcmNoaXZvIgoKIyC/IGNyZWVzIHNpbmNlcmFtZW50ZSBxdWUgZXN0byBsbyBwdWVkZSBlbnRlbmRlciBhbGd1aWVuID8gZW0rCiMgvyBxdekgdGFsID8gY29uIHByZWZlcmVuY2lhIHNvYnJlIGVsIGVudG9ybm8gZW0rCiMgTm8sIGVzdOEgZW4gQUlYLCBhaG9yYSBsbyBhcnJlZ2xvLiBtbQojOiBmdW5jdGlvbi5jOjY2Ngptc2dpZCAiZW52aXJvbm1lbnQgb3ZlcnJpZGUiCm1zZ3N0ciAiY29uIHByZWZlcmVuY2lhIHNvYnJlIGVsIGVudG9ybm8iCgojIEztbmVhIGRlIGNvbWFuZG9zIG1lIHBhcmVjZSBjb3JyZWN0byBlbSsKIyBWZXIgYXJyaWJhLiBFc3RveSBkZSBhY3VlcmRvIHNpIGFz7SBoYW4gdHJhZHVjaWRvIGVuIG90cm9zIGxhZG9zLiBtbQojOiBmdW5jdGlvbi5jOjY2OSB2YXJpYWJsZS5jOjc0OAptc2dpZCAiY29tbWFuZCBsaW5lIgptc2dzdHIgImztbmVhIGRlIGluc3RydWNjaW9uZXMiCgojIEhhYnJhIHF1ZSBjb21waWxhciBlc3RvIGlubWVkaWF0YW1lbnRlIGUgaW5zdGFsYXIKIyBlbCAucG8gYSB2ZXIgcXVlIGVzIGVzdG8gZW0rCiMgTm8gc2UgcHVlZGUgcG9yIGFob3JhIHB1ZXMgbWFrZSBubyBoYSBzaWRvIGludGVybmFjaW9uYWxpemFkbyBh+m4uCiMgU2Vy4SB1bmEgZGUgbGFzIHByaW1lcmFzIGNvc2FzIHF1ZSBoYWdhIGVuIGN1YW50byBzZSBwdWVkYS4gbW0KIzogZnVuY3Rpb24uYzo2NzIKbXNnaWQgIm92ZXJyaWRlIgptc2dzdHIgInNvYnJlcG9zaWNp824iCgojIExvIGhlIGNtYWJpYWRvIGVtKwojIE9rLiBEZWJlcu1hbW9zIHBsYXRpY2FybG8gY29uIFVscmljaC4gbW0KIzogZnVuY3Rpb24uYzo2NzUgdmFyaWFibGUuYzo3NTQKbXNnaWQgImF1dG9tYXRpYyIKbXNnc3RyICJhdXRvbeF0aWNhL28iCgojOiBmdW5jdGlvbi5jOjEwODcgZnVuY3Rpb24uYzoxMDg5Cm1zZ2lkICJub24tbnVtZXJpYyBmaXJzdCBhcmd1bWVudCB0byBgd29yZCcgZnVuY3Rpb24iCm1zZ3N0ciAiZWwgcHJpbWVyIGFyZ3VtZW50byBkZSBsYSBmdW5jafNuIGB3b3JkJyBubyBlcyBudW3pcmljbyIKCiMgU3VnZXJlbmNpYTogQm9ycmFyIGVsICJkZSIgZW4gInJlcXVpZXJlIGRlIC4uLiIgc3YKIyBQZXJk824sIHNpZW1wcmUgc2UgbWUgduEgYSBwZXNhciBkZSBoYWJlcmxvIGRpc2N1dGlkbyB1biBidWVuIHJhdG8uIG1tCiM6IGZ1bmN0aW9uLmM6MTA5NyBmdW5jdGlvbi5jOjExMDAKbXNnaWQgInRoZSBgd29yZCcgZnVuY3Rpb24gdGFrZXMgYSBvbmUtb3JpZ2luIGluZGV4IGFyZ3VtZW50Igptc2dzdHIgImxhIGZ1bmNp824gYHdvcmQnIHJlcXVpZXJlIHVuIGFyZ3VtZW50byBpbmRleGFkbyBkZSB0aXBvIG9yaWdlbi11bm8iCgojOiBmdW5jdGlvbi5jOjEzNDEKIywgYy1mb3JtYXQKbXNnaWQgInVudGVybWluYXRlZCBjYWxsIHRvIGZ1bmN0aW9uIGAlcyc6IG1pc3NpbmcgYCVjJyIKbXNnc3RyICJsYSBsbGFtYWRhIGEgbGEgZnVuY2nzbiBgJXMnIG5vIGNvbmNsdXnzOiBmYWx0YSBgJWMnIgoKIyBZIG5vIHNlcu1hIG1lam9yICJCdXNjYW5kbyB1bmEgcmVnbGEgaW1wbO1jaXRhIC4uLiIKIyBUZW4gZW4gY3VlbnRhIHF1ZSBlc3RlIG1lbnNhamUgbm8gcGFyZWNlIHVuIG1lbnNhamUgZGUgZXJyb3IsIHNpbm8gbeFzCiMgZGUgImRlYnVnIiBvIGRlICJ2ZXJib3NlIi4gc3YKIyBDaWVydG8uIG1tCiM6IGltcGxpY2l0LmM6MzgKIywgYy1mb3JtYXQKbXNnaWQgIkxvb2tpbmcgZm9yIGFuIGltcGxpY2l0IHJ1bGUgZm9yIGAlcycuXG4iCm1zZ3N0ciAiQnVzY2FuZG8gdW5hIHJlZ2xhIGltcGztY2l0YSBwYXJhIGAlcycuXG4iCgojIExvIG1pc21vLgojIEJ1c2NhbmRvIHVuYSByZWdsYSBpbXBs7XRpdGEgcGFyYSBlbCBtaWVtYnJvIGRlbCBhcmNoaXZvICBgJXMnIGVtKwojIFNlIG1lIHJlc2JhbPMuIG1tCiM6IGltcGxpY2l0LmM6NTMKIywgYy1mb3JtYXQKbXNnaWQgIkxvb2tpbmcgZm9yIGFyY2hpdmUtbWVtYmVyIGltcGxpY2l0IHJ1bGUgZm9yIGAlcycuXG4iCm1zZ3N0ciAiQnVzY2FuZG8gdW5hIHJlZ2xhIGltcGztY2l0YSBwYXJhIGVsIG1pZW1icm8gZGVsIGFyY2hpdm8gYCVzJy5cbiIKCiMgUHVlcyBzaSBpbGVnYWwgbGUgc3VlbmEgYSBj4XJjZWwgYSBFbnJpcXVlLCAiZXZhZGUiIG1lIHN1ZW5hIGEgbe0gYQojIGVzY2FwYXJzZSBkZSBsYSBj4XJjZWwuLi4gKGZ1Z2EgZGUgYWxjYXRyYXogOi0pCiMgdGUgdm95IGEgZGFyIHlvIGEgdO0gZnVnYSAuLi4gZW0rCiMgv1F16SB0ZSBwYXJlY2Vy7WEgInNlIGV2aXRhIj8gc3YKIyBNZSBndXN0YSBldmFkZSwgcGVybyBldml0YSBlcyBjb3JyZWN0by4gQWNlcHRvIHR1IHN1Z2VyZW5jaWEuIG1tCiMgTm8gbWUgZ3VzdGEgc2UgZXZpdGEsIHBvbmRy7WEgZXZpdGFuZG8gZW0rCiMgT2suIFBlcm8gYSBtaSBwYXJhbm9pYSBkZSBldml0YXIgZ2VydW5kaW9zIGTzbmRlIGxhIGRlamFzPyBtbQojOiBpbXBsaWNpdC5jOjE5MAojLCBjLWZvcm1hdAptc2dpZCAiQXZvaWRpbmcgaW1wbGljaXQgcnVsZSByZWN1cnNpb24uJXMlc1xuIgptc2dzdHIgIkV2aXRhbmRvIGxhIHJlY3Vyc2nzbiBlbiBsYSByZWdsYSBpbXBs7WNpdGEuJXMlc1xuIgoKIyBGVVpaWQojIEVzdG8gbWUgc3VlbmEgZmF0YWwuIFNlIGEgcXVlIHNlIHJlZmllcmUsIHBvcnF1ZSBsbwojIGhlIHZpc3RvLCBwZXJvIGVuIGNyaXN0aWFubyBubyBzZSBzaSBwb2Ry7WEgZW50ZW5kZXJsby4KIyBzZSByZWZpZXJlIGEgbGFzIHJlZ2xhcyBkZWwgdGlwbyAlICwgbG8gcG9uZ28gRlVaWlkgLCB0ZW5kcukKIyBxdWUgcGVuc2FyIHVuIHBvY28gZW4gZWxsbyBlbSsKIyBEZSBtb21lbnRvIGNhbWJpbyBsYSByZWdsYSBwYXRyb24gcG9yIHVuYSByZWdsYSBkZSBwYXRyb24gLCB5CiMgcG9uZHLtYSBhIHRvZGEgY29zdGEgZ2VydW5kaW8gKCBpbnRlbnRhbmRvICkgZW0rCiMgT2sgY29uIGVsIGdlcnVuZGlvLiBQZXJvIHRhbWJp6W4gdGVuZ28gcXVlIG1lZGl0YXJsby4gbW0KIzogaW1wbGljaXQuYzozMjYKIywgYy1mb3JtYXQKbXNnaWQgIlRyeWluZyBwYXR0ZXJuIHJ1bGUgd2l0aCBzdGVtIGAlLipzJy5cbiIKbXNnc3RyICJJbnRlbnRhbmRvIHVuYSByZWdsYSBkZSBwYXRy824gY29uIGxhIHJhbWlmaWNhY2nzbiBgJS4qcycuXG4iCgojICMjIENvcnJpam8gbGEgcGFsYWJyYSAiZGVwZW5kZW5jaWEiLiBzdgojIEN1YW5kbyBhcGFyZXpjYSBlc3RlIG1lbnNhamUgdGVuZHLhIHBvY28gbWVub3MgcXVlIHNlbnRpZG8KIyB0ZXN0aW1vbmlhbC4gRGF0ZSBjdWVudGEgcXVlIGxvcyBhcmd1bWVudG9zIGVzdGFuIGNhbWJpYWRvcy4KIyBQb24gZWwgb3JkZW4gY29ycmVjdG8sIHNpZW1wcmUgc2Vy4SBt4XMgbPNnaWNvIHF1ZSBsbyBxdWUgdmF5YSBhCiMgYXBhcmVjZXIgdGFsIHkgY29tbyBlc3ThIGFob3JhIChTZSByZWNoYXphIGxhIGRlcGVuZGVuY2lhIGltcG9zaWJsZQojICBgJXMnIGAlcyApJ2VtKwojIE9rLiBtbQojOiBpbXBsaWNpdC5jOjM2NQojLCBjLWZvcm1hdAptc2dpZCAiUmVqZWN0aW5nIGltcG9zc2libGUgJXMgZGVwZW5kZW5jeSBgJXMnLlxuIgptc2dzdHIgIlNlIHJlY2hhemEgbGEgZGVwZW5kZW5jaWEgaW1wb3NpYmxlICVzIGAlcycuXG4iCgojOiBpbXBsaWNpdC5jOjM2NiBpbXBsaWNpdC5jOjM3NAptc2dpZCAiaW1wbGljaXQiCm1zZ3N0ciAiaW1wbO1jaXRhIgoKIzogaW1wbGljaXQuYzozNjYgaW1wbGljaXQuYzozNzQKbXNnaWQgInJ1bGUiCm1zZ3N0ciAicmVnbGEiCgojOiBpbXBsaWNpdC5jOjM3MwojLCBjLWZvcm1hdAptc2dpZCAiVHJ5aW5nICVzIGRlcGVuZGVuY3kgYCVzJy5cbiIKbXNnc3RyICJTZSBpbnRlbnRhIGxhIGRlcGVuZGVuY2lhICVzIGAlcycuXG4iCgojOiBpbXBsaWNpdC5jOjM5MwojLCBjLWZvcm1hdAptc2dpZCAiRm91bmQgZGVwZW5kZW5jeSBhcyBgJXMnLiVzXG4iCm1zZ3N0ciAiU2UgZW5jdWVudHJhIGxhIGRlcGVuZGVuY2lhIGNvbW8gYCVzJy4lc1xuIgoKIzogaW1wbGljaXQuYzo0MDgKIywgYy1mb3JtYXQKbXNnaWQgIkxvb2tpbmcgZm9yIGEgcnVsZSB3aXRoICVzIGZpbGUgYCVzJy5cbiIKbXNnc3RyICJTZSBidXNjYSB1bmEgcmVnbGEgY29uIGVsIGFyY2hpdm8gJXMgYCVzJy5cbiIKCiM6IGltcGxpY2l0LmM6NDA5Cm1zZ2lkICJpbnRlcm1lZGlhdGUiCm1zZ3N0ciAiaW50ZXJtZWRpYSIKCiM6IGpvYi5jOjE5MAojLCBjLWZvcm1hdAptc2dpZCAiKioqIFslc10gRXJyb3IgMHgleCVzIgptc2dzdHIgIioqKiBbJXNdIEVycm9yIDB4JXglcyIKCiMgUHJlZmVyaXLtYSBtaWwgdmVjZXMgInNpbiBlZmVjdG8iIG8gYWxnbyBwYXJlY2lkby4gc3YKIyBPay4gSGFi7WFtb3MgcXVlZGFkbyBlbiBgbm8gdGllbmUgZWZlY3RvJy4gbW0KIzogam9iLmM6MTkwCm1zZ2lkICIgKGlnbm9yZWQpIgptc2dzdHIgIiAobm8gdGllbmUgZWZlY3RvKSIKCiMgTG8gbWlzbW8uIHN2CiM6IGpvYi5jOjE5MwojLCBjLWZvcm1hdAptc2dpZCAiWyVzXSBFcnJvciAlZCAoaWdub3JlZCkiCm1zZ3N0ciAiWyVzXSBFcnJvciAlZCAobm8gdGllbmUgZWZlY3RvKSIKCiM6IGpvYi5jOjE5NAojLCBjLWZvcm1hdAptc2dpZCAiKioqIFslc10gRXJyb3IgJWQiCm1zZ3N0ciAiKioqIFslc10gRXJyb3IgJWQiCgojIFN1Z2VyZW5jaWE6ICIgKHZvbGNhZG8gZGUgYGNvcmUnKSIuIHN2CiMgdm9sY2FkbyBkZSBgY29yZScgbm8gc2lnbmlmaWNhIG5hZGEsIHF1ZSB0ZSBwYXJlY2Ugc2kgbWVqb3IgZGVqYW1vcwojIGVsIGNvcmUgZHVtcGVkLCBvIGJpZW4gdm9sY2FkbyBkZWwgbvpjbGVvIG8gYWxnbyBhc+0uIFBvciBlbCBtb21lbnRvCiMgbm8gY2FtYmlvIG5hZGEuIG1tCiM6IGpvYi5jOjE5OQptc2dpZCAiIChjb3JlIGR1bXBlZCkiCm1zZ3N0ciAiIChjb3JlIGR1bXBlZCkgW076Y2xlbyB2YWNpYWRvIGEgdW4gYXJjaGl2b10iCgojIFJlY2liaWRhIG8gY2FwdHVyYWRhLCBwZXJvIHBvciBEaW9zICwgbm8gcG9uZ2FzCiMgJ3NlIHRpZW5lJyAuIEVuIHZleiBkZSBoaWpvIHBvbiBwcm9jZXNvIGhpam8gLCB5IHF1aXRhIGxvCiMgcXVlIHRpZW5lcyBlbnRyZSBwYXLpbnRlc2lzIGVtKwojIExvIGRlbCBwYXLpbnRlc2lzIGVyYSBwYXJhIGVzY29nZXIuIG1tCiM6IGpvYi5jOjIzNAojLCBjLWZvcm1hdAptc2dpZCAiR290IGEgU0lHQ0hMRDsgJWQgdW5yZWFwZWQgY2hpbGRyZW4uXG4iCm1zZ3N0ciAiUmVjaWLtIHVuYSBzZfFhbCBTSUdDSExEOyAlZCBwcm9jZXNvIGhpam8gZGVzY2FycmlhZG8uXG4iCgojIL9ZIGpvYiAtPiB0cmFiYWpvcz8gc3YKIyBTaSwgcGVybyBubyBoYWJsYXMgZGUgdW5hIGNvbXB1dGFkb3JhIG11bHRpLXRyYWJham9zIHNpbm8gbXVsdGktdGFyZWFzLgojIFBvciBlc28gZWxlZ+0gdGFyZWFzLiBMbyBwbGF0aWNhbW9zIGNvbiBt4XMgY2FsbWE/IG1tCiM6IGpvYi5jOjI2NQptc2dpZCAiKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4iCm1zZ3N0ciAiKioqIFNlIGVzcGVyYSBhIHF1ZSB0ZXJtaW5lbiBvdHJhcyB0YXJlYXMuLi4uIgoKIyC/RGUgdmVyZGFkIHNlIGRpY2UgInZpdm8iPyBTaSBlcyB1biBwcm9jZXNvLCBzZSBtZSBvY3VycmUgImFjdGl2byIuIHN2CiMgTWUgZ3VzdGEgbG8gZGUgYWN0aXZvLiBtbQojOiBqb2IuYzoyOTAKIywgYy1mb3JtYXQKbXNnaWQgIkxpdmUgY2hpbGQgMHglMDhseCBQSUQgJWQlc1xuIgptc2dzdHIgIkhpam8gYWN0aXZvIDB4JTA4bHggUElEICVkJXNcbiIKCiM6IGpvYi5jOjI5MiBqb2IuYzo0Mjcgam9iLmM6NTE0IGpvYi5jOjkxOQptc2dpZCAiIChyZW1vdGUpIgptc2dzdHIgIiAocmVtb3RvKSIKCiMgUHJvdGVzdGFyIGFsIGF1dG9yLiBObyBoYXkgZm9ybWEgZGUgcG9uZXIgdHJhYmFqbyhzKSBkZXNjb25vY2lkbyhzKQojIGNvbiBjb2hlcmVuY2lhLiBzdgojIFNpLCBzaSBubyB0aWVuZW4gaWRlbnRpZmljYWRvIGEgc3UgcGFkcmUuIE5pIG1vZG8uIG1tCiMgUG9uZ28gL3MgZW0rCiMgT2suIG1tCiM6IGpvYi5jOjQxNAojLCBjLWZvcm1hdAptc2dpZCAiVW5rbm93biVzIGpvYiAlZCIKbXNnc3RyICJUcmFiYWpvJXMgZGVzY29ub2NpZG8vcyAlZCIKCiM6IGpvYi5jOjQxNAptc2dpZCAiIHJlbW90ZSIKbXNnc3RyICIgcmVtb3RvIgoKIzogam9iLmM6NDE5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBmaW5pc2hlZC4iCm1zZ3N0ciAiJXMgdGVybWluYWRvLiIKCiMgTG8gbWlzbW8sIHBvbiBQcm9jZXNvIGhpam8sIHkgcXVpdGEgbG8gcXVlIGhheQojIGVudHJlIHBhculudGVzaXMgZW0rCiM6IGpvYi5jOjQyNAojLCBjLWZvcm1hdAptc2dpZCAiUmVhcGluZyAlcyBjaGlsZCAweCUwOGx4IFBJRCAlZCVzXG4iCm1zZ3N0ciAiUHJvY2VzbyBoaWpvICVzIGRlc2NhcnJpYWRvIDB4JTA4bHggUElEICVkJXNcbiIKCiM6IGpvYi5jOjQyNQptc2dpZCAibG9zaW5nIgptc2dzdHIgInNlIHBpZXJkZSIKCiM6IGpvYi5jOjQyNQptc2dpZCAid2lubmluZyIKbXNnc3RyICJzZSBnYW5hIgoKIyBQcm9jZXNvIGhpam8gZW0rCiMgT2suCiM6IGpvYi5jOjUxMgojLCBjLWZvcm1hdAptc2dpZCAiUmVtb3ZpbmcgY2hpbGQgMHglMDhseCBQSUQgJWQlcyBmcm9tIGNoYWluLlxuIgptc2dzdHIgIlNlIGVsaW1pbmEgYWwgcHJvY2VzbyBoaWpvIDB4JTA4bHggUElEICVkJXMgZGUgbGEgY2FkZW5hLlxuIgoKIyBQcm9jZXNvIGhpam8gZW0rCiMgT2suCiM6IGpvYi5jOjkxNwojLCBjLWZvcm1hdAptc2dpZCAiUHV0dGluZyBjaGlsZCAweCUwOGx4IFBJRCAlMDVkJXMgb24gdGhlIGNoYWluLlxuIgptc2dzdHIgIlNlIHBvbmUgYWwgcHJvY2VzbyBoaWpvIDB4JTA4bHggUElEICUwNWQlcyBlbiBsYSBjYWRlbmEuXG4iCgojOiBqb2IuYzoxMTQwCm1zZ2lkICJjYW5ub3QgZW5mb3JjZSBsb2FkIGxpbWl0cyBvbiB0aGlzIG9wZXJhdGluZyBzeXN0ZW0iCm1zZ3N0ciAibm8gc2UgcHVlZGVuIGZvcnphciBsb3MgbO1taXRlcyBkZSBjYXJnYSBlbiBlc3RlIHNpc3RlbWEgb3BlcmF0aXZvIgoKIzogam9iLmM6MTE0Mgptc2dpZCAiY2Fubm90IGVuZm9yY2UgbG9hZCBsaW1pdDogIgptc2dzdHIgIm5vIHNlIHB1ZWRlIGZvcnphciBsYSBjYXJnYSBs7W1pdGU6ICIKCiM6IGpvYi5jOjEyNDQKIywgYy1mb3JtYXQKbXNnaWQgImludGVybmFsIGVycm9yOiBgJXMnIGNvbW1hbmRfc3RhdGUgJWQgaW4gY2hpbGRfaGFuZGxlciIKbXNnc3RyICJlcnJvciBpbnRlcm5vOiBgJXMnIGNvbW1hbmRfc3RhdGUgJWQgZW4gZWwgY2hpbGRfaGFuZGxlciIKCiMgImVuIHN1c3RpdHV0byIgbWUgc3VlbmEgbXV5IHJhcm8uIFByb3BvbmdvOiAiZW4gc3UgbHVnYXIiIGVuIHN1IGx1Z2FyIDotKSBzdgojIE9rLiBtbQojOiBqb2IuYzoxMzUwCiMsIGMtZm9ybWF0Cm1zZ2lkICJFeGVjdXRpbmcgJXMgaW5zdGVhZFxuIgptc2dzdHIgIkVuIHN1IGx1Z2FyLCBzZSBlamVjdXRhICVzXG4iCgojOiBqb2IuYzoxMzgxCiMsIGMtZm9ybWF0Cm1zZ2lkICJFcnJvciBzcGF3bmluZywgJWRcbiIKbXNnc3RyICJFcnJvciBhbCBsYW56YXIgZWwgcHJvY2VzbyAlZFxuIgoKIzogam9iLmM6MTQ0MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IENvbW1hbmQgbm90IGZvdW5kIgptc2dzdHIgIiVzOiBObyBzZSBlbmNvbnRy8yBlbCBwcm9ncmFtYSIKCiMgv1kgImVsIHByb2dyYW1hIFNoZWxsIj8gKGEgc2VjYXMpIHN2CiMgU2kuIFN1ZW5hIG11Y2hvIG1lam9yLiBtbQojIFN1ZW5hLCBwZXJvIG5vIGVzIG1lam9yLiBUYWwgeSBjb21vIGVzdGEgZXNjcml0bywgaW5jbHVzbwojIHlvIHBlbnNhcmlhIHF1ZSBtZSBmYWx0YSB1biBwcm9ncmFtYSBlbiBtaSBzaXN0ZW1hIHF1ZSBzZQojIGxsYW1lIHNoZWxsLiBObyBzZSBoYSBlbmNvbnRyYWRvIGVsICdzaGVsbCdlbSsKIyBFcyBidWVubyBjb250YXIgY29uIHVuYSBzZWd1bmRhIG9waW5p824gLi4uIG1tCiM6IGpvYi5jOjE0NzEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBTaGVsbCBwcm9ncmFtIG5vdCBmb3VuZCIKbXNnc3RyICIlczogTm8gc2UgaGEgZW5jb250cmFkbyBlbCBgc2hlbGwnIgoKIyBMbyBtaXNtbyBkZSBhcnJpYmEgY29uICJpZ25vcmFyIi4gc3YKIyBPay4gbW0uCiM6IG1haW4uYzoyMjQKbXNnaWQgIklnbm9yZWQgZm9yIGNvbXBhdGliaWxpdHkiCm1zZ3N0ciAiTm8gc2UgdGVuZHLhIGVuIGN1ZW50YSBwb3IgY29tcGF0aWJpbGlkYWQiCgojOiBtYWluLmM6MjI3Cm1zZ2lkICJDaGFuZ2UgdG8gRElSRUNUT1JZIGJlZm9yZSBkb2luZyBhbnl0aGluZyIKbXNnc3RyICJEZWJlIGRlc3BsYXphcnNlIGFsIGRpcmVjdG9yaW8gRElSRUNUT1JZIGFudGVzIGRlIGhhY2VyIGN1YWxxdWllciBjb3NhIgoKIyC/ImRlcHVyYWRvIiBvICJkZXB1cmFjafNuIj8gc3YKIyBQdXNlIGRlIGRlcHVyYWRvIHBhcmEgZXZpdGFyIGxhIGNhY29mb27tYSBpbmZvcm1hY2nzbiBkZXB1cmFjafNuLgojIFN1Z2VyZW5jaWFzIGJpZW52ZW5pZGFzLiBtbQojOiBtYWluLmM6MjMwCm1zZ2lkICJQcmludCBsb3RzIG9mIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiIKbXNnc3RyICJTZSBpbXByaW1pcuFuIGdyYW5kZXMgY2FudGlkYWRlcyBkZSBpbmZvcm1hY2nzbiBkZSBkZXB1cmFkbyIKCiM6IG1haW4uYzoyMzMKbXNnaWQgIkVudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSBtYWtlZmlsZXMiCm1zZ3N0ciAiTGFzIHZhcmlhYmxlcyBkZSBlbnRvcm5vIHRpZW5lbiBwcmlvcmlkYWQgc29icmUgbG9zIG1ha2VmaWxlcyIKCiM6IG1haW4uYzoyMzYKbXNnaWQgIlJlYWQgRklMRSBhcyBhIG1ha2VmaWxlIgptc2dzdHIgIlNlIGxlefMgZWwgQVJDSElWTyBjb21vIG1ha2VmaWxlIgoKIzogbWFpbi5jOjIzOQptc2dpZCAiUHJpbnQgdGhpcyBtZXNzYWdlIGFuZCBleGl0Igptc2dzdHIgIk11ZXN0cmEgZXN0ZSBtZW5zYWplIHkgZmluYWxpemEiCgojIE9qbyBjb24gaWdub3Jhci4gc3YKIyBPay4gbW0KIyBQb3IgZmF2b3IsIHNpIGhhcyB0cmFkdWNpZG8gY29tbWFuZHMgY29tbyBpbnN0cnVjY2lvbmVzICwgaGF6bG8gYXF1aQojIHRhbWJpZW4uCiMgTm8gbWUgZ3VzdGEgZXN0ZSBtZW5zYWplLCBwcmVmZXJpcu1hOiBTZSBpZ25vcmFuIGxvcyBlcnJvcmVzIG9idGVuaWRvcwojIGVuIGxhIGVqZWN1Y2nzbiBkZSBsYXMgaW5zdHJ1Y2Npb25lcyAgZW0rCiM6IG1haW4uYzoyNDIKbXNnaWQgIklnbm9yZSBlcnJvcnMgZnJvbSBjb21tYW5kcyIKbXNnc3RyICJObyBzZSB0b21hbiBlbiBjdWVudGEgbG9zIGVycm9yZXMgcHJvdmVuaWVudGVzIGRlIGxvcyBjb21hbmRvcyIKCiM6IG1haW4uYzoyNDUKbXNnaWQgIlNlYXJjaCBESVJFQ1RPUlkgZm9yIGluY2x1ZGVkIG1ha2VmaWxlcyIKbXNnc3RyICJTZSBidXNjYW4gZW4gRElSRUNUT1JJTyBsb3MgYXJjaGl2b3MgbWFrZWZpbGUgaW5jbHXtZG9zIgoKIyBZbyB0cmFkdWNpcu1hICJpbmZpbml0ZSIgcG9yICJpbmZpbml0b3MiLCBubyBwb3IgInVuYSBpbmZpbmlkYWQiLCBxdWUKIyBwYXJlY2UgcXVlIHNvbiBtdWNob3MgbWVub3MuLi4gc3YKIyBPay4gbW0KIzogbWFpbi5jOjI0OQptc2dpZCAiQWxsb3cgTiBqb2JzIGF0IG9uY2U7IGluZmluaXRlIGpvYnMgd2l0aCBubyBhcmciCm1zZ3N0ciAiIgoiU2UgcGVybWl0ZW4gTiB0cmFiYWpvcyBhIGxhIHZlejsgc2kgbm8gc2UgZXNwZWNpZmljYSB1blxuIgoiYXJndW1lbnRvIHNvbiBpbmZpbml0b3MiCgojIE5vIGVudGllbmRvIHBvciBxdekgYXF17SBlbXBsZWFzIHN1Ymp1bnRpdm86ICJwdWRpZXJvbiIuIHN2CiMgRXMgaW5jb3JyZWN0by4gRXMgdW5hIGRlIGxhcyBvcGNpb25lcyBgaycgcXVlIGRpY2UuLi4gbW0KIzogbWFpbi5jOjI1Mwptc2dpZCAiS2VlcCBnb2luZyB3aGVuIHNvbWUgdGFyZ2V0cyBjYW4ndCBiZSBtYWRlIgptc2dzdHIgIiIKIlNpZ3VlIGF2YW56YW5kbyBh+m4gY3VhbmRvIG5vIHNlIHB1ZWRhbiBjcmVhciBhbGd1bm9zIG9iamV0aXZvcyIKCiMgRXN0byBtZSBzdWVuYSBhIGRlc2NyaXBjafNuIGRlIHVuYSBvcGNp824sIG3hcyBxdWUgYSB1biBtZW5zYWplIGRlIGVycm9yLgojIFN1Z2VyZW5jaWEgcG9yIGxvIHRhbnRvOiAiTm8gc2UgbGFuemFuIC4uLiIgc3YKIyBFc3ThcyBlbiBsbyBjb3JyZWN0by4gbW0KIzogbWFpbi5jOjI1OCBtYWluLmM6MjYzCm1zZ2lkICJEb24ndCBzdGFydCBtdWx0aXBsZSBqb2JzIHVubGVzcyBsb2FkIGlzIGJlbG93IE4iCm1zZ3N0ciAiIgoiTm8gc2UgbGFuemFuIHZhcmlvcyB0cmFiYWpvcyBhIG1lbm9zIHF1ZSBsYSBjYXJnYVxuIgoic2VhIGluZmVyaW9yIGEgTiIKCiMgTG8gbWlzbW8gZGUgYW50ZXMuIHN2CiMgT2suIG1tCiM6IG1haW4uYzoyNzAKbXNnaWQgIkRvbid0IGFjdHVhbGx5IHJ1biBhbnkgY29tbWFuZHM7IGp1c3QgcHJpbnQgdGhlbSIKbXNnc3RyICJObyBzZSBlamVjdXRhbiBsYXMgaW5zdHJ1Y2Npb25lczsgc/NsYW1lbnRlIHNlIG11ZXN0cmFuIgoKIzogbWFpbi5jOjI3Mwptc2dpZCAiQ29uc2lkZXIgRklMRSB0byBiZSB2ZXJ5IG9sZCBhbmQgZG9uJ3QgcmVtYWtlIGl0Igptc2dzdHIgIlNlIGNvbnNpZGVyYSBlbCBBUkNISVZPIGRlbWFzaWFkbyB2aWVqbyB5IG5vIHNlIHJlY29uc3RydXllIgoKIyBkZSAnbWFrZScgZW0rCiMgb2suIG1tCiM6IG1haW4uYzoyNzYKbXNnaWQgIlByaW50IG1ha2UncyBpbnRlcm5hbCBkYXRhYmFzZSIKbXNnc3RyICJTZSBpbXByaW1lIGxhIGJhc2UgZGUgZGF0b3MgaW50ZXJuYSBkZSBgbWFrZSciCgojOiBtYWluLmM6Mjc5Cm1zZ2lkICJSdW4gbm8gY29tbWFuZHM7IGV4aXQgc3RhdHVzIHNheXMgaWYgdXAgdG8gZGF0ZSIKbXNnc3RyICIiCiJObyBzZSBlamVjdXRhbiBsYXMgaW5zdHJ1Y2Npb25lczsgZWwgZXN0YWRvIGRlIHNhbGlkYVxuIgoiaW5kaWNhcuEgc2kgZXN04W4gYWN0dWFsaXphZG9zIgoKIyC/ZGVzYWJpbGl0YW4gbyBkZXNoYWJpbGl0YW4/IHN2CiMgRXJyb3IgZGUgZGVkby4gbW0KIyChIFBvciBmYXZvciAhICwgvyBwZXJvIHF16SBlcyBlc28gZGUgaW50ZXJjb25zdHJ1aWRhcyA/CiMgUG9uIGFsbWFjZW5hZGFzIGludGVybmFtZW50ZSwgcXVlIGVzIGV4YWN0YW1lbnRlIGxvIHF1ZSBzb24gOikgZW0rCiMgQnVlbm8sIGJham8gcHJvdGVzdGEuIG1tCiM6IG1haW4uYzoyODIKbXNnaWQgIkRpc2FibGUgdGhlIGJ1aWx0LWluIGltcGxpY2l0IHJ1bGVzIgptc2dzdHIgIlNlIGRlc2hhYmlsaXRhbiBsYXMgcmVnbGFzIGltcGztY2l0YXMgYWxtYWNlbmFkYXMgaW50ZXJuYW1lbnRlIgoKIyC/IHF16SB0ZSBwYXJlY2UgLi4uCiMgTm8gc2UgaGFjZSBlY2hvIGRlIGxhcyBpbnN0cnVjY2lvbmVzIGVtKwojIE5vIG1lIGd1c3RhLiBRdWUgdGUgcGFyZWNlIGxvIHF1ZSBwdXNlIGFob3JhPyBtbQojOiBtYWluLmM6Mjg1Cm1zZ2lkICJEb24ndCBlY2hvIGNvbW1hbmRzIgptc2dzdHIgIkxvcyBjb21hbmRvcyBubyBzZSBtdWVzdHJhbiBjb24gZWNvIgoKIyBDb3JyZWdpZG8gZXJyb3IgZGUgdGVjbGVvcyA7KSBlbSsKIyBPay4KIzogbWFpbi5jOjI4OQptc2dpZCAiVHVybnMgb2ZmIC1rIgptc2dzdHIgIlNlIGRlc2hhYmlsaXRhIC1rIgoKIyBTZSAqdG9jYW4qLCC/bm8/IHN2CiMgU2kuIG1tCiMKIyBQdWVzIGVudG9uY2VzIGPhbWJpYWxvIGFycmliYSB0YW1iaWVuIGVtKwojIEVuIGRvbmRlPyBtbQojOiBtYWluLmM6MjkyCm1zZ2lkICJUb3VjaCB0YXJnZXRzIGluc3RlYWQgb2YgcmVtYWtpbmcgdGhlbSIKbXNnc3RyICJTZSB0b2NhbiBsb3Mgb2JqZXRpdm9zIGVuIHZleiBkZSByZWNvbnN0cnVpcmxvcyIKCiMgTWUgY29tZXLtYSBlbCAiU2UiIGluaWNpYWwuICJNdWVzdHJhIGxhIHZlcnNp824uLi4iIHN2CiMgT2suIG1tCiM6IG1haW4uYzoyOTUKbXNnaWQgIlByaW50IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBtYWtlIGFuZCBleGl0Igptc2dzdHIgIk11ZXN0cmEgbGEgdmVyc2nzbiBkZWwgbWFrZSB5IGZpbmFsaXphIgoKIyBMbyBtaXNtby4gc3YKIzogbWFpbi5jOjI5OAptc2dpZCAiUHJpbnQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5Igptc2dzdHIgIk11ZXN0cmEgZWwgZGlyZWN0b3JpbyBhY3R1YWwiCgojIExvIG1pc21vLiBzdgojIFR1cm4gb2ZmICwgZGVzYWN0aXZhIG8gZGVzaGFiaWxpdGEgLCBwZXJvIG5vIGFwYWdhIGVtKwojIGFwYWdhIGx1eiBNYXJpIEx1eiBhcGFnYSBsdXogLHF1ZSB5byBubyBwdWVkbyB2aXZpciBjb24KIyB0YW50YSBsdXogLi4uICggY2FuY2nzbiB0cmFkaWNpb25hbCApICggbm8gbG8gcHVkZSBldml0YXIgKSBlbSsKIyBKdWFyLCBKdWFyLCBKdWFyLiBDb2luY2lkbywgcGVybyBlbCBzZW50aWRvIGVzIGVsIG1pc21vLiBtbQojOiBtYWluLmM6MzAxCm1zZ2lkICJUdXJuIG9mZiAtdywgZXZlbiBpZiBpdCB3YXMgdHVybmVkIG9uIGltcGxpY2l0bHkiCm1zZ3N0ciAiRGVzYWN0aXZhIC13LCBh+m4gY3VhbmRvIGhheWEgc2lkbyBhY3RpdmFkbyBpbXBs7WNpdGFtZW50ZSIKCiMgTG8gbWlzbW8uIHN2CiMgU2UgY29uc2lkZXJhIHNpZW1wcmUgY29tbyBudWV2byBlbSsKIyBPay4gRWxpbWlubyBlbCAnc2UnIHBvcnF1ZSBlc3ThIGRlc2NyaWJpZW5kbyBhIHVuYSBvcGNp824uIG1tCiM6IG1haW4uYzozMDQKbXNnaWQgIkNvbnNpZGVyIEZJTEUgdG8gYmUgaW5maW5pdGVseSBuZXciCm1zZ3N0ciAiQ29uc2lkZXJhIGFsIEFSQ0hJVk8gc2llbXByZSBjb21vIG51ZXZvIgoKIyBMbyBtaXNtby4gc3YKIyBUb2RhcyBlc3RhcyBwYXJlY2VuIGRlc2NyaXBjaW9uZXMgZGUgb3BjaW9uZXMuCiM6IG1haW4uYzozMDcKbXNnaWQgIldhcm4gd2hlbiBhbiB1bmRlZmluZWQgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCIKbXNnc3RyICJBZHZpZXJ0ZSBjdWFuZG8gc2UgaGFjZSB1bmEgcmVmZXJlbmNpYSBhIHVuYSB2YXJpYWJsZSBubyBkZWZpbmlkYSIKCiM6IG1haW4uYzozOTQKbXNnaWQgImVtcHR5IHN0cmluZyBpbnZhbGlkIGFzIGZpbGUgbmFtZSIKbXNnc3RyICJubyBzZSBwZXJtaXRlIHF1ZSB1bmEgY2FkZW5hIHZhY+1hIHNlYSBlbCBub21icmUgZGUgdW4gYXJjaGl2byIKCiM6IG1haW4uYzo3ODEKbXNnaWQgImZvcGVuICh0ZW1wb3JhcnkgZmlsZSkiCm1zZ3N0ciAiZm9wZW4gKGFyY2hpdm8gdGVtcG9yYWwpIgoKIzogbWFpbi5jOjc4Nwptc2dpZCAiZndyaXRlICh0ZW1wb3JhcnkgZmlsZSkiCm1zZ3N0ciAiZndyaXRlIChhcmNoaXZvIHRlbXBvcmFsKSIKCiMgQW50ZXMgcHVzaXN0ZSAibWFrZWZpbGVzIi4gQ29oZXJlbmNpYS4gc3YKIyBDaWVydG8uIG1tCiM6IG1haW4uYzo5MzAKbXNnaWQgIlVwZGF0aW5nIG1ha2VmaWxlcy4uLi4iCm1zZ3N0ciAiQWN0dWFsaXphbmRvIGFyY2hpdm9zIG1ha2VmaWxlcy4uLi4iCgojIE1lIGNvbWVy7WEgZWwgImFyY2hpdm8iIGluaWNpYWwuCiMgT2suIG1tCiMgIkVsIE1ha2VmaWxlIGAlcycgLi4uIiBzdgojIFBvbmRy7WEgKCBjb21vIGVuIHVuIG1lbnNhamUgYW50ZXJpb3IgKSBzZSBhdXRvcmVmZXJlbmNpYSAuLi4gZW0rCiMgSGUgcHVlc3RvIG1ha2VmaWxlIGNvbiBtaW76c2N1bGFzICwgcGFyIHNlciBjb2hlcmVudGVzIGVtKwojIE9rLiBFcyBt4XMgYnJldmUuIG1tLgojOiBtYWluLmM6OTU1CiMsIGMtZm9ybWF0Cm1zZ2lkICJNYWtlZmlsZSBgJXMnIG1pZ2h0IGxvb3A7IG5vdCByZW1ha2luZyBpdC5cbiIKbXNnc3RyICIiCiJFbCBtYWtlZmlsZSBgJXMnIHNlIGF1dG9yZWZlcmVuY2lhOyBwb3IgbG8gY3VhbCBubyBzZSByZWNvbnN0cnV5ZS5cbiIKCiMgTG8gbWlzbW8uIHN2CiM6IG1haW4uYzoxMDI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJGYWlsZWQgdG8gcmVtYWtlIG1ha2VmaWxlIGAlcycuIgptc2dzdHIgIkZhbGxvIGFsIHJlY29uc3RydWlyIGVsIG1ha2VmaWxlIGAlcycuIgoKIyBMbyBtaXNtby4gc3YKIzogbWFpbi5jOjEwNDQKIywgYy1mb3JtYXQKbXNnaWQgIkluY2x1ZGVkIG1ha2VmaWxlIGAlcycgd2FzIG5vdCBmb3VuZC4iCm1zZ3N0ciAiTm8gc2UgZW5jb250cvMgZWwgbWFrZWZpbGUgaW5jbHXtZG8gYCVzJy4iCgojIExvIG1pc21vLiBzdgojOiBtYWluLmM6MTA0OQojLCBjLWZvcm1hdAptc2dpZCAiTWFrZWZpbGUgYCVzJyB3YXMgbm90IGZvdW5kIgptc2dzdHIgIk5vIHNlIGVuY29udHLzIGVsIE1ha2VmaWxlIGAlcyciCgojOiBtYWluLmM6MTEwOAptc2dpZCAiQ291bGRuJ3QgY2hhbmdlIGJhY2sgdG8gb3JpZ2luYWwgZGlyZWN0b3J5LiIKbXNnc3RyICJObyBzZSBwdWRvIHJlZ3Jlc2FyIGFsIGRpcmVjdG9yaW8gb3JpZ2luYWwuIgoKIzogbWFpbi5jOjExNDIKbXNnaWQgIlJlLWV4ZWN1dGluZzoiCm1zZ3N0ciAiUmUtZWplY3V0YW5kbzoiCgojOiBtYWluLmM6MTE4Ngptc2dpZCAiVXBkYXRpbmcgZ29hbCB0YXJnZXRzLi4uLiIKbXNnc3RyICJBY3R1YWxpemFuZG8gbG9zIG9iamV0aXZvcyBmaW5hbGVzLi4uLiIKCiMgU3VnZXJlbmNpYTogIk5vIHNlIGVzcGVjaWZpY/MgbmluZ/puIG9iamV0aXZvIC4uLiAiIHN2CiMgT2suIE1lIGd1c3RhLiBtbQojOiBtYWluLmM6MTIxMQptc2dpZCAiTm8gdGFyZ2V0cyBzcGVjaWZpZWQgYW5kIG5vIG1ha2VmaWxlIGZvdW5kIgptc2dzdHIgIk5vIHNlIGVzcGVjaWZpY/MgbmluZ/puIG9iamV0aXZvIHkgbm8gc2UgZW5jb250cvMgbmluZ/puIG1ha2VmaWxlIgoKIzogbWFpbi5jOjEyMTMKbXNnaWQgIk5vIHRhcmdldHMiCm1zZ3N0ciAiTm8gaGF5IG9iamV0aXZvcyIKCiMgTWUgY29tZXLtYSBlbCAiZGUiIGRlICJyZXF1aWVyZSBkZSIgc3YKIyBPay4gbW0KIzogbWFpbi5jOjE0MzkKIywgYy1mb3JtYXQKbXNnaWQgInRoZSBgLSVjJyBvcHRpb24gcmVxdWlyZXMgYSBwb3NpdGl2ZSBpbnRlZ3JhbCBhcmd1bWVudCIKbXNnc3RyICJsYSBvcGNp824gYC0lYycgcmVxdWllcmUgdW4gYXJndW1lbnRvIHBvc2l0aXZvIHkgZW50ZXJvIgoKIyC/WSBNb2RvIGRlIGVtcGxlbz8gc3YKIyBTb3kgbWVkaW8gYmVzdGlhLiBEZWJlcu1hIGhhY2VybG8gYXV0b23hdGljby4gbW0KIyAidGFyZ2V0IiBlcyAib2JqZXRpdm8iLCBubyAib2JqZXRpdm9zIi4gRu1qYXRlIHF1ZSBsbGV2YSBwdW50b3MKIyBzdXNwZW5zaXZvcywgcGVybWl0aWVuZG8gYXPtIHZhcmlvcyBvYmpldGl2b3MuIHN2CiMgT2suIG1tCiM6IG1haW4uYzoxNDkwCiMsIGMtZm9ybWF0Cm1zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIFt0YXJnZXRdIC4uLlxuIgptc2dzdHIgIk1vZG8gZGUgZW1wbGVvOiAlcyBbb3BjaW9uZXNdIFtvYmpldGl2b10gLi4uXG4iCgojOiBtYWluLmM6MTQ5Mgptc2dpZCAiT3B0aW9uczpcbiIKbXNnc3RyICJPcGNpb25lczpcbiIKCiMgTm8gbWUgZ3VzdGEgY29tbyBxdWVkYSBhc+0uCiMgU3VnZXJlbmNpYTogIiVzR05VIE1ha2UgdmVyc2nzbiAlcyIgc3YKIyBBY2VwdGFkYS4gbW0KIzogbWFpbi5jOjE5NjcKIywgYy1mb3JtYXQKbXNnaWQgIiVzR05VIE1ha2UgdmVyc2lvbiAlcyIKbXNnc3RyICIlc0dOVSBNYWtlIHZlcnNp824gJXMiCgojIERlIGVzdG8gaGFibGFyZW1vcyBvdHJvIGTtYS4gc3YKIyBTaS4gRXMgYmFzdGFudGUgY29tcGxpY2Fkby4gbW0KIzogbWFpbi5jOjE5NzEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiwgYnkgUmljaGFyZCBTdGFsbG1hbiBhbmQgUm9sYW5kIE1jR3JhdGguXG4iCiIlc0NvcHlyaWdodCAoQykgMTk4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCAiCiJJbmMuXG4iCiIlc1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy5cbiIKIiVzVGhlcmUgaXMgTk8gd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQVxuIgoiJXNQQVJUSUNVTEFSIFBVUlBPU0UuXG4iCiJcbiIKbXNnc3RyICIiCiIsIHBvciBSaWNoYXJkIFN0YWxsbWFuIHkgUm9sYW5kIE1jR3JhdGguXG4iCiIlc0NvcHlyaWdodCAoQykgMTk4OCwgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCAiCiJJbmMuXG4iCiIlc0VzdGUgZXMgc29mdHdhcmUgbGlicmU7IGNvbnN1bHRlIGVuIGVsIGPzZGlnbyBmdWVudGUgbGFzIGNvbmRpY2lvbmVzIGRlICIKImNvcGlhLlxuIgoiJXNOTyBoYXkgZ2FyYW507WE7IG5pIHNpcXVpZXJhIHBhcmEgTUVSQ0FOVElCSUxJREFEIG8gRUwgQ1VNUExJTUlFTlRPIERFXG4iCiIlc0FMR9pOIFBST1DTU0lUTyBQQVJUSUNVTEFSLlxuIgoiXG4iCgojOiBtYWluLmM6MTk5MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIjIE1ha2UgZGF0YSBiYXNlLCBwcmludGVkIG9uICVzIgptc2dzdHIgIiIKIlxuIgoiIyBCYXNlIGRlIGRhdG9zIGRlbCBNYWtlLCBtb3N0cmFkYSBlbiAlcyIKCiMgbWFrZSAtPiBNYWtlLiBzdgojIE9rLiBtbQojIFBvcnF16SAnZGVsJywgbyBwb25lcyAnZGVsIHByb2dyYW1hJyBNYWtlIG8gcG9uZXMKIyAnZGUgTWFrZScgZW0rCiMgT2suIG1tCiM6IG1haW4uYzoyMDAyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiMgRmluaXNoZWQgTWFrZSBkYXRhIGJhc2Ugb24gJXNcbiIKbXNnc3RyICIiCiJcbiIKIiMgU2UgdGVybWluYSBsYSBiYXNlIGRlIGRhdG9zIGRlIE1ha2UgZW4gJXNcbiIKCiMgIkVudHJhbmRvIGVuIGVsIiAoZu1qYXRlIHF1ZSBlc3RvIGxvIGRpY2UgY3VhbmRvIGVudHJhIGVuIHVuIGRpcmVjdG9yaW8pLgojIEhhYnLtYSBxdWUgdmVyIGPzbW8gcXVlZGEuIHN2CiMgVmVyIG5vdGEgbeFzIGFkZWxhbnRlLiBtbQojIENhbWJpYW5kbyBhICwgbWUgcGFyZWNlcmlhIG11Y2hvIG1lam9yIGVtKwojIEVuIGVmZWN0by4gbW0KIzogbWFpbi5jOjIwNTMKbXNnaWQgIkVudGVyaW5nIgptc2dzdHIgIkNhbWJpYW5kbyBhIgoKIyAiRGVqYW5kbyBlbCIsICJBYmFuZG9uYW5kbyBlbCIuIHN2CiMgUXVlIHRhbCAic2FsaWVuZG8iPyBtbQojIFByZWZpZXJvICdhYmFuZG9uYW5kbycgLCBvICdzYWxpZW5kbyBkZScgZW0rCiMgUXVlIHRhbCBzYWxpZW5kbz8gbW0KIzogbWFpbi5jOjIwNTMKbXNnaWQgIkxlYXZpbmciCm1zZ3N0ciAiU2FsaWVuZG8iCgojOiBtYWluLmM6MjA3Mgptc2dpZCAiYW4gdW5rbm93biBkaXJlY3RvcnkiCm1zZ3N0ciAidW4gZGlyZWN0b3JpbyBkZXNjb25vY2lkbyIKCiMgUHJvYmFibGVtZW50ZSBzZWEgYXF17SBkb25kZSBoYXlhIHF1ZSBwb25lcmxlIGVsICJlbCIgcGFyYSBxdWUgIkVudGVyaW5nIgojIGNvbmN1ZXJkZSBiaWVuIGNvbiBlc3RhIGZyYXNlIHkgY29uIGxhIGFudGVyaW9yIHNpbXVsdOFuZWFtZW50ZS4gc3YKIyBOby4gWWEgcmV2aXPpIGVsIGZ1ZW50ZSB5IHRyYW5zY3JpYm8gZWwgdHJvem8gcGVydGluZW50ZToKIyAgY2hhciAqbWVzc2FnZSA9IGVudGVyaW5nID8gIkVudGVyaW5nIiA6ICJMZWF2aW5nIjsKIyAgaWYgKG1ha2VsZXZlbCA9PSAwKQojICAgIHByaW50ZiAoIiVzOiAlcyAiLCBwcm9ncmFtLCBtZXNzYWdlKTsKIyAgZWxzZQojICAgIHByaW50ZiAoIiVzWyV1XTogJXMgIiwgcHJvZ3JhbSwgbWFrZWxldmVsLCBtZXNzYWdlKTsKIyBDb21vIG5vdGFy4XMgbG8gZGVsIGRpcmVjdG9yaW8gdmEgZW4gb3RybyBsYWRvLgojOiBtYWluLmM6MjA3NAojLCBjLWZvcm1hdAptc2dpZCAiZGlyZWN0b3J5IGAlcydcbiIKbXNnc3RyICJkaXJlY3RvcmlvIGAlcydcbiIKCiMgSW50ZXJydW1waWRvICg/KS4gc3YKIyBNbWdtaC4uLiBFbCBtZW5zYWplIGluZGljYSBxdWUgaHVibyBhbGf6biBlcnJvciBtdXkgZ3JhdmUgeSBxdWUgcG9yCiMgZXNvIHNlIGRldGllbmUgZWwgbWFrZS4gUHJvYmFibGVtZW50ZSBzZWEgbWVqb3IgZGVqYXJsbyBhc+0uIG1tCiM6IG1pc2MuYzoyMTIgbWlzYy5jOjI2MAptc2dpZCAiLiAgU3RvcC5cbiIKbXNnc3RyICIuICBBbHRvLlxuIgoKIzogbWlzYy5jOjI3Nwptc2dpZCAiVW5rbm93biBlcnJvciAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKbXNnc3RyICJFcnJvciBkZXNjb25vY2lkbyAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKCiM6IG1pc2MuYzoyODIKIywgYy1mb3JtYXQKbXNnaWQgIlVua25vd24gZXJyb3IgJWQiCm1zZ3N0ciAiRXJyb3IgZGVzY29ub2NpZG8gJWQiCgojIFByb3BvbmdvIGVsaW1pbmFyIGxhIHBhbGFicmEgdmlydHVhbC4gc3YKIyBQZXJvIHNpIGVzIG11eSBib25pdGEuIDopIEJ1ZW5vLiBDb21vIHlhIHBsYXRpY2Ftb3MgcHVlZGUgcXVlIHNlYQojIHVuYSBidWVuYSBpZGVhIHBlcm8sIHBvciBhaG9yYSBsYSBkZWphcu1hLiBtbQojOiBtaXNjLmM6MzE4IG1pc2MuYzozMzAgcmVhZC5jOjIxNTEKbXNnaWQgInZpcnR1YWwgbWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJtZW1vcmlhIHZpcnR1YWwgYWdvdGFkYSIKCiM6IG1pc2MuYzo1MzYKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGFjY2VzczogdXNlciAlZCAocmVhbCAlZCksIGdyb3VwICVkIChyZWFsICVkKVxuIgptc2dzdHIgIiVzIGFjY2VzbzogdXN1YXJpbyAlZCAocmVhbCAlZCksIGdydXBvICVkIChyZWFsICVkKVxuIgoKIzogbWlzYy5jOjU1Ngptc2dpZCAiSW5pdGlhbGl6ZWQiCm1zZ3N0ciAiSW5pY2lhbGl6YWRvIgoKIzogbWlzYy5jOjYzNQptc2dpZCAiVXNlciIKbXNnc3RyICJVc3VhcmlvIgoKIzogbWlzYy5jOjY4Mwptc2dpZCAiTWFrZSIKbXNnc3RyICJNYWtlIgoKIzogbWlzYy5jOjcxNwptc2dpZCAiQ2hpbGQiCm1zZ3N0ciAiSGlqbyIKCiMgU3VnZXJlbmNpYTogZWxpbWluYXIgbGEgcGFsYWJyYSAiYXJjaGl2byIuIHN2CiMgT2suIE1lam9yYS4gbW0KIzogcmVhZC5jOjEyOQptc2dpZCAiUmVhZGluZyBtYWtlZmlsZXMuLi4iCm1zZ3N0ciAiTGV5ZW5kbyBtYWtlZmlsZXMuLi4iCgojOiByZWFkLmM6Mjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWFkaW5nIG1ha2VmaWxlIGAlcyciCm1zZ3N0ciAiTGV5ZW5kbyBtYWtlZmlsZSBgJXMnIgoKIzogcmVhZC5jOjMwMAptc2dpZCAiIChubyBkZWZhdWx0IGdvYWwpIgptc2dzdHIgIiAobm8gaGF5IG9iamV0aXZvIHBvciBkZWZlY3RvKSIKCiM6IHJlYWQuYzozMDIKbXNnaWQgIiAoc2VhcmNoIHBhdGgpIgptc2dzdHIgIiAocnV0YSBkZSBi+nNxdWVkYSkiCgojOiByZWFkLmM6MzA0Cm1zZ2lkICIgKGRvbid0IGNhcmUpIgptc2dzdHIgIiAobm8gaW1wb3J0YSkiCgojOiByZWFkLmM6MzA2Cm1zZ2lkICIgKG5vIH4gZXhwYW5zaW9uKSIKbXNnc3RyICIgKG5vIGhheSBleHBhbnNp824gZGVsIH4pIgoKIyAjIyBTaW50YXhpcyBubyBsbGV2YWJhIHRpbGRlLgojIE9rLiBtbQojOiByZWFkLmM6NDY2Cm1zZ2lkICJpbnZhbGlkIHN5bnRheCBpbiBjb25kaXRpb25hbCIKbXNnc3RyICJzaW50YXhpcyBubyB24WxpZGEgZW4gY29uZGljaW9uYWwiCgojOiByZWFkLmM6NDc0Cm1zZ2lkICJleHRyYW5lb3VzIGBlbmRlZiciCm1zZ3N0ciAiZWwgYGVuZGVmJyBlcyBpcnJlbGV2YW50ZSBvIGVzdOEgbWFsIGNvbG9jYWRvIgoKIzogcmVhZC5jOjUwMCByZWFkLmM6NTIyCm1zZ2lkICJlbXB0eSBgb3ZlcnJpZGUnIGRpcmVjdGl2ZSIKbXNnc3RyICJpbnN0cnVjY2nzbiBgb3ZlcnJpZGUnIHZhY+1hIgoKIyBjb3JyZWdpZG8gZWwgZWZlY3RvIGluZGlvICwgYfFhZG8gdW4gJ3VuJ2VtKwojIE9rLiBtbQojOiByZWFkLmM6NTg0CiMsIGMtZm9ybWF0Cm1zZ2lkICJubyBmaWxlIG5hbWUgZm9yIGAlc2luY2x1ZGUnIgptc2dzdHIgIm5vIGhheSB1biBub21icmUgZGUgYXJjaGl2byBwYXJhIGAlc2luY2x1ZGUnIgoKIzogcmVhZC5jOjY3MAptc2dpZCAiY29tbWFuZHMgY29tbWVuY2UgYmVmb3JlIGZpcnN0IHRhcmdldCIKbXNnc3RyICJsYXMgaW5zdHJ1Y2Npb25lcyBjb21lbnphcm9uIGFudGVzIGRlbCBwcmltZXIgb2JqZXRpdm8iCgojICJmYWx0YSB1bmEgcmVnbGEiLiBzdgojIChlcyBxdWUgZXh0cmF2aWFkYSBtZSBzdWVuYSBtdXkgcmFybykuCiMgQ2llcnRvIHBhcmVjaWVyYSBxdWUgc2UgcGVyZGnzIGRlbnRybyBkZSBhbGf6biBjaXJjdWl0by4gbW0KIyBGYWx0YSAnbGEnIHJlZ2xhIGVtKwojIE5vIG5vIGVzIGxhIHJlZ2xhIHNpbm8gdW5hIHJlZ2xhIHB1ZXMgcHVlZGUgc2VyIGN1YWxxdWllcmEgZGUgZWxsYXMuIG1tCiM6IHJlYWQuYzo3MTQKbXNnaWQgIm1pc3NpbmcgcnVsZSBiZWZvcmUgY29tbWFuZHMiCm1zZ3N0ciAiZmFsdGEgdW5hIHJlZ2xhIGFudGVzIGRlIGxhcyBpbnN0cnVjY2lvbmVzIgoKIzogcmVhZC5jOjczMwptc2dpZCAibWlzc2luZyBzZXBhcmF0b3IiCm1zZ3N0ciAiZmFsdGEgdW4gc2VwYXJhZG9yIgoKIzogcmVhZC5jOjc4Mgptc2dpZCAibWlzc2luZyB0YXJnZXQgcGF0dGVybiIKbXNnc3RyICJmYWx0YSB1biBwYXRy824gZGUgb2JqZXRpdm9zIgoKIzogcmVhZC5jOjc4NAptc2dpZCAibXVsdGlwbGUgdGFyZ2V0IHBhdHRlcm5zIgptc2dzdHIgImhheSB2YXJpb3MgcGF0cm9uZXMgZGUgb2JqZXRpdm9zIgoKIzogcmVhZC5jOjc4OQptc2dpZCAidGFyZ2V0IHBhdHRlcm4gY29udGFpbnMgbm8gYCUlJyIKbXNnc3RyICJlbCBwYXRy824gZGUgb2JqZXRpdm8gbm8gY29udGllbmUgYCUlJyIKCiM6IHJlYWQuYzo4MjkKbXNnaWQgIm1pc3NpbmcgYGVuZGlmJyIKbXNnc3RyICJmYWx0YSB1biBgZW5kaWYnIgoKIzogcmVhZC5jOjg4Nwptc2dpZCAiRXh0cmFuZW91cyB0ZXh0IGFmdGVyIGBlbmRlZicgZGlyZWN0aXZlIgptc2dzdHIgIiIKIkhheSB1biB0ZXh0byBpcnJlbGV2YW50ZSBvIG1hbCBjb2xvY2FkbyBkZXNwdelzIGRlIGxhIGluc3RydWNjafNuIGBlbmRlZiciCgojOiByZWFkLmM6OTE3Cm1zZ2lkICJtaXNzaW5nIGBlbmRlZicsIHVudGVybWluYXRlZCBgZGVmaW5lJyIKbXNnc3RyICJmYWx0YSB1biBgZW5kZWYnLCBubyBzZSB0ZXJtaW7zIHVuIGBkZWZpbmUnIgoKIzogcmVhZC5jOjk3MyByZWFkLmM6MTEyMAojLCBjLWZvcm1hdAptc2dpZCAiRXh0cmFuZW91cyB0ZXh0IGFmdGVyIGAlcycgZGlyZWN0aXZlIgptc2dzdHIgIlRleHRvIGlycmVsZXZhbnRlIG8gbWFsIGNvbG9jYWRvIGRlc3B16XMgZGUgbGEgaW5zdHJ1Y2Np824gYCVzJyIKCiM6IHJlYWQuYzo5NzcKIywgYy1mb3JtYXQKbXNnaWQgImV4dHJhbmVvdXMgYCVzJyIKbXNnc3RyICJpcnJlbGV2YW50ZSBvIG1hbCBjb2xvY2FkbyBgJXMnIgoKIzogcmVhZC5jOjk4Mgptc2dpZCAib25seSBvbmUgYGVsc2UnIHBlciBjb25kaXRpb25hbCIKbXNnc3RyICJz82xvIHNlIGFkbWl0ZSB1biBgZWxzZScgcG9yIGNvbmRpY2lvbmFsIgoKIzogcmVhZC5jOjEyMzAKbXNnaWQgIm1peGVkIGltcGxpY2l0IGFuZCBzdGF0aWMgcGF0dGVybiBydWxlcyIKbXNnc3RyICJsYXMgcmVnbGFzIGltcGztY2l0YXMgeSBsYXMgZGUgcGF0cvNuIGVzdOF0aWNvIGVzdOFuIG1lemNsYWRhcyIKCiMgWSAnbGFzJyBub3JtYWxlcyAgZW0rCiMgT2suIG1tCiM6IHJlYWQuYzoxMjMzCm1zZ2lkICJtaXhlZCBpbXBsaWNpdCBhbmQgbm9ybWFsIHJ1bGVzIgptc2dzdHIgImxhcyByZWdsYXMgaW1wbO1jaXRhcyB5IGxhcyBub3JtYWxlcyBlc3ThbiBtZXpjbGFkYXMiCgojOiByZWFkLmM6MTI3MwojLCBjLWZvcm1hdAptc2dpZCAidGFyZ2V0IGAlcycgZG9lc24ndCBtYXRjaCB0aGUgdGFyZ2V0IHBhdHRlcm4iCm1zZ3N0ciAiZWwgYXJjaGl2byBkZSBvYmpldGl2b3MgYCVzJyBubyBjb2luY2lkZSBjb24gZWwgcGF0cvNuIGRlIG9iamV0aXZvcyIKCiM6IHJlYWQuYzoxMzA1IHJlYWQuYzoxNDA3CiMsIGMtZm9ybWF0Cm1zZ2lkICJ0YXJnZXQgZmlsZSBgJXMnIGhhcyBib3RoIDogYW5kIDo6IGVudHJpZXMiCm1zZ3N0ciAiZWwgYXJjaGl2byBkZSBvYmpldGl2b3MgYCVzJyB0aWVuZSBs7W5lYXMgY29uIDogeSA6OiIKCiMgQ2FtYmlhcu1hIGdpdmVuIHBvciAncHJvcG9yY2lvbvMnIG8gJ2luZGlj8ycgZW0rCiMgT2suIG1tCiM6IHJlYWQuYzoxMzEzCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0YXJnZXQgYCVzJyBnaXZlbiBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBydWxlLiIKbXNnc3RyICJlbCBvYmpldGl2byBgJXMnIHNlIHByb3BvcmNpb27zIG3hcyBkZSB1bmEgdmV6IGVuIGxhIG1pc21hIHJlZ2xhLiIKCiMgTm8gbWUgZ3VzdGEgZXN0YSB0cmFkdWNjafNuIGRlIG92ZXJyaWRlLiBNaXJhIGEgdmVyCiMgc2kgZW5jYWphIG1lam9yIGFsZ3VuYSBkZSBsYXMgZG9zIHF1ZSBzZSBwcm9wb25lbiBhcnJpYmEKIyBlbSsKIyBBdW5xdWUgbm8gbWUgYWNhYmEgZGUgY29udmVuY2VyLCBxdWUgdGUgcGFyZWNlIOlzdG8/IG1tCiM6IHJlYWQuYzoxMzIyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ3YXJuaW5nOiBvdmVycmlkaW5nIGNvbW1hbmRzIGZvciB0YXJnZXQgYCVzJyIKbXNnc3RyICJhdGVuY2nzbjogc2UgaW1wb25lbiBjb21hbmRvcyBwYXJhIGVsIG9iamV0aXZvIGAlcyciCgojIE9qbyBjb24gaWdub3JhLiBzdgojOiByZWFkLmM6MTMyNQojLCBjLWZvcm1hdAptc2dpZCAid2FybmluZzogaWdub3Jpbmcgb2xkIGNvbW1hbmRzIGZvciB0YXJnZXQgYCVzJyIKbXNnc3RyICJhdGVuY2nzbjogc2UgaWdub3JhbiBsYXMgaW5zdHJ1Y2Npb25lcyB2aWVqYXMgcGFyYSBlbCBvYmpldGl2byBgJXMnIgoKIzogcmVhZC5jOjE4MTUKbXNnaWQgIndhcm5pbmc6IE5VTCBjaGFyYWN0ZXIgc2VlbjsgcmVzdCBvZiBsaW5lIGlnbm9yZWQiCm1zZ3N0ciAiYXRlbmNp8246IGhheSB1biBjYXLhY3RlciBOVUw7IHNlIGlnbm9yYSBlbCByZXN0byBkZSBsYSBs7W5lYSIKCiM6IHJlbWFrZS5jOjIxMgojLCBjLWZvcm1hdAptc2dpZCAiTm90aGluZyB0byBiZSBkb25lIGZvciBgJXMnLiIKbXNnc3RyICJObyBzZSBoYWNlIG5hZGEgcGFyYSBgJXMnLiIKCiM6IHJlbWFrZS5jOjIxMwojLCBjLWZvcm1hdAptc2dpZCAiYCVzJyBpcyB1cCB0byBkYXRlLiIKbXNnc3RyICJgJXMnIGVzdOEgYWN0dWFsaXphZG8uIgoKIyC/dGFyZ2V0IGZpbGUgbm8gc2Vy7WEgImFyY2hpdm8gb2JqZXRpdm8iPyBzdgojIExpdGVyYWxtZW50ZSBzaSBwZXJvIHVuIGFyY2hpdm8gbWFrZSBwdWVkZSB0ZW5lciB2YXJpb3Mgb2JqZXRpdm9zLiBtbQojIE1heCAsIHBlcm8gbm8gZXhpc3RlIHVuIGFyY2hpdm8gZGUgb2JqZXRpdm9zLiBFc3RhIGztbmVhLCBxdWUgZXMKIyBkZSBsYXMgcXVlIGFwYXJlY2VuIGFsIGhhY2VyIHVuIG1ha2UgY29uIGxhIG9wY2nzbiAtZCAoIGRlYnVnICkKIyBzZSByZWZpZXJlIGEgbG8gcXVlIGRpY2UgU2FudGlhZ28sIGVzIGRlY2lyLCAnYXJjaGl2byBvYmpldGl2bycgIGVtKwojIE9rIGNyZW8gcXVlIHRpZW5lbiByYXrzbi4gbW0KIzogcmVtYWtlLmM6MzEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJDb25zaWRlcmluZyB0YXJnZXQgZmlsZSBgJXMnLlxuIgptc2dzdHIgIlNlIGNvbnNpZGVyYSBlbCBhcmNoaXZvIG9iamV0aXZvIGAlcycuXG4iCgojIFVuIGNvbXBh8WVybyBt7W8gZGljZSBxdWUgdW5hIGJ1ZW5hIHJlZ2xhIGVzIHBvbmVyIHNpZW1wcmUgcXVlIHNlIHB1ZWRhCiMgdW4gbvptZXJvIHBhciBkZSBjb21hcy4KIyBFcyBkZWNpcjogIlNlIGludGVudPMsIHNpbiDpeGl0bywgYWN0dWFsaXphciAuLi4iCiMgbyBiaWVuICJTZSBpbnRlbnTzIHNpbiDpeGl0byBhY3R1YWxpemFyIC4uLiIKIyC/UXXpIHRlIHBhcmVjZT8gc3YKIyBCaWVuIHkgdGllbmUgcmF6824uIG1tCiM6IHJlbWFrZS5jOjMxNgojLCBjLWZvcm1hdAptc2dpZCAiUmVjZW50bHkgdHJpZWQgYW5kIGZhaWxlZCB0byB1cGRhdGUgZmlsZSBgJXMnLlxuIgptc2dzdHIgIlNlIGludGVudPMsIHNpbiDpeGl0bywgYWN0dWFsaXphciBlbCBhcmNoaXZvIGAlcycuXG4iCgojOiByZW1ha2UuYzozMjAKIywgYy1mb3JtYXQKbXNnaWQgIkZpbGUgYCVzJyB3YXMgY29uc2lkZXJlZCBhbHJlYWR5LlxuIgptc2dzdHIgIkVsIGFyY2hpdm8gYCVzJyB5YSBmdWUgY29uc2lkZXJhZG8uXG4iCgojOiByZW1ha2UuYzozMzAKIywgYy1mb3JtYXQKbXNnaWQgIlN0aWxsIHVwZGF0aW5nIGZpbGUgYCVzJy5cbiIKbXNnc3RyICJTZSBjb250aW76YSBhY3R1YWxpemFuZG8gZWwgYXJjaGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6MzMzCiMsIGMtZm9ybWF0Cm1zZ2lkICJGaW5pc2hlZCB1cGRhdGluZyBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgdGVybWlu8yBkZSBhY3R1YWxpemFyIGVsIGFyY2hpdm8gYCVzJy5cbiIKCiM6IHJlbWFrZS5jOjM1NAojLCBjLWZvcm1hdAptc2dpZCAiRmlsZSBgJXMnIGRvZXMgbm90IGV4aXN0LlxuIgptc2dzdHIgIkVsIGFyY2hpdm8gYCVzJyBubyBleGlzdGUuXG4iCgojOiByZW1ha2UuYzozNjQgcmVtYWtlLmM6NzI4CiMsIGMtZm9ybWF0Cm1zZ2lkICJGb3VuZCBhbiBpbXBsaWNpdCBydWxlIGZvciBgJXMnLlxuIgptc2dzdHIgIlNlIGVuY29udHLzIHVuYSByZWdsYSBpbXBs7WNpdGEgcGFyYSBgJXMnLlxuIgoKIyBTZSBoYSBlbmNvbnRyYWRvIGVtKwojIE9rLCBwZXJvIHByb2N1cm8gZXZpdGFyIGNvbW8gYSBsYSBtdWVydGUgbG9zIGdlcnVuZGlvcy4gbW0KIzogcmVtYWtlLmM6MzY2IHJlbWFrZS5jOjczMAojLCBjLWZvcm1hdAptc2dpZCAiTm8gaW1wbGljaXQgcnVsZSBmb3VuZCBmb3IgYCVzJy5cbiIKbXNnc3RyICJObyBzZSBoYSBlbmNvbnRyYWRvIHVuYSByZWdsYSBpbXBs7WNpdGEgcGFyYSBgJXMnLlxuIgoKIyBQb3IgZGVmZWN0bywgY29tbyBoYWNlcyBhcnJpYmEgZW0rCiMgZW4gZWZlY3RvLCBtbQojOiByZW1ha2UuYzozNzIgcmVtYWtlLmM6NzM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJVc2luZyBkZWZhdWx0IGNvbW1hbmRzIGZvciBgJXMnLlxuIgptc2dzdHIgIlNlIHV0aWxpemFuIGxhcyBpbnN0cnVjY2lvbmVzIHBvciBkZWZlY3RvIHBhcmEgYCVzJy5cbiIKCiM6IHJlbWFrZS5jOjM5MiByZW1ha2UuYzo3NjAKIywgYy1mb3JtYXQKbXNnaWQgIkNpcmN1bGFyICVzIDwtICVzIGRlcGVuZGVuY3kgZHJvcHBlZC4iCm1zZ3N0ciAiU2UgZWxpbWluYSBsYSBkZXBlbmRlbmNpYSBjaXJjdWxhciAlcyA8LSAlcy4iCgojIExvIG1pc21vIGRlIGFudGVzIGNvbiAidGFyZ2V0IGZpbGUiLiBzdgojIEVzdG95IGRlIGFjdWVyZG8gY29uIOlsICggcG9yIHVuYSB2ZXogOykgKSBlbSsKIyBPay4gbW0KIzogcmVtYWtlLmM6NDc0CiMsIGMtZm9ybWF0Cm1zZ2lkICJGaW5pc2hlZCBkZXBlbmRlbmNpZXMgb2YgdGFyZ2V0IGZpbGUgYCVzJy5cbiIKbXNnc3RyICJTZSB0ZXJtaW5hcm9uIGxhcyBkZXBlbmRlbmNpYXMgZGVsIGFyY2hpdm8gb2JqZXRpdm8gYCVzJy5cbiIKCiM6IHJlbWFrZS5jOjQ4MAojLCBjLWZvcm1hdAptc2dpZCAiVGhlIGRlcGVuZGVuY2llcyBvZiBgJXMnIGFyZSBiZWluZyBtYWRlLlxuIgptc2dzdHIgIlNlIGVzdOFuIGNvbnN0cnV5ZW5kbyBsYXMgZGVwZW5kZW5jaWFzIGRlIGAlcycuXG4iCgojIEdpdmUgdXAgbm8gZXMgZW5mb2NhciwgZXMgYWJhbmRvbmFyLCBvIGRlc2lzdGlyIGVtKwojIFNpLCBtZXTtIGxhIHBhdGEuIG1tCiM6IHJlbWFrZS5jOjQ5MwojLCBjLWZvcm1hdAptc2dpZCAiR2l2aW5nIHVwIG9uIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgYWJhbmRvbmEgZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NDk3CiMsIGMtZm9ybWF0Cm1zZ2lkICJUYXJnZXQgYCVzJyBub3QgcmVtYWRlIGJlY2F1c2Ugb2YgZXJyb3JzLiIKbXNnc3RyICJEZWJpZG8gYSBsb3MgZXJyb3JlcywgZWwgb2JqZXRpdm8gYCVzJyBubyBzZSByZWNvbnN0cnV58y4iCgojOiByZW1ha2UuYzo1NDIKIywgYy1mb3JtYXQKbXNnaWQgIkRlcGVuZGVuY3kgYCVzJyBkb2VzIG5vdCBleGlzdC5cbiIKbXNnc3RyICJMYSBkZXBlbmRlbmNpYSBgJXMnIG5vIGV4aXN0ZS5cbiIKCiM6IHJlbWFrZS5jOjU0NAojLCBjLWZvcm1hdAptc2dpZCAiRGVwZW5kZW5jeSBgJXMnIGlzICVzIHRoYW4gZGVwZW5kZW50IGAlcycuXG4iCm1zZ3N0ciAiTGEgZGVwZW5kZW5jaWEgYCVzJyBlcyAlcyBxdWUgZWwgZGVwZW5kaWVudGUgYCVzJy5cbiIKCiM6IHJlbWFrZS5jOjU0NQptc2dpZCAibmV3ZXIiCm1zZ3N0ciAibeFzIHJlY2llbnRlIgoKIzogcmVtYWtlLmM6NTQ1Cm1zZ2lkICJvbGRlciIKbXNnc3RyICJt4XMgYW50aWd1YSIKCiMgQWhvcnJhIGVzcGFjaW8sIHkgcG9uICc6OicgIGVuIHZleiBkZSBlc28gOikgZW0rCiMgQnVlbm8sIG5vIGVzIG1hbGEgaWRlYS4gQSB2ZXIgc2kgdGUgZ3VzdGEgbG8gcXVlIHB1c2UuIG1tCiM6IHJlbWFrZS5jOjU1NgojLCBjLWZvcm1hdAptc2dpZCAiVGFyZ2V0IGAlcycgaXMgZG91YmxlLWNvbG9uIGFuZCBoYXMgbm8gZGVwZW5kZW5jaWVzLlxuIgptc2dzdHIgIiIKIkVsIG9iamV0aXZvIGAlcycgZXMgZGUgdGlwbyBkb3MgcHVudG9zIGRvcyB2ZWNlcyAoOjopXG4iCiJ5IG5vIHRpZW5lIGRlcGVuZGVuY2lhcy5cbiIKCiM6IHJlbWFrZS5jOjU2MQojLCBjLWZvcm1hdAptc2dpZCAiTm8gY29tbWFuZHMgZm9yIGAlcycgYW5kIG5vIGRlcGVuZGVuY2llcyBhY3R1YWxseSBjaGFuZ2VkLlxuIgptc2dzdHIgIk5vIGhheSBpbnN0cnVjY2lvbmVzIHBhcmEgYCVzJyB5IG5pbmd1bmEgZGVwZW5kZW5jaWEgY2FtYmnzLlxuIgoKIzogcmVtYWtlLmM6NTY2CiMsIGMtZm9ybWF0Cm1zZ2lkICJObyBuZWVkIHRvIHJlbWFrZSB0YXJnZXQgYCVzJy5cbiIKbXNnc3RyICJObyBlcyBuZWNlc2FyaW8gcmVjb25zdHJ1aXIgZWwgb2JqZXRpdm8gYCVzJy5cbiIKCiMgUmV2aXNhIHRvZG8gZWwgcG8gY29uIHVuIHNlYXJjaCwgeSBtaXJhIGEgdmVyIHNpIGRlY2lkZXMgdXNhcgojIHJlZ2VuZXJhciBvIHJlY29uc3RydWlyICggcHJlZmllcm8gbG8g+mx0aW1vIDEwMDAwIHZlY2VzICkgZW0rCiMgT2ssIGJ1ZW5hIHByb3B1ZXN0YS4gbW0KIzogcmVtYWtlLmM6NTcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJNdXN0IHJlbWFrZSB0YXJnZXQgYCVzJy5cbiIKbXNnc3RyICJTZSBkZWJlIHJlY29uc3RydWlyIGVsIG9iamV0aXZvIGAlcycuXG4iCgojOiByZW1ha2UuYzo1NzgKIywgYy1mb3JtYXQKbXNnaWQgIkNvbW1hbmRzIG9mIGAlcycgYXJlIGJlaW5nIHJ1bi5cbiIKbXNnc3RyICJMYXMgaW5zdHJ1Y2Npb25lcyBkZSBgJXMnIHNlIGVzdOFuIGVqZWN1dGFuZG8uXG4iCgojIFRhcmdldCBmaWxlIG5vIGVzIGFyY2hpdm8gZGUgb2JqZXRpdm9zLCBzaW5vIGVsIGFyY2hpdm8gb2JqZXRpdm8KIyBtYWtlIG5vIHRpZW5lIG5pbmf6biBhcmNoaXZvIGRlIG9iamV0aXZvcyBlbSsKIyBPay4gbW0KIzogcmVtYWtlLmM6NTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJGYWlsZWQgdG8gcmVtYWtlIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiRmFsbG8gYWwgcmVjb25zdHJ1aXIgZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIyBMbyBtaXNtbyBlbSsKIyBPay4gbW0KIzogcmVtYWtlLmM6NTg4CiMsIGMtZm9ybWF0Cm1zZ2lkICJTdWNjZXNzZnVsbHkgcmVtYWRlIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgcmVjb25zdHJ1efMgY29uIOl4aXRvIGVsIGFyY2hpdm8gb2JqZXRpdm8gYCVzJy5cbiIKCiMgT3RyYSB2ZXogZW0rCiMgT2ssIG5vIHRlIHB1ZWRlcyBxdWVqYXIgZGUgZmFsdGEgZGUgY29uc2lzdGVuY2lhIGVuIGVzdGUgY2FzbyEgbW0KIzogcmVtYWtlLmM6NTkxCiMsIGMtZm9ybWF0Cm1zZ2lkICJUYXJnZXQgZmlsZSBgJXMnIG5lZWRzIHJlbWFkZSB1bmRlciAtcS5cbiIKbXNnc3RyICIiCiJTZSBuZWNlc2l0YSByZWNvbnN0cnVpciBlbCBhcmNoaXZvIG9iamV0aXZvIGAlcycgY29uIGxhIG9wY2nzbiAtcS5cbiIKCiMgU3VnZXJlbmNpYTogTm8gaGF5IG5pbmd1bmEgcmVnbGEuLi4gc3YKIyBDb21vIHVuYSBubyBoYXkgbmluZ3VuYS4gbW0KIzogcmVtYWtlLmM6ODgwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlc05vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYCVzJyVzIgptc2dzdHIgIiVzTm8gaGF5IG5pbmd1bmEgcmVnbGEgcGFyYSBjb25zdHJ1aXIgZWwgb2JqZXRpdm8gYCVzJyVzIgoKIzogcmVtYWtlLmM6ODgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlc05vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYCVzJywgbmVlZGVkIGJ5IGAlcyclcyIKbXNnc3RyICIiCiIlc05vIGhheSBuaW5ndW5hIHJlZ2xhIHBhcmEgY29uc3RydWlyIGVsIG9iamV0aXZvIGAlcycsIG5lY2VzYXJpbyBwYXJhIGAlcyclcyIKCiMgVWJpY2FkYSA6KSkgLCBxdWUgdGFsIGZ1dHVyYSwgYSBzZWNhcyA/IGVtKwojIEJ1ZW5vLCBzb25hYmEgY29tbyBTdGFyVHJlaywgbXV5IGNoaWRvLCBwZXJvIGFjZXB0byB0dSBzdWdlcmVuY2lhLiBtbQojOiByZW1ha2UuYzoxMDUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogRmlsZSBgJXMnIGhhcyBtb2RpZmljYXRpb24gdGltZSBpbiB0aGUgZnV0dXJlIgptc2dzdHIgIiIKIioqKiBFbCBhcmNoaXZvIGAlcycgdGllbmUgdW5hIGZlY2hhIGRlIG1vZGlmaWNhY2nzbiBmdXR1cmEiCgojIL9MYXMgYWR1YW5hcz8gc3YKIyBTaSwgbGFzIGFkdWFuYXMgZGUgZXhwb3J0YWNp824gZGUgcHJvY2Vzb3MuIFN1ZW5hIHJhcu1zaW1vIHBlcm8KIyByZXZpc+kgZWwgY/NkaWdvIHkgdG9kbyBwYXJlY2UgYXB1bnRhciBhIHF1ZSBhc+0gc29uIGxhcyBjb3Nhcy4KIyBDcmVvIHF1ZSBlc3RvIGVzIG90cmEgY29zYS4gQ3VzdG9tIHNlIHJlZmllcmUgYSBsb3MgdmFsb3JlcyBkYWRvcwojIHBvciBlbCB1c3VhcmlvICggY3VzdG9taXphYmxlcyApICwgeSBxdWUgbm8gc2UgZXhwb3J0YXLhbiBzZSByZWZpZXJlCiMgYSBxdWUgYWwgbGxhbWFyIGEgb3Ryb3MgbWFrZWZpbGVzLCBubyBzZXLhbiBwYXNhZG9zIGNvbW8gdmFsb3JlcwojIHF1ZSBzZSBhbnRlcG9uZ2FuICggb3RybyB06XJtaW5vIHBhcmEgb3ZlcnJpZGUgKSBhIGxvcyBxdWUgbWFrZQojIHRpZW5lIHBvciBkZWZlY3RvIC4KIyBMYSB0cmFkdWNjafNuIGV4YWN0YSBwb3IgdGFudG8gZXMsIGxvcyB2YWxvcmVzIGRlZmluaWRvcyBwb3IgZWwgdXN1YXJpbwojIG5vIHNlIGV4cG9ydGFy4W4gZW0rCiMgTXVjaO1zaW1vIG3hcyBjbGFybyAoZXMgbeFzIG1lIGd1c3RhIG3hcyBlbiBlc3Bh8W9sIHF1ZSBlbiBpbmds6XMgY29uIHR1CiMgYXJyZWdsbykgbW0KIzogcmVtb3RlLWNzdG1zLmM6OTQKIywgYy1mb3JtYXQKbXNnaWQgIkN1c3RvbXMgd29uJ3QgZXhwb3J0OiAlc1xuIgptc2dzdHIgIkxvcyB2YWxvcmVzIGRlZmluaWRvcyBwb3IgZWwgdXN1YXJpbyBubyBzZSBleHBvcnRhcuFuOiAlc1xuIgoKIyBTdWdlcmVuY2lhOiBgc29ja2V0JyBzdgojIE9rLiBtbQojOiByZW1vdGUtY3N0bXMuYzoxMjkKbXNnaWQgImV4cG9ydGluZzogQ291bGRuJ3QgY3JlYXRlIHJldHVybiBzb2NrZXQuIgptc2dzdHIgImV4cG9ydGFuZG86IE5vIHNlIHB1ZWRlIGNyZWFyIGVsIGBzb2NrZXQnIGRlIHJlZ3Jlc28uIgoKIzogcmVtb3RlLWNzdG1zLmM6MTM4Cm1zZ2lkICJleHBvcnRpbmc6ICIKbXNnc3RyICJleHBvcnRhbmRvOiAiCgojOiByZW1vdGUtY3N0bXMuYzoxNzEKIywgYy1mb3JtYXQKbXNnaWQgImV4cG9ydGluZzogJXMiCm1zZ3N0ciAiZXhwb3J0YW5kbzogJXMiCgojOiByZW1vdGUtY3N0bXMuYzoxODUKIywgYy1mb3JtYXQKbXNnaWQgIkpvYiBleHBvcnRlZCB0byAlcyBJRCAldVxuIgptc2dzdHIgIkVsIHRyYWJham8gaGEgc2lkbyBleHBvcnRhZG8gYSAlcyBJRCAldVxuIgoKIzogcnVsZS5jOjU1Ngptc2dpZCAiIgoiXG4iCiIjIEltcGxpY2l0IFJ1bGVzIgptc2dzdHIgIiIKIlxuIgoiIyBSZWdsYXMgaW1wbO1jaXRhcy4iCgojOiBydWxlLmM6NTcxCm1zZ2lkICIiCiJcbiIKIiMgTm8gaW1wbGljaXQgcnVsZXMuIgptc2dzdHIgIiIKIlxuIgoiIyBObyBoYXkgcmVnbGFzIGltcGztY2l0YXMuIgoKIzogcnVsZS5jOjU3NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIjICV1IGltcGxpY2l0IHJ1bGVzLCAldSIKbXNnc3RyICIiCiJcbiIKIiMgJXUgcmVnbGFzIGltcGztY2l0YXMsICV1IgoKIzogcnVsZS5jOjU4Mwptc2dpZCAiIHRlcm1pbmFsLiIKbXNnc3RyICIgdGVybWluYWwuIgoKIyAjIyBB8WFkbyChIGNvbiB0dSBwZXJtaXNvLiBzdgojIEdyYWNpYXMuIG1tCiMgvyBxdekgdGFsIGVycvNuZW8gPyBlbSsKIyBTaSwgc3VlbmEgbWVqb3IuIG1tCiM6IHJ1bGUuYzo1ODcKIywgYy1mb3JtYXQKbXNnaWQgIkJVRzogbnVtX3BhdHRlcm5fcnVsZXMgd3JvbmchICAldSAhPSAldSIKbXNnc3RyICJCVUc6IKFudW1fcGF0dGVybl9ydWxlcyBlcnLzbmVvISAgJXUgIT0gJXUiCgojOiB2YXJpYWJsZS5jOjY1OCB2YXJpYWJsZS5jOjY2MAptc2dpZCAiZW1wdHkgdmFyaWFibGUgbmFtZSIKbXNnc3RyICJub21icmUgZGUgdmFyaWFibGUgdmFj7W8iCgojIFN1Z2VyZW5jaWE6IE5vIHBvbmVyIGFyY2hpdm8uIHN2CiMgT2suIG1tCiM6IHZhcmlhYmxlLmM6NzQyCm1zZ2lkICJtYWtlZmlsZSIKbXNnc3RyICJtYWtlZmlsZSIKCiMgJ2Jham8gLWUnID0gJ2NvbiAtZSBhY3Rpdm8nIGVtKwojIE9rLiBFc3RhIGludmVyc2nzbiBlbiBsb3MgaWRpb21hcyBzYWpvbmVzIHNlIHBlZ2EuIG1tCiM6IHZhcmlhYmxlLmM6NzQ1Cm1zZ2lkICJlbnZpcm9ubWVudCB1bmRlciAtZSIKbXNnc3RyICJjb24gLWUgYWN0aXZvIgoKIyBDcmVvIHF1ZSB0ZW5kcmVtb3MgdW4gcHJvYmxlbWEgY29uIGluc3RydWNjafNuLCBjb21hbmRvCiMgLCBwcm9ncmFtYSB5IGRpcmVjdGl2YSAuIEVzdOEgY2xhcm8gcXVlIGFxde0gZXMgZGlyZWN0aXZhIGVtKwojIE9rLCBwZXJvIG5vIGRlamEgZGUgc29uYXIgYSBSb2JvQ29wLiBBIHZlciBxdWUgdGUgcGFyZWNlIGNvbW8gcXVlZPMuIG1tCiM6IHZhcmlhYmxlLmM6NzUxCm1zZ2lkICJgb3ZlcnJpZGUnIGRpcmVjdGl2ZSIKbXNnc3RyICJkaXJlY3RpdmEgZGUgc29icmVwb3NpY2nzbiBgb3ZlcnJpZGUnIgoKIzogdmFyaWFibGUuYzo4MjIKbXNnaWQgIiMgTm8gdmFyaWFibGVzLiIKbXNnc3RyICIjIE5vIGhheSB2YXJpYWJsZXMuIgoKIyBCdWVuby4gQXF17SB1biBwdW50byBkZSBkaXNjdXNp824uIFRyYWR1emNvIGJ1Y2tldHMgcG9yIGN1YmV0YXMgbwojIG1lam9yIGxhcyBkZWpvIHRhbCBjdWFsPyBPcGluaW9uZXMgYmllbnZlbmlkYXMuIG1tCiMgRXN0b3MgbWVuc2FqZXMgc29uIHBhcmEgZGVidWcsIG5vIGNyZW8gcXVlIGhhZ2EgZmFsdGEgdXNhciBjdWJldGFzIDspIGVtKwojIFRpZW5lcyByYXrzbiwgc2kgZWwgZGVidWd1ZWFkb3Igbm8gbG8gZW50aWVuZGUgcHVlcywgLi4uIHF1ZSBzZQojIGRlZGlxdWUgYSBvdHJhIGNvc2EuIG1tCiM6IHZhcmlhYmxlLmM6ODI1CiMsIGMtZm9ybWF0Cm1zZ2lkICIjICV1IHZhcmlhYmxlcyBpbiAldSBoYXNoIGJ1Y2tldHMuXG4iCm1zZ3N0ciAiIyBoYXkgJXUgdmFyaWFibGVzIGVuICV1IGBoYXNoIGJ1Y2tldHO0LlxuIgoKIzogdmFyaWFibGUuYzo4MjgKIywgYy1mb3JtYXQKbXNnaWQgIiMgYXZlcmFnZSBvZiAlLjFmIHZhcmlhYmxlcyBwZXIgYnVja2V0LCBtYXggJXUgaW4gb25lIGJ1Y2tldC5cbiIKbXNnc3RyICIjIHByb21lZGlvIGRlICUuMWYgdmFyaWFibGVzIHBvciBgYnVja2V0JywgbeF4ICV1IGVuIHVuIGBidWNrZXQnLlxuIgoKIzogdmFyaWFibGUuYzo4MzUKIywgYy1mb3JtYXQKbXNnaWQgIiMgYXZlcmFnZSBvZiAlZC4lZCB2YXJpYWJsZXMgcGVyIGJ1Y2tldCwgbWF4ICV1IGluIG9uZSBidWNrZXQuXG4iCm1zZ3N0ciAiIyBwcm9tZWRpbyBkZSAlZC4lZCB2YXJpYWJsZXMgcG9yIGBidWNrZXQnLCBt4XggJXUgZW4gdW4gYGJ1Y2tldCcuXG4iCgojOiB2YXJpYWJsZS5jOjg1MAptc2dpZCAiIgoiXG4iCiIjIFZhcmlhYmxlc1xuIgptc2dzdHIgIiIKIlxuIgoiIyBWYXJpYWJsZXNcbiIKCiMgv1kgYWwgcmV26XM/OiBSdXRhcyBkZSBi+nNxdWVkYSBWUEFUSC4gc3YKIyBNZWpvcmEKIzogdnBhdGguYzo0NTUKbXNnaWQgIiIKIlxuIgoiIyBWUEFUSCBTZWFyY2ggUGF0aHNcbiIKbXNnc3RyICIiCiJcbiIKIiMgUnV0YXMgZGUgYvpzcXVlZGEgVlBBVEhcbiIKCiMgUnV0YXMgY3JlbyBxdWUgcXVlZGEgbWVqb3IuIHN2CiMgT2suIEVzIG3hcyBjb236bi4gbW0KIzogdnBhdGguYzo0NzIKbXNnaWQgIiMgTm8gYHZwYXRoJyBzZWFyY2ggcGF0aHMuIgptc2dzdHIgIiMgTm8gaGF5IHJ1dGFzIGRlIGL6c3F1ZWRhIGB2cGF0aCcuIgoKIyChQWghIEFxde0gc2kgcXVlIHBvbmVzIGVsIHZwYXRoIGFsIGZpbmFsLCC/ZWg/IDotKSBzdgojIFlvdSByZWFsbHkgZ290IG1lISBtbQojOiB2cGF0aC5jOjQ3NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIjICV1IGB2cGF0aCcgc2VhcmNoIHBhdGhzLlxuIgptc2dzdHIgIiIKIlxuIgoiIyAldSBydXRhcyBkZSBi+nNxdWVkYSBgdnBhdGgnLlxuIgoKIzogdnBhdGguYzo0NzcKbXNnaWQgIiIKIlxuIgoiIyBObyBnZW5lcmFsIChgVlBBVEgnIHZhcmlhYmxlKSBzZWFyY2ggcGF0aC4iCm1zZ3N0ciAiIgoiXG4iCiIjIE5vIGhheSBydXRhIGRlIGL6c3F1ZWRhIGdlbmVyYWwgKHZhcmlhYmxlIGBWUEFUSCcpLiIKCiM6IHZwYXRoLmM6NDgzCm1zZ2lkICIiCiJcbiIKIiMgR2VuZXJhbCAoYFZQQVRIJyB2YXJpYWJsZSkgc2VhcmNoIHBhdGg6XG4iCiIjICIKbXNnc3RyICIiCiJcbiIKIiMgUnV0YSBkZSBi+nNxdWVkYSBnZW5lcmFsICh2YXJpYWJsZSBgVlBBVEgnKTpcbiIKIiMgIgoKIzogZ2V0bG9hZGF2Zy5jOjk0OAptc2dpZCAiRXJyb3IgZ2V0dGluZyBsb2FkIGF2ZXJhZ2UiCm1zZ3N0ciAiRXJyb3IgYWwgb2J0ZW5lciBsYSBjYXJnYSBwcm9tZWRpbyIKCiM6IGdldGxvYWRhdmcuYzo5NTIKIywgYy1mb3JtYXQKbXNnaWQgIjEtbWludXRlOiAlZiAgIgptc2dzdHIgIjEtbWludXRvOiAlZiAgIgoKIzogZ2V0bG9hZGF2Zy5jOjk1NAojLCBjLWZvcm1hdAptc2dpZCAiNS1taW51dGU6ICVmICAiCm1zZ3N0ciAiNS1taW51dG9zOiAlZiAgIgoKIzogZ2V0bG9hZGF2Zy5jOjk1NgojLCBjLWZvcm1hdAptc2dpZCAiMTUtbWludXRlOiAlZiAgIgptc2dzdHIgIjE1LW1pbnV0b3M6ICVmICAiCgojOiBnZXRvcHQuYzo1NjUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYCVzJyBpcyBhbWJpZ3VvdXNcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAlcycgZXMgYW1iaWd1YVxuIgoKIyBObyBhZG1pdGUgbmluZ/puIGFyZ3VtZW50by4gc3YKIyBPay4gWSB2dWVsdmUgbGEgYnVycmEgYWwgdHJpZ28uIG1tCiM6IGdldG9wdC5jOjU4OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgLS0lcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBsYSBvcGNp824gYC0tJXMnIG5vIGFkbWl0ZSBuaW5n+m4gYXJndW1lbnRvXG4iCgojIExvIG1pc21vLiBzdgojIE9rLiBtbQojOiBnZXRvcHQuYzo1OTQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYCVjJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAlYyVzJyBubyBhZG1pdGUgbmluZ/puIGFyZ3VtZW50b1xuIgoKIzogZ2V0b3B0LmM6NjExCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlcycgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAlcycgcmVxdWllcmUgdW4gYXJndW1lbnRvXG4iCgojOiBnZXRvcHQuYzo2NDAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uIGAtLSVzJ1xuIgptc2dzdHIgIiVzOiBvcGNp824gbm8gcmVjb25vY2lkYSBgLS0lcydcbiIKCiM6IGdldG9wdC5jOjY0NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gYCVjJXMnXG4iCm1zZ3N0ciAiJXM6IG9wY2nzbiBubyByZWNvbm9jaWRhIGAlYyVzJ1xuIgoKIzogZ2V0b3B0LmM6NjcwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKbXNnc3RyICIlczogb3BjafNuIGluduFsaWRhIC0tICVjXG4iCgojOiBnZXRvcHQuYzo2NzMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIG9wdGlvbiAtLSAlY1xuIgptc2dzdHIgIiVzOiBvcGNp824gaW524WxpZGEgLS0gJWNcbiIKCiM6IGdldG9wdC5jOjcwOQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlY1xuIgptc2dzdHIgIiVzOiBsYSBvcGNp824gcmVxdWllcmUgdW4gYXJndW1lbnRvIC0tICVjXG4iCgojIGFyZ3YtZWxlbWVudHMgLT4gZWxlbWVudG9zIGFyZ3YuIHN2CiMgKEEgcG9jbyBDIHF1ZSBzZXBhcywgc2FicuFzIGxvIHF1ZSBlcykuCiMgQWxndW5vcyBzaSwgYWxndW5vcyBuby4gUGVybyB0aWVuZXMgcmF6824uIG1tCiM6IGdldG9wdC5jOjc3NyBnZXRvcHQxLmM6MTQxCm1zZ2lkICJkaWdpdHMgb2NjdXIgaW4gdHdvIGRpZmZlcmVudCBhcmd2LWVsZW1lbnRzLlxuIgptc2dzdHIgImxvcyBk7WdpdG9zIGVzdOFuIGVuIGRvcyBlbGVtZW50b3MgYXJndiBkaXN0aW50b3MuXG4iCgojOiBnZXRvcHQuYzo3NzkgZ2V0b3B0MS5jOjE0MwojLCBjLWZvcm1hdAptc2dpZCAib3B0aW9uICVjXG4iCm1zZ3N0ciAib3BjafNuICVjXG4iCgojOiBnZXRvcHQuYzo3ODMgZ2V0b3B0MS5jOjE0Nwptc2dpZCAib3B0aW9uIGFcbiIKbXNnc3RyICJvcGNp824gYVxuIgoKIzogZ2V0b3B0LmM6Nzg3IGdldG9wdDEuYzoxNTEKbXNnaWQgIm9wdGlvbiBiXG4iCm1zZ3N0ciAib3BjafNuIGJcbiIKCiMgU3VnZXJlbmNpYTogTGEgb3BjafNuIGMgdGllbmUgZWwgdmFsb3IgYCVzJwojIEhheSB1biBtZW5zYWplIGlk6W50aWNvIGVuIGhlbGxvLiBzdgojIE1lIGd1c3RhIG11Y2hvLiBtbQojOiBnZXRvcHQuYzo3OTEgZ2V0b3B0MS5jOjE1NQojLCBjLWZvcm1hdAptc2dpZCAib3B0aW9uIGMgd2l0aCB2YWx1ZSBgJXMnXG4iCm1zZ3N0ciAiTGEgb3BjafNuIGMgdGllbmUgZWwgdmFsb3IgYCVzJ1xuIgoKIzogZ2V0b3B0LmM6Nzk4IGdldG9wdDEuYzoxNjYKIywgYy1mb3JtYXQKbXNnaWQgIj8/IGdldG9wdCByZXR1cm5lZCBjaGFyYWN0ZXIgY29kZSAwJW8gPz9cbiIKbXNnc3RyICI/PyBnZXRvcHQoKSByZWdyZXPzIHVuIGPhcmFjdGVyIGNvbiBj82RpZ28gMCVvID8/XG4iCgojIEVsZW1lbnRvcyBBUkdWIHF1ZSBubyBzb24gb3BjaW9uZXM6IHN2CiMgT2suIG1tLgojIEVzdG8gZXM6CiMgRWxlbWVudG9zIGRlIEFSR1YgJ3F1ZScgbm8gc29uIG9wY2lvbmVzOgojIHBlcm8gdGFtYmllbiBlcyB1biBtZW5zYWplIGRlIGRlYnVnIGRlbCBwcm9waW8gbWFrZSwgYXNpCiMgcXVlIG5vIG1lIHByZW9jdXBhICggbm8gYXBhcmVjZXLhIGEgdXN1YXJpb3Mgbm9ybWFsZXMgZGUgbWFrZSApIGVtKwojIEJ1ZW5vLCBwZXJvIGRlIHRvZGFzIGZvcm1hcyBzZSBjb3JyaWdlLiBtbQojOiBnZXRvcHQuYzo4MDQgZ2V0b3B0MS5jOjE3Mgptc2dpZCAibm9uLW9wdGlvbiBBUkdWLWVsZW1lbnRzOiAiCm1zZ3N0ciAibG9zIGVsZW1lbnRvcyBBUkdWIHF1ZSBubyBzb24gb3BjaW9uZXM6ICIKCiM6IGdldG9wdDEuYzoxNTkKIywgYy1mb3JtYXQKbXNnaWQgIm9wdGlvbiBkIHdpdGggdmFsdWUgYCVzJ1xuIgptc2dzdHIgIm9wY2nzbiBkIGNvbiB2YWxvciBgJXMnXG4iCgojOiBzaWduYW1lLmM6NTcKbXNnaWQgInVua25vd24gc2lnbmFsIgptc2dzdHIgInNl8WFsIGRlc2Nvbm9jaWRhIgoKIzogc2lnbmFtZS5jOjEwNwptc2dpZCAiSGFuZ3VwIgptc2dzdHIgIkNvbGdhZG8iCgojIL8gWSBwb3IgcXXpIG5vIEludGVycnVwY2nzbiA/IGVtKwojIFBvcnF1ZSBlcyB1bmEgYWNjafNuLiBEZSBoZWNobyBlcyB1biBtZW5zYWplIHF1ZSBzZSBlbnbtYSBhIHRyYXbpcwojIGRlbCBzaXN0ZW1hIGVuIGVzdGUgY2FzbyBsZSBlbnZpYXLtYXMgdW4ga2lsbCAtSU5UIG51bV9wcm9jZXNvIHBhcmEKIyBpbnRlcnJ1bXBpciBhbCBwcm9ncmFtYS4gTG8gcmV2aXPpIGNvbnRyYSBlbCBmdWVudGUuIG1tCiM6IHNpZ25hbWUuYzoxMTAKbXNnaWQgIkludGVycnVwdCIKbXNnc3RyICJJbnRlcnJ1bXBpciIKCiM6IHNpZ25hbWUuYzoxMTMKbXNnaWQgIlF1aXQiCm1zZ3N0ciAiRmluYWxpemFyIgoKIzogc2lnbmFtZS5jOjExNgptc2dpZCAiSWxsZWdhbCBJbnN0cnVjdGlvbiIKbXNnc3RyICJJbnN0cnVjY2nzbiBubyB24WxpZGEiCgojIExvcyB0cmFwIGxvcyBoZW1vcyBkZWphZG8gY29tbyB0cmFwcywgc2ltcGxlbWVudGUuIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTE5Cm1zZ2lkICJUcmFjZS9icmVha3BvaW50IHRyYXAiCm1zZ3N0ciAiVHJhY2UvYnJlYWtwb2ludCB0cmFwIgoKIzogc2lnbmFtZS5jOjEyNAptc2dpZCAiQWJvcnRlZCIKbXNnc3RyICJBYm9ydGFkbyIKCiMgUG9udGUgZGUgYWN1ZXJkbyBjb24gRW5yaXF1ZSBlbiBj821vIHNlIHRyYWR1Y2UgZXN0by4KIyBFbnJpcXVlIHRpZW5lIGVzdGEgbWlzbWEgZnJhc2UgZW4gZ2xpYmMuIHN2CiMgRXNvIGVzIDopIElPVCB0cmFwIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTI3Cm1zZ2lkICJJT1QgdHJhcCIKbXNnc3RyICJJT1QgdHJhcCIKCiMgT3RyYSBlbSsKIyBPay4gbW0KIzogc2lnbmFtZS5jOjEzMAptc2dpZCAiRU1UIHRyYXAiCm1zZ3N0ciAiRU1UIHRyYXAiCgojIENvbWEgZmxvdGFudGUsIHBvciBmYXZvci4gc3YKIyBDcmVlbWUgcXVlIGFxde0gbG8gZGUgY29tYSBmbG90YW50ZSBubyB2YWxlLiBTb21vcyBwcm8teWFucXVpcyB5CiMgcG9yIGVzbyB1c2Ftb3MgZWwgcHVudG8gZmxvdGFudGUuIERlYmVtb3MgbGxlZ2FyIGEgdW4gYWN1ZXJkby4KIyBQb3IgYWhvcmEgcG9uZ28gY29tYSBmbG90YW50ZSBwYXJhIGZhY2lsaXRhciBsYXMgY29zYXMsIHBlcm8gYmFqbwojIHByb3Rlc3RhIDstKSBtbQojOiBzaWduYW1lLmM6MTMzCm1zZ2lkICJGbG9hdGluZyBwb2ludCBleGNlcHRpb24iCm1zZ3N0ciAiRXhjZXBjafNuIGRlIGNvbWEgZmxvdGFudGUiCgojICJUZXJtaW5hZG8gcG9yIGxhIHNl8WFsIGtpbGwiIHF1ZWRhcu1hIHVuIHBvY28gbeFzIHN1YXZlIC4uLiBzdgojIEVucmlxdWUgdGllbmUgZW4gZ2xpYmMgIlRlcm1pbmFkbyAoa2lsbGVkKSIuIHN2CiMgQnVlbm8sIGNyZW8gcXVlIG1pIHRyYWR1Y2Np824gZXMgbeFzIGV4YWN0YSwgY29uY2lzYSB5IGNsYXJhCiMgcGVybyBzaSBpbnNpc3Rlbi4uLiBBZGVt4XMgcmVjdWVyZGEgZW4gcXVlIGVzdG95IGVuIHVuIHBh7XMKIyBlbiBkb25kZSBhc2VzaW5hZG8gZXMgcGFsYWJyYSBkZSB0b2RvcyBsb3MgZO1hcy4gbW0KIzogc2lnbmFtZS5jOjEzNgptc2dpZCAiS2lsbGVkIgptc2dzdHIgIlRlcm1pbmFkbyAoa2lsbGVkKSIKCiM6IHNpZ25hbWUuYzoxMzkKbXNnaWQgIkJ1cyBlcnJvciIKbXNnc3RyICJFcnJvciBlbiBlbCBidXMiCgojOiBzaWduYW1lLmM6MTQyCm1zZ2lkICJTZWdtZW50YXRpb24gZmF1bHQiCm1zZ3N0ciAiRmFsbG8gZGUgc2VnbWVudGFjafNuIgoKIzogc2lnbmFtZS5jOjE0NQptc2dpZCAiQmFkIHN5c3RlbSBjYWxsIgptc2dzdHIgIkxsYW1hZGEgYWwgc2lzdGVtYSBlcnLzbmVhIgoKIzogc2lnbmFtZS5jOjE0OAptc2dpZCAiQnJva2VuIHBpcGUiCm1zZ3N0ciAiVHViZXLtYSByb3RhIgoKIyC/VGVtcG9yaXphZG9yPyAoYXPtIGxvIHRyYWR1am8gRW5yaXF1ZSBlbiBnbGliYykuIHN2CiMgU3VlbmEgY29tbyBTdGFyVHJlay4gTWVqb3IgbG8gcGxhdGljbyBjb24g6WwuIEEgbG8gbWVqb3IKIyBoYXN0YSBsbyBjb252ZW56by4gbW0KIyBQdWVzIHRlbmRy4XMgcXVlIGRhcm1lIHJhem9uZXMgZW0rCiMgQnVlbm8sIHVuIGFsYXJtIGNsb2NrIGVzIHVuYSBhbGFybWEgZGVsIHJlbG9qLiBObyB0aWVuZSBwaWVyZGUuCiMgVGVtcG9yaXphZG9yIGVzIHVuYSBib25pdGEgcGFsYWJyYSBwZXJvIGVuIGRvbmRlIGRpY2UgcXVlIHZhIGEKIyBzb25hciB1bmEgY2FtcGFuYSBwYXJhIGRlc3BlcnRhcnRlPyBtbQojOiBzaWduYW1lLmM6MTUxCm1zZ2lkICJBbGFybSBjbG9jayIKbXNnc3RyICJBbGFybWEgZGVsIHJlbG9qIgoKIzogc2lnbmFtZS5jOjE1NAptc2dpZCAiVGVybWluYXRlZCIKbXNnc3RyICJGaW5hbGl6YWRvIgoKIzogc2lnbmFtZS5jOjE1Nwptc2dpZCAiVXNlciBkZWZpbmVkIHNpZ25hbCAxIgptc2dzdHIgIlNl8WFsIDEgZGVmaW5pZGEgcG9yIGVsIHVzdWFyaW8iCgojOiBzaWduYW1lLmM6MTYwCm1zZ2lkICJVc2VyIGRlZmluZWQgc2lnbmFsIDIiCm1zZ3N0ciAiU2XxYWwgMiBkZWZpbmlkYSBwb3IgZWwgdXN1YXJpbyIKCiMgUHJvY2VzbyBoaWpvIHRlcm1pbmFkbyBlbSsKIyBPay4gbW0KIzogc2lnbmFtZS5jOjE2NSBzaWduYW1lLmM6MTY4Cm1zZ2lkICJDaGlsZCBleGl0ZWQiCm1zZ3N0ciAiUHJvY2VzbyBoaWpvIHRlcm1pbmFkbyIKCiMgRmFsbG8uIHN2CiMgQWxpbWVudGFjafNuIGVs6WN0cmljbyBlbSsKIyBPay4gbW0KIzogc2lnbmFtZS5jOjE3MQptc2dpZCAiUG93ZXIgZmFpbHVyZSIKbXNnc3RyICJGYWxsYSBkZSBhbGltZW50YWNp824gZWzpY3RyaWNhIgoKIzogc2lnbmFtZS5jOjE3NAptc2dpZCAiU3RvcHBlZCIKbXNnc3RyICJEZXRlbmlkbyIKCiMgRW5yaXF1ZSBoaXpvIHVuYSBwcmVjaW9zYSB0cmFkdWNjafNuIGRlIGVzdGUgbWVuc2FqZSBxdWUsIHNlZ/puIOlsLAojIG1lam9yYSBlbCBvcmlnaW5hbC4gRXJhIGFsZ28gYXPtIGNvbW86CiMgIkRldGVuaWRvIChyZXF1aWVyZSBlbnRyYWRhIGRlIHRlcm1pbmFsKSIuIHN2CiMgVGllbmUgcmF6824gc2UgdmUgYmllbi4gbW0KIyBSZXF1aWVyZSAnZGUnOykgLCBjb21vIHRlIHZlYSBTYW50aWFnbyBxdWUgbGUgbWV0ZXMKIyBvdHJvICdkZScgb3RyYSB2ZXogLi4uIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTc3Cm1zZ2lkICJTdG9wcGVkICh0dHkgaW5wdXQpIgptc2dzdHIgIkRldGVuaWRvIChzZSByZXF1aWVyZSBlbnRyYWRhIGRlIHRlcm1pbmFsKSIKCiMgbG8gbWlzbW8sIHNlIHJlcXVpZXJlIGVudHJhZGEgZGUgdGVybWluYWwgLCAgZW0rCiMgT2suIG1tCiM6IHNpZ25hbWUuYzoxODAKbXNnaWQgIlN0b3BwZWQgKHR0eSBvdXRwdXQpIgptc2dzdHIgIkRldGVuaWRvIChzZSByZXF1aWVyZSBzYWxpZGEgZGUgdGVybWluYWwpIgoKIyBpZGVtIGVtKwojOiBzaWduYW1lLmM6MTgzCm1zZ2lkICJTdG9wcGVkIChzaWduYWwpIgptc2dzdHIgIkRldGVuaWRvIChzZSByZXF1aWVyZSB1bmEgc2XxYWwpIgoKIzogc2lnbmFtZS5jOjE4Ngptc2dpZCAiQ1BVIHRpbWUgbGltaXQgZXhjZWVkZWQiCm1zZ3N0ciAiU2UgYWdvdPMgZWwgdGllbXBvIGRlIENQVSBwZXJtaXRpZG8iCgojOiBzaWduYW1lLmM6MTg5Cm1zZ2lkICJGaWxlIHNpemUgbGltaXQgZXhjZWVkZWQiCm1zZ3N0ciAiU2UgZXhjZWRp8yBlbCB0YW1h8W8gbeF4aW1vIGRlIGFyY2hpdm8gcGVybWl0aWRvIgoKIzogc2lnbmFtZS5jOjE5Mgptc2dpZCAiVmlydHVhbCB0aW1lciBleHBpcmVkIgptc2dzdHIgIkVsIGNvbnRhZG9yIGRlIHRpZW1wbyB2aXJ0dWFsIGhhIGV4cGlyYWRvIgoKIyBOdW5jYSBtZSBlbnRlcukgZGUgY/NtbyBzZSB0cmFkdWPtYSBwcm9maWxlLCBwZXJvIHBlcmZpbCBtZSBzdWVuYSByYXJvLgojIL9EZSBk825kZSBsbyBoYXMgc2FjYWRvPyBzdgojIEVzIGxvIHF1ZSBxdWllcmUgZGVjaXIsIG5pIG1vZG8uIFBlcmZpbCBkZSB1biBhdmnzbiBlcyBwbGFuZSBwcm9maWxlLgojIFBvciBjaWVydG8sIGxvIG3hcyBwcm9iYWJsZSBlcyBxdWUgZXN0YSAidHJhZHVjY2nzbiIgaGF5YSBxdWUKIyBtb2RpZmljYXJsYSBwYXJhIHF1ZSBzZWEgZW50ZW5kaWJsZS4gbW0KIyBFc3RvIGxvIHRlbmdvIGVuIGdsaWJjLCBsbyBtaXJhcmUgb3RybyBk7WEuIEVzdG9zIG1lbnNhamVzIG5vIHNvbgojIGltcG9ydGFudGVzIGVtKwojIEFncmVndekgdW5hcyBwYWxhYnJhcyBlbiBhcmFzIGRlIGNsYXJpZGFkIChlc3Blcm8pIG1tCiM6IHNpZ25hbWUuYzoxOTUKbXNnaWQgIlByb2ZpbGluZyB0aW1lciBleHBpcmVkIgptc2dzdHIgIkVsIGNvbnRhZG9yIGRlIHRpZW1wbyBwYXJhIGxhIGdlbmVyYWNp824gZGVsIHBlcmZpbCBoYSBleHBpcmFkbyIKCiM6IHNpZ25hbWUuYzoyMDEKbXNnaWQgIldpbmRvdyBjaGFuZ2VkIgptc2dzdHIgIkxhIHZlbnRhbmEgaGEgY2FtYmlhZG8iCgojOiBzaWduYW1lLmM6MjA0Cm1zZ2lkICJDb250aW51ZWQiCm1zZ3N0ciAiQ29udGludWFkbyIKCiM6IHNpZ25hbWUuYzoyMDcKbXNnaWQgIlVyZ2VudCBJL08gY29uZGl0aW9uIgptc2dzdHIgIkNvbmRpY2nzbiB1cmdlbnRlIGRlIEkvTyIKCiM6IHNpZ25hbWUuYzoyMTQgc2lnbmFtZS5jOjIyMwptc2dpZCAiSS9PIHBvc3NpYmxlIgptc2dzdHIgIlBvc2libGUgSS9PIgoKIzogc2lnbmFtZS5jOjIxNwptc2dpZCAiU0lHV0lORCIKbXNnc3RyICJTSUdXSU5EIgoKIzogc2lnbmFtZS5jOjIyMAptc2dpZCAiU0lHUEhPTkUiCm1zZ3N0ciAiU0lHUEhPTkUiCgojOiBzaWduYW1lLmM6MjI2Cm1zZ2lkICJSZXNvdXJjZSBsb3N0Igptc2dzdHIgIlJlY3Vyc28gcGVyZGlkbyIKCiM6IHNpZ25hbWUuYzoyMjkKbXNnaWQgIkRhbmdlciBzaWduYWwiCm1zZ3N0ciAiU2XxYWwgZGUgcGVsaWdybyIKCiM6IHNpZ25hbWUuYzoyMzIKbXNnaWQgIkluZm9ybWF0aW9uIHJlcXVlc3QiCm1zZ3N0ciAiUGV0aWNp824gZGUgaW5mb3JtYWNp824iCgojOiBzaWduYW1lLmM6Mjg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5rbm93biBzaWduYWwiCm1zZ3N0ciAiJXM6IHNl8WFsIGRlc2Nvbm9jaWRhIgoKIzogc2lnbmFtZS5jOjI5OQptc2dpZCAiU2lnbmFsIDEyMzQ1Njc4OTAxMjM0NTY3ODkwIgptc2dzdHIgIlNl8WFsIDEyMzQ1Njc4OTAxMjM0NTY3ODkwIgoKIzogc2lnbmFtZS5jOjMwNAojLCBjLWZvcm1hdAptc2dpZCAiU2lnbmFsICVkIgptc2dzdHIgIlNl8WFsICVkIgo=