From mboxrd@z Thu Jan 1 00:00:00 1970 From: Meng Xu Subject: Introduce rt real-time scheduler for Xen Date: Fri, 11 Jul 2014 00:49:54 -0400 Message-ID: <1405054198-29106-1-git-send-email-mengxu@cis.upenn.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: ian.campbell@citrix.com, xisisu@gmail.com, stefano.stabellini@eu.citrix.com, george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, xumengpanda@gmail.com, lichong659@gmail.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org VGhpcyBzZXJpZSBvZiBwYXRjaGVzIGFkZHMgcnQgcmVhbC10aW1lIHNjaGVkdWxlciB0byBYZW4u CgpJbiBzdW1tYXJ5LCBJdCBzdXBwb3J0czoKMSkgUHJlZW1wdGl2ZSBHbG9iYWwgRWFybGllc3Qg RGVhZGxpbmUgRmlyc3Qgc2NoZWR1bGluZyBwb2xpY3kgYnkgdXNpbmcgYSBnbG9iYWwgUnVuUSBm b3IgdGhlIHNjaGVkdWxlcjsKMikgQXNzaWduL2Rpc3BsYXkgZWFjaCBWQ1BVJ3MgcGFyYW1ldGVy cyBvZiBlYWNoIGRvbWFpbjsKMykgU3VwcG9ydHMgQ1BVIFBvb2wKClRoZSBkZXNpZ24gb2YgdGhp cyBydCBzY2hlZHVsZXIgaXMgYXMgZm9sbG93czoKVGhpcyBydCBzY2hlZHVsZXIgZm9sbG93cyB0 aGUgUHJlZW1wdGl2ZSBHbG9iYWwgRWFybGllc3QgRGVhZGxpbmUgRmlyc3QgKEdFREYpIHRoZW9y eSBpbiByZWFsLXRpbWUgZmllbGQuCkVhY2ggVkNQVSBjYW4gaGF2ZSBhIGRlZGljYXRlZCBwZXJp b2QgYW5kIGJ1ZGdldC4gV2hpbGUgc2NoZWR1bGVkLCBhIFZDUFUgYnVybnMgaXRzIGJ1ZGdldC4g RWFjaCBWQ1BVIGhhcyBpdHMgYnVkZ2V0IHJlcGxlbmlzaGVkIGF0IHRoZSBiZWdpbm5pbmcgb2Yg ZWFjaCBvZiBpdHMgcGVyaW9kczsgRWFjaCBWQ1BVIGRpc2NhcmRzIGl0cyB1bnVzZWQgYnVkZ2V0 IGF0IHRoZSBlbmQgb2YgZWFjaCBvZiBpdHMgcGVyaW9kcy4gSWYgYSBWQ1BVIHJ1bnMgb3V0IG9m IGJ1ZGdldCBpbiBhIHBlcmlvZCwgaXQgaGFzIHRvIHdhaXQgdW50aWwgbmV4dCBwZXJpb2QuClRo ZSBtZWNoYW5pc20gb2YgaG93IHRvIGJ1cm4gYSBWQ1BVJ3MgYnVkZ2V0IGRlcGVuZHMgb24gdGhl IHNlcnZlciBtZWNoYW5pc20gaW1wbGVtZW50ZWQgZm9yIGVhY2ggVkNQVS4KVGhlIG1lY2hhbmlz bSBvZiBkZWNpZGluZyB0aGUgcHJpb3JpdHkgb2YgVkNQVXMgYXQgZWFjaCBzY2hlZHVsaW5nIHBv aW50IGlzIGJhc2VkIG9uIHRoZSBQcmVlbXB0aXZlIEdsb2JhbCBFYXJsaWVzdCBEZWFkbGluZSBG aXJzdCBzY2hlZHVsaW5nIHNjaGVtZS4KClNlcnZlciBtZWNoYW5pc206IGEgVkNQVSBpcyBpbXBs ZW1lbnRlZCBhcyBhIGRlZmVycmFibGUgc2VydmVyLgpXaGVuIGEgVkNQVSBoYXMgYSB0YXNrIHJ1 bm5pbmcgb24gaXQsIGl0cyBidWRnZXQgaXMgY29udGludW91c2x5IGJ1cm5lZDsKV2hlbiBhIFZD UFUgaGFzIG5vIHRhc2sgYnV0IHdpdGggYnVkZ2V0IGxlZnQsIGl0cyBidWRnZXQgaXMgcHJlc2Vy dmVkLgoKUHJpb3JpdHkgc2NoZW1lOiBHbG9iYWwgRWFybGllc3QgRGVhZGxpbmUgRmlyc3QgKEVE RikuCkF0IGFueSBzY2hlZHVsaW5nIHBvaW50LCB0aGUgVkNQVSB3aXRoIGVhcmxpZXN0IGRlYWRs aW5lIGhhcyBoaWdoZXN0IHByaW9yaXR5LgoKUXVldWUgc2NoZW1lOiBBIGdsb2JhbCBydW5xdWV1 ZSBmb3IgZWFjaCBDUFUgcG9vbC4KVGhlIHJ1bnF1ZXVlIGhvbGRzIGFsbCBydW5uYWJsZSBWQ1BV cy4KVkNQVXMgaW4gdGhlIHJ1bnF1ZXVlIGFyZSBkaXZpZGVkIGludG8gdHdvIHBhcnRzOiB3aXRo IGFuZCB3aXRob3V0IHJlbWFpbmluZyBidWRnZXQuCkF0IGVhY2ggcGFydCwgVkNQVXMgYXJlIHNv cnRlZCBiYXNlZCBvbiBHRURGIHByaW9yaXR5IHNjaGVtZS4KClNjaGVkdWxpbmcgcXVhbnRhOiAx IG1zOyBidXQgYWNjb3VudGluZyB0aGUgYnVkZ2V0IGlzIGluIG1pY3Jvc2Vjb25kLgoKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT25lIHNjZW5hcmlvIHRvIHNob3cgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBydCBz Y2hlZHVsZXIgaXMgYXMgZm9sbG93czoKLy9saXN0IGVhY2ggdmNwdSdzIHBhcmFtZXRlcnMgb2Yg ZWFjaCBkb21haW4gaW4gY3B1IHBvb2xzIHVzaW5nIHJ0IHNjaGVkdWxlcgojeGwgc2NoZWQtcnQK Q3B1cG9vbCBQb29sLTA6IHNjaGVkPUVERgpOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJRCBWQ1BVIFBlcmlvZCBCdWRnZXQKRG9tYWluLTAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDAgICAgMCAgICAgMTAgICAgIDEwCkRvbWFpbi0wICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwICAgIDEgICAgIDIwICAgICAyMApEb21haW4tMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCAgICAyICAgICAzMCAgICAgMzAKRG9tYWluLTAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAgICAgMyAgICAgMTAgICAgIDEwCmxpdG11czEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxICAgIDAgICAgIDEwICAgICAgNApsaXRtdXMxICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMSAgICAxICAgICAxMCAgICAgIDQKCgoKLy9zZXQgdGhlIHBhcmFtZXRlcnMg b2YgdGhlIHZjcHUgMSBvZiBkb21haW4gbGl0bXVzMToKIyB4bCBzY2hlZC1ydCAtZCBsaXRtdXMx IC12IDEgLXAgMjAgLWIgMTAKCi8vZG9tYWluIGxpdG11czEncyB2Y3B1IDEncyBwYXJhbWV0ZXJz IGFyZSBjaGFuZ2VkLCBkaXNwbGF5IGVhY2ggVkNQVSdzIHBhcmFtZXRlcnMgc2VwYXJhdGVseToK IyB4bCBzY2hlZC1ydCAtZCBsaXRtdXMxCk5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElEIFZDUFUgUGVyaW9kIEJ1ZGdldApsaXRtdXMxICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMSAgICAwICAgICAxMCAgICAgIDQKbGl0bXVzMSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDEgICAgMSAgICAgMjAgICAgIDEwCgovLyBsaXN0IGNwdXBvb2wgaW5mb3JtYXRpb24K eGwgY3B1cG9vbC1saXN0Ck5hbWUgICAgICAgICAgICAgICBDUFVzICAgU2NoZWQgICAgIEFjdGl2 ZSAgIERvbWFpbiBjb3VudApQb29sLTAgICAgICAgICAgICAgIDEyICAgICAgICBydCAgICAgICB5 ICAgICAgICAgIDIKCi8vY3JlYXRlIGEgY3B1cG9vbCB0ZXN0CiN4bCBjcHVwb29sLWNwdS1yZW1v dmUgUG9vbC0wIDExCiN4bCBjcHVwb29sLWNwdS1yZW1vdmUgUG9vbC0wIDEwCiN4bCBjcHVwb29s LWNyZWF0ZSBuYW1lPVwidGVzdFwiIHNjaGVkPVwiY3JlZGl0XCIKI3hsIGNwdXBvb2wtY3B1LWFk ZCB0ZXN0IDExCiN4bCBjcHVwb29sLWNwdS1hZGQgdGVzdCAxMAojeGwgY3B1cG9vbC1saXN0Ck5h bWUgICAgICAgICAgICAgICBDUFVzICAgU2NoZWQgICAgIEFjdGl2ZSAgIERvbWFpbiBjb3VudApQ b29sLTAgICAgICAgICAgICAgIDEwICAgICAgICBydCAgICAgICB5ICAgICAgICAgIDIKdGVzdCAg ICAgICAgICAgICAgICAgMiAgICBjcmVkaXQgICAgICAgeSAgICAgICAgICAwCgovL21pZ3JhdGUg bGl0bXVzMSBmcm9tIGNwdXBvb2wgUG9vbC0wIHRvIGNwdXBvb2wgdGVzdC4KI3hsIGNwdXBvb2wt bWlncmF0ZSBsaXRtdXMxIHRlc3QKCi8vbm93IGxpdG11czEgaXMgaW4gY3B1cG9vbCB0ZXN0CiMg eGwgc2NoZWQtY3JlZGl0CkNwdXBvb2wgdGVzdDogdHNsaWNlPTMwbXMgcmF0ZWxpbWl0PTEwMDB1 cwpOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCBXZWlnaHQgIENhcApsaXRt dXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAyNTYgICAgMAoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KVGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhpcyBuZXcgcnQgcmVhbC10aW1lIHNjaGVkdWxl ciBhbmQgdGhlIHNlZGYgc2NoZWR1bGVyIGFyZSBhcyBmb2xsb3dzOgoxKSBydCBzY2hlZHVsZXIg c3VwcG9ydHMgZ2xvYmFsIEVERiBzY2hlZHVsaW5nLCB3aGlsZSBzZWRmIG9ubHkgc3VwcG9ydHMg cGFydGl0aW9uZWQgc2NoZWR1bGluZy4gV2l0aCB0aGUgc3VwcG9ydCBvZiB2Y3B1IG1hc2ssIHJ0 IHNjaGVkdWxlciBjYW4gYWxzbyBiZSB1c2VkIGFzIHBhcnRpdGlvbmVkIHNjaGVkdWxpbmcgYnkg c2V0dGluZyBlYWNoIFZDUFXigJlzIGNwdW1hc2sgdG8gYSBzcGVjaWZpYyBjcHUuCjIpIHJ0IHNj aGVkdWxlciBzdXBwb3J0cyBzZXR0aW5nIGFuZCBnZXR0aW5nIGVhY2ggVkNQVeKAmXMgcGFyYW1l dGVycyBvZiBhIGRvbWFpbi4gQSBkb21haW4gY2FuIGhhdmUgbXVsdGlwbGUgdmNwdXMgd2l0aCBk aWZmZXJlbnQgcGFyYW1ldGVycywgcnQgc2NoZWR1bGVyIGNhbiBsZXQgdXNlciBnZXQvc2V0IHRo ZSBwYXJhbWV0ZXJzIG9mIGVhY2ggVkNQVSBvZiBhIHNwZWNpZmljIGRvbWFpbjsgKHNlZGYgc2No ZWR1bGVyIGRvZXMgbm90IHN1cHBvcnQgaXQgbm93KQozKSBydCBzY2hlZHVsZXIgc3VwcG9ydHMg Y3B1cG9vbC4KNCkgcnQgc2NoZWR1bGVyIHVzZXMgZGVmZXJyYWJsZSBzZXJ2ZXIgdG8gYnVybi9y ZXBsZW5pc2ggYnVkZ2V0IG9mIGEgVkNQVSwgd2hpbGUgc2VkZiB1c2VzIGNvbnN0cmFudCBiYW5k d2lkdGggc2VydmVyIHRvIGJ1cm4vcmVwbGVuaXNoIGJ1ZGdldCBvZiBhIFZDUFUuIFRoaXMgaXMg anVzdCB0d28gb3B0aW9ucyBvZiBpbXBsZW1lbnRpbmcgYSBnbG9iYWwgRURGIHJlYWwtdGltZSBz Y2hlZHVsZXIgYW5kIGJvdGggb3B0aW9uc+KAmSByZWFsLXRpbWUgcGVyZm9ybWFuY2UgaGF2ZSBh bHJlYWR5IGJlZW4gcHJvdmVkIGluIGFjYWRlbWljLgoKKEJyaWVmbHkgc3BlYWtpbmcsIHRoZSBm dW5jdGlvbmFsaXR5IHRoYXQgdGhlICpTRURGKiBzY2hlZHVsZXIgcGxhbnMgdG8gaW1wbGVtZW50 IGFuZCBpbXByb3ZlIGluIHRoZSBmdXR1cmUgcmVsZWFzZSBoYXMgYWxyZWFkeSBiZWVuIHN1cHBv cnRlZCBpbiB0aGlzIHJ0IHNjaGVkdWxlci4pCihBbHRob3VnaCBpdOKAmXMgdW5uZWNlc3Nhcnkg dG8gaW1wbGVtZW50IHR3byBzZXJ2ZXIgbWVjaGFuaXNtcywgd2UgY2FuIHNpbXBseSBtb2RpZnkg dGhlIHR3byBmdW5jdGlvbnMgb2YgYnVybmluZyBhbmQgcmVwbGVuaXNoaW5nIHZjcHVz4oCZIGJ1 ZGdldCB0byBpbmNvcnBvcmF0ZSB0aGUgQ0JTIHNlcnZlciBtZWNoYW5pc20gb3Igb3RoZXIgc2Vy dmVyIG1lY2hhbmlzbXMgaW50byB0aGlzIHJ0IHNjaGVkdWxlci4pCgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUT0RP OgoxKSBJbXByb3ZlIHRoZSBjb2RlIG9mIGdldHRpbmcvc2V0dGluZyBlYWNoIFZDUFXigJlzIHBh cmFtZXRlcnMuIFtlYXN5XQogICAgUmlnaHQgbm93LCBpdCBjcmVhdGUgYW4gYXJyYXkgd2l0aCBM SUJYTF9YRU5fTEVHQUNZX01BWF9WQ1BVUyAoaS5lLiwgMzIpIGVsZW1lbnRzIHRvIGJvdW5jZSBh bGwgVkNQVXPigJkgcGFyYW1ldGVycyBvZiBhIGRvbWFpbiBiZXR3ZWVuIHhlbiB0b29sIGFuZCB4 ZW4gdG8gZ2V0IGFsbCBWQ1BVc+KAmSBwYXJhbWV0ZXJzIG9mIGEgZG9tYWluLiBJdCBpcyB1bm5l Y2Vzc2FyeSB0byBoYXZlIExJQlhMX1hFTl9MRUdBQ1lfTUFYX1ZDUFVTIGVsZW1lbnRzIGZvciB0 aGlzIGFycmF5LgogICAgVGhlIGN1cnJlbnQgd29yayBpcyB0byBmaXJzdCBnZXQgdGhlIGV4YWN0 IG51bWJlciBvZiBWQ1BVcyBvZiBhIGRvbWFpbiBhbmQgdGhlbiBjcmVhdGUgYW4gYXJyYXkgd2l0 aCB0aGF0IGV4YWN0IG51bWJlciBvZiBlbGVtZW50cyB0byBib3VuY2UgYmV0d2VlbiB4ZW4gdG9v bCBhbmQgeGVuLgoyKSBQcm92aWRlIG1pY3Jvc2Vjb25kIHRpbWUgcHJlY2lzaW9uIGluIHhsIGlu dGVyZmFjZSBpbnN0ZWFkIG9mIG1pbGxpc2Vjb25kIHRpbWUgcHJlY2lzaW9uLiBbZWFzeV0KICAg IFJpZ2h0IG5vdywgcnQgc2NoZWR1bGVyIGxldCB1c2VyIHRvIHNwZWNpZnkgZWFjaCBWQ1BV4oCZ cyBwYXJhbWV0ZXJzIChwZXJpb2QsIGJ1ZGdldCkgaW4gbWlsbGlzZWNvbmQgKGkuZS4sIG1zKS4g SW4gc29tZSByZWFsLXRpbWUgYXBwbGljYXRpb24sIHVzZXIgbWF5IHdhbnQgdG8gc3BlY2lmeSBW Q1BVc+KAmSBwYXJhbWV0ZXJzIGluICBtaWNyb3NlY29uZCAoaS5lLiwgdXMpLiBUaGUgbmV4dCB3 b3JrIGlzIHRvIGxldCB1c2VyIHNwZWNpZnkgVkNQVXPigJkgcGFyYW1ldGVycyBpbiBtaWNyb3Nl Y29uZCBhbmQgY291bnQgdGhlIHRpbWUgaW4gbWljcm9zZWNvbmQgKG9yIG5hbm9zZWNvbmQpIGlu IHhlbiBydCBzY2hlZHVsZXIgYXMgd2VsbC4KMykgQWRkIFhlbiB0cmFjZSBpbnRvIHRoZSBydCBz Y2hlZHVsZXIuIFtlYXN5XQogICAgV2Ugd2lsbCBhZGQgYSBmZXcgeGVudHJhY2UgdHJhY2Vwb2lu dHMsIGxpa2UgVFJDX0NTQ0hFRDJfUlVOUV9QT1MgaW4gY3JlZGl0MiBzY2hlZHVsZXIsIGluIHJ0 IHNjaGVkdWxlciwgdG8gZGVidWcgdmlhIHRyYWNpbmcuCjQpIE1ldGhvZCBvZiBpbXByb3Zpbmcg dGhlIHBlcmZvcm1hbmNlIG9mIHJ0IHNjaGVkdWxlciBbZnV0dXJlIHdvcmtdCiAgICBWQ1BVcyBv ZiB0aGUgc2FtZSBkb21haW4gbWF5IHByZWVtcHQgZWFjaCBvdGhlciBiYXNlZCBvbiB0aGUgcHJl ZW1wdGl2ZSBnbG9iYWwgRURGIHNjaGVkdWxpbmcgcG9saWN5LiBUaGlzIHNlbGYtc3dpdGNoIGlz c3VlIGRvZXMgbm90IGJyaW5nIGJlbmVmaXQgdG8gdGhlIGRvbWFpbiBidXQgaW50cm9kdWNlIG1v cmUgb3ZlcmhlYWQuIFdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVucywgd2UgY2FuIHNpbXBseSBw cm9tb3RlIHRoZSBjdXJyZW50IHJ1bm5pbmcgbG93ZXItcHJpb3JpdHkgVkNQVeKAmXMgcHJpb3Jp dHkgYW5kIGxldCBpdCAgYm9ycm93IGJ1ZGdldCBmcm9tIGhpZ2hlciBwcmlvcml0eSBWQ1BVcyB0 byBhdm9pZCBzdWNoIHNlbGYtc3d0aWNoIGlzc3VlLgoKVGltZWxpbmUgb2YgaW1wbGVtZW50aW5n IHRoZSBUT0RPczoKV2UgcGxhbiB0byBmaW5pc2ggdGhlIFRPRE8gMSksIDIpIGFuZCAzKSB3aXRo aW4gMy00IHdlZWtzIChvciBlYXJsaWVyKS4KQmVjYXVzZSBUT0RPIDQpIHdpbGwgbWFrZSB0aGUg c2NoZWR1bGluZyBwb2xpY3kgbm90IHB1cmUgR0VERiwgKHBlb3BsZSB3aG8gd2FudHMgdGhlIHJl YWwgR0VERiBtYXkgbm90IGJlIGhhcHB5IHdpdGggdGhpcy4pIHdlIGxvb2sgZm9yd2FyZCB0byBo ZWFyaW5nIHBlb3BsZeKAmXMgb3BpbmlvbnMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTcGVjaWFsIGh1Z2UgdGhh bmtzIHRvIERhcmlvIEZhZ2dpb2xpIGZvciBoaXMgaGVscGZ1bCBhbmQgZGV0YWlsZWQgY29tbWVu dHMgb24gdGhlIHByZXZpZXcgdmVyc2lvbiBvZiB0aGlzIHJ0IHNjaGVkdWxlci4gOi0pCgpBbnkg Y29tbWVudCwgcXVlc3Rpb24sIGFuZCBjb25jZXJucyBhcmUgbW9yZSB0aGFuIHdlbGNvbWUhIDot KQoKVGhhbmsgeW91IHZlcnkgbXVjaCEKCk1lbmcKCltQQVRDSCBSRkMgdjEgMS80XSBydDogQWRk IHJ0IHNjaGVkdWxlciB0byBoeXBlcnZpc29yCltQQVRDSCBSRkMgdjEgMi80XSB4bCBmb3IgcnQg c2NoZWR1bGVyCltQQVRDSCBSRkMgdjEgMy80XSBsaWJ4bCBmb3IgcnQgc2NoZWR1bGVyCltQQVRD SCBSRkMgdjEgNC80XSBsaWJ4YyBmb3IgcnQgc2NoZWR1bGVyCgotLS0tLS0tLS0tLQpNZW5nIFh1 ClBoRCBTdHVkZW50IGluIENvbXB1dGVyIGFuZCBJbmZvcm1hdGlvbiBTY2llbmNlClVuaXZlcnNp dHkgb2YgUGVubnN5bHZhbmlhCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=