IyBNZW5zYWplcyBlbiBlc3Bh8W9sIHBhcmEgR05VIG1ha2UuCiMgQ29weXJpZ2h0IChDKSAxOTk2LCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIE1heCBkZSBNZW5kaXrhYmFsIDxtYXhAdXBuLm14PiwgMTk5NiwgMjAwMS4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIG1ha2UgMy44MS1iM1xuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1tYWtlQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA2LTA0LTAxIDAxOjQwLTA1MDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMDYtMjggMTk6NTktMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBNYXggZGUgTWVuZGl64WJhbCA8bWF4QHVwbi5teD5cbiIKIkxhbmd1YWdlLVRlYW06IFNwYW5pc2ggPGVzQGxpLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOC1iaXRcbiIKCiM6IGFyLmM6NTMKIywgYy1mb3JtYXQKbXNnaWQgImF0dGVtcHQgdG8gdXNlIHVuc3VwcG9ydGVkIGZlYXR1cmU6IGAlcyciCm1zZ3N0ciAiU2UgaW50ZW508yB1dGlsaXphciB1bmEgY2FyYWN0ZXLtc3RpY2Egbm8gaW1wbGVtZW50YWRhOiBgJXMnIgoKIyBTdWdlcmVuY2lhOiB0b3VjaCAtPiBgdG91Y2gnLiBzdgojIE9rLCBhY2VwdGFkYS4gQSBmYWx0YSBkZSBjdXJzaXZhcy4uLiBtbQojIE5vIHZlbyBwb3Jxdekgbm8gc2UgaGEgZGUgdXNhciAndG9jYXInIGVuIHZleiBkZSB0b3VjaCBlbSsKIyBFbCBtZW5zYWplIGFkZW3hcyBoYWNlIHJlZmVyZW5jaWEgYSB1biB0b3VjaCBkZSB1biBvYmpldG8gZGVudHJvCiMgZGUgdW5hIGxpYnJlcu1hLCB5IGRlIGVzbyBubyBzZSBkaWNlIG5hZGEgZW4gZWwgbWVuc2FqZS4gQ3JlbyBxdWUKIyBoYXkgcXVlIHRlbmVyIGN1aWRhZG8gY29uIGVzdGFzIGNvc2FzLgojIEVsIHByb2dyYW1hIHBhcmEgdG9jYXIgdW4gbWllbWJybyBkZSB1biBhcmNoaXZvIC4uLiAsIHkgYWhpIGVzdGFtb3MKIyB5YSBlbiBwcm9ibGVtYXMgY29uIGVsIGRpY2hvc28gYXJjaGl2by9maWNoZXJvLgojIEEgdmVyIHF1ZSBzZSBvcyBvY3VycmUgZW0rCiMgRW5yaXF1ZTogdG91Y2ggZXMgdW4gcHJvZ3JhbWEgZGVsIHNpc3RlbWEgb3BlcmF0aXZvIHkgc2lydmUgcGFyYQojIGNhbWJpYXIgbGEgZmVjaGEgZGUgdW4gcHJvZ3JhbWEgbyBhcmNoaXZvLiBFcyBkZWNpciBsbyAidG9jYSIgeQojIG1vZGlmaWNhIHN1cyBhdHJpYnV0b3MuIFBvciBlc28gcHJlZmVy7SBubyB0cmFkdWNpcmxvLgojOiBhci5jOjEzNwptc2dpZCAidG91Y2ggYXJjaGl2ZSBtZW1iZXIgaXMgbm90IGF2YWlsYWJsZSBvbiBWTVMiCm1zZ3N0ciAiRWwgcHJvZ3JhbWEgcGFyYSBoYWNlciB1biBgdG91Y2gnIG5vIGVzdOEgZGlzcG9uaWJsZSBlbiBWTVMiCgojOiBhci5jOjE2OAojLCBjLWZvcm1hdAptc2dpZCAidG91Y2g6IEFyY2hpdmUgYCVzJyBkb2VzIG5vdCBleGlzdCIKbXNnc3RyICJ0b3VjaDogRWwgYXJjaGl2byBgJXMnIG5vIGV4aXN0ZSIKCiM6IGFyLmM6MTcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0b3VjaDogYCVzJyBpcyBub3QgYSB2YWxpZCBhcmNoaXZlIgptc2dzdHIgInRvdWNoOiBgJXMnIG5vIGVzIHVuIGFyY2hpdm8gduFsaWRvIgoKIzogYXIuYzoxNzgKIywgYy1mb3JtYXQKbXNnaWQgInRvdWNoOiBNZW1iZXIgYCVzJyBkb2VzIG5vdCBleGlzdCBpbiBgJXMnIgptc2dzdHIgInRvdWNoOiBFbCBtaWVtYnJvIGAlcycgbm8gZXhpc3RlIGVuIGAlcyciCgojOiBhci5jOjE4NQojLCBjLWZvcm1hdAptc2dpZCAidG91Y2g6IEJhZCByZXR1cm4gY29kZSBmcm9tIGFyX21lbWJlcl90b3VjaCBvbiBgJXMnIgptc2dzdHIgInRvdWNoOiBD82RpZ28gZGUgcmV0b3JubyBlcnLzbmVvIGRlIGFyX21lbWJlcl90b3VjaCBlbiBgJXMnIgoKIzogYXJzY2FuLmM6NjkKIywgYy1mb3JtYXQKbXNnaWQgImxiciRzZXRfbW9kdWxlIGZhaWxlZCB0byBleHRyYWN0IG1vZHVsZSBpbmZvLCBzdGF0dXMgPSAlZCIKbXNnc3RyICIiCiJmYWxsbyBlbiBsYnIkc2V0X21vZHVsZSBwYXJhIGV4dHJhZXIgbGEgaW5mb3JtYWNp824gZGVsIG3zZHVsbywgZXN0YWRvID0gJWQiCgojOiBhcnNjYW4uYzoxNTQKIywgYy1mb3JtYXQKbXNnaWQgImxiciRpbmlfY29udHJvbCBmYWlsZWQgd2l0aCBzdGF0dXMgPSAlZCIKbXNnc3RyICJmYWxsbyBlbiBsYnIkaW5pX2NvbnRyb2wgY29uIGVzdGFkbyA9ICVkIgoKIzogYXJzY2FuLmM6MTY1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gb3BlbiBsaWJyYXJ5IGAlcycgdG8gbG9va3VwIG1lbWJlciBgJXMnIgptc2dzdHIgIkVycm9yIGFsIGFicmlyIGxhIGJpYmxpb3RlY2EgYCVzJyBwYXJhIGJ1c2NhciBhbCBlbGVtZW50byBgJXMnIgoKIzogYXJzY2FuLmM6ODI1CiMsIGMtZm9ybWF0Cm1zZ2lkICJNZW1iZXIgYCVzJyVzOiAlbGQgYnl0ZXMgYXQgJWxkICglbGQpLlxuIgptc2dzdHIgIk1pZW1icm8gYCVzJyVzOiAlbGQgYnl0ZXMgZW4gJWxkICglbGQpLlxuIgoKIzogYXJzY2FuLmM6ODI2Cm1zZ2lkICIgKG5hbWUgbWlnaHQgYmUgdHJ1bmNhdGVkKSIKbXNnc3RyICIgKGVsIG5vbWJyZSBwdWVkZSBlc3RhciB0cnVuY2FkbykiCgojOiBhcnNjYW4uYzo4MjgKIywgYy1mb3JtYXQKbXNnaWQgIiAgRGF0ZSAlcyIKbXNnc3RyICIgIEZlY2hhICVzIgoKIzogYXJzY2FuLmM6ODI5CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIHVpZCA9ICVkLCBnaWQgPSAlZCwgbW9kZSA9IDAlby5cbiIKbXNnc3RyICIgIHVpZCA9ICVkLCBnaWQgPSAlZCwgbW9kbyA9IDAlby5cbiIKCiM6IGNvbW1hbmRzLmM6NDIyCm1zZ2lkICIqKiogQnJlYWsuXG4iCm1zZ3N0ciAiKioqIEJyZWFrLlxuIgoKIzogY29tbWFuZHMuYzo1NDUKIywgYy1mb3JtYXQKbXNnaWQgIioqKiBbJXNdIEFyY2hpdmUgbWVtYmVyIGAlcycgbWF5IGJlIGJvZ3VzOyBub3QgZGVsZXRlZCIKbXNnc3RyICIiCiIqKiogWyVzXSBNaWVtYnJvIGRlIGFyY2hpdm8gYCVzJyBwb2Ry7WEgZXN0YXIgaW5jb3JyZWN0bzsgYXVucXVlIG5vIHNlICIKImVsaW1pbmEiCgojOiBjb21tYW5kcy5jOjU0OAojLCBjLWZvcm1hdAptc2dpZCAiKioqIEFyY2hpdmUgbWVtYmVyIGAlcycgbWF5IGJlIGJvZ3VzOyBub3QgZGVsZXRlZCIKbXNnc3RyICIiCiIqKiogTWllbWJybyBkZWwgYXJjaGl2byBgJXMnIHBvZHLtYSBlc3RhciBpbmNvcnJlY3RvOyBhdW5xdWUgbm8gc2UgZWxpbWluYSIKCiMgUHJvcG9uZ28gdW4gY2FtYmlvIGVuIGVsIHRpZW1wbyB2ZXJiYWw6IFNlIGJvcnJhIGVsIGFyY2hpdm8gdGVtcG9yYWwuIHN2CiMgT2suIG1tCiM6IGNvbW1hbmRzLmM6NTYxCiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogWyVzXSBEZWxldGluZyBmaWxlIGAlcyciCm1zZ3N0ciAiKioqIFslc10gU2UgYm9ycmEgZWwgYXJjaGl2byBgJXMnIgoKIyBQcm9wb25nbyB1biBjYW1iaW8gZW4gZWwgdGllbXBvIHZlcmJhbDogU2UgYm9ycmEgZWwgYXJjaGl2byB0ZW1wb3JhbC4gc3YKIyBPay4gbW0KIzogY29tbWFuZHMuYzo1NjMKIywgYy1mb3JtYXQKbXNnaWQgIioqKiBEZWxldGluZyBmaWxlIGAlcyciCm1zZ3N0ciAiKioqIFNlIGJvcnJhIGVsIGFyY2hpdm8gYCVzJyIKCiM6IGNvbW1hbmRzLmM6NTk5Cm1zZ2lkICIjICBjb21tYW5kcyB0byBleGVjdXRlIgptc2dzdHIgIiMgIGNvbWFuZG9zIHBhcmEgZWplY3V0YXIiCgojOiBjb21tYW5kcy5jOjYwMgptc2dpZCAiIChidWlsdC1pbik6Igptc2dzdHIgIiAoaW50ZXJjb25zdHJ1aWRvKToiCgojOiBjb21tYW5kcy5jOjYwNAojLCBjLWZvcm1hdAptc2dpZCAiIChmcm9tIGAlcycsIGxpbmUgJWx1KTpcbiIKbXNnc3RyICIgKGRlIGAlcycsIGxpbmVhICVsdSk6XG4iCgojOiBkaXIuYzo5ODMKbXNnaWQgIiIKIlxuIgoiIyBEaXJlY3Rvcmllc1xuIgptc2dzdHIgIiIKIlxuIgoiIyBEaXJlY3Rvcmlvc1xuIgoKIzogZGlyLmM6OTk1CiMsIGMtZm9ybWF0Cm1zZ2lkICIjICVzOiBjb3VsZCBub3QgYmUgc3RhdCdkLlxuIgptc2dzdHIgIiMgJXM6IHBvZHLtYSBubyBlc3RhciBlc3RhYmxlY2lkby5cbiIKCiMgv05vIHNvYnJhcu1hIGVsICJwb3NpYmxlbWVudGUiPwojIFByb3BvbmdvIGRlamFybG8gZW4gIiBubyBzZSBwdWRvIGFicmlyICIuIHN2CiMgT2suIEVzIGNvbnNpc3RlbnRlIGNvbiBvdHJhcyB0cmFkdWNjaW9uZXMuIG1tCiM6IGRpci5jOjk5OQojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoa2V5ICVzLCBtdGltZSAlZCk6IGNvdWxkIG5vdCBiZSBvcGVuZWQuXG4iCm1zZ3N0ciAiIyAlcyAobGxhdmUgJXMsIG10aW1lICVkKTogbm8gc2UgcHVkbyBhYnJpci5cbiIKCiMgRW4gZWwgSyAmIFIgYXBhcmVjZSBpbm9kZSB0cmFkdWNpZG8gY29tbyBub2RvLWkuIL9xdekgdGUgcGFyZWNlPyBzdgojIEJpZW4uIE1lIGd1c3RhIGNvbiBlbCBndWlvbmNpdG8uIG1tCiM6IGRpci5jOjEwMDMKIywgYy1mb3JtYXQKbXNnaWQgIiMgJXMgKGRldmljZSAlZCwgaW5vZGUgWyVkLCVkLCVkXSk6IGNvdWxkIG5vdCBiZSBvcGVuZWQuXG4iCm1zZ3N0ciAiIgoiIyAlcyAoZGlzcG9zaXRpdm8gJWQsIG5vZG8taSBbJWQsJWQsJWRdKTogcG9zaWJsZW1lbnRlIG5vIHNlIHB1ZWRhIGFicmlyLlxuIgoKIyC/Tm8gc29icmFy7WEgZWwgInBvc2libGVtZW50ZSI/CiMgUHJvcG9uZ28gZGVqYXJsbyBlbiAiIG5vIHNlIHB1ZG8gYWJyaXIgIi4gc3YKIyBPay4gRXMgY29uc2lzdGVudGUgY29uIG90cmFzIHRyYWR1Y2Npb25lcy4gbW0KIzogZGlyLmM6MTAwOAojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoZGV2aWNlICVsZCwgaW5vZGUgJWxkKTogY291bGQgbm90IGJlIG9wZW5lZC5cbiIKbXNnc3RyICIjICVzIChkaXNwb3NpdGl2byAlbGQsIG5vZG8taSAlbGQpOiBubyBzZSBwdWRvIGFicmlyLlxuIgoKIzogZGlyLmM6MTAzNQojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoa2V5ICVzLCBtdGltZSAlZCk6ICIKbXNnc3RyICIjICVzIChsbGF2ZSAlcywgbXRpbWUgJWQpOiAiCgojOiBkaXIuYzoxMDM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIjICVzIChkZXZpY2UgJWQsIGlub2RlIFslZCwlZCwlZF0pOiAiCm1zZ3N0ciAiIyAlcyAoZGlzcG9zaXRpdm8gJWQsIG5vZG8taSBbJWQsJWQsJWRdKTogIgoKIzogZGlyLmM6MTA0NAojLCBjLWZvcm1hdAptc2dpZCAiIyAlcyAoZGV2aWNlICVsZCwgaW5vZGUgJWxkKTogIgptc2dzdHIgIiMgJXMgKGRpc3Bvc2l0aXZvICVsZCwgbm9kby1pICVsZCk6ICIKCiM6IGRpci5jOjEwNTAgZGlyLmM6MTA3MQptc2dpZCAiTm8iCm1zZ3N0ciAiTm8iCgojOiBkaXIuYzoxMDUzIGRpci5jOjEwNzQKbXNnaWQgIiBmaWxlcywgIgptc2dzdHIgIiBhcmNoaXZvcywgIgoKIzogZGlyLmM6MTA1NSBkaXIuYzoxMDc2Cm1zZ2lkICJubyIKbXNnc3RyICJubyIKCiM6IGRpci5jOjEwNTgKbXNnaWQgIiBpbXBvc3NpYmlsaXRpZXMiCm1zZ3N0ciAiIGltcG9zaWJpbGlkYWRlcyIKCiMgvyJTbyBmYXIiIG5vIGVyYSAiaGFzdGEgYWhvcmEiPyAobm8gbWUgaGFnYXMgbXVjaG8gY2Fzbykgc3YKIyBTaSB0dSB0cmFkdWNjafNuIGVzIG1lam9yLiBBY2VwdGFkYS4gbW0KIzogZGlyLmM6MTA2Mgptc2dpZCAiIHNvIGZhci4iCm1zZ3N0ciAiIGhhc3RhIGFob3JhLiIKCiM6IGRpci5jOjEwNzkKIywgYy1mb3JtYXQKbXNnaWQgIiBpbXBvc3NpYmlsaXRpZXMgaW4gJWx1IGRpcmVjdG9yaWVzLlxuIgptc2dzdHIgIiBpbXBvc2liaWxpZGFkZXMgZW4gJWx1IGRpcmVjdG9yaW9zLlxuIgoKIyBDcmVvIHF1ZSBldmVudHVhbGx5IHNlcu1hICJmaW5hbG1lbnRlIiBvIGFsZ28gYXPtLiBzdgojIFNpLCBlcyBmaW5hbG1lbnRlIG5vIGEgdmVjZXMuIE9rLiBtbQojIHJlZmVyZW5jaWEgbWUgcGFyZWNlIHF1ZSBubyBsbGV2YSB0aWxkZS4gc3YKIyBObywgbm8gbGxldmEgYWNlbnRvLiBNZSBlbW9jaW9u6SBjb24gZWxvcy4gbW0KIyBDcmVlaXMgZGUgdmVyYXMgcXVlIHRpZW5lIHNlbnRpZG8gJ2ZpbmFsbWVudGUnZW0rCiMgeW8gcG9uZHLtYSBzZXIgdGVybWluYSBhdXRvcmVmZXJlbmNpYW5kbywgcG9yCiMgZWplbXBsbyBlbSsKIyBNZWpvciBsbyBlbGltaW5hbW9zLiBFcyBkZSBhbGd1bmEgZm9ybWEgcmVpdGVyYXRpdm8gZSBpbm5lY2VzYXJpby4KIyBMbyBkZSBgYWwgZmluYWwnIHB1ZWRlIHNlciBt4XMgY29uZnVzby4gbW0KIzogZXhwYW5kLmM6MTI4CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWN1cnNpdmUgdmFyaWFibGUgYCVzJyByZWZlcmVuY2VzIGl0c2VsZiAoZXZlbnR1YWxseSkiCm1zZ3N0ciAiTGEgdmFyaWFibGUgcmVjdXJzaXZhIGAlcycgc2UgYXV0by1yZWZlcmVuY2lhIgoKIyBObyBtZSBndXN0YSBuYWRhICggbG8gc2llbnRvICkKIyC/IFF16SB0YWwgOiBMYSByZWZlcmVuY2lhIGEgdW5hIHZhcmlhYmxlIGVzdOEgc2luIHRlcm1pbmFyIGVtKwojIENyZW8gcXVlIHRpZW5lcyByYXrzbiBsYSB2b3ogcGFzaXZhIGVzIG11eSBkZXNhZ3JhZGFibGUuIG1tLgojOiBleHBhbmQuYzoyNjYKbXNnaWQgInVudGVybWluYXRlZCB2YXJpYWJsZSByZWZlcmVuY2UiCm1zZ3N0ciAibGEgcmVmZXJlbmNpYSBhIGxhIHZhcmlhYmxlIGVzdOEgc2luIHRlcm1pbmFyIgoKIzogZmlsZS5jOjI3MAojLCBjLWZvcm1hdAptc2dpZCAiQ29tbWFuZHMgd2VyZSBzcGVjaWZpZWQgZm9yIGZpbGUgYCVzJyBhdCAlczolbHUsIgptc2dzdHIgIkxhcyBpbnN0cnVjY2lvbmVzIGZ1ZXJvbiBlc3BlY2lmaWNhZGFzIHBhcmEgZWwgYXJjaGl2byBgJXMnIGVuICVzOiVsdSwiCgojIEJ1c2NhbmRvIGVuIGxhcyBsZWdyYXMgaW1wbO1jaXRhcyBlbSsKIyBVdGlsaWPpIHBvciBi+nNxdWVkYSBlbiBwYXJhIGV2aXRhciBlbCBnZXJ1bmRpby4gbW0KIzogZmlsZS5jOjI3NQojLCBjLWZvcm1hdAptc2dpZCAiQ29tbWFuZHMgZm9yIGZpbGUgYCVzJyB3ZXJlIGZvdW5kIGJ5IGltcGxpY2l0IHJ1bGUgc2VhcmNoLCIKbXNnc3RyICIiCiJMYXMgaW5zdHJ1Y2Npb25lcyBwYXJhIGVsIGFyY2hpdm8gYCVzJyBzZSBlbmNvbnRyYXJvbiBwb3IgYvpzcXVlZGEgZW4gcmVnbGFzICIKImltcGztY2l0YXMsIgoKIyAibm93IiBlcyAiYWhvcmEiLiC/dGUgbG8gaGFzIGNvbWlkbyBjb25zY2llbnRlIG8gaW5jb25zY2llbnRlbWVudGU/IHN2CiMgaW5jb25zY2llbnRlbWVudGUuIG1tCiM6IGZpbGUuYzoyNzgKIywgYy1mb3JtYXQKbXNnaWQgImJ1dCBgJXMnIGlzIG5vdyBjb25zaWRlcmVkIHRoZSBzYW1lIGZpbGUgYXMgYCVzJy4iCm1zZ3N0ciAicGVybyBgJXMnIHNlIGNvbnNpZGVyYSBhaG9yYSBjb21vIGVsIG1pc21vIGFyY2hpdm8gcXVlIGAlcycuIgoKIyBMbyByZXBldGly6SB1bmEgeSBtaWwgdmVjZXMuLi4gOi0pCiMgIlRvIGlnbm9yZSIgKm5vKiBlcyBpZ25vcmFyLiBzdgojIFByb3BvbmdvICJubyBzZXLhbiB0ZW5pZGFzIGVuIGN1ZW50YSIgYSBmYWx0YSBkZSBhbGdvIG1lam9yLgojIE9rLiBNaSBuZWNlZGFkIHNvYnJlcGFzYSBlbCBtaWxlbmlvLiBtbQojOiBmaWxlLmM6MjgxCiMsIGMtZm9ybWF0Cm1zZ2lkICJDb21tYW5kcyBmb3IgYCVzJyB3aWxsIGJlIGlnbm9yZWQgaW4gZmF2b3Igb2YgdGhvc2UgZm9yIGAlcycuIgptc2dzdHIgIiIKIkxhcyBpbnN0cnVjY2lvbmVzIHBhcmEgYCVzJyBubyBzZXLhbiB0ZW5pZGFzIGVuIGN1ZW50YSBlbiBmYXZvciBkZSBsYXMgcXVlICIKImVzdOFuIGVuIGAlcycuIgoKIyBNZSBzdWVuYSBxdWUgZXNvIGRlIGNvbG9uIGVzIGFsZ28gYXPtIGNvbW8gcHVudG8sIGRvcyBwdW50b3MgbyBwdW50byB5IGNvbWEuCiMgv1BvZHLtYXMgY29tcHJvYmFybG8/IHN2CiMgRXMgdW4gcHVudG8gc2VuY2lsbG8gKC4pLiBBIHZlciBzaSB0ZSBndXN0YSBtaSBwcm9wdWVzdGEuIG1tCiM6IGZpbGUuYzozMDEKIywgYy1mb3JtYXQKbXNnaWQgImNhbid0IHJlbmFtZSBzaW5nbGUtY29sb24gYCVzJyB0byBkb3VibGUtY29sb24gYCVzJyIKbXNnc3RyICJubyBzZSBwdWVkZSBjYW1iaWFyIHVuIHB1bnRvICguKSBgJXMnIHBvciBkb3MgcHVudG9zICg6KSBgJXMnIgoKIyBMbyBtaXNtby4gc3YKIzogZmlsZS5jOjMwNgojLCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgcmVuYW1lIGRvdWJsZS1jb2xvbiBgJXMnIHRvIHNpbmdsZS1jb2xvbiBgJXMnIgptc2dzdHIgIm5vIHNlIHB1ZWRlbiBjYW1iaWFyIGRvcyBwdW50b3MgKDopIGAlcycgcG9yIHVuIHB1bnRvICguKSBgJXMnIgoKIyBQcm9wb25nbyB1biBjYW1iaW8gZW4gZWwgdGllbXBvIHZlcmJhbDogU2UgYm9ycmEgZWwgYXJjaGl2byB0ZW1wb3JhbC4gc3YKIyBPay4gbW0KIzogZmlsZS5jOjM4MQojLCBjLWZvcm1hdAptc2dpZCAiKioqIERlbGV0aW5nIGludGVybWVkaWF0ZSBmaWxlIGAlcyciCm1zZ3N0ciAiKioqIFNlIGJvcnJhIGVsIGFyY2hpdm8gdGVtcG9yYWwgYCVzJyIKCiMgUHJvcG9uZ28gdW4gY2FtYmlvIGVuIGVsIHRpZW1wbyB2ZXJiYWw6IFNlIGJvcnJhIGVsIGFyY2hpdm8gdGVtcG9yYWwuIHN2CiMgT2suIG1tCiM6IGZpbGUuYzozODUKbXNnaWQgIlJlbW92aW5nIGludGVybWVkaWF0ZSBmaWxlcy4uLlxuIgptc2dzdHIgIioqKiBTZSBib3JyYW4gbG9zIGFyY2hpdm9zIHRlbXBvcmFsZXMuLi5cbiIKCiM6IGZpbGUuYzo3ODEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBUaW1lc3RhbXAgb3V0IG9mIHJhbmdlOyBzdWJzdGl0dXRpbmcgJXMiCm1zZ3N0ciAiJXM6IEZlY2hhIGZ1ZXJhIGRlIGludGVydmFsbzsgc3VzdGl0dXnpbmRvbGEgJXMiCgojOiBmaWxlLmM6NzgyCm1zZ2lkICJDdXJyZW50IHRpbWUiCm1zZ3N0ciAiSG9yYSBhY3R1YWwiCgojOiBmaWxlLmM6ODgxCm1zZ2lkICIjIE5vdCBhIHRhcmdldDoiCm1zZ3N0ciAiIyBObyBlcyB1biBvYmpldGl2bzoiCgojIFBvbmRy7WE6IGVzIHVuYSBkZXBlbmRlbmNpYSBkZSBlbSsKIyBTaSwgdGllbmVzIHJhevNuLiBtbQojOiBmaWxlLmM6OTAzCm1zZ2lkICIjICBQcmVjaW91cyBmaWxlIChwcmVyZXF1aXNpdGUgb2YgLlBSRUNJT1VTKS4iCm1zZ3N0ciAiIyAgQXJjaGl2byB2YWxpb3NvIChlcyB1bmEgZGVwZW5kZW5jaWEgZGUgLlBSRUNJT1VTKS4iCgojIExvIG1pc21vLiBZIHRyYWR1Y2lyIHBvciBmYWxzbyBlcyBwb2NvIG1lbm9zIHF1ZSBwb2NvIGV4YWN0by4KIyBMb3MgcGhvbnkgdGFyZ2V0IGRlIG1ha2Ugc29uIGFxdWVsbG9zIHF1ZSBzZSBlamVjdXRhbiBzaWVtcHJlCiMgc2luIHRlbmVyIGVuIGN1ZW50YSBzaSBleGlzdGUgdW4gYXJjaGl2byBjb24gZWwgbm9tYnJlIGRlbCBvYmpldGl2bwojIHkgZGUgc2kgZXMgYWN0dWFsLiBQcm9wb25kcu1hIGluY29uZGljaW9uYWwgZW4gdmV6IGRlIGZhbHNvLCB5YSBxdWUKIyBleHBsaWNhIGV4YWN0YW1lbnRlIHF16SBlcyB1biBwaG9ueSB0YXJnZXQgZW0rCiMgTm8uIEluY29uZGljaW9uYWwgbm8gZXMgdW5hIHRyYWR1Y2Np824gY29ycmVjdGEuIFF1ZSB0YWwgc2kgYWwgcmF0bwojIHNlIGxlcyBvY3VycmUgaGFjZXIgdW5hIG51ZXZhIGluc3RydWNjafNuIC5JTkNPTkRJVElPTkFMLgojIFNpIHF1aWVyZXMgcG9kcu1hbW9zIHBlbnNhciBlbiBvdHJhIHRyYWR1Y2Np824gY29tbyBzZfF1ZWxvIG8gYWxnbyBhc+0uIG1tCiM6IGZpbGUuYzo5MDUKbXNnaWQgIiMgIFBob255IHRhcmdldCAocHJlcmVxdWlzaXRlIG9mIC5QSE9OWSkuIgptc2dzdHIgIiMgIG9iamV0aXZvIGZhbHNvIChkZXBlbmRlbmNpYSBkZSAuUEhPTlkpLiIKCiMgRlVaWlkKIyBQb25kcmlhIGztbmVhIGRlIGNvbWFuZG9zCiMgWSBjcmVvIHF1ZSBubyBz6SBleGFjdGFtZW50ZSBhIHF1ZSBzZSByZWZpZXJlLCBObyBjcmVvIHF1ZSBoYXlhIHZpc3RvCiMgZXN0ZSBtZW5zYWplIG51bmNhIGVuIG1ha2UgbG8gbWFyY28gY29uIEZVWlpZIGVtKwojIEVzdOFuIHRyYWR1Y2llbmRvIGNvbW1hbmRzIGNvbW8gY29tYW5kb3M/IFNvbiBt4XMgYmllbiBvcmRlbmVzIG8KIyBpbnN0cnVjY2lvbmVzLiBQb3IgbWkgcGFydGUgbm8gaGF5IHByb2JsZW1hLCBpbmNsdXNvIG1lIGd1c3RhIG3hcwojIGNvbWFuZG9zLCBwZXJvIGVzIHVuIGFuZ2xpY2lzbW8uIG1tCiM6IGZpbGUuYzo5MDcKbXNnaWQgIiMgIENvbW1hbmQtbGluZSB0YXJnZXQuIgptc2dzdHIgIiMgIE9iamV0aXZvIGRlIGztbmVhIGRlIGluc3RydWNjaW9uZXMuIgoKIyBIYWJy7WEgcXVlIGVudGVuZGVyIGVzdG8KIyBDcmVvIHF1ZSBlc3RvIGVzIGxvIHF1ZSBzaWduaWZpY2EuIEVsIGZ1ZW50ZSBubyBlcyBkZW1hc2lhZG8gY2xhcm8uIG1tCiMgU2UgcmVmaWVyZSBhIHF1ZSBlbCBmaWNoZXJvIG1ha2VmaWxlIGVzIHVubyBxdWUgZW5jdWVudHJhIHBvcgojIGRlZmVjdG8gKCBlbiBlc3RlIG9yZGVuIEdOVW1ha2VmaWxlLCBNYWtlZmlsZSB5IG1ha2VmaWxlICkgbyB1bm8KIyBxdWUgZXN04SBkZWZpbmlkbyBlbiBsYSB2YXJpYWJsZSBkZSBlbnRvcm5vIE1BS0VGSUxFIGVtKwojIEFz7SBwdWVzIHR1IHRyYWR1Y2Np824gZXMgY29tcGxldGFtZW50ZSBlcXVpdm9jYWRhLCBsbyBzaWVudG8uCiMgUG9uZHLtYTogRmljaGVybyBwb3IgZGVmZWN0byBvIGRlZmluaWRvIGVuIGxhIHZhcmlhYmxlIE1BS0VGSUxFIGVtKwojIENpZXJ0bywgbG8gaGFzIGVudGVuZGlkbyBiaWVuLiBBcnJlZ2xvIGFjb3JkZS4gbW0KIzogZmlsZS5jOjkwOQptc2dpZCAiIyAgQSBkZWZhdWx0LCBNQUtFRklMRVMsIG9yIC1pbmNsdWRlL3NpbmNsdWRlIG1ha2VmaWxlLiIKbXNnc3RyICIjICBQb3Igb21pc2nzbiwgTUFLRUZJTEVTLCBvIC1pbmNsdWRlL3NpbmNsdWRlIG1ha2VmaWxlLiIKCiMgUHJvcG9uZ28gZWZlY3R1YWRhIGVuIGx1Z2FyIGRlIHRlcm1pbmFkYS4gc3YKIyBPay4gRXMgbeFzIGxpdGVyYWwuIG1tCiMgQXRlbmNp824gISAsIGVzIGxhIGL6c3F1ZWRhICdkZSdyZWdsYXMgaW1wbO1jaXRhcyBlbSsKIyBPay4gT2pvLCBkZWJvIHBsdXJhbGl6YXIgcmVnbGEgZSBpbXBs7WNpdGEuIFBsYXRpY2FybG8gY29uIFVscmljaC4gbW0KIzogZmlsZS5jOjkxMQptc2dpZCAiIyAgSW1wbGljaXQgcnVsZSBzZWFyY2ggaGFzIGJlZW4gZG9uZS4iCm1zZ3N0ciAiIyAgTGEgYvpzcXVlZGEgZGUgcmVnbGFzIGltcGztY2l0YXMgaGEgc2lkbyBlZmVjdHVhZGEuIgoKIyBQcm9wb25nbyBlZmVjdHVhZGEgZW4gbHVnYXIgZGUgdGVybWluYWRhLiBzdgojIE9rLiBFcyBt4XMgbGl0ZXJhbC4gbW0KIyBBdGVuY2nzbiAhICwgZXMgbGEgYvpzcXVlZGEgJ2RlJ3JlZ2xhcyBpbXBs7WNpdGFzIGVtKwojIE9rLiBPam8sIGRlYm8gcGx1cmFsaXphciByZWdsYSBlIGltcGztY2l0YS4gUGxhdGljYXJsbyBjb24gVWxyaWNoLiBtbQojOiBmaWxlLmM6OTEyCm1zZ2lkICIjICBJbXBsaWNpdCBydWxlIHNlYXJjaCBoYXMgbm90IGJlZW4gZG9uZS4iCm1zZ3N0ciAiIyAgTGEgYvpzcXVlZGEgZGUgcmVnbGFzIGltcGztY2l0YXMgaGEgc2lkbyBlZmVjdHVhZGEuIgoKIzogZmlsZS5jOjkxNAojLCBjLWZvcm1hdAptc2dpZCAiIyAgSW1wbGljaXQvc3RhdGljIHBhdHRlcm4gc3RlbTogYCVzJ1xuIgptc2dzdHIgIiMgIHJhbWEgZGVsIHBhdHLzbiBpbXBs7WNpdGEvZXN04XRpY2E6IGAlcydcbiIKCiM6IGZpbGUuYzo5MTYKbXNnaWQgIiMgIEZpbGUgaXMgYW4gaW50ZXJtZWRpYXRlIHByZXJlcXVpc2l0ZS4iCm1zZ3N0ciAiIyAgRWwgYXJjaGl2byBlcyB1bmEgZGVwZW5kZW5jaWEgaW50ZXJtZWRpYS4iCgojIFN1Z2VyZW5jaWE6ICJjcmVhIi4gc3YKIyBPay4gQXVucXVlLCB2aWVuZG9sbyBiaWVuLCBxdWUgdGFsICJoYWNlIj8gbW0uCiM6IGZpbGUuYzo5MTkKbXNnaWQgIiMgIEFsc28gbWFrZXM6Igptc2dzdHIgIiMgIFRhbWJp6W4gaGFjZToiCgojIL95ICJjb21wcm9i8yI/IHN2CiMgT2suIE1lam9yYS4gbW0KIyBObyBwb25kcu1hIG51bmNhLCBzaW5vIHNpbXBsZW1lbnRlICdubyBzZSBjb21wcm9i8yAnZW0rCiMgU2ksIGVzIGxvIG1pc21vIHBlcm8gZXMgbeFzIGVzcGHxb2wuIG1tCiM6IGZpbGUuYzo5MjUKbXNnaWQgIiMgIE1vZGlmaWNhdGlvbiB0aW1lIG5ldmVyIGNoZWNrZWQuIgptc2dzdHIgIiMgIExhIGZlY2hhIGRlIG1vZGlmaWNhY2nzbiBubyBzZSBjb21wcm9i8y4iCgojOiBmaWxlLmM6OTI3Cm1zZ2lkICIjICBGaWxlIGRvZXMgbm90IGV4aXN0LiIKbXNnc3RyICIjICBFbCBhcmNoaXZvIG5vIGV4aXN0ZS4iCgojOiBmaWxlLmM6OTI5Cm1zZ2lkICIjICBGaWxlIGlzIHZlcnkgb2xkLiIKbXNnc3RyICIjICBFbCBhcmNoaXZvIGVzIG11eSB2aWVqby4iCgojOiBmaWxlLmM6OTM0CiMsIGMtZm9ybWF0Cm1zZ2lkICIjICBMYXN0IG1vZGlmaWVkICVzXG4iCm1zZ3N0ciAiIyAg2mx0aW1hIG1vZGlmaWNhY2nzbiAlc1xuIgoKIzogZmlsZS5jOjkzNwptc2dpZCAiIyAgRmlsZSBoYXMgYmVlbiB1cGRhdGVkLiIKbXNnc3RyICIjICBFbCBhcmNoaXZvIGhhIHNpZG8gYWN0dWFsaXphZG8uIgoKIzogZmlsZS5jOjkzNwptc2dpZCAiIyAgRmlsZSBoYXMgbm90IGJlZW4gdXBkYXRlZC4iCm1zZ3N0ciAiIyAgRWwgYXJjaGl2byBoYSBzaWRvIGFjdHVhbGl6YWRvLiIKCiM6IGZpbGUuYzo5NDEKbXNnaWQgIiMgIENvbW1hbmRzIGN1cnJlbnRseSBydW5uaW5nIChUSElTIElTIEEgQlVHKS4iCm1zZ3N0ciAiIyAgTGFzIGluc3RydWNjaW9uZXMgc2lndWVuIGVqZWN1dOFuZG9zZSAoRVNUTyBFUyBVTiBCVUcpLiIKCiMgv05vIHNlcu1hIG3hcyBiaWVuICJsYXMgaW5zdHJ1Y2Npb25lcyBkZSBsYXMgZGVwZW5kZW5jaWFzIj8gc3YKIyBTaSwgcXVlIGJhYmFzIHNveS4gQWhvcmEgY29ycmlqby4gbW0KIzogZmlsZS5jOjk0NAptc2dpZCAiIyAgRGVwZW5kZW5jaWVzIGNvbW1hbmRzIHJ1bm5pbmcgKFRISVMgSVMgQSBCVUcpLiIKbXNnc3RyICIiCiIjICBMYXMgaW5zdHJ1Y2Npb25lcyBkZSBsYXMgZGVwZW5kZW5jaWFzIHNpZ3VlbiBlamVjdXThbmRvc2UgKEVTVE8gRVMgVU4gIgoiQlVHKS4iCgojOiBmaWxlLmM6OTUzCm1zZ2lkICIjICBTdWNjZXNzZnVsbHkgdXBkYXRlZC4iCm1zZ3N0ciAiIyAgQWN0dWFsaXphZG8gY29uIOl4aXRvLiIKCiM6IGZpbGUuYzo5NTcKbXNnaWQgIiMgIE5lZWRzIHRvIGJlIHVwZGF0ZWQgKC1xIGlzIHNldCkuIgptc2dzdHIgIiMgIE5lY2VzaXRhIHNlciBhY3R1YWxpemFkbyAobGEgb3BjafNuIC1xIGVzdOEgYWN0aXZhKS4iCgojOiBmaWxlLmM6OTYwCm1zZ2lkICIjICBGYWlsZWQgdG8gYmUgdXBkYXRlZC4iCm1zZ3N0ciAiIyAgRmFsbG8gYWwgc2VyIGFjdHVhbGl6YWRvLiIKCiMgIyMgTGUgaGUgYfFhZGlkbyB1biAioSIgY29uIHR1IHBlcm1pc28uCiMgR3JhY2lhcy4gTm8gbG8gcHVzZSBwb3JxdWUgbm8gc2UgY29tbyBwb25lciBlc2Ugc+1tYm9sbyBjb24gZWwKIyBpc28tYWNjZW50cy1tb2RlIHkgbHVlZ28gc2UgbWUgb2x2aWTzLiBQb3IgY2llcnRvLCBjb21vIHNlIGhhY2U/CiMgdGFtYmnpbiB0ZW5nbyBkdWRhIGRlIGxhIGludGVycm9nYWNp824gYWJpZXJ0YS4KIzogZmlsZS5jOjk2Mwptc2dpZCAiIyAgSW52YWxpZCB2YWx1ZSBpbiBgdXBkYXRlX3N0YXR1cycgbWVtYmVyISIKbXNnc3RyICIjICChVmFsb3IgaW524WxpZG8gZW4gZWwgbWllbWJybyBgdXBkYXRlX3N0YXR1cychIgoKIyAjIyBMbyBtaXNtby4KIzogZmlsZS5jOjk3MAptc2dpZCAiIyAgSW52YWxpZCB2YWx1ZSBpbiBgY29tbWFuZF9zdGF0ZScgbWVtYmVyISIKbXNnc3RyICIjICChVmFsb3IgaW524WxpZG8gZW4gZWwgbWllbWJybyBgY29tbWFuZF9zdGF0ZSchIgoKIzogZmlsZS5jOjk4OQptc2dpZCAiIgoiXG4iCiIjIEZpbGVzIgptc2dzdHIgIiIKIlxuIgoiIyBBcmNoaXZvcyIKCiM6IGZpbGUuYzo5OTMKbXNnaWQgIiIKIlxuIgoiIyBmaWxlcyBoYXNoLXRhYmxlIHN0YXRzOlxuIgoiIyAiCm1zZ3N0ciAiIgoiXG4iCiIjIGVzdGFk7XN0aWNhcyBkZSBsYSB0YWJsYSBkZSBoYXNoIGRlIGxvcyBhcmNoaXZvczpcbiIKIiMgIgoKIzogZnVuY3Rpb24uYzo3NTkKbXNnaWQgIm5vbi1udW1lcmljIGZpcnN0IGFyZ3VtZW50IHRvIGB3b3JkJyBmdW5jdGlvbiIKbXNnc3RyICJlbCBwcmltZXIgYXJndW1lbnRvIGRlIGxhIGZ1bmNp824gYHdvcmQnIG5vIGVzIG51belyaWNvIgoKIzogZnVuY3Rpb24uYzo3NjQKbXNnaWQgImZpcnN0IGFyZ3VtZW50IHRvIGB3b3JkJyBmdW5jdGlvbiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIgptc2dzdHIgImVsIHByaW1lciBhcmd1bWVudG8gZGUgbGEgZnVuY2nzbiBgd29yZCcgZGViZSBzZXIgbWF5b3IgYSAwIgoKIzogZnVuY3Rpb24uYzo3ODUKbXNnaWQgIm5vbi1udW1lcmljIGZpcnN0IGFyZ3VtZW50IHRvIGB3b3JkbGlzdCcgZnVuY3Rpb24iCm1zZ3N0ciAiZWwgcHJpbWVyIGFyZ3VtZW50byBkZSBsYSBmdW5jafNuIGB3b3JkbGlzdCcgbm8gZXMgbnVt6XJpY28iCgojOiBmdW5jdGlvbi5jOjc4Nwptc2dpZCAibm9uLW51bWVyaWMgc2Vjb25kIGFyZ3VtZW50IHRvIGB3b3JkbGlzdCcgZnVuY3Rpb24iCm1zZ3N0ciAiZWwgcHJpbWVyIGFyZ3VtZW50byBkZSBsYSBmdW5jafNuIGB3b3JkbGlzdCcgbm8gZXMgbnVt6XJpY28iCgojOiBmdW5jdGlvbi5jOjE0NTMKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjcmVhdGVfY2hpbGRfcHJvY2VzczogRHVwbGljYXRlSGFuZGxlKEluKSBmYWlsZWQgKGU9JWxkKVxuIgptc2dzdHIgImNyZWF0ZV9jaGlsZF9wcm9jZXNzOiBmYWxsbyBlbiBEdXBsaWNhdGVIYW5kbGUoSW4pLCAoZT0lZClcbiIKCiM6IGZ1bmN0aW9uLmM6MTQ2NAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNyZWF0ZV9jaGlsZF9wcm9jZXNzOiBEdXBsaWNhdGVIYW5kbGUoRXJyKSBmYWlsZWQgKGU9JWxkKVxuIgptc2dzdHIgImNyZWF0ZV9jaGlsZF9wcm9jZXNzOiBmYWxsbyBlbiBEdXBsaWNhdGVIYW5kbGUoRXJyKSwgKGU9JWQpXG4iCgojOiBmdW5jdGlvbi5jOjE0NjkKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJDcmVhdGVQaXBlKCkgZmFpbGVkIChlPSVsZClcbiIKbXNnc3RyICJGYWxsbyBlbiBDcmVhdGVQaXBlKCksIChlPSVkKVxuIgoKIzogZnVuY3Rpb24uYzoxNDc0Cm1zZ2lkICJ3aW5kb3dzMzJfb3BlbnBpcGUgKCk6IHByb2Nlc3NfaW5pdF9mZCgpIGZhaWxlZFxuIgptc2dzdHIgIndpbmRvd3MzMl9vcGVucGlwZSAoKTogZmFsbG8gZW4gcHJvY2Vzc19pbml0X2ZkKClcbiIKCiM6IGZ1bmN0aW9uLmM6MTcyNQojLCBjLWZvcm1hdAptc2dpZCAiQ2xlYW5pbmcgdXAgdGVtcG9yYXJ5IGJhdGNoIGZpbGUgJXNcbiIKbXNnc3RyICJMaW1waWFuZG8gZWwgYXJjaGl2byB0ZW1wb3JhbCAlc1xuIgoKIzogZnVuY3Rpb24uYzoyMTAxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW5zdWZmaWNpZW50IG51bWJlciBvZiBhcmd1bWVudHMgKCVkKSB0byBmdW5jdGlvbiBgJXMnIgptc2dzdHIgIk76bWVybyBkZSBhcmd1bWVudG9zICglZCkgaW5zdWZpY2llbnRlcyBwYXJhIGxhIGZ1bmNp824gYCVzJyIKCiM6IGZ1bmN0aW9uLmM6MjExMwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVuaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybTogZnVuY3Rpb24gYCVzJyIKbXNnc3RyICJObyBpbXBsZW1lbnRhZG8gZW4gZXN0YSBwbGF0YWZvcm1hOiBmdW5jafNuIGAlcyciCgojOiBmdW5jdGlvbi5jOjIxNjMKIywgYy1mb3JtYXQKbXNnaWQgInVudGVybWluYXRlZCBjYWxsIHRvIGZ1bmN0aW9uIGAlcyc6IG1pc3NpbmcgYCVjJyIKbXNnc3RyICJsYSBsbGFtYWRhIGEgbGEgZnVuY2nzbiBgJXMnIG5vIGNvbmNsdXnzOiBmYWx0YSBgJWMnIgoKIzogZ2V0b3B0LmM6NjYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlcycgaXMgYW1iaWd1b3VzXG4iCm1zZ3N0ciAiJXM6IGxhIG9wY2nzbiBgJXMnIGVzIGFtYmlndWFcbiIKCiMgTm8gYWRtaXRlIG5pbmf6biBhcmd1bWVudG8uIHN2CiMgT2suIFkgdnVlbHZlIGxhIGJ1cnJhIGFsIHRyaWdvLiBtbQojOiBnZXRvcHQuYzo2ODcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYC0tJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAtLSVzJyBubyBhZG1pdGUgbmluZ/puIGFyZ3VtZW50b1xuIgoKIyBMbyBtaXNtby4gc3YKIyBPay4gbW0KIzogZ2V0b3B0LmM6NjkyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlYyVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IGxhIG9wY2nzbiBgJWMlcycgbm8gYWRtaXRlIG5pbmf6biBhcmd1bWVudG9cbiIKCiM6IGdldG9wdC5jOjcwOSBnZXRvcHQuYzo4ODIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYCVzJyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBsYSBvcGNp824gYCVzJyByZXF1aWVyZSB1biBhcmd1bWVudG9cbiIKCiM6IGdldG9wdC5jOjczOAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gYC0tJXMnXG4iCm1zZ3N0ciAiJXM6IG9wY2nzbiBubyByZWNvbm9jaWRhIGAtLSVzJ1xuIgoKIzogZ2V0b3B0LmM6NzQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgJWMlcydcbiIKbXNnc3RyICIlczogb3BjafNuIG5vIHJlY29ub2NpZGEgYCVjJXMnXG4iCgojOiBnZXRvcHQuYzo3NjgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgptc2dzdHIgIiVzOiBvcGNp824gaW524WxpZGEgLS0gJWNcbiIKCiM6IGdldG9wdC5jOjc3MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIC0tICVjXG4iCm1zZ3N0ciAiJXM6IG9wY2nzbiBpbnbhbGlkYSAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODAxIGdldG9wdC5jOjkzMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlY1xuIgptc2dzdHIgIiVzOiBsYSBvcGNp824gcmVxdWllcmUgdW4gYXJndW1lbnRvIC0tICVjXG4iCgojOiBnZXRvcHQuYzo4NDgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBpcyBhbWJpZ3VvdXNcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAtVyAlcycgZXMgYW1iaWd1YVxuIgoKIyBObyBhZG1pdGUgbmluZ/puIGFyZ3VtZW50by4gc3YKIyBPay4gWSB2dWVsdmUgbGEgYnVycmEgYWwgdHJpZ28uIG1tCiM6IGdldG9wdC5jOjg2NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgLVcgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKbXNnc3RyICIlczogbGEgb3BjafNuIGAtVyAlcycgbm8gYWRtaXRlIG5pbmf6biBhcmd1bWVudG9cbiIKCiM6IGhhc2guYzo1MQojLCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgYWxsb2NhdGUgJWxkIGJ5dGVzIGZvciBoYXNoIHRhYmxlOiBtZW1vcnkgZXhoYXVzdGVkIgptc2dzdHIgIm5vIHNlIHB1ZWRlbiByZXNlcnZhciAlbGQgYnl0ZXMgcGFyYSBsYSB0YWJsYSBkZSBoYXNoOiBtZW1vcmlhIGFnb3RhZGEiCgojOiBoYXNoLmM6MjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICJMb2FkPSVsZC8lbGQ9JS4wZiUlLCAiCm1zZ3N0ciAiQ2FyZ2E9JWxkLyVsZD0lLjBmJSUsICIKCiM6IGhhc2guYzoyODQKIywgYy1mb3JtYXQKbXNnaWQgIlJlaGFzaD0lZCwgIgptc2dzdHIgIlJlaGFzaD0lZCwgIgoKIzogaGFzaC5jOjI4NQojLCBjLWZvcm1hdAptc2dpZCAiQ29sbGlzaW9ucz0lbGQvJWxkPSUuMGYlJSIKbXNnc3RyICJDb2xpc2lvbmVzPSVsZC8lbGQ9JS4wZiUlIgoKIyBZIG5vIHNlcu1hIG1lam9yICJCdXNjYW5kbyB1bmEgcmVnbGEgaW1wbO1jaXRhIC4uLiIKIyBUZW4gZW4gY3VlbnRhIHF1ZSBlc3RlIG1lbnNhamUgbm8gcGFyZWNlIHVuIG1lbnNhamUgZGUgZXJyb3IsIHNpbm8gbeFzCiMgZGUgImRlYnVnIiBvIGRlICJ2ZXJib3NlIi4gc3YKIyBDaWVydG8uIG1tCiM6IGltcGxpY2l0LmM6NDEKIywgYy1mb3JtYXQKbXNnaWQgIkxvb2tpbmcgZm9yIGFuIGltcGxpY2l0IHJ1bGUgZm9yIGAlcycuXG4iCm1zZ3N0ciAiQnVzY2FuZG8gdW5hIHJlZ2xhIGltcGztY2l0YSBwYXJhIGAlcycuXG4iCgojIExvIG1pc21vLgojIEJ1c2NhbmRvIHVuYSByZWdsYSBpbXBs7XRpdGEgcGFyYSBlbCBtaWVtYnJvIGRlbCBhcmNoaXZvICBgJXMnIGVtKwojIFNlIG1lIHJlc2JhbPMuIG1tCiM6IGltcGxpY2l0LmM6NTcKIywgYy1mb3JtYXQKbXNnaWQgIkxvb2tpbmcgZm9yIGFyY2hpdmUtbWVtYmVyIGltcGxpY2l0IHJ1bGUgZm9yIGAlcycuXG4iCm1zZ3N0ciAiQnVzY2FuZG8gdW5hIHJlZ2xhIGltcGztY2l0YSBwYXJhIGVsIG1pZW1icm8gZGVsIGFyY2hpdm8gYCVzJy5cbiIKCiMgUHVlcyBzaSBpbGVnYWwgbGUgc3VlbmEgYSBj4XJjZWwgYSBFbnJpcXVlLCAiZXZhZGUiIG1lIHN1ZW5hIGEgbe0gYQojIGVzY2FwYXJzZSBkZSBsYSBj4XJjZWwuLi4gKGZ1Z2EgZGUgYWxjYXRyYXogOi0pCiMgdGUgdm95IGEgZGFyIHlvIGEgdO0gZnVnYSAuLi4gZW0rCiMgv1F16SB0ZSBwYXJlY2Vy7WEgInNlIGV2aXRhIj8gc3YKIyBNZSBndXN0YSBldmFkZSwgcGVybyBldml0YSBlcyBjb3JyZWN0by4gQWNlcHRvIHR1IHN1Z2VyZW5jaWEuIG1tCiMgTm8gbWUgZ3VzdGEgc2UgZXZpdGEsIHBvbmRy7WEgZXZpdGFuZG8gZW0rCiMgT2suIFBlcm8gYSBtaSBwYXJhbm9pYSBkZSBldml0YXIgZ2VydW5kaW9zIGTzbmRlIGxhIGRlamFzPyBtbQojOiBpbXBsaWNpdC5jOjMxOQptc2dpZCAiQXZvaWRpbmcgaW1wbGljaXQgcnVsZSByZWN1cnNpb24uXG4iCm1zZ3N0ciAiRXZpdGFuZG8gbGEgcmVjdXJzafNuIGVuIGxhIHJlZ2xhIGltcGztY2l0YS5cbiIKCiMgRlVaWlkKIyBFc3RvIG1lIHN1ZW5hIGZhdGFsLiBTZSBhIHF1ZSBzZSByZWZpZXJlLCBwb3JxdWUgbG8KIyBoZSB2aXN0bywgcGVybyBlbiBjcmlzdGlhbm8gbm8gc2Ugc2kgcG9kcu1hIGVudGVuZGVybG8uCiMgc2UgcmVmaWVyZSBhIGxhcyByZWdsYXMgZGVsIHRpcG8gJSAsIGxvIHBvbmdvIEZVWlpZICwgdGVuZHLpCiMgcXVlIHBlbnNhciB1biBwb2NvIGVuIGVsbG8gZW0rCiMgRGUgbW9tZW50byBjYW1iaW8gbGEgcmVnbGEgcGF0cm9uIHBvciB1bmEgcmVnbGEgZGUgcGF0cm9uICwgeQojIHBvbmRy7WEgYSB0b2RhIGNvc3RhIGdlcnVuZGlvICggaW50ZW50YW5kbyApIGVtKwojIE9rIGNvbiBlbCBnZXJ1bmRpby4gUGVybyB0YW1iaeluIHRlbmdvIHF1ZSBtZWRpdGFybG8uIG1tCiM6IGltcGxpY2l0LmM6NDc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJUcnlpbmcgcGF0dGVybiBydWxlIHdpdGggc3RlbSBgJS4qcycuXG4iCm1zZ3N0ciAiSW50ZW50YW5kbyB1bmEgcmVnbGEgZGUgcGF0cvNuIGNvbiBsYSByYW1pZmljYWNp824gYCUuKnMnLlxuIgoKIyAjIyBDb3JyaWpvIGxhIHBhbGFicmEgImRlcGVuZGVuY2lhIi4gc3YKIyBDdWFuZG8gYXBhcmV6Y2EgZXN0ZSBtZW5zYWplIHRlbmRy4SBwb2NvIG1lbm9zIHF1ZSBzZW50aWRvCiMgdGVzdGltb25pYWwuIERhdGUgY3VlbnRhIHF1ZSBsb3MgYXJndW1lbnRvcyBlc3RhbiBjYW1iaWFkb3MuCiMgUG9uIGVsIG9yZGVuIGNvcnJlY3RvLCBzaWVtcHJlIHNlcuEgbeFzIGzzZ2ljbyBxdWUgbG8gcXVlIHZheWEgYQojIGFwYXJlY2VyIHRhbCB5IGNvbW8gZXN04SBhaG9yYSAoU2UgcmVjaGF6YSBsYSBkZXBlbmRlbmNpYSBpbXBvc2libGUKIyAgYCVzJyBgJXMgKSdlbSsKIyBPay4gbW0KIzogaW1wbGljaXQuYzo2NjcKIywgYy1mb3JtYXQKbXNnaWQgIlJlamVjdGluZyBpbXBvc3NpYmxlIGltcGxpY2l0IHByZXJlcXVpc2l0ZSBgJXMnLlxuIgptc2dzdHIgIlNlIHJlY2hhemEgbGEgZGVwZW5kZW5jaWEgaW1wb3NpYmxlIGAlcycuXG4iCgojICMjIENvcnJpam8gbGEgcGFsYWJyYSAiZGVwZW5kZW5jaWEiLiBzdgojIEN1YW5kbyBhcGFyZXpjYSBlc3RlIG1lbnNhamUgdGVuZHLhIHBvY28gbWVub3MgcXVlIHNlbnRpZG8KIyB0ZXN0aW1vbmlhbC4gRGF0ZSBjdWVudGEgcXVlIGxvcyBhcmd1bWVudG9zIGVzdGFuIGNhbWJpYWRvcy4KIyBQb24gZWwgb3JkZW4gY29ycmVjdG8sIHNpZW1wcmUgc2Vy4SBt4XMgbPNnaWNvIHF1ZSBsbyBxdWUgdmF5YSBhCiMgYXBhcmVjZXIgdGFsIHkgY29tbyBlc3ThIGFob3JhIChTZSByZWNoYXphIGxhIGRlcGVuZGVuY2lhIGltcG9zaWJsZQojICBgJXMnIGAlcyApJ2VtKwojIE9rLiBtbQojOiBpbXBsaWNpdC5jOjY2OAojLCBjLWZvcm1hdAptc2dpZCAiUmVqZWN0aW5nIGltcG9zc2libGUgcnVsZSBwcmVyZXF1aXNpdGUgYCVzJy5cbiIKbXNnc3RyICJTZSByZWNoYXphIGxhIHJlZ2xhIGRlIGRlcGVuZGVuY2lhIGltcG9zaWJsZSBgJXMnLlxuIgoKIyBQdWVzIHNpIGlsZWdhbCBsZSBzdWVuYSBhIGPhcmNlbCBhIEVucmlxdWUsICJldmFkZSIgbWUgc3VlbmEgYSBt7SBhCiMgZXNjYXBhcnNlIGRlIGxhIGPhcmNlbC4uLiAoZnVnYSBkZSBhbGNhdHJheiA6LSkKIyB0ZSB2b3kgYSBkYXIgeW8gYSB07SBmdWdhIC4uLiBlbSsKIyC/UXXpIHRlIHBhcmVjZXLtYSAic2UgZXZpdGEiPyBzdgojIE1lIGd1c3RhIGV2YWRlLCBwZXJvIGV2aXRhIGVzIGNvcnJlY3RvLiBBY2VwdG8gdHUgc3VnZXJlbmNpYS4gbW0KIyBObyBtZSBndXN0YSBzZSBldml0YSwgcG9uZHLtYSBldml0YW5kbyBlbSsKIyBPay4gUGVybyBhIG1pIHBhcmFub2lhIGRlIGV2aXRhciBnZXJ1bmRpb3MgZPNuZGUgbGEgZGVqYXM/IG1tCiM6IGltcGxpY2l0LmM6Njc4CiMsIGMtZm9ybWF0Cm1zZ2lkICJUcnlpbmcgaW1wbGljaXQgcHJlcmVxdWlzaXRlIGAlcycuXG4iCm1zZ3N0ciAiUHJvYmFuZG8gbGEgZGVwZW5kZW5jaWEgaW1wbO1jaXRhIGAlcycuXG4iCgojIEZVWlpZCiMgRXN0byBtZSBzdWVuYSBmYXRhbC4gU2UgYSBxdWUgc2UgcmVmaWVyZSwgcG9ycXVlIGxvCiMgaGUgdmlzdG8sIHBlcm8gZW4gY3Jpc3RpYW5vIG5vIHNlIHNpIHBvZHLtYSBlbnRlbmRlcmxvLgojIHNlIHJlZmllcmUgYSBsYXMgcmVnbGFzIGRlbCB0aXBvICUgLCBsbyBwb25nbyBGVVpaWSAsIHRlbmRy6QojIHF1ZSBwZW5zYXIgdW4gcG9jbyBlbiBlbGxvIGVtKwojIERlIG1vbWVudG8gY2FtYmlvIGxhIHJlZ2xhIHBhdHJvbiBwb3IgdW5hIHJlZ2xhIGRlIHBhdHJvbiAsIHkKIyBwb25kcu1hIGEgdG9kYSBjb3N0YSBnZXJ1bmRpbyAoIGludGVudGFuZG8gKSBlbSsKIyBPayBjb24gZWwgZ2VydW5kaW8uIFBlcm8gdGFtYmnpbiB0ZW5nbyBxdWUgbWVkaXRhcmxvLiBtbQojOiBpbXBsaWNpdC5jOjY3OQojLCBjLWZvcm1hdAptc2dpZCAiVHJ5aW5nIHJ1bGUgcHJlcmVxdWlzaXRlIGAlcycuXG4iCm1zZ3N0ciAiSW50ZW50YW5kbyBsYSByZWdsYSBkZSBkZXBlbmRlbmNpYSBgJXMnLlxuIgoKIzogaW1wbGljaXQuYzo3MTAKIywgYy1mb3JtYXQKbXNnaWQgIkZvdW5kIHByZXJlcXVpc2l0ZSBgJXMnIGFzIFZQQVRIIGAlcydcbiIKbXNnc3RyICJTZSBlbmNvbnRy8yBsYSBkZXBlbmRlbmNpYSBgJXMnIGNvbW8gbGEgVlBBVEggYCVzJy5cbiIKCiM6IGltcGxpY2l0LmM6NzMwCiMsIGMtZm9ybWF0Cm1zZ2lkICJMb29raW5nIGZvciBhIHJ1bGUgd2l0aCBpbnRlcm1lZGlhdGUgZmlsZSBgJXMnLlxuIgptc2dzdHIgIlNlIGJ1c2NhIHVuYSByZWdsYSBjb24gZWwgYXJjaGl2byBpbnRlcm1lZGlvIGAlcycuXG4iCgojOiBqb2IuYzozMjEKbXNnaWQgIkNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZVxuIgptc2dzdHIgIk5vIHNlIHB1ZWRlIGNyZWFyIHVuIGFyY2hpdm8gdGVtcG9yYWxcbiIKCiMgTG8gbWlzbW8uIHN2CiM6IGpvYi5jOjM4OAojLCBjLWZvcm1hdAptc2dpZCAiKioqIFslc10gRXJyb3IgMHgleCAoaWdub3JlZCkiCm1zZ3N0ciAiKioqIFslc10gRXJyb3IgMHgleCAobm8gdGllbmUgZWZlY3RvKSIKCiM6IGpvYi5jOjM4OQojLCBjLWZvcm1hdAptc2dpZCAiKioqIFslc10gRXJyb3IgMHgleCIKbXNnc3RyICIqKiogWyVzXSBFcnJvciAweCV4IgoKIyBMbyBtaXNtby4gc3YKIzogam9iLmM6MzkzCiMsIGMtZm9ybWF0Cm1zZ2lkICJbJXNdIEVycm9yICVkIChpZ25vcmVkKSIKbXNnc3RyICJbJXNdIEVycm9yICVkIChubyB0aWVuZSBlZmVjdG8pIgoKIzogam9iLmM6Mzk0CiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogWyVzXSBFcnJvciAlZCIKbXNnc3RyICIqKiogWyVzXSBFcnJvciAlZCIKCiMgU3VnZXJlbmNpYTogIiAodm9sY2FkbyBkZSBgY29yZScpIi4gc3YKIyB2b2xjYWRvIGRlIGBjb3JlJyBubyBzaWduaWZpY2EgbmFkYSwgcXVlIHRlIHBhcmVjZSBzaSBtZWpvciBkZWphbW9zCiMgZWwgY29yZSBkdW1wZWQsIG8gYmllbiB2b2xjYWRvIGRlbCBu+mNsZW8gbyBhbGdvIGFz7S4gUG9yIGVsIG1vbWVudG8KIyBubyBjYW1iaW8gbmFkYS4gbW0KIzogam9iLmM6Mzk5Cm1zZ2lkICIgKGNvcmUgZHVtcGVkKSIKbXNnc3RyICIgKGNvcmUgZHVtcGVkKSBbTvpjbGVvIHZhY2lhZG8gYSB1biBhcmNoaXZvXSIKCiMgv1kgam9iIC0+IHRyYWJham9zPyBzdgojIFNpLCBwZXJvIG5vIGhhYmxhcyBkZSB1bmEgY29tcHV0YWRvcmEgbXVsdGktdHJhYmFqb3Mgc2lubyBtdWx0aS10YXJlYXMuCiMgUG9yIGVzbyBlbGVn7SB0YXJlYXMuIExvIHBsYXRpY2Ftb3MgY29uIG3hcyBjYWxtYT8gbW0KIzogam9iLmM6NDg4Cm1zZ2lkICIqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLiIKbXNnc3RyICIqKiogU2UgZXNwZXJhIGEgcXVlIHRlcm1pbmVuIG90cmFzIHRhcmVhcy4uLi4iCgojIL9EZSB2ZXJkYWQgc2UgZGljZSAidml2byI/IFNpIGVzIHVuIHByb2Nlc28sIHNlIG1lIG9jdXJyZSAiYWN0aXZvIi4gc3YKIyBNZSBndXN0YSBsbyBkZSBhY3Rpdm8uIG1tCiM6IGpvYi5jOjUxOAojLCBjLWZvcm1hdAptc2dpZCAiTGl2ZSBjaGlsZCAweCUwOGx4ICglcykgUElEICVsZCAlc1xuIgptc2dzdHIgIkhpam8gYWN0aXZvIDB4JTA4bHggKCVzKSBQSUQgJWxkICVzXG4iCgojOiBqb2IuYzo1MjAgam9iLmM6NzAxIGpvYi5jOjgwNCBqb2IuYzoxNDU3Cm1zZ2lkICIgKHJlbW90ZSkiCm1zZ3N0ciAiIChyZW1vdG8pIgoKIyBMbyBtaXNtbywgcG9uIFByb2Nlc28gaGlqbywgeSBxdWl0YSBsbyBxdWUgaGF5CiMgZW50cmUgcGFy6W50ZXNpcyBlbSsKIzogam9iLmM6Njk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWFwaW5nIGxvc2luZyBjaGlsZCAweCUwOGx4IFBJRCAlbGQgJXNcbiIKbXNnc3RyICJTZSBwaWVyZGUgYWwgcHJvY2VzbyBoaWpvIGRlc2NhcnJpYWRvIDB4JTA4bHggUElEICVsZCAlc1xuIgoKIyBMbyBtaXNtbywgcG9uIFByb2Nlc28gaGlqbywgeSBxdWl0YSBsbyBxdWUgaGF5CiMgZW50cmUgcGFy6W50ZXNpcyBlbSsKIzogam9iLmM6Njk5CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWFwaW5nIHdpbm5pbmcgY2hpbGQgMHglMDhseCBQSUQgJWxkICVzXG4iCm1zZ3N0ciAiU2UgZ2FuYSBhbCBwcm9jZXNvIGhpam8gZGVzY2FycmlhZG8gMHglMDhseCBQSUQgJWxkICVzXG4iCgojIEdpdmUgdXAgbm8gZXMgZW5mb2NhciwgZXMgYWJhbmRvbmFyLCBvIGRlc2lzdGlyIGVtKwojIFNpLCBtZXTtIGxhIHBhdGEuIG1tCiM6IGpvYi5jOjcwNAojLCBjLWZvcm1hdAptc2dpZCAiQ2xlYW5pbmcgdXAgdGVtcCBiYXRjaCBmaWxlICVzXG4iCm1zZ3N0ciAiU2UgbGltcGlhIGVsIGFyY2hpdm8gdGVtcG9yYWwgJXNcbiIKCiMgUHJvY2VzbyBoaWpvIGVtKwojIE9rLgojOiBqb2IuYzo4MDIKIywgYy1mb3JtYXQKbXNnaWQgIlJlbW92aW5nIGNoaWxkIDB4JTA4bHggUElEICVsZCVzIGZyb20gY2hhaW4uXG4iCm1zZ3N0ciAiU2UgZWxpbWluYSBhbCBwcm9jZXNvIGhpam8gMHglMDhseCBQSUQgJWxkJXMgZGUgbGEgY2FkZW5hLlxuIgoKIzogam9iLmM6ODYyCm1zZ2lkICJ3cml0ZSBqb2JzZXJ2ZXIiCm1zZ3N0ciAiZXNjcmliaXIgZW4gZWwgc2Vydmlkb3IgZGUgdGFyZWFzIgoKIyBMbyBtaXNtbywgcG9uIFByb2Nlc28gaGlqbywgeSBxdWl0YSBsbyBxdWUgaGF5CiMgZW50cmUgcGFy6W50ZXNpcyBlbSsKIzogam9iLmM6ODY0CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWxlYXNlZCB0b2tlbiBmb3IgY2hpbGQgMHglMDhseCAoJXMpLlxuIgptc2dzdHIgIlNlIGxpYmVyYSBlbCB0b2tlbiBwYXJhIGVsIHByb2Nlc28gaGlqbyAweCUwOGx4ICglcykuXG4iCgojOiBqb2IuYzoxMzgzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAicHJvY2Vzc19lYXN5KCkgZmFpbGVkIHRvIGxhdW5jaCBwcm9jZXNzIChlPSVsZClcbiIKbXNnc3RyICJmYWxsbyBlbiBwcm9jZXNzX2Vhc3koKSBhbCBsYW56YXIgZWwgcHJvY2VzbyAoZT0lZClcbiIKCiM6IGpvYi5jOjEzODcgam9iLmM6MjAyMAojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJDb3VudGVkICVkIGFyZ3MgaW4gZmFpbGVkIGxhdW5jaFxuIgptc2dzdHIgIiIKIlxuIgoiU2UgY29udGFyb24gJWQgYXJndW1lbnRvcyBlbiBlbCBsYW56YW1pZW50byBmYWxsaWRvXG4iCgojIFByb2Nlc28gaGlqbyBlbSsKIyBPay4KIzogam9iLmM6MTQ1NQojLCBjLWZvcm1hdAptc2dpZCAiUHV0dGluZyBjaGlsZCAweCUwOGx4ICglcykgUElEICVsZCVzIG9uIHRoZSBjaGFpbi5cbiIKbXNnc3RyICJTZSBwb25lIGFsIHByb2Nlc28gaGlqbyAweCUwOGx4ICglcykgUElEICVsZCVzIGVuIGxhIGNhZGVuYS5cbiIKCiMgTG8gbWlzbW8sIHBvbiBQcm9jZXNvIGhpam8sIHkgcXVpdGEgbG8gcXVlIGhheQojIGVudHJlIHBhculudGVzaXMgZW0rCiM6IGpvYi5jOjE3MDkKIywgYy1mb3JtYXQKbXNnaWQgIk9idGFpbmVkIHRva2VuIGZvciBjaGlsZCAweCUwOGx4ICglcykuXG4iCm1zZ3N0ciAiU2Ugb2J0aWVuZSBlbCB0b2tlbiBwYXJhIGVsIHByb2Nlc28gaGlqbyAweCUwOGx4ICglcykuXG4iCgojOiBqb2IuYzoxNzE4Cm1zZ2lkICJyZWFkIGpvYnMgcGlwZSIKbXNnc3RyICJ0dWJlcu1hIGRlIHRyYWJham9zIGxl7WRvcyIKCiM6IGpvYi5jOjE4MzIKbXNnaWQgImNhbm5vdCBlbmZvcmNlIGxvYWQgbGltaXRzIG9uIHRoaXMgb3BlcmF0aW5nIHN5c3RlbSIKbXNnc3RyICJubyBzZSBwdWVkZW4gZm9yemFyIGxvcyBs7W1pdGVzIGRlIGNhcmdhIGVuIGVzdGUgc2lzdGVtYSBvcGVyYXRpdm8iCgojOiBqb2IuYzoxODM0Cm1zZ2lkICJjYW5ub3QgZW5mb3JjZSBsb2FkIGxpbWl0OiAiCm1zZ3N0ciAibm8gc2UgcHVlZGUgZm9yemFyIGxhIGNhcmdhIGztbWl0ZTogIgoKIzogam9iLmM6MTkwNwptc2dpZCAibm8gbW9yZSBmaWxlIGhhbmRsZXM6IGNvdWxkIG5vdCBkdXBsaWNhdGUgc3RkaW5cbiIKbXNnc3RyICJubyBoYXkgbeFzIG1hbmVqYWRvcmVzIGRlIGFyY2hpdm9zOiBubyBzZSBwdWVkZSBkdXBsaWNhciBzdGRpblxuIgoKIzogam9iLmM6MTkwOQptc2dpZCAibm8gbW9yZSBmaWxlIGhhbmRsZXM6IGNvdWxkIG5vdCBkdXBsaWNhdGUgc3Rkb3V0XG4iCm1zZ3N0ciAibm8gaGF5IG3hcyBtYW5lamFkb3JlcyBkZSBhcmNoaXZvczogbm8gc2UgcHVlZGUgZHVwbGljYXIgc3Rkb3V0XG4iCgojOiBqb2IuYzoxOTM3Cm1zZ2lkICJDb3VsZCBub3QgcmVzdG9yZSBzdGRpblxuIgptc2dzdHIgIk5vIHNlIHB1ZWRlIHJlc3RhdXJhciBzdGRpblxuIgoKIzogam9iLmM6MTk0NQptc2dpZCAiQ291bGQgbm90IHJlc3RvcmUgc3Rkb3V0XG4iCm1zZ3N0ciAiTm8gc2UgcHVlZGUgcmVzdGF1cmFyIHN0ZG91dFxuIgoKIzogam9iLmM6MjAxNgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInByb2Nlc3NfZWFzeSgpIGZhaWxlZCBmYWlsZWQgdG8gbGF1bmNoIHByb2Nlc3MgKGU9JWxkKVxuIgptc2dzdHIgImZhbGxvIGVuIHByb2Nlc3NfZWFzeSgpIGFsIGxhbnphciBlbCBwcm9jZXNvIChlPSVkKVxuIgoKIzogam9iLmM6MjA0NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIm1ha2UgcmVhcGVkIGNoaWxkIHBpZCAlbGQsIHN0aWxsIHdhaXRpbmcgZm9yIHBpZCAlbGRcbiIKbXNnc3RyICJoYWNlciB1biBoaWpvIGRlc2NhcnJpYWRvICVkLCBh+m4gZXNwZXJhbmRvIGVsIHBpZCAlZFxuIgoKIzogam9iLmM6MjA4NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IENvbW1hbmQgbm90IGZvdW5kIgptc2dzdHIgIiVzOiBObyBzZSBlbmNvbnRy8yBlbCBwcm9ncmFtYSIKCiMgv1kgImVsIHByb2dyYW1hIFNoZWxsIj8gKGEgc2VjYXMpIHN2CiMgU2kuIFN1ZW5hIG11Y2hvIG1lam9yLiBtbQojIFN1ZW5hLCBwZXJvIG5vIGVzIG1lam9yLiBUYWwgeSBjb21vIGVzdGEgZXNjcml0bywgaW5jbHVzbwojIHlvIHBlbnNhcmlhIHF1ZSBtZSBmYWx0YSB1biBwcm9ncmFtYSBlbiBtaSBzaXN0ZW1hIHF1ZSBzZQojIGxsYW1lIHNoZWxsLiBObyBzZSBoYSBlbmNvbnRyYWRvIGVsICdzaGVsbCdlbSsKIyBFcyBidWVubyBjb250YXIgY29uIHVuYSBzZWd1bmRhIG9waW5p824gLi4uIG1tCiM6IGpvYi5jOjIxNDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBTaGVsbCBwcm9ncmFtIG5vdCBmb3VuZCIKbXNnc3RyICIlczogTm8gc2UgaGEgZW5jb250cmFkbyBlbCBgc2hlbGwnIgoKIzogam9iLmM6MjE1NAptc2dpZCAic3Bhd252cGU6IGVudmlyb25tZW50IHNwYWNlIG1pZ2h0IGJlIGV4aGF1c3RlZCIKbXNnc3RyICJzcGF3bnZwZTogZWwgZXNwYWNpbyBhbWJpZW50YWwgcG9kcu1hIGVzdGFyIGFnb3RhZG8iCgojOiBqb2IuYzoyMzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIkU0hFTEwgY2hhbmdlZCAod2FzIGAlcycsIG5vdyBgJXMnKVxuIgptc2dzdHIgIiRTSEVMTCBoYSBjYW1iaWFkbyAoZXJhIGAlcycgeSBhaG9yYSBlcyBgJXMnKVxuIgoKIzogam9iLmM6Mjc4OQojLCBjLWZvcm1hdAptc2dpZCAiQ3JlYXRpbmcgdGVtcG9yYXJ5IGJhdGNoIGZpbGUgJXNcbiIKbXNnc3RyICJTZSBjcmVhIGVsIGFyY2hpdm8gdGVtcG9yYWwgJXNcbiIKCiM6IGpvYi5jOjI5MDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzIChsaW5lICVkKSBCYWQgc2hlbGwgY29udGV4dCAoIXVuaXh5ICYmICFiYXRjaF9tb2RlX3NoZWxsKVxuIgptc2dzdHIgIiIKIiVzIChsaW5lYSAlZCkgQ29udGV4dG8gZGUgc2hlbGwgZXJy825lbyAoIXVuaXh5ICYmICFiYXRjaF9tb2RlX3NoZWxsKVxuIgoKIzogbWFpbi5jOjI5MQptc2dpZCAiT3B0aW9uczpcbiIKbXNnc3RyICJPcGNpb25lczpcbiIKCiMgTG8gbWlzbW8gZGUgYXJyaWJhIGNvbiAiaWdub3JhciIuIHN2CiMgT2suIG1tLgojOiBtYWluLmM6MjkyCm1zZ2lkICIgIC1iLCAtbSAgICAgICAgICAgICAgICAgICAgICBJZ25vcmVkIGZvciBjb21wYXRpYmlsaXR5LlxuIgptc2dzdHIgIiIKIiAgLWIsIC1tICAgICAgICAgICAgICAgICAgICAgIE5vIHNlIHRlbmRy4SBlbiBjdWVudGEgcG9yIGNvbXBhdGliaWxpZGFkLlxuIgoKIzogbWFpbi5jOjI5NAptc2dpZCAiICAtQiwgLS1hbHdheXMtbWFrZSAgICAgICAgICAgVW5jb25kaXRpb25hbGx5IG1ha2UgYWxsIHRhcmdldHMuXG4iCm1zZ3N0ciAiIgoiICAtQiwgLS1hbHdheXMtbWFrZSAgICAgICAgICAgSGFjZSBpbmNvbmRpY2lvbmFsbWVudGUgdG9kb3MgbG9zIG9iamV0aXZvcy5cbiIKCiM6IG1haW4uYzoyOTYKbXNnaWQgIiIKIiAgLUMgRElSRUNUT1JZLCAtLWRpcmVjdG9yeT1ESVJFQ1RPUllcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSB0byBESVJFQ1RPUlkgYmVmb3JlIGRvaW5nIGFueXRoaW5nLlxuIgptc2dzdHIgIiIKIiAgLUMgRElSRUNUT1JJTywgLS1kaXJlY3Rvcnk9RElSRUNUT1JJT1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2UgY2FtYmlhIGFsIERJUkVDVE9SSU8gYW50ZXMgZGUgaGFjZXIgbmFkYS5cbiIKCiMgvyJkZXB1cmFkbyIgbyAiZGVwdXJhY2nzbiI/IHN2CiMgUHVzZSBkZSBkZXB1cmFkbyBwYXJhIGV2aXRhciBsYSBjYWNvZm9u7WEgaW5mb3JtYWNp824gZGVwdXJhY2nzbi4KIyBTdWdlcmVuY2lhcyBiaWVudmVuaWRhcy4gbW0KIzogbWFpbi5jOjI5OQptc2dpZCAiICAtZCAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnQgbG90cyBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uXG4iCm1zZ3N0ciAiIgoiICAtZCAgICAgICAgICBTZSBpbXByaW1pcuFuIGdyYW5kZXMgY2FudGlkYWRlcyBkZSBpbmZvcm1hY2nzbiBkZSBkZXB1cmFkby5cbiIKCiMgvyJkZXB1cmFkbyIgbyAiZGVwdXJhY2nzbiI/IHN2CiMgUHVzZSBkZSBkZXB1cmFkbyBwYXJhIGV2aXRhciBsYSBjYWNvZm9u7WEgaW5mb3JtYWNp824gZGVwdXJhY2nzbi4KIyBTdWdlcmVuY2lhcyBiaWVudmVuaWRhcy4gbW0KIzogbWFpbi5jOjMwMQptc2dpZCAiIgoiICAtLWRlYnVnWz1GTEFHU10gICAgICAgICAgICAgUHJpbnQgdmFyaW91cyB0eXBlcyBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uXG4iCm1zZ3N0ciAiIgoiICAtLWRlYnVnWz1CQU5ERVJBU10gICAgU2UgaW1wcmltaXLhbiB2YXJpb3MgdGlwb3MgZGUgaW5mb3JtYWNp824gZGUgIgoiZGVwdXJhZG8uXG4iCgojOiBtYWluLmM6MzAzCm1zZ2lkICIiCiIgIC1lLCAtLWVudmlyb25tZW50LW92ZXJyaWRlc1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIG1ha2VmaWxlcy5cbiIKbXNnc3RyICIiCiIgIC1lLCAtLWVudmlyb25tZW50LW92ZXJyaWRlc1xuIgoiICAgICAgICAgICAgICAgIExhcyB2YXJpYWJsZXMgYW1iaWVudGFsZXMgc2UgaW1wb25lbiBhIGxhcyBkZSBsb3MgIgoibWFrZWZpbGVzLlxuIgoKIzogbWFpbi5jOjMwNgptc2dpZCAiIgoiICAtZiBGSUxFLCAtLWZpbGU9RklMRSwgLS1tYWtlZmlsZT1GSUxFXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkIEZJTEUgYXMgYSBtYWtlZmlsZS5cbiIKbXNnc3RyICIiCiIgIC1mIEFSQ0hJVk8sIC0tZmlsZT1BUkNISVZPLCAtLW1ha2VmaWxlPUFSQ0hJVk9cbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVlIGFsIEFSQ0hJVk8gY29tbyB1biBtYWtlZmlsZS5cbiIKCiM6IG1haW4uYzozMDkKbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgIFByaW50IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC5cbiIKbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBNdWVzdHJhIGVzdGUgbWVuc2FqZSB5IGZpbmFsaXphLlxuIgoKIyBPam8gY29uIGlnbm9yYXIuIHN2CiMgT2suIG1tCiMgUG9yIGZhdm9yLCBzaSBoYXMgdHJhZHVjaWRvIGNvbW1hbmRzIGNvbW8gaW5zdHJ1Y2Npb25lcyAsIGhhemxvIGFxdWkKIyB0YW1iaWVuLgojIE5vIG1lIGd1c3RhIGVzdGUgbWVuc2FqZSwgcHJlZmVyaXLtYTogU2UgaWdub3JhbiBsb3MgZXJyb3JlcyBvYnRlbmlkb3MKIyBlbiBsYSBlamVjdWNp824gZGUgbGFzIGluc3RydWNjaW9uZXMgIGVtKwojOiBtYWluLmM6MzExCm1zZ2lkICIgIC1pLCAtLWlnbm9yZS1lcnJvcnMgICAgICAgICBJZ25vcmUgZXJyb3JzIGZyb20gY29tbWFuZHMuXG4iCm1zZ3N0ciAiIgoiICAtaSwgLS1pZ25vcmUtZXJyb3JzICAgICAgICAgTm8gc2UgdG9tYW4gZW4gY3VlbnRhIGxvcyBlcnJvcmVzIHByb3ZlbmllbnRlcyAiCiJkZSBsYXMgaW5zdHJ1Y2Npb25lcy5cbiIKCiM6IG1haW4uYzozMTMKbXNnaWQgIiIKIiAgLUkgRElSRUNUT1JZLCAtLWluY2x1ZGUtZGlyPURJUkVDVE9SWVxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIERJUkVDVE9SWSBmb3IgaW5jbHVkZWQgbWFrZWZpbGVzLlxuIgptc2dzdHIgIiIKIiAgLUkgRElSRUNUT1JJTywgLS1pbmNsdWRlLWRpcj1ESVJFQ1RPUklPXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIEJ1c2NhIGRlbnRybyBkZWwgRElSRUNUT1JJTyBsb3MgbWFrZWZpbGVzIGluY2x1aWRvcy5cbiIKCiMgWW8gdHJhZHVjaXLtYSAiaW5maW5pdGUiIHBvciAiaW5maW5pdG9zIiwgbm8gcG9yICJ1bmEgaW5maW5pZGFkIiwgcXVlCiMgcGFyZWNlIHF1ZSBzb24gbXVjaG9zIG1lbm9zLi4uIHN2CiMgT2suIG1tCiM6IG1haW4uYzozMTYKbXNnaWQgIiIKIiAgLWogW05dLCAtLWpvYnNbPU5dICAgICAgICAgIEFsbG93IE4gam9icyBhdCBvbmNlOyBpbmZpbml0ZSBqb2JzIHdpdGggbm8gIgoiYXJnLlxuIgptc2dzdHIgIiIKIiAgLWogW05dLCAtLWpvYnNbPU5dICAgICAgU2UgcGVybWl0ZW4gTiB0cmFiYWpvcyBhIGxhIHZlejsgc2kgbm8gc2UgIgoiZXNwZWNpZmljYSB1blxuIgoiYXJndW1lbnRvIHNvbiBpbmZpbml0b3MuXG4iCgojIE5vIGVudGllbmRvIHBvciBxdekgYXF17SBlbXBsZWFzIHN1Ymp1bnRpdm86ICJwdWRpZXJvbiIuIHN2CiMgRXMgaW5jb3JyZWN0by4gRXMgdW5hIGRlIGxhcyBvcGNpb25lcyBgaycgcXVlIGRpY2UuLi4gbW0KIzogbWFpbi5jOjMxOAptc2dpZCAiIgoiICAtaywgLS1rZWVwLWdvaW5nICAgICAgICAgICAgS2VlcCBnb2luZyB3aGVuIHNvbWUgdGFyZ2V0cyBjYW4ndCBiZSBtYWRlLlxuIgptc2dzdHIgIiIKIiAgLWssIC0ta2VlcC1nb2luZyAgICAgICAgICAgIFNpZ3VlIGF2YW56YW5kbyBh+m4gY3VhbmRvIG5vIHNlIHB1ZWRhbiBjcmVhciAiCiJhbGd1bm9zIG9iamV0aXZvcy5cbiIKCiM6IG1haW4uYzozMjAKbXNnaWQgIiIKIiAgLWwgW05dLCAtLWxvYWQtYXZlcmFnZVs9Tl0sIC0tbWF4LWxvYWRbPU5dXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb24ndCBzdGFydCBtdWx0aXBsZSBqb2JzIHVubGVzcyBsb2FkIGlzIGJlbG93ICIKIk4uXG4iCm1zZ3N0ciAiIgoiICAtbCBbTl0sIC0tbG9hZC1hdmVyYWdlWz1OXSwgLS1tYXgtbG9hZFs9Tl1cbiIKIiAgICAgIE5vIGluaWNpYSBjb24gdHJhYmFqb3MgbfpsdGlwbGVzIGEgbWVub3MgcXVlIGxhIGNhcmdhIGVzdOkgcG9yIGRlYmFqbyAiCiJkZSBOLlxuIgoKIzogbWFpbi5jOjMyMwptc2dpZCAiIgoiICAtTCwgLS1jaGVjay1zeW1saW5rLXRpbWVzICAgVXNlIHRoZSBsYXRlc3QgbXRpbWUgYmV0d2VlbiBzeW1saW5rcyBhbmQgIgoidGFyZ2V0LlxuIgptc2dzdHIgIiIKIiAgLUwsIC0tY2hlY2stc3ltbGluay10aW1lcyAgIFV0aWxpemEgZWwg+mx0aW1vIG10aW1lIGVudHJlIGxvcyBlbmxhY2VzICIKInNpbWLzbGljb3MgeSBsb3Mgb2JqZXRpdm9zLlxuIgoKIzogbWFpbi5jOjMyNQptc2dpZCAiIgoiICAtbiwgLS1qdXN0LXByaW50LCAtLWRyeS1ydW4sIC0tcmVjb25cbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbid0IGFjdHVhbGx5IHJ1biBhbnkgY29tbWFuZHM7IGp1c3QgcHJpbnQgIgoidGhlbS5cbiIKbXNnc3RyICIiCiIgIC1uLCAtLWp1c3QtcHJpbnQsIC0tZHJ5LXJ1biwgLS1yZWNvblxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gZWplY3V0YSBuaW5ndW5hIGluc3RydWNjafNuOyBz82xvIGxhcyAiCiJtdWVzdHJhLlxuIgoKIzogbWFpbi5jOjMyOAptc2dpZCAiIgoiICAtbyBGSUxFLCAtLW9sZC1maWxlPUZJTEUsIC0tYXNzdW1lLW9sZD1GSUxFXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25zaWRlciBGSUxFIHRvIGJlIHZlcnkgb2xkIGFuZCBkb24ndCByZW1ha2UgIgoiaXQuXG4iCm1zZ3N0ciAiIgoiICAtbyBBUkNISVZPLCAtLW9sZC1maWxlPUFSQ0hJVk8sIC0tYXNzdW1lLW9sZD1BUkNISVZPXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBTdXBvbmUgcXVlIEFSQ0hJVk8gZXMgbXV5IHZpZWpvIHkgbm8gbG8gIgoicmVjb25zdHJ1eWUuXG4iCgojIGRlICdtYWtlJyBlbSsKIyBvay4gbW0KIzogbWFpbi5jOjMzMQptc2dpZCAiICAtcCwgLS1wcmludC1kYXRhLWJhc2UgICAgICAgUHJpbnQgbWFrZSdzIGludGVybmFsIGRhdGFiYXNlLlxuIgptc2dzdHIgIiIKIiAgLXAsIC0tcHJpbnQtZGF0YS1iYXNlICAgICAgIFNlIGltcHJpbWUgbGEgYmFzZSBkZSBkYXRvcyBpbnRlcm5hIGRlICIKImBtYWtlJy5cbiIKCiM6IG1haW4uYzozMzMKbXNnaWQgIiIKIiAgLXEsIC0tcXVlc3Rpb24gICAgICAgICAgICAgIFJ1biBubyBjb21tYW5kczsgZXhpdCBzdGF0dXMgc2F5cyBpZiB1cCB0byAiCiJkYXRlLlxuIgptc2dzdHIgIiIKIiAgLXEsIC0tcXVlc3Rpb24gICAgICAgICAgICAgICAgICAgICBObyBzZSBlamVjdXRhbiBsYXMgaW5zdHJ1Y2Npb25lczsgZWwgIgoiZXN0YWRvIGRlIHNhbGlkYVxuIgoiaW5kaWNhcuEgc2kgZXN04W4gYWN0dWFsaXphZG9zLlxuIgoKIyC/ZGVzYWJpbGl0YW4gbyBkZXNoYWJpbGl0YW4/IHN2CiMgRXJyb3IgZGUgZGVkby4gbW0KIyChIFBvciBmYXZvciAhICwgvyBwZXJvIHF16SBlcyBlc28gZGUgaW50ZXJjb25zdHJ1aWRhcyA/CiMgUG9uIGFsbWFjZW5hZGFzIGludGVybmFtZW50ZSwgcXVlIGVzIGV4YWN0YW1lbnRlIGxvIHF1ZSBzb24gOikgZW0rCiMgQnVlbm8sIGJham8gcHJvdGVzdGEuIG1tCiM6IG1haW4uYzozMzUKbXNnaWQgIiAgLXIsIC0tbm8tYnVpbHRpbi1ydWxlcyAgICAgIERpc2FibGUgdGhlIGJ1aWx0LWluIGltcGxpY2l0IHJ1bGVzLlxuIgptc2dzdHIgIiIKIiAgLXIsIC0tbm8tYnVpbHRpbi1ydWxlcyAgICAgIFNlIGRlc2hhYmlsaXRhbiBsYXMgcmVnbGFzIGltcGztY2l0YXMgIgoiYWxtYWNlbmFkYXMgaW50ZXJuYW1lbnRlLlxuIgoKIyC/ZGVzYWJpbGl0YW4gbyBkZXNoYWJpbGl0YW4/IHN2CiMgRXJyb3IgZGUgZGVkby4gbW0KIyChIFBvciBmYXZvciAhICwgvyBwZXJvIHF16SBlcyBlc28gZGUgaW50ZXJjb25zdHJ1aWRhcyA/CiMgUG9uIGFsbWFjZW5hZGFzIGludGVybmFtZW50ZSwgcXVlIGVzIGV4YWN0YW1lbnRlIGxvIHF1ZSBzb24gOikgZW0rCiMgQnVlbm8sIGJham8gcHJvdGVzdGEuIG1tCiM6IG1haW4uYzozMzcKbXNnaWQgIiAgLVIsIC0tbm8tYnVpbHRpbi12YXJpYWJsZXMgIERpc2FibGUgdGhlIGJ1aWx0LWluIHZhcmlhYmxlIHNldHRpbmdzLlxuIgptc2dzdHIgIiIKIiAgLVIsIC0tbm8tYnVpbHRpbi12YXJpYWJsZXMgIFNlIGRlc2hhYmlsaXRhbiBsb3MgYWp1c3RlcyBhIGxhcyB2YXJpYWJsZXMgIgoiYWxtYWNlbmFkYXMgaW50ZXJuYW1lbnRlLlxuIgoKIzogbWFpbi5jOjMzOQptc2dpZCAiICAtcywgLS1zaWxlbnQsIC0tcXVpZXQgICAgICAgRG9uJ3QgZWNobyBjb21tYW5kcy5cbiIKbXNnc3RyICIgIC1zLCAtLXNpbGVudCwgLS1xdWlldCAgICAgICBObyBtdWVzdHJhIGxhcyBpbnRydWNjaW9uZXMuXG4iCgojOiBtYWluLmM6MzQxCm1zZ2lkICIiCiIgIC1TLCAtLW5vLWtlZXAtZ29pbmcsIC0tc3RvcFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHVybnMgb2ZmIC1rLlxuIgptc2dzdHIgIiIKIiAgLVMsIC0tbm8ta2VlcC1nb2luZywgLS1zdG9wXG4iCiIgICAgICAgICAgICAgICAgICAgIERlc2FjdGl2YSBsYSBvcGNp824gLWsuXG4iCgojIFNlICp0b2NhbiosIL9ubz8gc3YKIyBTaS4gbW0KIwojIFB1ZXMgZW50b25jZXMgY+FtYmlhbG8gYXJyaWJhIHRhbWJpZW4gZW0rCiMgRW4gZG9uZGU/IG1tCiM6IG1haW4uYzozNDQKbXNnaWQgIiAgLXQsIC0tdG91Y2ggICAgICAgICAgICAgICAgIFRvdWNoIHRhcmdldHMgaW5zdGVhZCBvZiByZW1ha2luZyB0aGVtLlxuIgptc2dzdHIgIiIKIiAgLXQsIC0tdG91Y2ggICAgICAgICAgICAgICAgIFNlIHRvY2FuIGxvcyBvYmpldGl2b3MgZW4gdmV6IGRlICIKInJlY29uc3RydWlybG9zLlxuIgoKIyBNZSBjb21lcu1hIGVsICJTZSIgaW5pY2lhbC4gIk11ZXN0cmEgbGEgdmVyc2nzbi4uLiIgc3YKIyBPay4gbW0KIzogbWFpbi5jOjM0Ngptc2dpZCAiIgoiICAtdiwgLS12ZXJzaW9uICAgICAgICAgICAgICAgUHJpbnQgdGhlIHZlcnNpb24gbnVtYmVyIG9mIG1ha2UgYW5kIGV4aXQuXG4iCm1zZ3N0ciAiIgoiICAtdiwgLS12ZXJzaW9uICAgICAgICAgICAgICAgTXVlc3RyYSBsYSB2ZXJzafNuIGRlbCBtYWtlIHkgZmluYWxpemEuXG4iCgojIExvIG1pc21vLiBzdgojOiBtYWluLmM6MzQ4Cm1zZ2lkICIgIC13LCAtLXByaW50LWRpcmVjdG9yeSAgICAgICBQcmludCB0aGUgY3VycmVudCBkaXJlY3RvcnkuXG4iCm1zZ3N0ciAiICAtdywgLS1wcmludC1kaXJlY3RvcnkgICAgICAgTXVlc3RyYSBlbCBkaXJlY3RvcmlvIGFjdHVhbC5cbiIKCiMgTG8gbWlzbW8uIHN2CiMgVHVybiBvZmYgLCBkZXNhY3RpdmEgbyBkZXNoYWJpbGl0YSAsIHBlcm8gbm8gYXBhZ2EgZW0rCiMgYXBhZ2EgbHV6IE1hcmkgTHV6IGFwYWdhIGx1eiAscXVlIHlvIG5vIHB1ZWRvIHZpdmlyIGNvbgojIHRhbnRhIGx1eiAuLi4gKCBjYW5jafNuIHRyYWRpY2lvbmFsICkgKCBubyBsbyBwdWRlIGV2aXRhciApIGVtKwojIEp1YXIsIEp1YXIsIEp1YXIuIENvaW5jaWRvLCBwZXJvIGVsIHNlbnRpZG8gZXMgZWwgbWlzbW8uIG1tCiM6IG1haW4uYzozNTAKbXNnaWQgIiIKIiAgLS1uby1wcmludC1kaXJlY3RvcnkgICAgICAgIFR1cm4gb2ZmIC13LCBldmVuIGlmIGl0IHdhcyB0dXJuZWQgb24gIgoiaW1wbGljaXRseS5cbiIKbXNnc3RyICIiCiIgIC0tbm8tcHJpbnQtZGlyZWN0b3J5ICAgICAgICBEZXNhY3RpdmEgLXcsIGH6biBjdWFuZG8gaGF5YSBzaWRvIGFjdGl2YWRvICIKImltcGztY2l0YW1lbnRlLlxuIgoKIzogbWFpbi5jOjM1Mgptc2dpZCAiIgoiICAtVyBGSUxFLCAtLXdoYXQtaWY9RklMRSwgLS1uZXctZmlsZT1GSUxFLCAtLWFzc3VtZS1uZXc9RklMRVxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc2lkZXIgRklMRSB0byBiZSBpbmZpbml0ZWx5IG5ldy5cbiIKbXNnc3RyICIiCiIgIC1XIEFSQ0hJVk8sIC0td2hhdC1pZj1BUkNISVZPLCAtLW5ldy1maWxlPUFSQ0hJVk8sIC0tYXNzdW1lLW5ldz1BUkNISVZPXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vwb25lIHF1ZSBBUkNISVZPIGVzIGluZmluaXRhbWVudGUgIgoicmVjaWVudGUuXG4iCgojIExvIG1pc21vLiBzdgojIFRvZGFzIGVzdGFzIHBhcmVjZW4gZGVzY3JpcGNpb25lcyBkZSBvcGNpb25lcy4KIzogbWFpbi5jOjM1NQptc2dpZCAiIgoiICAtLXdhcm4tdW5kZWZpbmVkLXZhcmlhYmxlcyAgV2FybiB3aGVuIGFuIHVuZGVmaW5lZCB2YXJpYWJsZSBpcyAiCiJyZWZlcmVuY2VkLlxuIgptc2dzdHIgIiIKIiAgLS13YXJuLXVuZGVmaW5lZC12YXJpYWJsZXMgIEFkdmllcnRlIGN1YW5kbyBzZSBoYWNlIHVuYSByZWZlcmVuY2lhIGEgdW5hICIKInZhcmlhYmxlIG5vIGRlZmluaWRhLlxuIgoKIzogbWFpbi5jOjU0OQptc2dpZCAiZW1wdHkgc3RyaW5nIGludmFsaWQgYXMgZmlsZSBuYW1lIgptc2dzdHIgIm5vIHNlIHBlcm1pdGUgcXVlIHVuYSBjYWRlbmEgdmFj7WEgc2VhIGVsIG5vbWJyZSBkZSB1biBhcmNoaXZvIgoKIzogbWFpbi5jOjYzMAojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBkZWJ1ZyBsZXZlbCBzcGVjaWZpY2F0aW9uIGAlcyciCm1zZ3N0ciAic2UgZXNwZWNpZmlj8yB1biBuaXZlbCBkZSBkZXB1cmFjafNuIGRlc2Nvbm9jaWRvIGAlcyciCgojOiBtYWluLmM6NjcwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IEludGVycnVwdC9FeGNlcHRpb24gY2F1Z2h0IChjb2RlID0gMHglbHgsIGFkZHIgPSAweCVseClcbiIKbXNnc3RyICIiCiIlczogU2UgYXRyYXDzIHVuYSBpbnRlcnJ1cGNp824vZXhjZXBjafNuIChj82RpZ28gPSAweCV4LCBkaXJlY2Np824gPSAweCV4KVxuIgoKIzogbWFpbi5jOjY3NwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiVW5oYW5kbGVkIGV4Y2VwdGlvbiBmaWx0ZXIgY2FsbGVkIGZyb20gcHJvZ3JhbSAlc1xuIgoiRXhjZXB0aW9uQ29kZSA9ICVseFxuIgoiRXhjZXB0aW9uRmxhZ3MgPSAlbHhcbiIKIkV4Y2VwdGlvbkFkZHJlc3MgPSAlbHhcbiIKbXNnc3RyICIiCiJcbiIKIlNlIGhhIGxsYW1hZG8gdW4gZmlsdHJvIGRlIGV4Y2VwY2nzbiBubyBtYW5lamFkbyBkZXNkZSBlbCBwcm9ncmFtYSAlc1xuIgoiQ/NkaWdvIGRlIGV4Y2VwY2nzbiAleFxuIgoiQmFuZGVyYXMgZGUgZXhjZXBjafNuICV4XG4iCiJEaXJlY2Np824gZGUgbGEgZXhjZXBjafNuICV4XG4iCgojOiBtYWluLmM6Njg1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiQWNjZXNzIHZpb2xhdGlvbjogd3JpdGUgb3BlcmF0aW9uIGF0IGFkZHJlc3MgJWx4XG4iCm1zZ3N0ciAiVmlvbGFjafNuIGRlIGFjY2Vzbzogb3BlcmFjafNuIGRlIGVzY3JpdHVyYSBlbiBsYSBkaXJlY2Np824gJXhcbiIKCiM6IG1haW4uYzo2ODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJBY2Nlc3MgdmlvbGF0aW9uOiByZWFkIG9wZXJhdGlvbiBhdCBhZGRyZXNzICVseFxuIgptc2dzdHIgIlZpb2xhY2nzbiBkZSBhY2Nlc286IG9wZXJhY2nzbiBkZSBsZWN0dXJhIGVuIGxhIGRpcmVjY2nzbiAleFxuIgoKIzogbWFpbi5jOjc2MiBtYWluLmM6NzczCiMsIGMtZm9ybWF0Cm1zZ2lkICJmaW5kX2FuZF9zZXRfc2hlbGwgc2V0dGluZyBkZWZhdWx0X3NoZWxsID0gJXNcbiIKbXNnc3RyICJsYSB2YXJpYWJsZSBmaW5kX2FuZF9zZXRfc2hlbGwgcHVlc3RhIGNvbW8gZGVmYXVsdF9zaGVsbCA9ICVzXG4iCgojOiBtYWluLmM6ODE0CiMsIGMtZm9ybWF0Cm1zZ2lkICJmaW5kX2FuZF9zZXRfc2hlbGwgcGF0aCBzZWFyY2ggc2V0IGRlZmF1bHRfc2hlbGwgPSAlc1xuIgptc2dzdHIgIiIKImxhIHJ1dGEgZGUgYvpzcXVlZGEgZmluZF9hbmRfc2V0X3NoZWxsIGVzdOEgcHVlc3RhIGNvbW8gZGVmYXVsdF9zaGVsbCA9ICVzXG4iCgojOiBtYWluLmM6MTIzNgojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgc3VzcGVuZGluZyBmb3IgMzAgc2Vjb25kcy4uLiIKbXNnc3RyICIlcyBlc3ThIHN1c3BlbmRpZGEgcG9yIDMwIHNlZ3VuZG9zLi4uIgoKIzogbWFpbi5jOjEyMzgKIywgYy1mb3JtYXQKbXNnaWQgImRvbmUgc2xlZXAoMzApLiBDb250aW51aW5nLlxuIgptc2dzdHIgInNlIGhpem8gdW4gc2xlZXAoMzApLiBDb250aW51YW5kby5cbiIKCiM6IG1haW4uYzoxNDY2Cm1zZ2lkICJNYWtlZmlsZSBmcm9tIHN0YW5kYXJkIGlucHV0IHNwZWNpZmllZCB0d2ljZS4iCm1zZ3N0ciAiIgoiRWwgYXJjaGl2byBNYWtlZmlsZSBoYSBzaWRvIGVzcGVjaWZpY2FkbyBkb3MgdmVjZXMgZGVzZGUgbGEgZW50cmFkYSBlc3ThbmRhcmQiCgojOiBtYWluLmM6MTUwNSB2bXNqb2JzLmM6NDg2Cm1zZ2lkICJmb3BlbiAodGVtcG9yYXJ5IGZpbGUpIgptc2dzdHIgImZvcGVuIChhcmNoaXZvIHRlbXBvcmFsKSIKCiM6IG1haW4uYzoxNTExCm1zZ2lkICJmd3JpdGUgKHRlbXBvcmFyeSBmaWxlKSIKbXNnc3RyICJmd3JpdGUgKGFyY2hpdm8gdGVtcG9yYWwpIgoKIzogbWFpbi5jOjE2NDAKbXNnaWQgIlBhcmFsbGVsIGpvYnMgKC1qKSBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKbXNnc3RyICIiCiJMb3MgdHJhYmFqb3MgZW4gcGFyYWxlbG8gKC1qKSBubyBlc3ThbiBpbXBsZW1lbnRhZG9zIGVuIGVzdGEgcGxhdGFmb3JtYS4iCgojOiBtYWluLmM6MTY0MQptc2dpZCAiUmVzZXR0aW5nIHRvIHNpbmdsZSBqb2IgKC1qMSkgbW9kZS4iCm1zZ3N0ciAiUmVhanVzdGFuZG8gYWwgbW9kbyBtb25vdGFyZWEgKC1qMSkuIgoKIzogbWFpbi5jOjE2NTYKbXNnaWQgImludGVybmFsIGVycm9yOiBtdWx0aXBsZSAtLWpvYnNlcnZlci1mZHMgb3B0aW9ucyIKbXNnc3RyICJlcnJvciBpbnRlcm5vOiBoYXkgdmFyaWFzIG9wY2lvbmVzIC0tam9ic2VydmVyLWZkcyIKCiM6IG1haW4uYzoxNjY0CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnRlcm5hbCBlcnJvcjogaW52YWxpZCAtLWpvYnNlcnZlci1mZHMgc3RyaW5nIGAlcyciCm1zZ3N0ciAiZXJyb3IgaW50ZXJubzogY2FkZW5hIC0tam9ic2VydmVyLWZkcyBpbnbhbGlkYSBgJXMnIgoKIzogbWFpbi5jOjE2NzQKbXNnaWQgIndhcm5pbmc6IC1qTiBmb3JjZWQgaW4gc3VibWFrZTogZGlzYWJsaW5nIGpvYnNlcnZlciBtb2RlLiIKbXNnc3RyICIiCiJhdGVuY2nzbjogc2UgZnVlcnphIGEgLWpOIGVuIGVsIHN1Ym1ha2U6IHNlIGRlc2hhYmlsaXRhIGVsIG1vZG8gZGUgc2Vydmlkb3IgIgoiZGUgdGFyZWFzLiIKCiM6IG1haW4uYzoxNjg0Cm1zZ2lkICJkdXAgam9ic2VydmVyIgptc2dzdHIgInNlcnZpZG9yIGRlIHRhcmVhcyBkdXBsaWNhZG8iCgojOiBtYWluLmM6MTY4Nwptc2dpZCAiIgoid2FybmluZzogam9ic2VydmVyIHVuYXZhaWxhYmxlOiB1c2luZyAtajEuICBBZGQgYCsnIHRvIHBhcmVudCBtYWtlIHJ1bGUuIgptc2dzdHIgIiIKImF0ZW5jafNuOiBlbCBzZXJ2aWRvciBkZSB0YXJlYXMgbm8gZXN04SBkaXNwb25pYmxlOiBzZSB1dGlsaXphcuEgLWoxLiBB8WFkYSBgIgoiKycgYSBsYSByZWdsYSBwYWRyZSBkZWwgbWFrZS4iCgojOiBtYWluLmM6MTcxMAptc2dpZCAiY3JlYXRpbmcgam9icyBwaXBlIgptc2dzdHIgImNyZWFuZG8gdW5hIHR1YmVy7WEgZGUgdHJhYmFqb3MiCgojOiBtYWluLmM6MTcyNQptc2dpZCAiaW5pdCBqb2JzZXJ2ZXIgcGlwZSIKbXNnc3RyICJzZSBpbmljaWFsaXphIGxhIHR1YmVy7WEgYWwgc2Vydmlkb3IgZGUgdGFyZWFzIgoKIzogbWFpbi5jOjE3NDQKbXNnaWQgIlN5bWJvbGljIGxpbmtzIG5vdCBzdXBwb3J0ZWQ6IGRpc2FibGluZyAtTC4iCm1zZ3N0ciAiTG9zIGVubGFjZXMgc2ltYvNsaWNvcyBubyBlc3ThbiBpbXBsZW1lbnRhZG9zOiBzZSBkZXNoYWJpbGl0YW4gY29uIC1MLiIKCiMgQW50ZXMgcHVzaXN0ZSAibWFrZWZpbGVzIi4gQ29oZXJlbmNpYS4gc3YKIyBDaWVydG8uIG1tCiM6IG1haW4uYzoxODIwCm1zZ2lkICJVcGRhdGluZyBtYWtlZmlsZXMuLi4uXG4iCm1zZ3N0ciAiQWN0dWFsaXphbmRvIGFyY2hpdm9zIG1ha2VmaWxlcy4uLi5cbiIKCiMgTWUgY29tZXLtYSBlbCAiYXJjaGl2byIgaW5pY2lhbC4KIyBPay4gbW0KIyAiRWwgTWFrZWZpbGUgYCVzJyAuLi4iIHN2CiMgUG9uZHLtYSAoIGNvbW8gZW4gdW4gbWVuc2FqZSBhbnRlcmlvciApIHNlIGF1dG9yZWZlcmVuY2lhIC4uLiBlbSsKIyBIZSBwdWVzdG8gbWFrZWZpbGUgY29uIG1pbvpzY3VsYXMgLCBwYXIgc2VyIGNvaGVyZW50ZXMgZW0rCiMgT2suIEVzIG3hcyBicmV2ZS4gbW0uCiM6IG1haW4uYzoxODQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICJNYWtlZmlsZSBgJXMnIG1pZ2h0IGxvb3A7IG5vdCByZW1ha2luZyBpdC5cbiIKbXNnc3RyICJFbCBtYWtlZmlsZSBgJXMnIHNlIGF1dG9yZWZlcmVuY2lhOyBwb3IgbG8gY3VhbCBubyBzZSByZWNvbnN0cnV5ZS5cbiIKCiMgTG8gbWlzbW8uIHN2CiM6IG1haW4uYzoxOTI0CiMsIGMtZm9ybWF0Cm1zZ2lkICJGYWlsZWQgdG8gcmVtYWtlIG1ha2VmaWxlIGAlcycuIgptc2dzdHIgIkZhbGxvIGFsIHJlY29uc3RydWlyIGVsIG1ha2VmaWxlIGAlcycuIgoKIyBMbyBtaXNtby4gc3YKIzogbWFpbi5jOjE5NDEKIywgYy1mb3JtYXQKbXNnaWQgIkluY2x1ZGVkIG1ha2VmaWxlIGAlcycgd2FzIG5vdCBmb3VuZC4iCm1zZ3N0ciAiTm8gc2UgZW5jb250cvMgZWwgbWFrZWZpbGUgaW5jbHXtZG8gYCVzJy4iCgojIExvIG1pc21vLiBzdgojOiBtYWluLmM6MTk0NgojLCBjLWZvcm1hdAptc2dpZCAiTWFrZWZpbGUgYCVzJyB3YXMgbm90IGZvdW5kIgptc2dzdHIgIk5vIHNlIGVuY29udHLzIGVsIE1ha2VmaWxlIGAlcyciCgojOiBtYWluLmM6MjAxNgptc2dpZCAiQ291bGRuJ3QgY2hhbmdlIGJhY2sgdG8gb3JpZ2luYWwgZGlyZWN0b3J5LiIKbXNnc3RyICJObyBzZSBwdWRvIHJlZ3Jlc2FyIGFsIGRpcmVjdG9yaW8gb3JpZ2luYWwuIgoKIzogbWFpbi5jOjIwMjQKIywgYy1mb3JtYXQKbXNnaWQgIlJlLWV4ZWN1dGluZ1sldV06Igptc2dzdHIgIlJlLWVqZWN1dGFuZG9bJXVdOiIKCiM6IG1haW4uYzoyMTQwCm1zZ2lkICJ1bmxpbmsgKHRlbXBvcmFyeSBmaWxlKTogIgptc2dzdHIgInVubGluayAoYXJjaGl2byB0ZW1wb3JhbCkiCgojOiBtYWluLmM6MjE2OQptc2dpZCAiLkRFRkFVTFRfR09BTCBjb250YWlucyBtb3JlIHRoYW4gb25lIHRhcmdldCIKbXNnc3RyICIuREVGQVVMVF9HT0FMIGNvbnRpZW4gbeFzIGRlIHVuIG9iamV0aXZvIgoKIyBTdWdlcmVuY2lhOiAiTm8gc2UgZXNwZWNpZmlj8yBuaW5n+m4gb2JqZXRpdm8gLi4uICIgc3YKIyBPay4gTWUgZ3VzdGEuIG1tCiM6IG1haW4uYzoyMTg5Cm1zZ2lkICJObyB0YXJnZXRzIHNwZWNpZmllZCBhbmQgbm8gbWFrZWZpbGUgZm91bmQiCm1zZ3N0ciAiTm8gc2UgZXNwZWNpZmlj8yBuaW5n+m4gb2JqZXRpdm8geSBubyBzZSBlbmNvbnRy8yBuaW5n+m4gbWFrZWZpbGUiCgojOiBtYWluLmM6MjE5MQptc2dpZCAiTm8gdGFyZ2V0cyIKbXNnc3RyICJObyBoYXkgb2JqZXRpdm9zIgoKIzogbWFpbi5jOjIxOTYKbXNnaWQgIlVwZGF0aW5nIGdvYWwgdGFyZ2V0cy4uLi5cbiIKbXNnc3RyICJBY3R1YWxpemFuZG8gbG9zIG9iamV0aXZvcyBmaW5hbGVzLi4uLlxuIgoKIzogbWFpbi5jOjIyMjIKbXNnaWQgIndhcm5pbmc6ICBDbG9jayBza2V3IGRldGVjdGVkLiAgWW91ciBidWlsZCBtYXkgYmUgaW5jb21wbGV0ZS4iCm1zZ3N0ciAiIgoiYXRlbmNp8246IFNlIGhhIGRldGVjdGFkbyB1bmEgZGVzdmlhY2nzbiBlbiBlbCByZWxvai4gTGEgY29uc3RydWNjafNuIHBvZHLtYSAiCiJlc3RhciBpbmNvbXBsZXRhLiIKCiMgv1kgTW9kbyBkZSBlbXBsZW8/IHN2CiMgU295IG1lZGlvIGJlc3RpYS4gRGViZXLtYSBoYWNlcmxvIGF1dG9t4XRpY28uIG1tCiMgInRhcmdldCIgZXMgIm9iamV0aXZvIiwgbm8gIm9iamV0aXZvcyIuIEbtamF0ZSBxdWUgbGxldmEgcHVudG9zCiMgc3VzcGVuc2l2b3MsIHBlcm1pdGllbmRvIGFz7SB2YXJpb3Mgb2JqZXRpdm9zLiBzdgojIE9rLiBtbQojOiBtYWluLmM6MjM4MwojLCBjLWZvcm1hdAptc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBbdGFyZ2V0XSAuLi5cbiIKbXNnc3RyICJNb2RvIGRlIGVtcGxlbzogJXMgW29wY2lvbmVzXSBbb2JqZXRpdm9dIC4uLlxuIgoKIzogbWFpbi5jOjIzODkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiVGhpcyBwcm9ncmFtIGJ1aWx0IGZvciAlc1xuIgptc2dzdHIgIiIKIlxuIgoiRXN0ZSBwcm9ncmFtYSBmdWUgY29uc3RydWlkbyBwYXJhICVzXG4iCgojOiBtYWluLmM6MjM5MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJUaGlzIHByb2dyYW0gYnVpbHQgZm9yICVzICglcylcbiIKbXNnc3RyICIiCiJcbiIKIkVzdGUgcHJvZ3JhbWEgY29uc3RydWlkbyBwYXJhICVzICglcylcbiIKCiM6IG1haW4uYzoyMzk0CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZXBvcnQgYnVncyB0byA8YnVnLW1ha2VAZ251Lm9yZz5cbiIKbXNnc3RyICJJbmZvcm1lIHNvYnJlIGxvcyBlcnJvcmVzIGEgPGJ1Zy1tYWtlQGdudS5vcmc+XG4iCgojIE1lIGNvbWVy7WEgZWwgImRlIiBkZSAicmVxdWllcmUgZGUiIHN2CiMgT2suIG1tCiM6IG1haW4uYzoyNDY2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ0aGUgYC0lYycgb3B0aW9uIHJlcXVpcmVzIGEgbm9uLWVtcHR5IHN0cmluZyBhcmd1bWVudCIKbXNnc3RyICJsYSBvcGNp824gYC0lYycgcmVxdWllcmUgdW4gYXJndW1lbnRvIG5vLXZhY+1vIGRlIHRpcG8gY2FkZW5hIgoKIyBNZSBjb21lcu1hIGVsICJkZSIgZGUgInJlcXVpZXJlIGRlIiBzdgojIE9rLiBtbQojOiBtYWluLmM6MjUxOAojLCBjLWZvcm1hdAptc2dpZCAidGhlIGAtJWMnIG9wdGlvbiByZXF1aXJlcyBhIHBvc2l0aXZlIGludGVncmFsIGFyZ3VtZW50Igptc2dzdHIgImxhIG9wY2nzbiBgLSVjJyByZXF1aWVyZSB1biBhcmd1bWVudG8gcG9zaXRpdm8geSBlbnRlcm8iCgojIERlIGVzdG8gaGFibGFyZW1vcyBvdHJvIGTtYS4gc3YKIyBTaS4gRXMgYmFzdGFudGUgY29tcGxpY2Fkby4gbW0KIzogbWFpbi5jOjI5NDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiVzVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLlxuIgoiJXNUaGVyZSBpcyBOTyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBXG4iCiIlc1BBUlRJQ1VMQVIgUFVSUE9TRS5cbiIKbXNnc3RyICIiCiIlc0VzdGUgZXMgc29mdHdhcmUgbGlicmU7IGNvbnN1bHRlIGVuIGVsIGPzZGlnbyBmdWVudGUgbGFzIGNvbmRpY2lvbmVzIGRlICIKImNvcGlhLlxuIgoiJXNOTyBoYXkgZ2FyYW507WE7IG5pIHNpcXVpZXJhIHBhcmEgTUVSQ0FOVElCSUxJREFEIG8gRUwgQ1VNUExJTUlFTlRPIERFXG4iCiIlc0FMR9pOIFBST1DTU0lUTyBQQVJUSUNVTEFSLlxuIgoKIzogbWFpbi5jOjI5NDgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiJXNUaGlzIHByb2dyYW0gYnVpbHQgZm9yICVzXG4iCm1zZ3N0ciAiIgoiXG4iCiIgJXNFc3RlIHByb2dyYW1hIGZ1ZSBjb25zdHJ1aWRvIHBhcmEgJXNcbiIKCiM6IG1haW4uYzoyOTUwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiVzVGhpcyBwcm9ncmFtIGJ1aWx0IGZvciAlcyAoJXMpXG4iCm1zZ3N0ciAiIgoiXG4iCiIlc0VzdGUgcHJvZ3JhbWEgZnVlIGNvbnN0cnVpZG8gcGFyYSAlcyAoJXMpXG4iCgojOiBtYWluLmM6Mjk2OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIjIE1ha2UgZGF0YSBiYXNlLCBwcmludGVkIG9uICVzIgptc2dzdHIgIiIKIlxuIgoiIyBCYXNlIGRlIGRhdG9zIGRlbCBNYWtlLCBtb3N0cmFkYSBlbiAlcyIKCiMgbWFrZSAtPiBNYWtlLiBzdgojIE9rLiBtbQojIFBvcnF16SAnZGVsJywgbyBwb25lcyAnZGVsIHByb2dyYW1hJyBNYWtlIG8gcG9uZXMKIyAnZGUgTWFrZScgZW0rCiMgT2suIG1tCiM6IG1haW4uYzoyOTc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiMgRmluaXNoZWQgTWFrZSBkYXRhIGJhc2Ugb24gJXNcbiIKbXNnc3RyICIiCiJcbiIKIiMgU2UgdGVybWluYSBsYSBiYXNlIGRlIGRhdG9zIGRlIE1ha2UgZW4gJXNcbiIKCiM6IG1haW4uYzozMTAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogRW50ZXJpbmcgYW4gdW5rbm93biBkaXJlY3RvcnlcbiIKbXNnc3RyICIlczogc2UgaW5ncmVzYSBhIHVuIGRpcmVjdG9yaW8gZGVzY29ub2NpZG9cbiIKCiM6IG1haW4uYzozMTAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogTGVhdmluZyBhbiB1bmtub3duIGRpcmVjdG9yeVxuIgptc2dzdHIgIiVzOiBzZSBzYWxlIGRlbCBkaXJlY3RvcmlvIGRlc2Nvbm9jaWRvXG4iCgojIFByb2JhYmxlbWVudGUgc2VhIGFxde0gZG9uZGUgaGF5YSBxdWUgcG9uZXJsZSBlbCAiZWwiIHBhcmEgcXVlICJFbnRlcmluZyIKIyBjb25jdWVyZGUgYmllbiBjb24gZXN0YSBmcmFzZSB5IGNvbiBsYSBhbnRlcmlvciBzaW11bHThbmVhbWVudGUuIHN2CiMgTm8uIFlhIHJldmlz6SBlbCBmdWVudGUgeSB0cmFuc2NyaWJvIGVsIHRyb3pvIHBlcnRpbmVudGU6CiMgIGNoYXIgKm1lc3NhZ2UgPSBlbnRlcmluZyA/ICJFbnRlcmluZyIgOiAiTGVhdmluZyI7CiMgIGlmIChtYWtlbGV2ZWwgPT0gMCkKIyAgICBwcmludGYgKCIlczogJXMgIiwgcHJvZ3JhbSwgbWVzc2FnZSk7CiMgIGVsc2UKIyAgICBwcmludGYgKCIlc1sldV06ICVzICIsIHByb2dyYW0sIG1ha2VsZXZlbCwgbWVzc2FnZSk7CiMgQ29tbyBub3RhcuFzIGxvIGRlbCBkaXJlY3RvcmlvIHZhIGVuIG90cm8gbGFkby4KIzogbWFpbi5jOjMxMDYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBFbnRlcmluZyBkaXJlY3RvcnkgYCVzJ1xuIgptc2dzdHIgIiVzOiBzZSBpbmdyZXNhIGFsIGRpcmVjdG9yaW8gYCVzJ1xuIgoKIyBQcm9iYWJsZW1lbnRlIHNlYSBhcXXtIGRvbmRlIGhheWEgcXVlIHBvbmVybGUgZWwgImVsIiBwYXJhIHF1ZSAiRW50ZXJpbmciCiMgY29uY3VlcmRlIGJpZW4gY29uIGVzdGEgZnJhc2UgeSBjb24gbGEgYW50ZXJpb3Igc2ltdWx04W5lYW1lbnRlLiBzdgojIE5vLiBZYSByZXZpc+kgZWwgZnVlbnRlIHkgdHJhbnNjcmlibyBlbCB0cm96byBwZXJ0aW5lbnRlOgojICBjaGFyICptZXNzYWdlID0gZW50ZXJpbmcgPyAiRW50ZXJpbmciIDogIkxlYXZpbmciOwojICBpZiAobWFrZWxldmVsID09IDApCiMgICAgcHJpbnRmICgiJXM6ICVzICIsIHByb2dyYW0sIG1lc3NhZ2UpOwojICBlbHNlCiMgICAgcHJpbnRmICgiJXNbJXVdOiAlcyAiLCBwcm9ncmFtLCBtYWtlbGV2ZWwsIG1lc3NhZ2UpOwojIENvbW8gbm90YXLhcyBsbyBkZWwgZGlyZWN0b3JpbyB2YSBlbiBvdHJvIGxhZG8uCiM6IG1haW4uYzozMTA5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogTGVhdmluZyBkaXJlY3RvcnkgYCVzJ1xuIgptc2dzdHIgIiVzOiBzZSBzYWxlIGRlbCBkaXJlY3RvcmlvIGAlcydcbiIKCiM6IG1haW4uYzozMTE0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlc1sldV06IEVudGVyaW5nIGFuIHVua25vd24gZGlyZWN0b3J5XG4iCm1zZ3N0ciAiJXNbJXVdOiBzZSBpbmdyZXNhIGEgdW4gZGlyZWN0b3JpbyBkZXNjb25vY2lkb1xuIgoKIzogbWFpbi5jOjMxMTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzWyV1XTogTGVhdmluZyBhbiB1bmtub3duIGRpcmVjdG9yeVxuIgptc2dzdHIgIiVzWyV1XTogc2Ugc2FsZSBkZWwgZGlyZWN0b3JpbyBkZXNjb25vY2lkb1xuIgoKIyBQcm9iYWJsZW1lbnRlIHNlYSBhcXXtIGRvbmRlIGhheWEgcXVlIHBvbmVybGUgZWwgImVsIiBwYXJhIHF1ZSAiRW50ZXJpbmciCiMgY29uY3VlcmRlIGJpZW4gY29uIGVzdGEgZnJhc2UgeSBjb24gbGEgYW50ZXJpb3Igc2ltdWx04W5lYW1lbnRlLiBzdgojIE5vLiBZYSByZXZpc+kgZWwgZnVlbnRlIHkgdHJhbnNjcmlibyBlbCB0cm96byBwZXJ0aW5lbnRlOgojICBjaGFyICptZXNzYWdlID0gZW50ZXJpbmcgPyAiRW50ZXJpbmciIDogIkxlYXZpbmciOwojICBpZiAobWFrZWxldmVsID09IDApCiMgICAgcHJpbnRmICgiJXM6ICVzICIsIHByb2dyYW0sIG1lc3NhZ2UpOwojICBlbHNlCiMgICAgcHJpbnRmICgiJXNbJXVdOiAlcyAiLCBwcm9ncmFtLCBtYWtlbGV2ZWwsIG1lc3NhZ2UpOwojIENvbW8gbm90YXLhcyBsbyBkZWwgZGlyZWN0b3JpbyB2YSBlbiBvdHJvIGxhZG8uCiM6IG1haW4uYzozMTIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlc1sldV06IEVudGVyaW5nIGRpcmVjdG9yeSBgJXMnXG4iCm1zZ3N0ciAiJXNbJXVdOiBzZSBpbmdyZXNhIGFsIGRpcmVjdG9yaW8gYCVzJ1xuIgoKIyBQcm9iYWJsZW1lbnRlIHNlYSBhcXXtIGRvbmRlIGhheWEgcXVlIHBvbmVybGUgZWwgImVsIiBwYXJhIHF1ZSAiRW50ZXJpbmciCiMgY29uY3VlcmRlIGJpZW4gY29uIGVzdGEgZnJhc2UgeSBjb24gbGEgYW50ZXJpb3Igc2ltdWx04W5lYW1lbnRlLiBzdgojIE5vLiBZYSByZXZpc+kgZWwgZnVlbnRlIHkgdHJhbnNjcmlibyBlbCB0cm96byBwZXJ0aW5lbnRlOgojICBjaGFyICptZXNzYWdlID0gZW50ZXJpbmcgPyAiRW50ZXJpbmciIDogIkxlYXZpbmciOwojICBpZiAobWFrZWxldmVsID09IDApCiMgICAgcHJpbnRmICgiJXM6ICVzICIsIHByb2dyYW0sIG1lc3NhZ2UpOwojICBlbHNlCiMgICAgcHJpbnRmICgiJXNbJXVdOiAlcyAiLCBwcm9ncmFtLCBtYWtlbGV2ZWwsIG1lc3NhZ2UpOwojIENvbW8gbm90YXLhcyBsbyBkZWwgZGlyZWN0b3JpbyB2YSBlbiBvdHJvIGxhZG8uCiM6IG1haW4uYzozMTI0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlc1sldV06IExlYXZpbmcgZGlyZWN0b3J5IGAlcydcbiIKbXNnc3RyICIlc1sldV06IHNlIHNhbGUgZGVsIGRpcmVjdG9yaW8gYCVzJ1xuIgoKIyBJbnRlcnJ1bXBpZG8gKD8pLiBzdgojIE1tZ21oLi4uIEVsIG1lbnNhamUgaW5kaWNhIHF1ZSBodWJvIGFsZ/puIGVycm9yIG11eSBncmF2ZSB5IHF1ZSBwb3IKIyBlc28gc2UgZGV0aWVuZSBlbCBtYWtlLiBQcm9iYWJsZW1lbnRlIHNlYSBtZWpvciBkZWphcmxvIGFz7S4gbW0KIzogbWlzYy5jOjI4NQptc2dpZCAiLiAgU3RvcC5cbiIKbXNnc3RyICIuICBBbHRvLlxuIgoKIzogbWlzYy5jOjMwNgojLCBjLWZvcm1hdAptc2dpZCAiVW5rbm93biBlcnJvciAlZCIKbXNnc3RyICJFcnJvciBkZXNjb25vY2lkbyAlZCIKCiM6IG1pc2MuYzozMTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzJXM6ICVzIgptc2dzdHIgIiVzJXM6ICVzIgoKIzogbWlzYy5jOjMyNAojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzIgptc2dzdHIgIiVzOiAlcyIKCiMgUHJvcG9uZ28gZWxpbWluYXIgbGEgcGFsYWJyYSB2aXJ0dWFsLiBzdgojIFBlcm8gc2kgZXMgbXV5IGJvbml0YS4gOikgQnVlbm8uIENvbW8geWEgcGxhdGljYW1vcyBwdWVkZSBxdWUgc2VhCiMgdW5hIGJ1ZW5hIGlkZWEgcGVybywgcG9yIGFob3JhIGxhIGRlamFy7WEuIG1tCiM6IG1pc2MuYzozNDQgbWlzYy5jOjM1OSBtaXNjLmM6Mzc2IHJlYWQuYzozMTI3Cm1zZ2lkICJ2aXJ0dWFsIG1lbW9yeSBleGhhdXN0ZWQiCm1zZ3N0ciAibWVtb3JpYSB2aXJ0dWFsIGFnb3RhZGEiCgojOiBtaXNjLmM6NjQ2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdXNlciAlbHUgKHJlYWwgJWx1KSwgZ3JvdXAgJWx1IChyZWFsICVsdSlcbiIKbXNnc3RyICIlczogdXN1YXJpbyAlbHUgKHJlYWwgJWx1KSwgZ3J1cG8gJWx1IChyZWFsICVsdSlcbiIKCiM6IG1pc2MuYzo2NjcKbXNnaWQgIkluaXRpYWxpemVkIGFjY2VzcyIKbXNnc3RyICJBY2Nlc28gaW5pY2lhbGl6YWRvIgoKIzogbWlzYy5jOjc0Ngptc2dpZCAiVXNlciBhY2Nlc3MiCm1zZ3N0ciAiQWNjZXNvIGRlbCB1c3VhcmlvIgoKIzogbWlzYy5jOjc5NAptc2dpZCAiTWFrZSBhY2Nlc3MiCm1zZ3N0ciAiQWNjZXNvIGRlbCBNYWtlIgoKIzogbWlzYy5jOjgyOAptc2dpZCAiQ2hpbGQgYWNjZXNzIgptc2dzdHIgIkFjY2VzbyBkZWwgaGlqbyIKCiMgUHJvYmFibGVtZW50ZSBzZWEgYXF17SBkb25kZSBoYXlhIHF1ZSBwb25lcmxlIGVsICJlbCIgcGFyYSBxdWUgIkVudGVyaW5nIgojIGNvbmN1ZXJkZSBiaWVuIGNvbiBlc3RhIGZyYXNlIHkgY29uIGxhIGFudGVyaW9yIHNpbXVsdOFuZWFtZW50ZS4gc3YKIyBOby4gWWEgcmV2aXPpIGVsIGZ1ZW50ZSB5IHRyYW5zY3JpYm8gZWwgdHJvem8gcGVydGluZW50ZToKIyAgY2hhciAqbWVzc2FnZSA9IGVudGVyaW5nID8gIkVudGVyaW5nIiA6ICJMZWF2aW5nIjsKIyAgaWYgKG1ha2VsZXZlbCA9PSAwKQojICAgIHByaW50ZiAoIiVzOiAlcyAiLCBwcm9ncmFtLCBtZXNzYWdlKTsKIyAgZWxzZQojICAgIHByaW50ZiAoIiVzWyV1XTogJXMgIiwgcHJvZ3JhbSwgbWFrZWxldmVsLCBtZXNzYWdlKTsKIyBDb21vIG5vdGFy4XMgbG8gZGVsIGRpcmVjdG9yaW8gdmEgZW4gb3RybyBsYWRvLgojOiBtaXNjLmM6ODkyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ3cml0ZSBlcnJvcjogJXMiCm1zZ3N0ciAiZXJyb3IgYWwgZXNjcmliaXI6ICVzIgoKIzogbWlzYy5jOjg5NAptc2dpZCAid3JpdGUgZXJyb3IiCm1zZ3N0ciAiZXJyb3IgYWwgZXNjcmliaXIiCgojIFN1Z2VyZW5jaWE6IGVsaW1pbmFyIGxhIHBhbGFicmEgImFyY2hpdm8iLiBzdgojIE9rLiBNZWpvcmEuIG1tCiM6IHJlYWQuYzoxNjAKbXNnaWQgIlJlYWRpbmcgbWFrZWZpbGVzLi4uXG4iCm1zZ3N0ciAiTGV5ZW5kbyBtYWtlZmlsZXMuLi5cbiIKCiM6IHJlYWQuYzozMTUKIywgYy1mb3JtYXQKbXNnaWQgIlJlYWRpbmcgbWFrZWZpbGUgYCVzJyIKbXNnc3RyICJMZXllbmRvIG1ha2VmaWxlIGAlcyciCgojOiByZWFkLmM6MzE3CiMsIGMtZm9ybWF0Cm1zZ2lkICIgKG5vIGRlZmF1bHQgZ29hbCkiCm1zZ3N0ciAiIChubyBoYXkgb2JqZXRpdm8gcG9yIGRlZmVjdG8pIgoKIzogcmVhZC5jOjMxOQojLCBjLWZvcm1hdAptc2dpZCAiIChzZWFyY2ggcGF0aCkiCm1zZ3N0ciAiIChydXRhIGRlIGL6c3F1ZWRhKSIKCiM6IHJlYWQuYzozMjEKIywgYy1mb3JtYXQKbXNnaWQgIiAoZG9uJ3QgY2FyZSkiCm1zZ3N0ciAiIChubyBpbXBvcnRhKSIKCiM6IHJlYWQuYzozMjMKIywgYy1mb3JtYXQKbXNnaWQgIiAobm8gfiBleHBhbnNpb24pIgptc2dzdHIgIiAobm8gaGF5IGV4cGFuc2nzbiBkZWwgfikiCgojICMjIFNpbnRheGlzIG5vIGxsZXZhYmEgdGlsZGUuCiMgT2suIG1tCiM6IHJlYWQuYzo2MjMKbXNnaWQgImludmFsaWQgc3ludGF4IGluIGNvbmRpdGlvbmFsIgptc2dzdHIgInNpbnRheGlzIG5vIHbhbGlkYSBlbiBjb25kaWNpb25hbCIKCiM6IHJlYWQuYzo2MzMKbXNnaWQgImV4dHJhbmVvdXMgYGVuZGVmJyIKbXNnc3RyICJlbCBgZW5kZWYnIGVzIGlycmVsZXZhbnRlIG8gZXN04SBtYWwgY29sb2NhZG8iCgojOiByZWFkLmM6NjQ1IHJlYWQuYzo2NzMgdmFyaWFibGUuYzoxMzE2Cm1zZ2lkICJlbXB0eSB2YXJpYWJsZSBuYW1lIgptc2dzdHIgIm5vbWJyZSBkZSB2YXJpYWJsZSB2YWPtbyIKCiM6IHJlYWQuYzo2NjIKbXNnaWQgImVtcHR5IGBvdmVycmlkZScgZGlyZWN0aXZlIgptc2dzdHIgImluc3RydWNjafNuIGBvdmVycmlkZScgdmFj7WEiCgojIENyZW8gcXVlIHRlbmRyZW1vcyB1biBwcm9ibGVtYSBjb24gaW5zdHJ1Y2Np824sIGNvbWFuZG8KIyAsIHByb2dyYW1hIHkgZGlyZWN0aXZhIC4gRXN04SBjbGFybyBxdWUgYXF17SBlcyBkaXJlY3RpdmEgZW0rCiMgT2ssIHBlcm8gbm8gZGVqYSBkZSBzb25hciBhIFJvYm9Db3AuIEEgdmVyIHF1ZSB0ZSBwYXJlY2UgY29tbyBxdWVk8y4gbW0KIzogcmVhZC5jOjY4Nwptc2dpZCAiaW52YWxpZCBgb3ZlcnJpZGUnIGRpcmVjdGl2ZSIKbXNnc3RyICJkaXJlY3RpdmEgZGUgc29icmVwb3NpY2nzbiBgb3ZlcnJpZGUnIGluduFsaWRhIgoKIzogcmVhZC5jOjg1NAptc2dpZCAiY29tbWFuZHMgY29tbWVuY2UgYmVmb3JlIGZpcnN0IHRhcmdldCIKbXNnc3RyICJsYXMgaW5zdHJ1Y2Npb25lcyBjb21lbnphcm9uIGFudGVzIGRlbCBwcmltZXIgb2JqZXRpdm8iCgojICJmYWx0YSB1bmEgcmVnbGEiLiBzdgojIChlcyBxdWUgZXh0cmF2aWFkYSBtZSBzdWVuYSBtdXkgcmFybykuCiMgQ2llcnRvIHBhcmVjaWVyYSBxdWUgc2UgcGVyZGnzIGRlbnRybyBkZSBhbGf6biBjaXJjdWl0by4gbW0KIyBGYWx0YSAnbGEnIHJlZ2xhIGVtKwojIE5vIG5vIGVzIGxhIHJlZ2xhIHNpbm8gdW5hIHJlZ2xhIHB1ZXMgcHVlZGUgc2VyIGN1YWxxdWllcmEgZGUgZWxsYXMuIG1tCiM6IHJlYWQuYzo5MDUKbXNnaWQgIm1pc3NpbmcgcnVsZSBiZWZvcmUgY29tbWFuZHMiCm1zZ3N0ciAiZmFsdGEgdW5hIHJlZ2xhIGFudGVzIGRlIGxhcyBpbnN0cnVjY2lvbmVzIgoKIzogcmVhZC5jOjk5MgojLCBjLWZvcm1hdAptc2dpZCAibWlzc2luZyBzZXBhcmF0b3IlcyIKbXNnc3RyICJmYWx0YSB1biBzZXBhcmFkb3IlcyIKCiM6IHJlYWQuYzo5OTQKbXNnaWQgIiAoZGlkIHlvdSBtZWFuIFRBQiBpbnN0ZWFkIG9mIDggc3BhY2VzPykiCm1zZ3N0ciAiICi/UXVpZXJlIGRlY2lyIFRBQiBlbiB2ZXogZGUgOCBlc3BhY2lvcz8pIgoKIzogcmVhZC5jOjExNTIKbXNnaWQgIm1pc3NpbmcgdGFyZ2V0IHBhdHRlcm4iCm1zZ3N0ciAiZmFsdGEgdW4gcGF0cvNuIGRlIG9iamV0aXZvcyIKCiM6IHJlYWQuYzoxMTU0Cm1zZ2lkICJtdWx0aXBsZSB0YXJnZXQgcGF0dGVybnMiCm1zZ3N0ciAiaGF5IHZhcmlvcyBwYXRyb25lcyBkZSBvYmpldGl2b3MiCgojOiByZWFkLmM6MTE1OAojLCBjLWZvcm1hdAptc2dpZCAidGFyZ2V0IHBhdHRlcm4gY29udGFpbnMgbm8gYCUlJyIKbXNnc3RyICJlbCBwYXRy824gZGUgb2JqZXRpdm8gbm8gY29udGllbmUgYCUlJyIKCiM6IHJlYWQuYzoxMjg2Cm1zZ2lkICJtaXNzaW5nIGBlbmRpZiciCm1zZ3N0ciAiZmFsdGEgdW4gYGVuZGlmJyIKCiM6IHJlYWQuYzoxMzc3Cm1zZ2lkICJFeHRyYW5lb3VzIHRleHQgYWZ0ZXIgYGVuZGVmJyBkaXJlY3RpdmUiCm1zZ3N0ciAiIgoiSGF5IHVuIHRleHRvIGlycmVsZXZhbnRlIG8gbWFsIGNvbG9jYWRvIGRlc3B16XMgZGUgbGEgaW5zdHJ1Y2Np824gYGVuZGVmJyIKCiM6IHJlYWQuYzoxNDExCm1zZ2lkICJtaXNzaW5nIGBlbmRlZicsIHVudGVybWluYXRlZCBgZGVmaW5lJyIKbXNnc3RyICJmYWx0YSB1biBgZW5kZWYnLCBubyBzZSB0ZXJtaW7zIHVuIGBkZWZpbmUnIgoKIzogcmVhZC5jOjE0NTQKIywgYy1mb3JtYXQKbXNnaWQgIkV4dHJhbmVvdXMgdGV4dCBhZnRlciBgJXMnIGRpcmVjdGl2ZSIKbXNnc3RyICJUZXh0byBpcnJlbGV2YW50ZSBvIG1hbCBjb2xvY2FkbyBkZXNwdelzIGRlIGxhIGluc3RydWNjafNuIGAlcyciCgojOiByZWFkLmM6MTQ2MyByZWFkLmM6MTQ3NwojLCBjLWZvcm1hdAptc2dpZCAiZXh0cmFuZW91cyBgJXMnIgptc2dzdHIgImlycmVsZXZhbnRlIG8gbWFsIGNvbG9jYWRvIGAlcyciCgojOiByZWFkLmM6MTQ4Mgptc2dpZCAib25seSBvbmUgYGVsc2UnIHBlciBjb25kaXRpb25hbCIKbXNnc3RyICJz82xvIHNlIGFkbWl0ZSB1biBgZWxzZScgcG9yIGNvbmRpY2lvbmFsIgoKIzogcmVhZC5jOjE4MjQKbXNnaWQgIk1hbGZvcm1lZCB0YXJnZXQtc3BlY2lmaWMgdmFyaWFibGUgZGVmaW5pdGlvbiIKbXNnc3RyICIiCiJMYSBkZWZpbmljafNuIGRlIGxhcyB2YXJpYWJsZXMgZXNwZWPtZmljYXMgYWwgYmxhbmNvIGVzdOEgbWFsIGNvbnN0cnVpZGEiCgojOiByZWFkLmM6MTg4Ngptc2dpZCAicHJlcmVxdWlzaXRlcyBjYW5ub3QgYmUgZGVmaW5lZCBpbiBjb21tYW5kIHNjcmlwdHMiCm1zZ3N0ciAibG9zIHByZXJlcXVpc2l0b3Mgbm8gcHVlZGVuIHNlciBkZWZpbmlkb3MgcG9yIGd1aW9uZXMgZGUgaW5zdHJ1Y2Npb25lcyIKCiM6IHJlYWQuYzoxOTIxCm1zZ2lkICJtaXhlZCBpbXBsaWNpdCBhbmQgc3RhdGljIHBhdHRlcm4gcnVsZXMiCm1zZ3N0ciAibGFzIHJlZ2xhcyBpbXBs7WNpdGFzIHkgbGFzIGRlIHBhdHLzbiBlc3ThdGljbyBlc3ThbiBtZXpjbGFkYXMiCgojIFkgJ2xhcycgbm9ybWFsZXMgIGVtKwojIE9rLiBtbQojOiByZWFkLmM6MTkyNAptc2dpZCAibWl4ZWQgaW1wbGljaXQgYW5kIG5vcm1hbCBydWxlcyIKbXNnc3RyICJsYXMgcmVnbGFzIGltcGztY2l0YXMgeSBsYXMgbm9ybWFsZXMgZXN04W4gbWV6Y2xhZGFzIgoKIzogcmVhZC5jOjE5NTQKIywgYy1mb3JtYXQKbXNnaWQgInRhcmdldCBgJXMnIGRvZXNuJ3QgbWF0Y2ggdGhlIHRhcmdldCBwYXR0ZXJuIgptc2dzdHIgImVsIGFyY2hpdm8gZGUgb2JqZXRpdm9zIGAlcycgbm8gY29pbmNpZGUgY29uIGVsIHBhdHLzbiBkZSBvYmpldGl2b3MiCgojOiByZWFkLmM6MTk3MyByZWFkLmM6MjA3NAojLCBjLWZvcm1hdAptc2dpZCAidGFyZ2V0IGZpbGUgYCVzJyBoYXMgYm90aCA6IGFuZCA6OiBlbnRyaWVzIgptc2dzdHIgImVsIGFyY2hpdm8gZGUgb2JqZXRpdm9zIGAlcycgdGllbmUgbO1uZWFzIGNvbiA6IHkgOjoiCgojIENhbWJpYXLtYSBnaXZlbiBwb3IgJ3Byb3BvcmNpb27zJyBvICdpbmRpY/MnIGVtKwojIE9rLiBtbQojOiByZWFkLmM6MTk3OQojLCBjLWZvcm1hdAptc2dpZCAidGFyZ2V0IGAlcycgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgcnVsZS4iCm1zZ3N0ciAiZWwgb2JqZXRpdm8gYCVzJyBzZSBwcm9wb3JjaW9u8yBt4XMgZGUgdW5hIHZleiBlbiBsYSBtaXNtYSByZWdsYS4iCgojIE5vIG1lIGd1c3RhIGVzdGEgdHJhZHVjY2nzbiBkZSBvdmVycmlkZS4gTWlyYSBhIHZlcgojIHNpIGVuY2FqYSBtZWpvciBhbGd1bmEgZGUgbGFzIGRvcyBxdWUgc2UgcHJvcG9uZW4gYXJyaWJhCiMgZW0rCiMgQXVucXVlIG5vIG1lIGFjYWJhIGRlIGNvbnZlbmNlciwgcXVlIHRlIHBhcmVjZSDpc3RvPyBtbQojOiByZWFkLmM6MTk4OAojLCBjLWZvcm1hdAptc2dpZCAid2FybmluZzogb3ZlcnJpZGluZyBjb21tYW5kcyBmb3IgdGFyZ2V0IGAlcyciCm1zZ3N0ciAiYXRlbmNp8246IHNlIGltcG9uZW4gY29tYW5kb3MgcGFyYSBlbCBvYmpldGl2byBgJXMnIgoKIyBPam8gY29uIGlnbm9yYS4gc3YKIzogcmVhZC5jOjE5OTEKIywgYy1mb3JtYXQKbXNnaWQgIndhcm5pbmc6IGlnbm9yaW5nIG9sZCBjb21tYW5kcyBmb3IgdGFyZ2V0IGAlcyciCm1zZ3N0ciAiYXRlbmNp8246IHNlIGlnbm9yYW4gbGFzIGluc3RydWNjaW9uZXMgdmllamFzIHBhcmEgZWwgb2JqZXRpdm8gYCVzJyIKCiM6IHJlYWQuYzoyNTc1Cm1zZ2lkICJ3YXJuaW5nOiBOVUwgY2hhcmFjdGVyIHNlZW47IHJlc3Qgb2YgbGluZSBpZ25vcmVkIgptc2dzdHIgImF0ZW5jafNuOiBoYXkgdW4gY2Fy4WN0ZXIgTlVMOyBzZSBpZ25vcmEgZWwgcmVzdG8gZGUgbGEgbO1uZWEiCgojOiByZW1ha2UuYzoyMjkKIywgYy1mb3JtYXQKbXNnaWQgIk5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgYCVzJy4iCm1zZ3N0ciAiTm8gc2UgaGFjZSBuYWRhIHBhcmEgYCVzJy4iCgojOiByZW1ha2UuYzoyMzAKIywgYy1mb3JtYXQKbXNnaWQgImAlcycgaXMgdXAgdG8gZGF0ZS4iCm1zZ3N0ciAiYCVzJyBlc3ThIGFjdHVhbGl6YWRvLiIKCiM6IHJlbWFrZS5jOjI5NwojLCBjLWZvcm1hdAptc2dpZCAiUHJ1bmluZyBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgY29udGlu+mEgYWN0dWFsaXphbmRvIGVsIGFyY2hpdm8gYCVzJy5cbiIKCiMgU3VnZXJlbmNpYTogTm8gaGF5IG5pbmd1bmEgcmVnbGEuLi4gc3YKIyBDb21vIHVuYSBubyBoYXkgbmluZ3VuYS4gbW0KIzogcmVtYWtlLmM6MzQ5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlc05vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYCVzJyVzIgptc2dzdHIgIiVzTm8gaGF5IG5pbmd1bmEgcmVnbGEgcGFyYSBjb25zdHJ1aXIgZWwgb2JqZXRpdm8gYCVzJyVzIgoKIzogcmVtYWtlLmM6MzUxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlc05vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYCVzJywgbmVlZGVkIGJ5IGAlcyclcyIKbXNnc3RyICIiCiIlc05vIGhheSBuaW5ndW5hIHJlZ2xhIHBhcmEgY29uc3RydWlyIGVsIG9iamV0aXZvIGAlcycsIG5lY2VzYXJpbyBwYXJhIGAlcyclcyIKCiMgv3RhcmdldCBmaWxlIG5vIHNlcu1hICJhcmNoaXZvIG9iamV0aXZvIj8gc3YKIyBMaXRlcmFsbWVudGUgc2kgcGVybyB1biBhcmNoaXZvIG1ha2UgcHVlZGUgdGVuZXIgdmFyaW9zIG9iamV0aXZvcy4gbW0KIyBNYXggLCBwZXJvIG5vIGV4aXN0ZSB1biBhcmNoaXZvIGRlIG9iamV0aXZvcy4gRXN0YSBs7W5lYSwgcXVlIGVzCiMgZGUgbGFzIHF1ZSBhcGFyZWNlbiBhbCBoYWNlciB1biBtYWtlIGNvbiBsYSBvcGNp824gLWQgKCBkZWJ1ZyApCiMgc2UgcmVmaWVyZSBhIGxvIHF1ZSBkaWNlIFNhbnRpYWdvLCBlcyBkZWNpciwgJ2FyY2hpdm8gb2JqZXRpdm8nICBlbSsKIyBPayBjcmVvIHF1ZSB0aWVuZW4gcmF6824uIG1tCiM6IHJlbWFrZS5jOjM3OAojLCBjLWZvcm1hdAptc2dpZCAiQ29uc2lkZXJpbmcgdGFyZ2V0IGZpbGUgYCVzJy5cbiIKbXNnc3RyICJTZSBjb25zaWRlcmEgZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIyBVbiBjb21wYfFlcm8gbe1vIGRpY2UgcXVlIHVuYSBidWVuYSByZWdsYSBlcyBwb25lciBzaWVtcHJlIHF1ZSBzZSBwdWVkYQojIHVuIG76bWVybyBwYXIgZGUgY29tYXMuCiMgRXMgZGVjaXI6ICJTZSBpbnRlbnTzLCBzaW4g6XhpdG8sIGFjdHVhbGl6YXIgLi4uIgojIG8gYmllbiAiU2UgaW50ZW508yBzaW4g6XhpdG8gYWN0dWFsaXphciAuLi4iCiMgv1F16SB0ZSBwYXJlY2U/IHN2CiMgQmllbiB5IHRpZW5lIHJhevNuLiBtbQojOiByZW1ha2UuYzozODUKIywgYy1mb3JtYXQKbXNnaWQgIlJlY2VudGx5IHRyaWVkIGFuZCBmYWlsZWQgdG8gdXBkYXRlIGZpbGUgYCVzJy5cbiIKbXNnc3RyICJTZSBpbnRlbnTzLCBzaW4g6XhpdG8sIGFjdHVhbGl6YXIgZWwgYXJjaGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NDAwCiMsIGMtZm9ybWF0Cm1zZ2lkICJGaWxlIGAlcycgd2FzIGNvbnNpZGVyZWQgYWxyZWFkeS5cbiIKbXNnc3RyICJFbCBhcmNoaXZvIGAlcycgeWEgZnVlIGNvbnNpZGVyYWRvLlxuIgoKIzogcmVtYWtlLmM6NDEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJTdGlsbCB1cGRhdGluZyBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgY29udGlu+mEgYWN0dWFsaXphbmRvIGVsIGFyY2hpdm8gYCVzJy5cbiIKCiM6IHJlbWFrZS5jOjQxMwojLCBjLWZvcm1hdAptc2dpZCAiRmluaXNoZWQgdXBkYXRpbmcgZmlsZSBgJXMnLlxuIgptc2dzdHIgIlNlIHRlcm1pbvMgZGUgYWN0dWFsaXphciBlbCBhcmNoaXZvIGAlcycuXG4iCgojOiByZW1ha2UuYzo0MzQKIywgYy1mb3JtYXQKbXNnaWQgIkZpbGUgYCVzJyBkb2VzIG5vdCBleGlzdC5cbiIKbXNnc3RyICJFbCBhcmNoaXZvIGAlcycgbm8gZXhpc3RlLlxuIgoKIzogcmVtYWtlLmM6NDQxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIqKiogV2FybmluZzogLkxPV19SRVNPTFVUSU9OX1RJTUUgZmlsZSBgJXMnIGhhcyBhIGhpZ2ggcmVzb2x1dGlvbiB0aW1lIHN0YW1wIgptc2dzdHIgIiIKIioqKiBBdGVuY2nzbjogZWwgYXJjaGl2byAuTE9XX1JFU09MVVRJT05fVElNRSBgJXMnIHRpZW5lIHVuYSByZXNvbHVjafNuICIKImRlbWFzaWFkbyBhbHRhIgoKIzogcmVtYWtlLmM6NDU0IHJlbWFrZS5jOjk2MgojLCBjLWZvcm1hdAptc2dpZCAiRm91bmQgYW4gaW1wbGljaXQgcnVsZSBmb3IgYCVzJy5cbiIKbXNnc3RyICJTZSBlbmNvbnRy8yB1bmEgcmVnbGEgaW1wbO1jaXRhIHBhcmEgYCVzJy5cbiIKCiMgU2UgaGEgZW5jb250cmFkbyBlbSsKIyBPaywgcGVybyBwcm9jdXJvIGV2aXRhciBjb21vIGEgbGEgbXVlcnRlIGxvcyBnZXJ1bmRpb3MuIG1tCiM6IHJlbWFrZS5jOjQ1NiByZW1ha2UuYzo5NjQKIywgYy1mb3JtYXQKbXNnaWQgIk5vIGltcGxpY2l0IHJ1bGUgZm91bmQgZm9yIGAlcycuXG4iCm1zZ3N0ciAiTm8gc2UgaGEgZW5jb250cmFkbyB1bmEgcmVnbGEgaW1wbO1jaXRhIHBhcmEgYCVzJy5cbiIKCiMgUG9yIGRlZmVjdG8sIGNvbW8gaGFjZXMgYXJyaWJhIGVtKwojIGVuIGVmZWN0bywgbW0KIzogcmVtYWtlLmM6NDYyIHJlbWFrZS5jOjk3MAojLCBjLWZvcm1hdAptc2dpZCAiVXNpbmcgZGVmYXVsdCBjb21tYW5kcyBmb3IgYCVzJy5cbiIKbXNnc3RyICJTZSB1dGlsaXphbiBsYXMgaW5zdHJ1Y2Npb25lcyBwb3IgZGVmZWN0byBwYXJhIGAlcycuXG4iCgojOiByZW1ha2UuYzo0ODQgcmVtYWtlLmM6OTk2CiMsIGMtZm9ybWF0Cm1zZ2lkICJDaXJjdWxhciAlcyA8LSAlcyBkZXBlbmRlbmN5IGRyb3BwZWQuIgptc2dzdHIgIlNlIGVsaW1pbmEgbGEgZGVwZW5kZW5jaWEgY2lyY3VsYXIgJXMgPC0gJXMuIgoKIyBMbyBtaXNtbyBkZSBhbnRlcyBjb24gInRhcmdldCBmaWxlIi4gc3YKIyBFc3RveSBkZSBhY3VlcmRvIGNvbiDpbCAoIHBvciB1bmEgdmV6IDspICkgZW0rCiMgT2suIG1tCiM6IHJlbWFrZS5jOjYwMQojLCBjLWZvcm1hdAptc2dpZCAiRmluaXNoZWQgcHJlcmVxdWlzaXRlcyBvZiB0YXJnZXQgZmlsZSBgJXMnLlxuIgptc2dzdHIgIlNlIHRlcm1pbmFyb24gbGFzIGRlcGVuZGVuY2lhcyBkZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NjA3CiMsIGMtZm9ybWF0Cm1zZ2lkICJUaGUgcHJlcmVxdWlzaXRlcyBvZiBgJXMnIGFyZSBiZWluZyBtYWRlLlxuIgptc2dzdHIgIlNlIGVzdOFuIGNvbnN0cnV5ZW5kbyBsYXMgZGVwZW5kZW5jaWFzIGRlIGAlcycuXG4iCgojIEdpdmUgdXAgbm8gZXMgZW5mb2NhciwgZXMgYWJhbmRvbmFyLCBvIGRlc2lzdGlyIGVtKwojIFNpLCBtZXTtIGxhIHBhdGEuIG1tCiM6IHJlbWFrZS5jOjYyMAojLCBjLWZvcm1hdAptc2dpZCAiR2l2aW5nIHVwIG9uIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgYWJhbmRvbmEgZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NjI1CiMsIGMtZm9ybWF0Cm1zZ2lkICJUYXJnZXQgYCVzJyBub3QgcmVtYWRlIGJlY2F1c2Ugb2YgZXJyb3JzLiIKbXNnc3RyICJEZWJpZG8gYSBsb3MgZXJyb3JlcywgZWwgb2JqZXRpdm8gYCVzJyBubyBzZSByZWNvbnN0cnV58y4iCgojOiByZW1ha2UuYzo2NzcKIywgYy1mb3JtYXQKbXNnaWQgIlByZXJlcXVpc2l0ZSBgJXMnIGlzIG9yZGVyLW9ubHkgZm9yIHRhcmdldCBgJXMnLlxuIgptc2dzdHIgIkVsIHByZXJlcXVpc2l0byBgJXMnIGVzIHBvc3RlcmlvciBhbCBvYmpldGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICJQcmVyZXF1aXNpdGUgYCVzJyBvZiB0YXJnZXQgYCVzJyBkb2VzIG5vdCBleGlzdC5cbiIKbXNnc3RyICJMYSBkZXBlbmRlbmNpYSBgJXMnIGRlbCBibGFuY28gYCVzJyBubyBleGlzdGUuXG4iCgojOiByZW1ha2UuYzo2ODcKIywgYy1mb3JtYXQKbXNnaWQgIlByZXJlcXVpc2l0ZSBgJXMnIGlzIG5ld2VyIHRoYW4gdGFyZ2V0IGAlcycuXG4iCm1zZ3N0ciAiTGEgZGVwZW5kZW5jaWEgYCVzJyBlcyBt4XMgcmVjaWVudGUgcXVlIGVsIG9iamV0aXZvIGAlcycuXG4iCgojOiByZW1ha2UuYzo2OTAKIywgYy1mb3JtYXQKbXNnaWQgIlByZXJlcXVpc2l0ZSBgJXMnIGlzIG9sZGVyIHRoYW4gdGFyZ2V0IGAlcycuXG4iCm1zZ3N0ciAiTGEgZGVwZW5kZW5jaWEgYCVzJyBlcyBwb3N0ZXJpb3IgYWwgb2JqZXRpdm8gYCVzJy5cbiIKCiMgQWhvcnJhIGVzcGFjaW8sIHkgcG9uICc6OicgIGVuIHZleiBkZSBlc28gOikgZW0rCiMgQnVlbm8sIG5vIGVzIG1hbGEgaWRlYS4gQSB2ZXIgc2kgdGUgZ3VzdGEgbG8gcXVlIHB1c2UuIG1tCiM6IHJlbWFrZS5jOjcwOAojLCBjLWZvcm1hdAptc2dpZCAiVGFyZ2V0IGAlcycgaXMgZG91YmxlLWNvbG9uIGFuZCBoYXMgbm8gcHJlcmVxdWlzaXRlcy5cbiIKbXNnc3RyICIiCiJFbCBvYmpldGl2byBgJXMnIGVzIGRlIHRpcG8gZG9zIHB1bnRvcyBkb3MgdmVjZXMgKDo6KVxuIgoieSBubyB0aWVuZSBkZXBlbmRlbmNpYXMuXG4iCgojOiByZW1ha2UuYzo3MTUKIywgYy1mb3JtYXQKbXNnaWQgIk5vIGNvbW1hbmRzIGZvciBgJXMnIGFuZCBubyBwcmVyZXF1aXNpdGVzIGFjdHVhbGx5IGNoYW5nZWQuXG4iCm1zZ3N0ciAiTm8gaGF5IGluc3RydWNjaW9uZXMgcGFyYSBgJXMnIHkgbmluZ3VuYSBkZXBlbmRlbmNpYSBjYW1iafMuXG4iCgojOiByZW1ha2UuYzo3MjAKIywgYy1mb3JtYXQKbXNnaWQgIk1ha2luZyBgJXMnIGR1ZSB0byBhbHdheXMtbWFrZSBmbGFnLlxuIgptc2dzdHIgIkhhY2llbmRvIGAlcycgZGViaWRvIGEgbGEgYmFuZGVyYSBhbHdheXMtbWFrZS5cbiIKCiM6IHJlbWFrZS5jOjcyOAojLCBjLWZvcm1hdAptc2dpZCAiTm8gbmVlZCB0byByZW1ha2UgdGFyZ2V0IGAlcyciCm1zZ3N0ciAiTm8gZXMgbmVjZXNhcmlvIHJlY29uc3RydWlyIGVsIG9iamV0aXZvIGAlcycuIgoKIzogcmVtYWtlLmM6NzMwCiMsIGMtZm9ybWF0Cm1zZ2lkICI7IHVzaW5nIFZQQVRIIG5hbWUgYCVzJyIKbXNnc3RyICI7IHNlIHVzYSBlbCBub21icmUgZGVsIFZQQVRIIGAlcyciCgojIFJldmlzYSB0b2RvIGVsIHBvIGNvbiB1biBzZWFyY2gsIHkgbWlyYSBhIHZlciBzaSBkZWNpZGVzIHVzYXIKIyByZWdlbmVyYXIgbyByZWNvbnN0cnVpciAoIHByZWZpZXJvIGxvIPpsdGltbyAxMDAwMCB2ZWNlcyApIGVtKwojIE9rLCBidWVuYSBwcm9wdWVzdGEuIG1tCiM6IHJlbWFrZS5jOjc1MAojLCBjLWZvcm1hdAptc2dpZCAiTXVzdCByZW1ha2UgdGFyZ2V0IGAlcycuXG4iCm1zZ3N0ciAiU2UgZGViZSByZWNvbnN0cnVpciBlbCBvYmpldGl2byBgJXMnLlxuIgoKIzogcmVtYWtlLmM6NzU2CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIElnbm9yaW5nIFZQQVRIIG5hbWUgYCVzJy5cbiIKbXNnc3RyICIgIFNlIGlnbm9yYSBlbCBub21icmUgZGVsIFZQQVRIIGAlcycuXG4iCgojOiByZW1ha2UuYzo3NjUKIywgYy1mb3JtYXQKbXNnaWQgIkNvbW1hbmRzIG9mIGAlcycgYXJlIGJlaW5nIHJ1bi5cbiIKbXNnc3RyICJMYXMgaW5zdHJ1Y2Npb25lcyBkZSBgJXMnIHNlIGVzdOFuIGVqZWN1dGFuZG8uXG4iCgojIFRhcmdldCBmaWxlIG5vIGVzIGFyY2hpdm8gZGUgb2JqZXRpdm9zLCBzaW5vIGVsIGFyY2hpdm8gb2JqZXRpdm8KIyBtYWtlIG5vIHRpZW5lIG5pbmf6biBhcmNoaXZvIGRlIG9iamV0aXZvcyBlbSsKIyBPay4gbW0KIzogcmVtYWtlLmM6NzcyCiMsIGMtZm9ybWF0Cm1zZ2lkICJGYWlsZWQgdG8gcmVtYWtlIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiRmFsbG8gYWwgcmVjb25zdHJ1aXIgZWwgYXJjaGl2byBvYmpldGl2byBgJXMnLlxuIgoKIyBMbyBtaXNtbyBlbSsKIyBPay4gbW0KIzogcmVtYWtlLmM6Nzc1CiMsIGMtZm9ybWF0Cm1zZ2lkICJTdWNjZXNzZnVsbHkgcmVtYWRlIHRhcmdldCBmaWxlIGAlcycuXG4iCm1zZ3N0ciAiU2UgcmVjb25zdHJ1efMgY29uIOl4aXRvIGVsIGFyY2hpdm8gb2JqZXRpdm8gYCVzJy5cbiIKCiMgT3RyYSB2ZXogZW0rCiMgT2ssIG5vIHRlIHB1ZWRlcyBxdWVqYXIgZGUgZmFsdGEgZGUgY29uc2lzdGVuY2lhIGVuIGVzdGUgY2FzbyEgbW0KIzogcmVtYWtlLmM6Nzc4CiMsIGMtZm9ybWF0Cm1zZ2lkICJUYXJnZXQgZmlsZSBgJXMnIG5lZWRzIHJlbWFkZSB1bmRlciAtcS5cbiIKbXNnc3RyICJTZSBuZWNlc2l0YSByZWNvbnN0cnVpciBlbCBhcmNoaXZvIG9iamV0aXZvIGAlcycgY29uIGxhIG9wY2nzbiAtcS5cbiIKCiMgVWJpY2FkYSA6KSkgLCBxdWUgdGFsIGZ1dHVyYSwgYSBzZWNhcyA/IGVtKwojIEJ1ZW5vLCBzb25hYmEgY29tbyBTdGFyVHJlaywgbXV5IGNoaWRvLCBwZXJvIGFjZXB0byB0dSBzdWdlcmVuY2lhLiBtbQojOiByZW1ha2UuYzoxMzA2CiMsIGMtZm9ybWF0Cm1zZ2lkICJXYXJuaW5nOiBGaWxlIGAlcycgaGFzIG1vZGlmaWNhdGlvbiB0aW1lIGluIHRoZSBmdXR1cmUiCm1zZ3N0ciAiQXRlbmNp8246IEVsIGFyY2hpdm8gYCVzJyB0aWVuZSB1bmEgaG9yYSBkZSBtb2RpZmljYWNp824gZW4gZWwgZnV0dXJvIgoKIyBVYmljYWRhIDopKSAsIHF1ZSB0YWwgZnV0dXJhLCBhIHNlY2FzID8gZW0rCiMgQnVlbm8sIHNvbmFiYSBjb21vIFN0YXJUcmVrLCBtdXkgY2hpZG8sIHBlcm8gYWNlcHRvIHR1IHN1Z2VyZW5jaWEuIG1tCiM6IHJlbWFrZS5jOjEzMTMKIywgYy1mb3JtYXQKbXNnaWQgIldhcm5pbmc6IEZpbGUgYCVzJyBoYXMgbW9kaWZpY2F0aW9uIHRpbWUgJS4yZyBzIGluIHRoZSBmdXR1cmUiCm1zZ3N0ciAiIgoiQXRlbmNp8246IEVsIGFyY2hpdm8gYCVzJyB0aWVuZSB1bmEgaG9yYSBkZSBtb2RpZmljYWNp824gJS4yZyBlbiBlbCBmdXR1cm8iCgojOiByZW1ha2UuYzoxNTExCiMsIGMtZm9ybWF0Cm1zZ2lkICIuTElCUEFUVEVSTlMgZWxlbWVudCBgJXMnIGlzIG5vdCBhIHBhdHRlcm4iCm1zZ3N0ciAiRWwgZWxlbWVudG8gLkxJQlBBVFRFUk5TIGAlcycgbm8gZXMgdW4gcGF0cvNuIgoKIyC/TGFzIGFkdWFuYXM/IHN2CiMgU2ksIGxhcyBhZHVhbmFzIGRlIGV4cG9ydGFjafNuIGRlIHByb2Nlc29zLiBTdWVuYSByYXLtc2ltbyBwZXJvCiMgcmV2aXPpIGVsIGPzZGlnbyB5IHRvZG8gcGFyZWNlIGFwdW50YXIgYSBxdWUgYXPtIHNvbiBsYXMgY29zYXMuCiMgQ3JlbyBxdWUgZXN0byBlcyBvdHJhIGNvc2EuIEN1c3RvbSBzZSByZWZpZXJlIGEgbG9zIHZhbG9yZXMgZGFkb3MKIyBwb3IgZWwgdXN1YXJpbyAoIGN1c3RvbWl6YWJsZXMgKSAsIHkgcXVlIG5vIHNlIGV4cG9ydGFy4W4gc2UgcmVmaWVyZQojIGEgcXVlIGFsIGxsYW1hciBhIG90cm9zIG1ha2VmaWxlcywgbm8gc2Vy4W4gcGFzYWRvcyBjb21vIHZhbG9yZXMKIyBxdWUgc2UgYW50ZXBvbmdhbiAoIG90cm8gdOlybWlubyBwYXJhIG92ZXJyaWRlICkgYSBsb3MgcXVlIG1ha2UKIyB0aWVuZSBwb3IgZGVmZWN0byAuCiMgTGEgdHJhZHVjY2nzbiBleGFjdGEgcG9yIHRhbnRvIGVzLCBsb3MgdmFsb3JlcyBkZWZpbmlkb3MgcG9yIGVsIHVzdWFyaW8KIyBubyBzZSBleHBvcnRhcuFuIGVtKwojIE11Y2jtc2ltbyBt4XMgY2xhcm8gKGVzIG3hcyBtZSBndXN0YSBt4XMgZW4gZXNwYfFvbCBxdWUgZW4gaW5nbOlzIGNvbiB0dQojIGFycmVnbG8pIG1tCiM6IHJlbW90ZS1jc3Rtcy5jOjEyNQojLCBjLWZvcm1hdAptc2dpZCAiQ3VzdG9tcyB3b24ndCBleHBvcnQ6ICVzXG4iCm1zZ3N0ciAiTG9zIHZhbG9yZXMgZGVmaW5pZG9zIHBvciBlbCB1c3VhcmlvIG5vIHNlIGV4cG9ydGFy4W46ICVzXG4iCgojOiBydWxlLmM6NTQ4Cm1zZ2lkICIiCiJcbiIKIiMgSW1wbGljaXQgUnVsZXMiCm1zZ3N0ciAiIgoiXG4iCiIjIFJlZ2xhcyBpbXBs7WNpdGFzLiIKCiM6IHJ1bGUuYzo1NjMKbXNnaWQgIiIKIlxuIgoiIyBObyBpbXBsaWNpdCBydWxlcy4iCm1zZ3N0ciAiIgoiXG4iCiIjIE5vIGhheSByZWdsYXMgaW1wbO1jaXRhcy4iCgojOiBydWxlLmM6NTY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiMgJXUgaW1wbGljaXQgcnVsZXMsICV1Igptc2dzdHIgIiIKIlxuIgoiIyAldSByZWdsYXMgaW1wbO1jaXRhcywgJXUiCgojOiBydWxlLmM6NTc1Cm1zZ2lkICIgdGVybWluYWwuIgptc2dzdHIgIiB0ZXJtaW5hbC4iCgojICMjIEHxYWRvIKEgY29uIHR1IHBlcm1pc28uIHN2CiMgR3JhY2lhcy4gbW0KIyC/IHF16SB0YWwgZXJy825lbyA/IGVtKwojIFNpLCBzdWVuYSBtZWpvci4gbW0KIzogcnVsZS5jOjU4MwojLCBjLWZvcm1hdAptc2dpZCAiQlVHOiBudW1fcGF0dGVybl9ydWxlcyB3cm9uZyEgICV1ICE9ICV1Igptc2dzdHIgIkJVRzogoW51bV9wYXR0ZXJuX3J1bGVzIGVycvNuZW8hICAldSAhPSAldSIKCiM6IHNpZ25hbWUuYzo4NQptc2dpZCAidW5rbm93biBzaWduYWwiCm1zZ3N0ciAic2XxYWwgZGVzY29ub2NpZGEiCgojOiBzaWduYW1lLmM6OTMKbXNnaWQgIkhhbmd1cCIKbXNnc3RyICJDb2xnYWRvIgoKIyC/IFkgcG9yIHF16SBubyBJbnRlcnJ1cGNp824gPyBlbSsKIyBQb3JxdWUgZXMgdW5hIGFjY2nzbi4gRGUgaGVjaG8gZXMgdW4gbWVuc2FqZSBxdWUgc2UgZW527WEgYSB0cmF26XMKIyBkZWwgc2lzdGVtYSBlbiBlc3RlIGNhc28gbGUgZW52aWFy7WFzIHVuIGtpbGwgLUlOVCBudW1fcHJvY2VzbyBwYXJhCiMgaW50ZXJydW1waXIgYWwgcHJvZ3JhbWEuIExvIHJldmlz6SBjb250cmEgZWwgZnVlbnRlLiBtbQojOiBzaWduYW1lLmM6OTYKbXNnaWQgIkludGVycnVwdCIKbXNnc3RyICJJbnRlcnJ1bXBpciIKCiM6IHNpZ25hbWUuYzo5OQptc2dpZCAiUXVpdCIKbXNnc3RyICJGaW5hbGl6YXIiCgojOiBzaWduYW1lLmM6MTAyCm1zZ2lkICJJbGxlZ2FsIEluc3RydWN0aW9uIgptc2dzdHIgIkluc3RydWNjafNuIG5vIHbhbGlkYSIKCiMgTG9zIHRyYXAgbG9zIGhlbW9zIGRlamFkbyBjb21vIHRyYXBzLCBzaW1wbGVtZW50ZS4gZW0rCiMgT2suIG1tCiM6IHNpZ25hbWUuYzoxMDUKbXNnaWQgIlRyYWNlL2JyZWFrcG9pbnQgdHJhcCIKbXNnc3RyICJUcmFjZS9icmVha3BvaW50IHRyYXAiCgojOiBzaWduYW1lLmM6MTEwCm1zZ2lkICJBYm9ydGVkIgptc2dzdHIgIkFib3J0YWRvIgoKIyBQb250ZSBkZSBhY3VlcmRvIGNvbiBFbnJpcXVlIGVuIGPzbW8gc2UgdHJhZHVjZSBlc3RvLgojIEVucmlxdWUgdGllbmUgZXN0YSBtaXNtYSBmcmFzZSBlbiBnbGliYy4gc3YKIyBFc28gZXMgOikgSU9UIHRyYXAgZW0rCiMgT2suIG1tCiM6IHNpZ25hbWUuYzoxMTMKbXNnaWQgIklPVCB0cmFwIgptc2dzdHIgIklPVCB0cmFwIgoKIyBPdHJhIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTE2Cm1zZ2lkICJFTVQgdHJhcCIKbXNnc3RyICJFTVQgdHJhcCIKCiMgQ29tYSBmbG90YW50ZSwgcG9yIGZhdm9yLiBzdgojIENyZWVtZSBxdWUgYXF17SBsbyBkZSBjb21hIGZsb3RhbnRlIG5vIHZhbGUuIFNvbW9zIHByby15YW5xdWlzIHkKIyBwb3IgZXNvIHVzYW1vcyBlbCBwdW50byBmbG90YW50ZS4gRGViZW1vcyBsbGVnYXIgYSB1biBhY3VlcmRvLgojIFBvciBhaG9yYSBwb25nbyBjb21hIGZsb3RhbnRlIHBhcmEgZmFjaWxpdGFyIGxhcyBjb3NhcywgcGVybyBiYWpvCiMgcHJvdGVzdGEgOy0pIG1tCiM6IHNpZ25hbWUuYzoxMTkKbXNnaWQgIkZsb2F0aW5nIHBvaW50IGV4Y2VwdGlvbiIKbXNnc3RyICJFeGNlcGNp824gZGUgY29tYSBmbG90YW50ZSIKCiMgIlRlcm1pbmFkbyBwb3IgbGEgc2XxYWwga2lsbCIgcXVlZGFy7WEgdW4gcG9jbyBt4XMgc3VhdmUgLi4uIHN2CiMgRW5yaXF1ZSB0aWVuZSBlbiBnbGliYyAiVGVybWluYWRvIChraWxsZWQpIi4gc3YKIyBCdWVubywgY3JlbyBxdWUgbWkgdHJhZHVjY2nzbiBlcyBt4XMgZXhhY3RhLCBjb25jaXNhIHkgY2xhcmEKIyBwZXJvIHNpIGluc2lzdGVuLi4uIEFkZW3hcyByZWN1ZXJkYSBlbiBxdWUgZXN0b3kgZW4gdW4gcGHtcwojIGVuIGRvbmRlIGFzZXNpbmFkbyBlcyBwYWxhYnJhIGRlIHRvZG9zIGxvcyBk7WFzLiBtbQojOiBzaWduYW1lLmM6MTIyCm1zZ2lkICJLaWxsZWQiCm1zZ3N0ciAiVGVybWluYWRvIChraWxsZWQpIgoKIzogc2lnbmFtZS5jOjEyNQptc2dpZCAiQnVzIGVycm9yIgptc2dzdHIgIkVycm9yIGVuIGVsIGJ1cyIKCiM6IHNpZ25hbWUuYzoxMjgKbXNnaWQgIlNlZ21lbnRhdGlvbiBmYXVsdCIKbXNnc3RyICJGYWxsbyBkZSBzZWdtZW50YWNp824iCgojOiBzaWduYW1lLmM6MTMxCm1zZ2lkICJCYWQgc3lzdGVtIGNhbGwiCm1zZ3N0ciAiTGxhbWFkYSBhbCBzaXN0ZW1hIGVycvNuZWEiCgojOiBzaWduYW1lLmM6MTM0Cm1zZ2lkICJCcm9rZW4gcGlwZSIKbXNnc3RyICJUdWJlcu1hIHJvdGEiCgojIL9UZW1wb3JpemFkb3I/IChhc+0gbG8gdHJhZHVqbyBFbnJpcXVlIGVuIGdsaWJjKS4gc3YKIyBTdWVuYSBjb21vIFN0YXJUcmVrLiBNZWpvciBsbyBwbGF0aWNvIGNvbiDpbC4gQSBsbyBtZWpvcgojIGhhc3RhIGxvIGNvbnZlbnpvLiBtbQojIFB1ZXMgdGVuZHLhcyBxdWUgZGFybWUgcmF6b25lcyBlbSsKIyBCdWVubywgdW4gYWxhcm0gY2xvY2sgZXMgdW5hIGFsYXJtYSBkZWwgcmVsb2ouIE5vIHRpZW5lIHBpZXJkZS4KIyBUZW1wb3JpemFkb3IgZXMgdW5hIGJvbml0YSBwYWxhYnJhIHBlcm8gZW4gZG9uZGUgZGljZSBxdWUgdmEgYQojIHNvbmFyIHVuYSBjYW1wYW5hIHBhcmEgZGVzcGVydGFydGU/IG1tCiM6IHNpZ25hbWUuYzoxMzcKbXNnaWQgIkFsYXJtIGNsb2NrIgptc2dzdHIgIkFsYXJtYSBkZWwgcmVsb2oiCgojOiBzaWduYW1lLmM6MTQwCm1zZ2lkICJUZXJtaW5hdGVkIgptc2dzdHIgIkZpbmFsaXphZG8iCgojOiBzaWduYW1lLmM6MTQzCm1zZ2lkICJVc2VyIGRlZmluZWQgc2lnbmFsIDEiCm1zZ3N0ciAiU2XxYWwgMSBkZWZpbmlkYSBwb3IgZWwgdXN1YXJpbyIKCiM6IHNpZ25hbWUuYzoxNDYKbXNnaWQgIlVzZXIgZGVmaW5lZCBzaWduYWwgMiIKbXNnc3RyICJTZfFhbCAyIGRlZmluaWRhIHBvciBlbCB1c3VhcmlvIgoKIyBQcm9jZXNvIGhpam8gdGVybWluYWRvIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTUxIHNpZ25hbWUuYzoxNTQKbXNnaWQgIkNoaWxkIGV4aXRlZCIKbXNnc3RyICJQcm9jZXNvIGhpam8gdGVybWluYWRvIgoKIyBGYWxsby4gc3YKIyBBbGltZW50YWNp824gZWzpY3RyaWNvIGVtKwojIE9rLiBtbQojOiBzaWduYW1lLmM6MTU3Cm1zZ2lkICJQb3dlciBmYWlsdXJlIgptc2dzdHIgIkZhbGxhIGRlIGFsaW1lbnRhY2nzbiBlbOljdHJpY2EiCgojOiBzaWduYW1lLmM6MTYwCm1zZ2lkICJTdG9wcGVkIgptc2dzdHIgIkRldGVuaWRvIgoKIyBFbnJpcXVlIGhpem8gdW5hIHByZWNpb3NhIHRyYWR1Y2Np824gZGUgZXN0ZSBtZW5zYWplIHF1ZSwgc2Vn+m4g6WwsCiMgbWVqb3JhIGVsIG9yaWdpbmFsLiBFcmEgYWxnbyBhc+0gY29tbzoKIyAiRGV0ZW5pZG8gKHJlcXVpZXJlIGVudHJhZGEgZGUgdGVybWluYWwpIi4gc3YKIyBUaWVuZSByYXrzbiBzZSB2ZSBiaWVuLiBtbQojIFJlcXVpZXJlICdkZSc7KSAsIGNvbW8gdGUgdmVhIFNhbnRpYWdvIHF1ZSBsZSBtZXRlcwojIG90cm8gJ2RlJyBvdHJhIHZleiAuLi4gZW0rCiMgT2suIG1tCiM6IHNpZ25hbWUuYzoxNjMKbXNnaWQgIlN0b3BwZWQgKHR0eSBpbnB1dCkiCm1zZ3N0ciAiRGV0ZW5pZG8gKHNlIHJlcXVpZXJlIGVudHJhZGEgZGUgdGVybWluYWwpIgoKIyBsbyBtaXNtbywgc2UgcmVxdWllcmUgZW50cmFkYSBkZSB0ZXJtaW5hbCAsICBlbSsKIyBPay4gbW0KIzogc2lnbmFtZS5jOjE2Ngptc2dpZCAiU3RvcHBlZCAodHR5IG91dHB1dCkiCm1zZ3N0ciAiRGV0ZW5pZG8gKHNlIHJlcXVpZXJlIHNhbGlkYSBkZSB0ZXJtaW5hbCkiCgojIGlkZW0gZW0rCiM6IHNpZ25hbWUuYzoxNjkKbXNnaWQgIlN0b3BwZWQgKHNpZ25hbCkiCm1zZ3N0ciAiRGV0ZW5pZG8gKHNlIHJlcXVpZXJlIHVuYSBzZfFhbCkiCgojOiBzaWduYW1lLmM6MTcyCm1zZ2lkICJDUFUgdGltZSBsaW1pdCBleGNlZWRlZCIKbXNnc3RyICJTZSBhZ2908yBlbCB0aWVtcG8gZGUgQ1BVIHBlcm1pdGlkbyIKCiM6IHNpZ25hbWUuYzoxNzUKbXNnaWQgIkZpbGUgc2l6ZSBsaW1pdCBleGNlZWRlZCIKbXNnc3RyICJTZSBleGNlZGnzIGVsIHRhbWHxbyBt4XhpbW8gZGUgYXJjaGl2byBwZXJtaXRpZG8iCgojOiBzaWduYW1lLmM6MTc4Cm1zZ2lkICJWaXJ0dWFsIHRpbWVyIGV4cGlyZWQiCm1zZ3N0ciAiRWwgY29udGFkb3IgZGUgdGllbXBvIHZpcnR1YWwgaGEgZXhwaXJhZG8iCgojIE51bmNhIG1lIGVudGVy6SBkZSBj821vIHNlIHRyYWR1Y+1hIHByb2ZpbGUsIHBlcm8gcGVyZmlsIG1lIHN1ZW5hIHJhcm8uCiMgv0RlIGTzbmRlIGxvIGhhcyBzYWNhZG8/IHN2CiMgRXMgbG8gcXVlIHF1aWVyZSBkZWNpciwgbmkgbW9kby4gUGVyZmlsIGRlIHVuIGF2afNuIGVzIHBsYW5lIHByb2ZpbGUuCiMgUG9yIGNpZXJ0bywgbG8gbeFzIHByb2JhYmxlIGVzIHF1ZSBlc3RhICJ0cmFkdWNjafNuIiBoYXlhIHF1ZQojIG1vZGlmaWNhcmxhIHBhcmEgcXVlIHNlYSBlbnRlbmRpYmxlLiBtbQojIEVzdG8gbG8gdGVuZ28gZW4gZ2xpYmMsIGxvIG1pcmFyZSBvdHJvIGTtYS4gRXN0b3MgbWVuc2FqZXMgbm8gc29uCiMgaW1wb3J0YW50ZXMgZW0rCiMgQWdyZWd16SB1bmFzIHBhbGFicmFzIGVuIGFyYXMgZGUgY2xhcmlkYWQgKGVzcGVybykgbW0KIzogc2lnbmFtZS5jOjE4MQptc2dpZCAiUHJvZmlsaW5nIHRpbWVyIGV4cGlyZWQiCm1zZ3N0ciAiRWwgY29udGFkb3IgZGUgdGllbXBvIHBhcmEgbGEgZ2VuZXJhY2nzbiBkZWwgcGVyZmlsIGhhIGV4cGlyYWRvIgoKIzogc2lnbmFtZS5jOjE4Nwptc2dpZCAiV2luZG93IGNoYW5nZWQiCm1zZ3N0ciAiTGEgdmVudGFuYSBoYSBjYW1iaWFkbyIKCiM6IHNpZ25hbWUuYzoxOTAKbXNnaWQgIkNvbnRpbnVlZCIKbXNnc3RyICJDb250aW51YWRvIgoKIzogc2lnbmFtZS5jOjE5Mwptc2dpZCAiVXJnZW50IEkvTyBjb25kaXRpb24iCm1zZ3N0ciAiQ29uZGljafNuIHVyZ2VudGUgZGUgSS9PIgoKIzogc2lnbmFtZS5jOjIwMCBzaWduYW1lLmM6MjA5Cm1zZ2lkICJJL08gcG9zc2libGUiCm1zZ3N0ciAiUG9zaWJsZSBJL08iCgojOiBzaWduYW1lLmM6MjAzCm1zZ2lkICJTSUdXSU5EIgptc2dzdHIgIlNJR1dJTkQiCgojOiBzaWduYW1lLmM6MjA2Cm1zZ2lkICJTSUdQSE9ORSIKbXNnc3RyICJTSUdQSE9ORSIKCiM6IHNpZ25hbWUuYzoyMTIKbXNnaWQgIlJlc291cmNlIGxvc3QiCm1zZ3N0ciAiUmVjdXJzbyBwZXJkaWRvIgoKIzogc2lnbmFtZS5jOjIxNQptc2dpZCAiRGFuZ2VyIHNpZ25hbCIKbXNnc3RyICJTZfFhbCBkZSBwZWxpZ3JvIgoKIzogc2lnbmFtZS5jOjIxOAptc2dpZCAiSW5mb3JtYXRpb24gcmVxdWVzdCIKbXNnc3RyICJQZXRpY2nzbiBkZSBpbmZvcm1hY2nzbiIKCiM6IHNpZ25hbWUuYzoyMjEKbXNnaWQgIkZsb2F0aW5nIHBvaW50IGNvLXByb2Nlc3NvciBub3QgYXZhaWxhYmxlIgptc2dzdHIgIkNvcHJvY2VzYWRvciBkZSBwdW50byBmbG90YW50ZSBubyBkaXNwb25pYmxlIgoKIzogc3RyY2FjaGUuYzoyMTAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiJXMgIyBvZiBzdHJpbmdzIGluIHN0cmNhY2hlOiAlZFxuIgptc2dzdHIgIiIKCiM6IHN0cmNhY2hlLmM6MjExCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyAjIG9mIHN0cmNhY2hlIGJ1ZmZlcnM6ICVkXG4iCm1zZ3N0ciAiIgoKIzogc3RyY2FjaGUuYzoyMTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzIHN0cmNhY2hlIHNpemU6IHRvdGFsID0gJWQgLyBtYXggPSAlZCAvIG1pbiA9ICVkIC8gYXZnID0gJWRcbiIKbXNnc3RyICIiCgojOiBzdHJjYWNoZS5jOjIxNAojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3RyY2FjaGUgZnJlZTogdG90YWwgPSAlZCAvIG1heCA9ICVkIC8gbWluID0gJWQgLyBhdmcgPSAlZFxuIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlLmM6MTM2OQptc2dpZCAiZGVmYXVsdCIKbXNnc3RyICJwb3IgZGVmZWN0byIKCiM6IHZhcmlhYmxlLmM6MTM3Mgptc2dpZCAiZW52aXJvbm1lbnQiCm1zZ3N0ciAiZW50b3JubyIKCiMgU3VnZXJlbmNpYTogTm8gcG9uZXIgYXJjaGl2by4gc3YKIyBPay4gbW0KIzogdmFyaWFibGUuYzoxMzc1Cm1zZ2lkICJtYWtlZmlsZSIKbXNnc3RyICJtYWtlZmlsZSIKCiMgJ2Jham8gLWUnID0gJ2NvbiAtZSBhY3Rpdm8nIGVtKwojIE9rLiBFc3RhIGludmVyc2nzbiBlbiBsb3MgaWRpb21hcyBzYWpvbmVzIHNlIHBlZ2EuIG1tCiM6IHZhcmlhYmxlLmM6MTM3OAptc2dpZCAiZW52aXJvbm1lbnQgdW5kZXIgLWUiCm1zZ3N0ciAiY29uIC1lIGFjdGl2byIKCiMgTO1uZWEgZGUgY29tYW5kb3MgbWUgcGFyZWNlIGNvcnJlY3RvIGVtKwojIFZlciBhcnJpYmEuIEVzdG95IGRlIGFjdWVyZG8gc2kgYXPtIGhhbiB0cmFkdWNpZG8gZW4gb3Ryb3MgbGFkb3MuIG1tCiM6IHZhcmlhYmxlLmM6MTM4MQptc2dpZCAiY29tbWFuZCBsaW5lIgptc2dzdHIgImztbmVhIGRlIGluc3RydWNjaW9uZXMiCgojIENyZW8gcXVlIHRlbmRyZW1vcyB1biBwcm9ibGVtYSBjb24gaW5zdHJ1Y2Np824sIGNvbWFuZG8KIyAsIHByb2dyYW1hIHkgZGlyZWN0aXZhIC4gRXN04SBjbGFybyBxdWUgYXF17SBlcyBkaXJlY3RpdmEgZW0rCiMgT2ssIHBlcm8gbm8gZGVqYSBkZSBzb25hciBhIFJvYm9Db3AuIEEgdmVyIHF1ZSB0ZSBwYXJlY2UgY29tbyBxdWVk8y4gbW0KIzogdmFyaWFibGUuYzoxMzg0Cm1zZ2lkICJgb3ZlcnJpZGUnIGRpcmVjdGl2ZSIKbXNnc3RyICJkaXJlY3RpdmEgZGUgc29icmVwb3NpY2nzbiBgb3ZlcnJpZGUnIgoKIyBMbyBoZSBjbWFiaWFkbyBlbSsKIyBPay4gRGViZXLtYW1vcyBwbGF0aWNhcmxvIGNvbiBVbHJpY2guIG1tCiM6IHZhcmlhYmxlLmM6MTM4Nwptc2dpZCAiYXV0b21hdGljIgptc2dzdHIgImF1dG9t4XRpY2EvbyIKCiM6IHZhcmlhYmxlLmM6MTM5NgojLCBjLWZvcm1hdAptc2dpZCAiIChmcm9tIGAlcycsIGxpbmUgJWx1KSIKbXNnc3RyICIgKGRlIGAlcycsIGztbmVhICVsdSk6IgoKIyBCdWVuby4gQXF17SB1biBwdW50byBkZSBkaXNjdXNp824uIFRyYWR1emNvIGJ1Y2tldHMgcG9yIGN1YmV0YXMgbwojIG1lam9yIGxhcyBkZWpvIHRhbCBjdWFsPyBPcGluaW9uZXMgYmllbnZlbmlkYXMuIG1tCiMgRXN0b3MgbWVuc2FqZXMgc29uIHBhcmEgZGVidWcsIG5vIGNyZW8gcXVlIGhhZ2EgZmFsdGEgdXNhciBjdWJldGFzIDspIGVtKwojIFRpZW5lcyByYXrzbiwgc2kgZWwgZGVidWd1ZWFkb3Igbm8gbG8gZW50aWVuZGUgcHVlcywgLi4uIHF1ZSBzZQojIGRlZGlxdWUgYSBvdHJhIGNvc2EuIG1tCiM6IHZhcmlhYmxlLmM6MTQzOAptc2dpZCAiIyB2YXJpYWJsZSBzZXQgaGFzaC10YWJsZSBzdGF0czpcbiIKbXNnc3RyICIjIGVzdGFk7XN0aWNhcyBkZWwgY29uanVudG8gZGUgdmFyaWFibGVzIGRlIGxhIHRhYmxhIGRlIGhhc2g6XG4iCgojOiB2YXJpYWJsZS5jOjE0NDkKbXNnaWQgIiIKIlxuIgoiIyBWYXJpYWJsZXNcbiIKbXNnc3RyICIiCiJcbiIKIiMgVmFyaWFibGVzXG4iCgojOiB2YXJpYWJsZS5jOjE0NTMKbXNnaWQgIiIKIlxuIgoiIyBQYXR0ZXJuLXNwZWNpZmljIFZhcmlhYmxlIFZhbHVlcyIKbXNnc3RyICIiCiJcbiIKIiMgVmFsb3JlcyBkZSB2YXJpYWJsZXMgZXNwZWPtZmljYXMgYWwgcGF0cvNuIgoKIzogdmFyaWFibGUuYzoxNDY3Cm1zZ2lkICIiCiJcbiIKIiMgTm8gcGF0dGVybi1zcGVjaWZpYyB2YXJpYWJsZSB2YWx1ZXMuIgptc2dzdHIgIiIKIlxuIgoiIyBObyBoYXkgdmFsb3JlcyBkZSB2YXJpYWJsZXMgZXNwZWPtZmljYXMgYWwgcGF0cvNuLiIKCiM6IHZhcmlhYmxlLmM6MTQ2OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIjICV1IHBhdHRlcm4tc3BlY2lmaWMgdmFyaWFibGUgdmFsdWVzIgptc2dzdHIgIiIKIlxuIgoiIyAldSB2YWxvcmVzIGRlIHZhcmlhYmxlcyBlc3BlY+1maWNhcyBhbCBwYXRy824iCgojIL9RdekgdGUgcGFyZWNlICJhdGVuY2nzbiI/IExvIGhlbW9zIHVzYWRvIG11Y2hvIGVuIG90cm9zIHByb2dyYW1hcy4gc3YKIyBQZXJvIHF1ZSBiZXN0aWEgc295LiBQZXJk824gcG9yIGVsIGRlc2JhcnJlLiBtbQojOiB2YXJpYWJsZS5oOjE4OQojLCBjLWZvcm1hdAptc2dpZCAid2FybmluZzogdW5kZWZpbmVkIHZhcmlhYmxlIGAlLipzJyIKbXNnc3RyICJhdGVuY2nzbjogbGEgdmFyaWFibGUgYCUuKnMnIG5vIGhhIHNpZG8gZGVmaW5pZGEiCgojOiB2bXNmdW5jdGlvbnMuYzo5NAojLCBjLWZvcm1hdAptc2dpZCAic3lzJHNlYXJjaCBmYWlsZWQgd2l0aCAlZFxuIgptc2dzdHIgImZhbGxvIGVuIHN5cyRzZWFyY2ggY29uICVkXG4iCgojOiB2bXNqb2JzLmM6NzEKIywgYy1mb3JtYXQKbXNnaWQgIldhcm5pbmc6IEVtcHR5IHJlZGlyZWN0aW9uXG4iCm1zZ3N0ciAiQXRlbmNp8246IHJlZGlyZWNjafNuIHZhY+1hXG4iCgojOiB2bXNqb2JzLmM6MTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnRlcm5hbCBlcnJvcjogYCVzJyBjb21tYW5kX3N0YXRlIgptc2dzdHIgImVycm9yIGludGVybm86IGAlcycgY29tbWFuZF9zdGF0ZSIKCiM6IHZtc2pvYnMuYzoyNjgKIywgYy1mb3JtYXQKbXNnaWQgIi13YXJuaW5nLCBDVFJMLVkgd2lsbCBsZWF2ZSBzdWItcHJvY2VzcyhlcykgYXJvdW5kLlxuIgptc2dzdHIgIi1hdGVuY2nzbiwgQ1RSTC1ZIGRlamFy4SB2aXZvcyBhIGxvcyBzdWJwcm9jZXNvcy5cbiIKCiM6IHZtc2pvYnMuYzoyODQKIywgYy1mb3JtYXQKbXNnaWQgIi13YXJuaW5nLCB5b3UgbWF5IGhhdmUgdG8gcmUtZW5hYmxlIENUUkwtWSBoYW5kbGluZyBmcm9tIERDTC5cbiIKbXNnc3RyICItYXRlbmNp824sIGRlYmVy4XMgcmVoYWJpbGl0YXIgZWwgbWFuZWpvIGRlbCBDVFJMLVkgZGVzZGUgZWwgRENMLlxuIgoKIzogdm1zam9icy5jOjQwNwojLCBjLWZvcm1hdAptc2dpZCAiQlVJTFRJTiBbJXNdWyVzXVxuIgptc2dzdHIgIklOVEVSQ09OU1RSVUlETyBbJXNdWyVzXVxuIgoKIzogdm1zam9icy5jOjQxOAojLCBjLWZvcm1hdAptc2dpZCAiQlVJTFRJTiBDRCAlc1xuIgptc2dzdHIgIkNEIElOVEVSQ09OU1RSVUlETyAlc1xuIgoKIzogdm1zam9icy5jOjQzNgojLCBjLWZvcm1hdAptc2dpZCAiQlVJTFRJTiBSTSAlc1xuIgptc2dzdHIgIlJNIElOVEVSQ09OU1RSVUlETyAlc1xuIgoKIyBQb3IgZGVmZWN0bywgY29tbyBoYWNlcyBhcnJpYmEgZW0rCiMgZW4gZWZlY3RvLCBtbQojOiB2bXNqb2JzLmM6NDU3CiMsIGMtZm9ybWF0Cm1zZ2lkICJVbmtub3duIGJ1aWx0aW4gY29tbWFuZCAnJXMnXG4iCm1zZ3N0ciAiSW5zdHJ1Y2Np824gaW50ZXJjb25zdHJ1aWRhIGRlc2Nvbm9jaWRhIGAlcycuXG4iCgojOiB2bXNqb2JzLmM6NDc5CiMsIGMtZm9ybWF0Cm1zZ2lkICJFcnJvciwgZW1wdHkgY29tbWFuZFxuIgptc2dzdHIgIkVycm9yLCBjb21hbmRvIHZhY+1vXG4iCgojOiB2bXNqb2JzLmM6NDkxCiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWRpcmVjdGVkIGlucHV0IGZyb20gJXNcbiIKbXNnc3RyICJFbnRyYWRhIHJlZGlyaWdpZGEgZGVzZGUgJXNcbiIKCiMgUHJvYmFibGVtZW50ZSBzZWEgYXF17SBkb25kZSBoYXlhIHF1ZSBwb25lcmxlIGVsICJlbCIgcGFyYSBxdWUgIkVudGVyaW5nIgojIGNvbmN1ZXJkZSBiaWVuIGNvbiBlc3RhIGZyYXNlIHkgY29uIGxhIGFudGVyaW9yIHNpbXVsdOFuZWFtZW50ZS4gc3YKIyBOby4gWWEgcmV2aXPpIGVsIGZ1ZW50ZSB5IHRyYW5zY3JpYm8gZWwgdHJvem8gcGVydGluZW50ZToKIyAgY2hhciAqbWVzc2FnZSA9IGVudGVyaW5nID8gIkVudGVyaW5nIiA6ICJMZWF2aW5nIjsKIyAgaWYgKG1ha2VsZXZlbCA9PSAwKQojICAgIHByaW50ZiAoIiVzOiAlcyAiLCBwcm9ncmFtLCBtZXNzYWdlKTsKIyAgZWxzZQojICAgIHByaW50ZiAoIiVzWyV1XTogJXMgIiwgcHJvZ3JhbSwgbWFrZWxldmVsLCBtZXNzYWdlKTsKIyBDb21vIG5vdGFy4XMgbG8gZGVsIGRpcmVjdG9yaW8gdmEgZW4gb3RybyBsYWRvLgojOiB2bXNqb2JzLmM6NDk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWRpcmVjdGVkIGVycm9yIHRvICVzXG4iCm1zZ3N0ciAiU2UgcmVkaXJlY2Npb25hIGVsIGVycm9yIGEgJXNcbiIKCiM6IHZtc2pvYnMuYzo1MDUKIywgYy1mb3JtYXQKbXNnaWQgIlJlZGlyZWN0ZWQgb3V0cHV0IHRvICVzXG4iCm1zZ3N0ciAiU2FsaWRhIHJlZGlyaWdpZGEgYSAlc1xuIgoKIyAiZW4gc3VzdGl0dXRvIiBtZSBzdWVuYSBtdXkgcmFyby4gUHJvcG9uZ286ICJlbiBzdSBsdWdhciIgZW4gc3UgbHVnYXIgOi0pIHN2CiMgT2suIG1tCiM6IHZtc2pvYnMuYzo1NjgKIywgYy1mb3JtYXQKbXNnaWQgIkV4ZWN1dGluZyAlcyBpbnN0ZWFkXG4iCm1zZ3N0ciAiRW4gc3UgbHVnYXIsIHNlIGVqZWN1dGEgJXNcbiIKCiM6IHZtc2pvYnMuYzo2NjgKIywgYy1mb3JtYXQKbXNnaWQgIkVycm9yIHNwYXduaW5nLCAlZFxuIgptc2dzdHIgIkVycm9yIGFsIGxhbnphciBlbCBwcm9jZXNvICVkXG4iCgojIL9ZIGFsIHJldulzPzogUnV0YXMgZGUgYvpzcXVlZGEgVlBBVEguIHN2CiMgTWVqb3JhCiM6IHZwYXRoLmM6NTcxCm1zZ2lkICIiCiJcbiIKIiMgVlBBVEggU2VhcmNoIFBhdGhzXG4iCm1zZ3N0ciAiIgoiXG4iCiIjIFJ1dGFzIGRlIGL6c3F1ZWRhIFZQQVRIXG4iCgojIFJ1dGFzIGNyZW8gcXVlIHF1ZWRhIG1lam9yLiBzdgojIE9rLiBFcyBt4XMgY29t+m4uIG1tCiM6IHZwYXRoLmM6NTg4Cm1zZ2lkICIjIE5vIGB2cGF0aCcgc2VhcmNoIHBhdGhzLiIKbXNnc3RyICIjIE5vIGhheSBydXRhcyBkZSBi+nNxdWVkYSBgdnBhdGgnLiIKCiMgoUFoISBBcXXtIHNpIHF1ZSBwb25lcyBlbCB2cGF0aCBhbCBmaW5hbCwgv2VoPyA6LSkgc3YKIyBZb3UgcmVhbGx5IGdvdCBtZSEgbW0KIzogdnBhdGguYzo1OTAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiIyAldSBgdnBhdGgnIHNlYXJjaCBwYXRocy5cbiIKbXNnc3RyICIiCiJcbiIKIiMgJXUgcnV0YXMgZGUgYvpzcXVlZGEgYHZwYXRoJy5cbiIKCiM6IHZwYXRoLmM6NTkzCm1zZ2lkICIiCiJcbiIKIiMgTm8gZ2VuZXJhbCAoYFZQQVRIJyB2YXJpYWJsZSkgc2VhcmNoIHBhdGguIgptc2dzdHIgIiIKIlxuIgoiIyBObyBoYXkgcnV0YSBkZSBi+nNxdWVkYSBnZW5lcmFsICh2YXJpYWJsZSBgVlBBVEgnKS4iCgojOiB2cGF0aC5jOjU5OQptc2dpZCAiIgoiXG4iCiIjIEdlbmVyYWwgKGBWUEFUSCcgdmFyaWFibGUpIHNlYXJjaCBwYXRoOlxuIgoiIyAiCm1zZ3N0ciAiIgoiXG4iCiIjIFJ1dGEgZGUgYvpzcXVlZGEgZ2VuZXJhbCAodmFyaWFibGUgYFZQQVRIJyk6XG4iCiIjICIKCiN+IG1zZ2lkICJEbyBub3Qgc3BlY2lmeSAtaiBvciAtLWpvYnMgaWYgc2guZXhlIGlzIG5vdCBhdmFpbGFibGUuIgojfiBtc2dzdHIgIk5vIGVzcGVjaWZpcXVlIC1qIG8gLS1qb2JzIHNpIHNoLmV4ZSBubyBlc3ThIGRpc3BvbmlibGUuIgoKI34gbXNnaWQgIlJlc2V0dGluZyBtYWtlIGZvciBzaW5nbGUgam9iIG1vZGUuIgojfiBtc2dzdHIgIlJlYWp1c3RhbmRvIGEgbWFrZSBwYXJhIGVsIG1vZG8gbW9ub3RhcmVhLiIKCiMgRXN0byBoYWJy7WEgcXVlIHJldmlzYXJsby4gc3YKIyBFbiBlZmVjdG8sIGhhYu1hIHF1ZSByZXZpc2FybG8sIG5vIGVzIG76bWVybyBkZSBhcmNoaXZvcwojIHNpbm8gcXVlIG5vIGhheSBhcmNoaXZvcy4gbW0KI34gbXNnaWQgIiIKI34gIlxuIgojfiAiIyBObyBmaWxlcy4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICIjIE5vIGhheSBhcmNoaXZvcy4iCgojIFN1Z2VyZW5jaWE6IGhhc2ggYnVja2V0cyAtPiBgaGFzaCBidWNrZXRzJwojIChhbCBtZW5vcyBoYXN0YSBxdWUgc2VwYW1vcyBsbyBxdWUgZXMsIGNyZW8gcXVlIG1lIHNhbGnzIGFsZ28gcGFyZWNpZG8KIyBlbiByZWNvZGUpLiBzdgojIExpdGVyYWxtZW50ZSB1biBoYXNoIGJ1Y2tldCBlcyB1biB0b25lbCBkZSB0cm96b3MuIEVuIHVuIHByb2Nlc28gZGUKIyBwYXJ0aWNp824gcG9yIHBpY2FkaWxsbyAoaGFzaCkgc2UgZGViZW4gZGVmaW5pciAidG9uZWxlcyIgbyAiY3ViZXRhcyIKIyBwYXJhIGd1YXJkYXIgYWxs7SBsYSBpbmZvcm1hY2nzbiAiaGFzaGVhZGEiLiBFbiBvdHJhcyBwYWxhYnJhcyBlcyBlbAojIHRhbWHxbyBkZSBsYXMgZW50cmFkYXMgZGUg7W5kaWNlIGhhc2guIENsYXJvIGNvbW8gZWwgbG9kbz8KIyBGaW5hbG1lbnRlLCBvay4gUG9yIGFob3JhIG5vIHRyYWR1Y2ltb3MgaGFzdGEgcG9uZXJub3MgZGUgYWN1ZXJkby4KI34gbXNnaWQgIiIKI34gIlxuIgojfiAiIyAldSBmaWxlcyBpbiAldSBoYXNoIGJ1Y2tldHMuXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICIjICV1IGFyY2hpdm9zIGVuICV1IGBoYXNoIGJ1Y2tldHMnLlxuIgoKI34gbXNnaWQgIiMgYXZlcmFnZSAlLjNmIGZpbGVzIHBlciBidWNrZXQsIG1heCAldSBmaWxlcyBpbiBvbmUgYnVja2V0LlxuIgojfiBtc2dzdHIgIiIKI34gIiMgcHJvbWVkaW8gZGUgJS4zZiBhcmNoaXZvcyBwb3IgYGJ1Y2tldCcsIG1heCAldSBhcmNoaXZvcyBlbiB1biAiCiN+ICJgYnVja2V0Jy5cbiIKCiN+IG1zZ2lkICJTeW50YXggZXJyb3IsIHN0aWxsIGluc2lkZSAnXCInXG4iCiN+IG1zZ3N0ciAiRXJyb3IgZGUgc2ludOF4aXMsIGH6biBzZSBlc3ThIGRlbnRybyBkZSAnXCInXG4iCgojIFJlY2liaWRhIG8gY2FwdHVyYWRhLCBwZXJvIHBvciBEaW9zICwgbm8gcG9uZ2FzCiMgJ3NlIHRpZW5lJyAuIEVuIHZleiBkZSBoaWpvIHBvbiBwcm9jZXNvIGhpam8gLCB5IHF1aXRhIGxvCiMgcXVlIHRpZW5lcyBlbnRyZSBwYXLpbnRlc2lzIGVtKwojIExvIGRlbCBwYXLpbnRlc2lzIGVyYSBwYXJhIGVzY29nZXIuIG1tCiN+IG1zZ2lkICJHb3QgYSBTSUdDSExEOyAldSB1bnJlYXBlZCBjaGlsZHJlbi5cbiIKI34gbXNnc3RyICJSZWNpYu0gdW5hIHNl8WFsIFNJR0NITEQ7ICV1IHByb2Nlc28gaGlqbyBkZXNjYXJyaWFkby5cbiIKCiN+IG1zZ2lkICJESVJFQ1RPUlkiCiN+IG1zZ3N0ciAiRElSRUNUT1JJTyIKCiN+IG1zZ2lkICJDaGFuZ2UgdG8gRElSRUNUT1JZIGJlZm9yZSBkb2luZyBhbnl0aGluZyIKI34gbXNnc3RyICIiCiN+ICJEZWJlIGRlc3BsYXphcnNlIGFsIGRpcmVjdG9yaW8gRElSRUNUT1JZIGFudGVzIGRlIGhhY2VyIGN1YWxxdWllciBjb3NhIgoKI34gbXNnaWQgIkZMQUdTIgojfiBtc2dzdHIgIkJBTkRFUkFTIgoKI34gbXNnaWQgIlN1c3BlbmQgcHJvY2VzcyB0byBhbGxvdyBhIGRlYnVnZ2VyIHRvIGF0dGFjaCIKI34gbXNnc3RyICJTdXNwZW5kZXIgZWwgcHJvY2VzbyBwYXJhIHBlcm1pdGlyIHF1ZSB1biBkZXB1cmFkb3Igc2UgdXRpbGljZSIKCiN+IG1zZ2lkICJFbnZpcm9ubWVudCB2YXJpYWJsZXMgb3ZlcnJpZGUgbWFrZWZpbGVzIgojfiBtc2dzdHIgIkxhcyB2YXJpYWJsZXMgZGUgZW50b3JubyB0aWVuZW4gcHJpb3JpZGFkIHNvYnJlIGxvcyBtYWtlZmlsZXMiCgojfiBtc2dpZCAiRklMRSIKI34gbXNnc3RyICJBUkNISVZPIgoKI34gbXNnaWQgIlJlYWQgRklMRSBhcyBhIG1ha2VmaWxlIgojfiBtc2dzdHIgIlNlIGxlefMgZWwgQVJDSElWTyBjb21vIG1ha2VmaWxlIgoKI34gbXNnaWQgIlNlYXJjaCBESVJFQ1RPUlkgZm9yIGluY2x1ZGVkIG1ha2VmaWxlcyIKI34gbXNnc3RyICJTZSBidXNjYW4gZW4gRElSRUNUT1JJTyBsb3MgYXJjaGl2b3MgbWFrZWZpbGUgaW5jbHXtZG9zIgoKIyBFc3RvIG1lIHN1ZW5hIGEgZGVzY3JpcGNp824gZGUgdW5hIG9wY2nzbiwgbeFzIHF1ZSBhIHVuIG1lbnNhamUgZGUgZXJyb3IuCiMgU3VnZXJlbmNpYSBwb3IgbG8gdGFudG86ICJObyBzZSBsYW56YW4gLi4uIiBzdgojIEVzdOFzIGVuIGxvIGNvcnJlY3RvLiBtbQojfiBtc2dpZCAiRG9uJ3Qgc3RhcnQgbXVsdGlwbGUgam9icyB1bmxlc3MgbG9hZCBpcyBiZWxvdyBOIgojfiBtc2dzdHIgIiIKI34gIk5vIHNlIGxhbnphbiB2YXJpb3MgdHJhYmFqb3MgYSBtZW5vcyBxdWUgbGEgY2FyZ2FcbiIKI34gInNlYSBpbmZlcmlvciBhIE4iCgojIExvIG1pc21vIGRlIGFudGVzLiBzdgojIE9rLiBtbQojfiBtc2dpZCAiRG9uJ3QgYWN0dWFsbHkgcnVuIGFueSBjb21tYW5kczsganVzdCBwcmludCB0aGVtIgojfiBtc2dzdHIgIk5vIHNlIGVqZWN1dGFuIGxhcyBpbnN0cnVjY2lvbmVzOyBz82xhbWVudGUgc2UgbXVlc3RyYW4iCgojfiBtc2dpZCAiQ29uc2lkZXIgRklMRSB0byBiZSB2ZXJ5IG9sZCBhbmQgZG9uJ3QgcmVtYWtlIGl0IgojfiBtc2dzdHIgIlNlIGNvbnNpZGVyYSBlbCBBUkNISVZPIGRlbWFzaWFkbyB2aWVqbyB5IG5vIHNlIHJlY29uc3RydXllIgoKIyC/IHF16SB0ZSBwYXJlY2UgLi4uCiMgTm8gc2UgaGFjZSBlY2hvIGRlIGxhcyBpbnN0cnVjY2lvbmVzIGVtKwojIE5vIG1lIGd1c3RhLiBRdWUgdGUgcGFyZWNlIGxvIHF1ZSBwdXNlIGFob3JhPyBtbQojfiBtc2dpZCAiRG9uJ3QgZWNobyBjb21tYW5kcyIKI34gbXNnc3RyICJMb3MgY29tYW5kb3Mgbm8gc2UgbXVlc3RyYW4gY29uIGVjbyIKCiMgQ29ycmVnaWRvIGVycm9yIGRlIHRlY2xlb3MgOykgZW0rCiMgT2suCiN+IG1zZ2lkICJUdXJucyBvZmYgLWsiCiN+IG1zZ3N0ciAiU2UgZGVzaGFiaWxpdGEgLWsiCgojIExvIG1pc21vLiBzdgojIFNlIGNvbnNpZGVyYSBzaWVtcHJlIGNvbW8gbnVldm8gZW0rCiMgT2suIEVsaW1pbm8gZWwgJ3NlJyBwb3JxdWUgZXN04SBkZXNjcmliaWVuZG8gYSB1bmEgb3BjafNuLiBtbQojfiBtc2dpZCAiQ29uc2lkZXIgRklMRSB0byBiZSBpbmZpbml0ZWx5IG5ldyIKI34gbXNnc3RyICJDb25zaWRlcmEgYWwgQVJDSElWTyBzaWVtcHJlIGNvbW8gbnVldm8iCgojICJFbnRyYW5kbyBlbiBlbCIgKGbtamF0ZSBxdWUgZXN0byBsbyBkaWNlIGN1YW5kbyBlbnRyYSBlbiB1biBkaXJlY3RvcmlvKS4KIyBIYWJy7WEgcXVlIHZlciBj821vIHF1ZWRhLiBzdgojIFZlciBub3RhIG3hcyBhZGVsYW50ZS4gbW0KIyBDYW1iaWFuZG8gYSAsIG1lIHBhcmVjZXJpYSBtdWNobyBtZWpvciBlbSsKIyBFbiBlZmVjdG8uIG1tCiN+IG1zZ2lkICJFbnRlcmluZyIKI34gbXNnc3RyICJDYW1iaWFuZG8gYSIKCiMgIkRlamFuZG8gZWwiLCAiQWJhbmRvbmFuZG8gZWwiLiBzdgojIFF1ZSB0YWwgInNhbGllbmRvIj8gbW0KIyBQcmVmaWVybyAnYWJhbmRvbmFuZG8nICwgbyAnc2FsaWVuZG8gZGUnIGVtKwojIFF1ZSB0YWwgc2FsaWVuZG8/IG1tCiN+IG1zZ2lkICJMZWF2aW5nIgojfiBtc2dzdHIgIlNhbGllbmRvIgoKIyBjb3JyZWdpZG8gZWwgZWZlY3RvIGluZGlvICwgYfFhZG8gdW4gJ3VuJ2VtKwojIE9rLiBtbQojfiBtc2dpZCAibm8gZmlsZSBuYW1lIGZvciBgJXNpbmNsdWRlJyIKI34gbXNnc3RyICJubyBoYXkgdW4gbm9tYnJlIGRlIGFyY2hpdm8gcGFyYSBgJXNpbmNsdWRlJyIKCiN+IG1zZ2lkICJ0YXJnZXQgYCVzJyBsZWF2ZXMgcHJlcmVxdWlzaXRlIHBhdHRlcm4gZW1wdHkiCiN+IG1zZ3N0ciAiRWwgb2JqZXRpdm8gYCVzJyBkZWphIGEgbG9zIHBhdHJvbmVzIGRlIGRlcGVuZGVuY2lhcyB2YWPtb3MiCgojfiBtc2dpZCAiIyBObyB2YXJpYWJsZXMuIgojfiBtc2dzdHIgIiMgTm8gaGF5IHZhcmlhYmxlcy4iCgojfiBtc2dpZCAiIyBhdmVyYWdlIG9mICUuMWYgdmFyaWFibGVzIHBlciBidWNrZXQsIG1heCAldSBpbiBvbmUgYnVja2V0LlxuIgojfiBtc2dzdHIgIiMgcHJvbWVkaW8gZGUgJS4xZiB2YXJpYWJsZXMgcG9yIGBidWNrZXQnLCBt4XggJXUgZW4gdW4gYGJ1Y2tldCcuXG4iCgojfiBtc2dpZCAiIyBhdmVyYWdlIG9mICVkLiVkIHZhcmlhYmxlcyBwZXIgYnVja2V0LCBtYXggJXUgaW4gb25lIGJ1Y2tldC5cbiIKI34gbXNnc3RyICIiCiN+ICIjIHByb21lZGlvIGRlICVkLiVkIHZhcmlhYmxlcyBwb3IgYGJ1Y2tldCcsIG3heCAldSBlbiB1biBgYnVja2V0Jy5cbiIKCiN+IG1zZ2lkICJFcnJvciBpbiBsYnIkaW5pX2NvbnRyb2wsICVkXG4iCiN+IG1zZ3N0ciAiRXJyb3IgZW4gbGJyJGluaV9jb250cm9sLCAlZFxuIgoKI34gbXNnaWQgIkVycm9yIGxvb2tpbmcgdXAgbW9kdWxlICVzIGluIGxpYnJhcnkgJXMsICVkXG4iCiN+IG1zZ3N0ciAiRXJyb3IgYWwgYnVzY2FyIGVsIG3zZHVsbyAlcyBlbiBsYSBiaWJsaW90ZWNhICVzLCAlZFxuIgoKI34gbXNnaWQgIkVycm9yIGdldHRpbmcgbW9kdWxlIGluZm8sICVkXG4iCiN+IG1zZ3N0ciAiRXJyb3IgYWwgaW50ZW50YXIgb2J0ZW5lciBsYSBpbmZvcm1hY2nzbiBkZWwgbfNkdWxvLCAlZFxuIgoKI34gbXNnaWQgInRvdWNoOiAiCiN+IG1zZ3N0ciAidG91Y2g6ICIKCiN+IG1zZ2lkICIgbm90IgojfiBtc2dzdHIgIiBubyIKCiN+IG1zZ2lkICIjICBMYXN0IG1vZGlmaWVkICUuMjRzICglMGx4KVxuIgojfiBtc2dzdHIgIiMgINpsdGltYSBtb2RpZmljYWNp824gJS4yNHMgKCUwbHgpXG4iCgojfiBtc2dpZCAidW5kZWZpbmVkIgojfiBtc2dzdHIgImluZGVmaW5pZG8iCgojfiBtc2dpZCAiZmlsZSIKI34gbXNnc3RyICJhcmNoaXZvIgoKIyC/IGNyZWVzIHNpbmNlcmFtZW50ZSBxdWUgZXN0byBsbyBwdWVkZSBlbnRlbmRlciBhbGd1aWVuID8gZW0rCiMgvyBxdekgdGFsID8gY29uIHByZWZlcmVuY2lhIHNvYnJlIGVsIGVudG9ybm8gZW0rCiMgTm8sIGVzdOEgZW4gQUlYLCBhaG9yYSBsbyBhcnJlZ2xvLiBtbQojfiBtc2dpZCAiZW52aXJvbm1lbnQgb3ZlcnJpZGUiCiN+IG1zZ3N0ciAiY29uIHByZWZlcmVuY2lhIHNvYnJlIGVsIGVudG9ybm8iCgojIEhhYnJhIHF1ZSBjb21waWxhciBlc3RvIGlubWVkaWF0YW1lbnRlIGUgaW5zdGFsYXIKIyBlbCAucG8gYSB2ZXIgcXVlIGVzIGVzdG8gZW0rCiMgTm8gc2UgcHVlZGUgcG9yIGFob3JhIHB1ZXMgbWFrZSBubyBoYSBzaWRvIGludGVybmFjaW9uYWxpemFkbyBh+m4uCiMgU2Vy4SB1bmEgZGUgbGFzIHByaW1lcmFzIGNvc2FzIHF1ZSBoYWdhIGVuIGN1YW50byBzZSBwdWVkYS4gbW0KI34gbXNnaWQgIm92ZXJyaWRlIgojfiBtc2dzdHIgInNvYnJlcG9zaWNp824iCgojIFN1Z2VyZW5jaWE6IEJvcnJhciBlbCAiZGUiIGVuICJyZXF1aWVyZSBkZSAuLi4iIHN2CiMgUGVyZPNuLCBzaWVtcHJlIHNlIG1lIHbhIGEgcGVzYXIgZGUgaGFiZXJsbyBkaXNjdXRpZG8gdW4gYnVlbiByYXRvLiBtbQojfiBtc2dpZCAidGhlIGB3b3JkJyBmdW5jdGlvbiB0YWtlcyBhIG9uZS1vcmlnaW4gaW5kZXggYXJndW1lbnQiCiN+IG1zZ3N0ciAibGEgZnVuY2nzbiBgd29yZCcgcmVxdWllcmUgdW4gYXJndW1lbnRvIGluZGV4YWRvIGRlIHRpcG8gb3JpZ2VuLXVubyIKCiN+IG1zZ2lkICJpbXBsaWNpdCIKI34gbXNnc3RyICJpbXBs7WNpdGEiCgojfiBtc2dpZCAicnVsZSIKI34gbXNnc3RyICJyZWdsYSIKCiN+IG1zZ2lkICJUcnlpbmcgJXMgZGVwZW5kZW5jeSBgJXMnLlxuIgojfiBtc2dzdHIgIlNlIGludGVudGEgbGEgZGVwZW5kZW5jaWEgJXMgYCVzJy5cbiIKCiN+IG1zZ2lkICJGb3VuZCBkZXBlbmRlbmN5IGFzIGAlcycuJXNcbiIKI34gbXNnc3RyICJTZSBlbmN1ZW50cmEgbGEgZGVwZW5kZW5jaWEgY29tbyBgJXMnLiVzXG4iCgojfiBtc2dpZCAiaW50ZXJtZWRpYXRlIgojfiBtc2dzdHIgImludGVybWVkaWEiCgojIFByZWZlcmly7WEgbWlsIHZlY2VzICJzaW4gZWZlY3RvIiBvIGFsZ28gcGFyZWNpZG8uIHN2CiMgT2suIEhhYu1hbW9zIHF1ZWRhZG8gZW4gYG5vIHRpZW5lIGVmZWN0bycuIG1tCiN+IG1zZ2lkICIgKGlnbm9yZWQpIgojfiBtc2dzdHIgIiAobm8gdGllbmUgZWZlY3RvKSIKCiMgUHJvdGVzdGFyIGFsIGF1dG9yLiBObyBoYXkgZm9ybWEgZGUgcG9uZXIgdHJhYmFqbyhzKSBkZXNjb25vY2lkbyhzKQojIGNvbiBjb2hlcmVuY2lhLiBzdgojIFNpLCBzaSBubyB0aWVuZW4gaWRlbnRpZmljYWRvIGEgc3UgcGFkcmUuIE5pIG1vZG8uIG1tCiMgUG9uZ28gL3MgZW0rCiMgT2suIG1tCiN+IG1zZ2lkICJVbmtub3duJXMgam9iICVkIgojfiBtc2dzdHIgIlRyYWJham8lcyBkZXNjb25vY2lkby9zICVkIgoKI34gbXNnaWQgIiByZW1vdGUiCiN+IG1zZ3N0ciAiIHJlbW90byIKCiN+IG1zZ2lkICIlcyBmaW5pc2hlZC4iCiN+IG1zZ3N0ciAiJXMgdGVybWluYWRvLiIKCiN+IG1zZ2lkICJsb3NpbmciCiN+IG1zZ3N0ciAic2UgcGllcmRlIgoKI34gbXNnaWQgIndpbm5pbmciCiN+IG1zZ3N0ciAic2UgZ2FuYSIKCiMgTm8gbWUgZ3VzdGEgY29tbyBxdWVkYSBhc+0uCiMgU3VnZXJlbmNpYTogIiVzR05VIE1ha2UgdmVyc2nzbiAlcyIgc3YKIyBBY2VwdGFkYS4gbW0KI34gbXNnaWQgIiVzR05VIE1ha2UgdmVyc2lvbiAlcyIKI34gbXNnc3RyICIlc0dOVSBNYWtlIHZlcnNp824gJXMiCgojfiBtc2dpZCAiVW5rbm93biBlcnJvciAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKI34gbXNnc3RyICJFcnJvciBkZXNjb25vY2lkbyAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKCiN+IG1zZ2lkICJVc2VyIgojfiBtc2dzdHIgIlVzdWFyaW8iCgojfiBtc2dpZCAiTWFrZSIKI34gbXNnc3RyICJNYWtlIgoKI34gbXNnaWQgIkNoaWxkIgojfiBtc2dzdHIgIkhpam8iCgojfiBtc2dpZCAiRGVwZW5kZW5jeSBgJXMnIGRvZXMgbm90IGV4aXN0LlxuIgojfiBtc2dzdHIgIkxhIGRlcGVuZGVuY2lhIGAlcycgbm8gZXhpc3RlLlxuIgoKI34gbXNnaWQgIm5ld2VyIgojfiBtc2dzdHIgIm3hcyByZWNpZW50ZSIKCiN+IG1zZ2lkICJvbGRlciIKI34gbXNnc3RyICJt4XMgYW50aWd1YSIKCiMgU3VnZXJlbmNpYTogYHNvY2tldCcgc3YKIyBPay4gbW0KI34gbXNnaWQgImV4cG9ydGluZzogQ291bGRuJ3QgY3JlYXRlIHJldHVybiBzb2NrZXQuIgojfiBtc2dzdHIgImV4cG9ydGFuZG86IE5vIHNlIHB1ZWRlIGNyZWFyIGVsIGBzb2NrZXQnIGRlIHJlZ3Jlc28uIgoKI34gbXNnaWQgImV4cG9ydGluZzogIgojfiBtc2dzdHIgImV4cG9ydGFuZG86ICIKCiN+IG1zZ2lkICJleHBvcnRpbmc6ICVzIgojfiBtc2dzdHIgImV4cG9ydGFuZG86ICVzIgoKI34gbXNnaWQgIkpvYiBleHBvcnRlZCB0byAlcyBJRCAldVxuIgojfiBtc2dzdHIgIkVsIHRyYWJham8gaGEgc2lkbyBleHBvcnRhZG8gYSAlcyBJRCAldVxuIgoKI34gbXNnaWQgIkVycm9yIGdldHRpbmcgbG9hZCBhdmVyYWdlIgojfiBtc2dzdHIgIkVycm9yIGFsIG9idGVuZXIgbGEgY2FyZ2EgcHJvbWVkaW8iCgojfiBtc2dpZCAiMS1taW51dGU6ICVmICAiCiN+IG1zZ3N0ciAiMS1taW51dG86ICVmICAiCgojfiBtc2dpZCAiNS1taW51dGU6ICVmICAiCiN+IG1zZ3N0ciAiNS1taW51dG9zOiAlZiAgIgoKI34gbXNnaWQgIjE1LW1pbnV0ZTogJWYgICIKI34gbXNnc3RyICIxNS1taW51dG9zOiAlZiAgIgoKIyBhcmd2LWVsZW1lbnRzIC0+IGVsZW1lbnRvcyBhcmd2LiBzdgojIChBIHBvY28gQyBxdWUgc2VwYXMsIHNhYnLhcyBsbyBxdWUgZXMpLgojIEFsZ3Vub3Mgc2ksIGFsZ3Vub3Mgbm8uIFBlcm8gdGllbmVzIHJhevNuLiBtbQojfiBtc2dpZCAiZGlnaXRzIG9jY3VyIGluIHR3byBkaWZmZXJlbnQgYXJndi1lbGVtZW50cy5cbiIKI34gbXNnc3RyICJsb3MgZO1naXRvcyBlc3ThbiBlbiBkb3MgZWxlbWVudG9zIGFyZ3YgZGlzdGludG9zLlxuIgoKI34gbXNnaWQgIm9wdGlvbiAlY1xuIgojfiBtc2dzdHIgIm9wY2nzbiAlY1xuIgoKI34gbXNnaWQgIm9wdGlvbiBhXG4iCiN+IG1zZ3N0ciAib3BjafNuIGFcbiIKCiN+IG1zZ2lkICJvcHRpb24gYlxuIgojfiBtc2dzdHIgIm9wY2nzbiBiXG4iCgojIFN1Z2VyZW5jaWE6IExhIG9wY2nzbiBjIHRpZW5lIGVsIHZhbG9yIGAlcycKIyBIYXkgdW4gbWVuc2FqZSBpZOludGljbyBlbiBoZWxsby4gc3YKIyBNZSBndXN0YSBtdWNoby4gbW0KI34gbXNnaWQgIm9wdGlvbiBjIHdpdGggdmFsdWUgYCVzJ1xuIgojfiBtc2dzdHIgIkxhIG9wY2nzbiBjIHRpZW5lIGVsIHZhbG9yIGAlcydcbiIKCiN+IG1zZ2lkICI/PyBnZXRvcHQgcmV0dXJuZWQgY2hhcmFjdGVyIGNvZGUgMCVvID8/XG4iCiN+IG1zZ3N0ciAiPz8gZ2V0b3B0KCkgcmVncmVz8yB1biBj4XJhY3RlciBjb24gY/NkaWdvIDAlbyA/P1xuIgoKIyBFbGVtZW50b3MgQVJHViBxdWUgbm8gc29uIG9wY2lvbmVzOiBzdgojIE9rLiBtbS4KIyBFc3RvIGVzOgojIEVsZW1lbnRvcyBkZSBBUkdWICdxdWUnIG5vIHNvbiBvcGNpb25lczoKIyBwZXJvIHRhbWJpZW4gZXMgdW4gbWVuc2FqZSBkZSBkZWJ1ZyBkZWwgcHJvcGlvIG1ha2UsIGFzaQojIHF1ZSBubyBtZSBwcmVvY3VwYSAoIG5vIGFwYXJlY2Vy4SBhIHVzdWFyaW9zIG5vcm1hbGVzIGRlIG1ha2UgKSBlbSsKIyBCdWVubywgcGVybyBkZSB0b2RhcyBmb3JtYXMgc2UgY29ycmlnZS4gbW0KI34gbXNnaWQgIm5vbi1vcHRpb24gQVJHVi1lbGVtZW50czogIgojfiBtc2dzdHIgImxvcyBlbGVtZW50b3MgQVJHViBxdWUgbm8gc29uIG9wY2lvbmVzOiAiCgojfiBtc2dpZCAib3B0aW9uIGQgd2l0aCB2YWx1ZSBgJXMnXG4iCiN+IG1zZ3N0ciAib3BjafNuIGQgY29uIHZhbG9yIGAlcydcbiIKCiN+IG1zZ2lkICIlczogdW5rbm93biBzaWduYWwiCiN+IG1zZ3N0ciAiJXM6IHNl8WFsIGRlc2Nvbm9jaWRhIgoKI34gbXNnaWQgIlNpZ25hbCAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKI34gbXNnc3RyICJTZfFhbCAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKCiN+IG1zZ2lkICJTaWduYWwgJWQiCiN+IG1zZ3N0ciAiU2XxYWwgJWQiCg==