authRoleBundle top-level property
MasonBundle
authRoleBundle
final
Implementation
final authRoleBundle = MasonBundle.fromJson(<String, dynamic>{
"files": [
{
"path": "lib/core/auth/app_session.dart",
"data":
"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKCmltcG9ydCAncGFja2FnZTpmbHV0dGVyL2ZvdW5kYXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CgppbXBvcnQgJ2F1dGhfc2VydmljZS5kYXJ0JzsKaW1wb3J0ICdndWVzdF9kYXRhLmRhcnQnOwoKZXhwb3J0ICdhdXRoX3NlcnZpY2UuZGFydCcgc2hvdyBBdXRoRmFpbHVyZSwgQXV0aEZhaWx1cmVSZWFzb247CgovLy8gV2hvIG1heSB1c2UgdGhlIGFwcCB3aXRob3V0IGFuIGFjY291bnQuCmVudW0gQXV0aE1vZGUgewogIC8vLyBOb2JvZHk6IHRoZSB1c2VyIHNpZ25zIGluIGZpcnN0LgogIHJlcXVpcmVkLAoKICAvLy8gRXZlcnlvbmUuIFRoZSBhcHAgaGFzIG5vIHVzZXIgdW50aWwgc29tZW9uZSBzaWducyBpbiwgYW5kIGFza3MgZm9yIGFuCiAgLy8vIGFjY291bnQgb25seSB3aGVyZSBhIHNjcmVlbiBuZWVkcyBvbmUuCiAgZ3Vlc3QsCgogIC8vLyBFdmVyeW9uZSwgYXMgYW4gYW5vbnltb3VzIHVzZXIgdGhhdCB0aGUgYXBwIHNpZ25zIGluIGl0c2VsZiB3aGVuIGl0CiAgLy8vIHN0YXJ0cywgc28gdGhhdCBjb2RlIGhhcyB0aGUgaWQgb2YgYSB1c2VyIGZyb20gdGhlIGZpcnN0IGZyYW1lLiBBbgogIC8vLyBhY2NvdW50IGlzIGFza2VkIGZvciBvbmx5IHdoZXJlIGEgc2NyZWVuIG5lZWRzIG9uZSwgYW5kIHNpZ25pbmcgdXAKICAvLy8gZ2l2ZXMgaXQgdG8gdGhhdCBzYW1lIHVzZXIuCiAgYW5vbnltb3VzLAp9CgovLy8gVGhlIG1vZGUgb2YgdGhpcyBhcHAsIHdoaWNoIHdhcyBjaG9zZW4gd2hlbiB0aGUgYXBwIHdhcyBnZW5lcmF0ZWQuCi8vLwovLy8gVGhlIG1vZGUgZ2F0ZXMgbm90aGluZyBvbiBpdHMgb3duLiBJdCBkZWNpZGVzIHdoYXQgW2FwcFNlc3Npb25dIGRvZXMgd2hlbgovLy8gaXQgc3RhcnRzIGFuZCB3aGF0IFtBcHBTZXNzaW9uQ29udHJvbGxlci5hbGxvd3NBcHBdIHNheXMsIHdoaWNoIGEgZ3VhcmQKLy8vIG9mIHRoZSByb3V0ZXMgcmVhZHMuCi8vLwovLy8gVG8gY2hhbmdlIHRoZSBtb2RlLCBjaGFuZ2UgaXRzIHZhbHVlIGFuZCBrZWVwIHRoZSBkZWNsYXJhdGlvbiBhcyBpdCBpcywKLy8vIG9uIGEgbGluZSB0aGF0IGl0IHN0YXJ0czogYSB0b29sIG9mIHRoZSBhcHAgdGhhdCBjYW5ub3QgaW1wb3J0IHRoaXMKLy8vIGZpbGUsIHdoaWNoIGltcG9ydHMgRmx1dHRlciwgcmVhZHMgdGhlIG1vZGUgZnJvbSB0aGlzIGxpbmUuCmNvbnN0IEF1dGhNb2RlIGF1dGhNb2RlID0ge3t7YXV0aF9tb2RlfX19OwoKLy8vIFdobyB1c2VzIHRoZSBhcHA6IG5vYm9keSB0aGF0IHRoZSBhcHAga25vd3MsIGFuIGFub255bW91cyB1c2VyLCBvciB0aGUKLy8vIHVzZXIgb2YgYW4gYWNjb3VudC4KQGltbXV0YWJsZQpzZWFsZWQgY2xhc3MgQXBwU2Vzc2lvbiB7CiAgY29uc3QgQXBwU2Vzc2lvbigpOwoKICAvLy8gVGhlIGlkIG9mIHRoZSB1c2VyLCBvciBgbnVsbGAgd2hlbiBub2JvZHkgaXMgc2lnbmVkIGluLgogIFN0cmluZz8gZ2V0IHVpZDsKfQoKLy8vIE5vYm9keSBpcyBzaWduZWQgaW4uCmZpbmFsIGNsYXNzIFNpZ25lZE91dFNlc3Npb24gZXh0ZW5kcyBBcHBTZXNzaW9uIHsKICAvLy8gQ3JlYXRlcyB0aGUgc2Vzc2lvbiBvZiBhbiBhcHAgd2l0aG91dCBhIHVzZXIuCiAgY29uc3QgU2lnbmVkT3V0U2Vzc2lvbigpOwoKICBAb3ZlcnJpZGUKICBTdHJpbmc/IGdldCB1aWQgPT4gbnVsbDsKCiAgQG92ZXJyaWRlCiAgYm9vbCBvcGVyYXRvciA9PShPYmplY3Qgb3RoZXIpID0+IG90aGVyIGlzIFNpZ25lZE91dFNlc3Npb247CgogIEBvdmVycmlkZQogIGludCBnZXQgaGFzaENvZGUgPT4gKFNpZ25lZE91dFNlc3Npb24pLmhhc2hDb2RlOwp9CgovLy8gQW4gYW5vbnltb3VzIHVzZXIgaXMgc2lnbmVkIGluOiBvbmUgd2l0aG91dCBhbiBhY2NvdW50LCB3aG9tIHRoZSBhcHAKLy8vIHNpZ25lZCBpbiBpdHNlbGYuCmZpbmFsIGNsYXNzIEFub255bW91c1Nlc3Npb24gZXh0ZW5kcyBBcHBTZXNzaW9uIHsKICAvLy8gQ3JlYXRlcyB0aGUgc2Vzc2lvbiBvZiB0aGUgYW5vbnltb3VzIHVzZXIgW3VpZF0uCiAgY29uc3QgQW5vbnltb3VzU2Vzc2lvbih0aGlzLnVpZCk7CgogIEBvdmVycmlkZQogIGZpbmFsIFN0cmluZyB1aWQ7CgogIEBvdmVycmlkZQogIGJvb2wgb3BlcmF0b3IgPT0oT2JqZWN0IG90aGVyKSA9PgogICAgICBvdGhlciBpcyBBbm9ueW1vdXNTZXNzaW9uICYmIG90aGVyLnVpZCA9PSB1aWQ7CgogIEBvdmVycmlkZQogIGludCBnZXQgaGFzaENvZGUgPT4gdWlkLmhhc2hDb2RlOwp9CgovLy8gVGhlIHVzZXIgb2YgYW4gYWNjb3VudCBpcyBzaWduZWQgaW4uCmZpbmFsIGNsYXNzIEFjY291bnRTZXNzaW9uIGV4dGVuZHMgQXBwU2Vzc2lvbiB7CiAgLy8vIENyZWF0ZXMgdGhlIHNlc3Npb24gb2YgdGhlIGFjY291bnQgW3VpZF0uCiAgY29uc3QgQWNjb3VudFNlc3Npb24odGhpcy51aWQsIHt0aGlzLmVtYWlsfSk7CgogIEBvdmVycmlkZQogIGZpbmFsIFN0cmluZyB1aWQ7CgogIC8vLyBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCwgb3IgYG51bGxgIGlmIGl0IGhhcyBub25lLgogIGZpbmFsIFN0cmluZz8gZW1haWw7CgogIEBvdmVycmlkZQogIGJvb2wgb3BlcmF0b3IgPT0oT2JqZWN0IG90aGVyKSA9PgogICAgICBvdGhlciBpcyBBY2NvdW50U2Vzc2lvbiAmJiBvdGhlci51aWQgPT0gdWlkICYmIG90aGVyLmVtYWlsID09IGVtYWlsOwoKICBAb3ZlcnJpZGUKICBpbnQgZ2V0IGhhc2hDb2RlID0+IE9iamVjdC5oYXNoKHVpZCwgZW1haWwpOwp9CgovLy8gVGhlIHNlc3Npb24gb2YgdGhlIGFwcDogd2hvIHVzZXMgaXQsIGtub3duIGJlZm9yZSB0aGUgZmlyc3QgZnJhbWUsIGFuZAovLy8gdGhlIHdheSB0byBzaWduIGluLCB1cCBhbmQgb3V0LgovLy8KLy8vIEl0cyBgdmFsdWVgIGlzIHRoZSBbQXBwU2Vzc2lvbl0sIGFuZCBpdCB0ZWxscyBpdHMgbGlzdGVuZXJzIHdoZW4gdGhhdAovLy8gY2hhbmdlcy4gQSB3aWRnZXQgZm9sbG93cyBpdCB3aXRoIGEgYFZhbHVlTGlzdGVuYWJsZUJ1aWxkZXJgLgpmaW5hbCBhcHBTZXNzaW9uID0gQXBwU2Vzc2lvbkNvbnRyb2xsZXIoCiAgbW9kZTogYXV0aE1vZGUsCiAgdGFrZUd1ZXN0RGF0YTogdGFrZUd1ZXN0RGF0YSwKKTsKCi8vLyBLZWVwcyB0aGUgc2Vzc2lvbiBvZiB0aGUgYXBwIHVwIHRvIGRhdGUgd2l0aCB0aGUgc2VydmljZSBvZiB0aGUgcHJvdmlkZXIKLy8vIG9mIHNpZ24taW4sIGFuZCBzaWducyBpbiwgdXAgYW5kIG91dCB0aHJvdWdoIHRoYXQgc2VydmljZS4gVGhlIGFwcCBoYXMKLy8vIG9uZSwgW2FwcFNlc3Npb25dLgovLy8KLy8vIEV2ZXJ5IGNhbGwgaGVyZSBmYWlscyBvbmx5IHdpdGggYW4gW0F1dGhGYWlsdXJlXSwgd2hvc2UgcmVhc29uIHRoZSBhcHAKLy8vIHNob3dzIGluIGEgdGV4dCBvZiBpdHMgb3duLiBBbiBlcnJvciBvZiBhbm90aGVyIGtpbmQgYmVjb21lcyBhIGZhaWx1cmUKLy8vIHdpdGggdGhlIHJlYXNvbiBbQXV0aEZhaWx1cmVSZWFzb24udW5rbm93bl0gYW5kIHRoZSBlcnJvciBhcyBpdHMKLy8vIFtBdXRoRmFpbHVyZS5kZXZlbG9wZXJIaW50XS4KLy8vCi8vLyBUaGUgY2FsbHMgcnVuIG9uZSBhZnRlciBhbm90aGVyLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIG1hZGUsIGFuZCBub25lCi8vLyBydW5zIG5leHQgdG8gYW4gYW5vbnltb3VzIHNpZ24taW4gdGhhdCBpcyBvbiBpdHMgd2F5LiBTbyB0aGUgdXNlciBvZiB0aGUKLy8vIGFwcCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsIHRoYXQgd2FzIG1hZGUgbGFzdC4gSW4gdGhlIG1vZGUKLy8vIFtBdXRoTW9kZS5hbm9ueW1vdXNdLCBhIGNhbGwgdGhhdCBsZWF2ZXMgbm9ib2R5IHNpZ25lZCBpbiBpcyBmb2xsb3dlZCBieQovLy8gYW4gYW5vbnltb3VzIHNpZ24taW4uCmZpbmFsIGNsYXNzIEFwcFNlc3Npb25Db250cm9sbGVyIGV4dGVuZHMgQ2hhbmdlTm90aWZpZXIKICAgIGltcGxlbWVudHMgVmFsdWVMaXN0ZW5hYmxlPEFwcFNlc3Npb24+IHsKICAvLy8gQ3JlYXRlcyBhIGNvbnRyb2xsZXIgZm9yIGFuIGFwcCBpbiBbbW9kZV0uIFRoZSBhcHAgY3JlYXRlcwogIC8vLyBbYXBwU2Vzc2lvbl0gYW5kIG5vIG90aGVyLiBBIHRlc3QgY3JlYXRlcyBvbmUgdG8gc2VlIGFub3RoZXIgbW9kZSwgb3IKICAvLy8gYSBzaG9ydGVyIFthbm9ueW1vdXNXYWl0XSwgYW5kIGRpc3Bvc2VzIG9mIGl0LgogIEFwcFNlc3Npb25Db250cm9sbGVyKHsKICAgIHJlcXVpcmVkIHRoaXMubW9kZSwKICAgIHJlcXVpcmVkIHRoaXMudGFrZUd1ZXN0RGF0YSwKICAgIHRoaXMuYW5vbnltb3VzV2FpdCA9IGNvbnN0IER1cmF0aW9uKHNlY29uZHM6IDMpLAogIH0pOwoKICAvLy8gV2hvIG1heSB1c2UgdGhlIGFwcCB3aXRob3V0IGFuIGFjY291bnQuCiAgZmluYWwgQXV0aE1vZGUgbW9kZTsKCiAgLy8vIFRha2VzIHdoYXQgYW4gYW5vbnltb3VzIHVzZXIgaGFzIGJlZm9yZSB0aGF0IHVzZXIgc2lnbnMgaW4gdG8gYW4KICAvLy8gYWNjb3VudDogYHRha2VHdWVzdERhdGFgIG9mIGBndWVzdF9kYXRhLmRhcnRgLgogIGZpbmFsIEZ1dHVyZTxHaXZlR3Vlc3REYXRhPz4gRnVuY3Rpb24oU3RyaW5nIGd1ZXN0VWlkKSB0YWtlR3Vlc3REYXRhOwoKICAvLy8gSG93IGxvbmcgdGhlIGFwcCB3YWl0cyBmb3IgaXRzIGFub255bW91cyB1c2VyIHdoZW4gaXQgc3RhcnRzLCBhbmQKICAvLy8gYWZ0ZXIgYSBzaWduLW91dCBvciB0aGUgZGVsZXRpb24gb2YgYW4gYWNjb3VudCwgaW4gdGhlIG1vZGUKICAvLy8gW0F1dGhNb2RlLmFub255bW91c10uCiAgZmluYWwgRHVyYXRpb24gYW5vbnltb3VzV2FpdDsKCiAgQXV0aFNlcnZpY2U/IF9zZXJ2aWNlOwogIFN0cmVhbVN1YnNjcmlwdGlvbjxBdXRoVXNlcj8+PyBfdXNlckNoYW5nZXM7CiAgQXBwU2Vzc2lvbiBfc2Vzc2lvbiA9IGNvbnN0IFNpZ25lZE91dFNlc3Npb24oKTsKICBib29sIF9kaXNwb3NlZCA9IGZhbHNlOwoKICAvLy8gQ29tcGxldGVzIHdoZW4gdGhlIGFwcCBoYXMgc3RhcnRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgZmluYWwgQ29tcGxldGVyPHZvaWQ+IF9zdGFydGVkID0gQ29tcGxldGVyPHZvaWQ+KCk7CgogIC8vLyBUaGUgY2FsbCB0aGF0IHdhcyBtYWRlIGxhc3QsIHdoaWxlIGEgY2FsbCBpcyBvbiBpdHMgd2F5OiB0aGUgbmV4dCBvbmUKICAvLy8gd2FpdHMgZm9yIGl0LiBJdCBpcyBgbnVsbGAgd2hlbiBub25lIGlzLCBhbmQgYSBjYWxsIHRoZW4gYXdhaXRzCiAgLy8vIG5vdGhpbmcuIEEgZnV0dXJlIHRoYXQgY29tcGxldGVkIGluIGFub3RoZXIgem9uZSB3b3VsZCBob2xkIHRoZSBjYWxsCiAgLy8vIGJhY2sgaW4gYSB3aWRnZXQgdGVzdCwgd2hlcmUgdGhlIGFwcCBzdGFydHMgaW4gcmVhbCB0aW1lIGFuZCB0aGUgdGVzdAogIC8vLyBnb2VzIG9uIGluIGZha2UgdGltZS4KICBGdXR1cmU8dm9pZD4/IF9sYXN0Q2FsbDsKCiAgLy8vIFRoZSBhbm9ueW1vdXMgc2lnbi1pbnMgdGhhdCBhcmUgb24gdGhlaXIgd2F5LCBlYWNoIGJ5IGl0cyBzZXJ2aWNlLCBzbwogIC8vLyB0aGF0IHRoZSBhcHAgc3RhcnRzIG5vIHNlY29uZCBvbmUgbmV4dCB0byBpdC4KICBmaW5hbCBNYXA8QXV0aFNlcnZpY2UsIEZ1dHVyZTx2b2lkPj4gX2Fub255bW91c1NpZ25JbnMgPSBNYXAuaWRlbnRpdHkoKTsKCiAgLy8vIFRlbGxzIHdoZW4gdGhlIHVzZXIgY29tZXMgYmFjayB0byB0aGUgYXBwLCBpbiB0aGUgbW9kZQogIC8vLyBbQXV0aE1vZGUuYW5vbnltb3VzXS4KICBfUmVzdW1lT2JzZXJ2ZXI/IF9vYnNlcnZlcjsKCiAgLy8vIFdobyB1c2VzIHRoZSBhcHAuCiAgQG92ZXJyaWRlCiAgQXBwU2Vzc2lvbiBnZXQgdmFsdWUgPT4gX3Nlc3Npb247CgogIC8vLyBXaGV0aGVyIHRoZSB1c2VyIG1heSBzZWUgdGhlIGFwcDogYWx3YXlzIGluIHRoZSBtb2RlcyBbQXV0aE1vZGUuZ3Vlc3RdCiAgLy8vIGFuZCBbQXV0aE1vZGUuYW5vbnltb3VzXSwgYW5kIHdpdGggYW4gYWNjb3VudCBpbiB0aGUgbW9kZQogIC8vLyBbQXV0aE1vZGUucmVxdWlyZWRdLgogIC8vLwogIC8vLyBJdCBpcyBjb21wdXRlZCBmcm9tIHRoZSBzZXNzaW9uIGVhY2ggdGltZSBpdCBpcyByZWFkLCBhbmQgaXRzCiAgLy8vIGxpc3RlbmVycyBhcmUgdGhvc2Ugb2YgdGhlIHNlc3Npb24uIFNvIHdoZW4gdGhlIHNlc3Npb24gY2hhbmdlcywgYQogIC8vLyBsaXN0ZW5lciBmaW5kcyB0aGlzIHZhbHVlIGFuZCBbaGFzQWNjb3VudF0gYm90aCB1cCB0byBkYXRlLCB3aGljaGV2ZXIKICAvLy8gb2YgdGhlIHR3byBpdCBsaXN0ZW5zIHRvLiBBIGxpc3RlbmVyIGlzIGFsc28gY2FsbGVkIGZvciBhIGNoYW5nZSBvZgogIC8vLyB0aGUgc2Vzc2lvbiB0aGF0IGxlYXZlcyB0aGlzIHZhbHVlIGFzIGl0IHdhcy4KICBsYXRlIGZpbmFsIFZhbHVlTGlzdGVuYWJsZTxib29sPiBhbGxvd3NBcHAgPSBfU2Vzc2lvbkZsYWcoCiAgICB0aGlzLAogICAgKHNlc3Npb24pID0+IG1vZGUgIT0gQXV0aE1vZGUucmVxdWlyZWQgfHwgc2Vzc2lvbiBpcyBBY2NvdW50U2Vzc2lvbiwKICApOwoKICAvLy8gV2hldGhlciB0aGUgdXNlciBvZiBhbiBhY2NvdW50IGlzIHNpZ25lZCBpbiwgd2hpY2ggYW4gYW5vbnltb3VzIHVzZXIKICAvLy8gaXMgbm90LiBJdCBmb2xsb3dzIHRoZSBzZXNzaW9uIGFzIFthbGxvd3NBcHBdIGRvZXMuCiAgbGF0ZSBmaW5hbCBWYWx1ZUxpc3RlbmFibGU8Ym9vbD4gaGFzQWNjb3VudCA9IF9TZXNzaW9uRmxhZygKICAgIHRoaXMsCiAgICAoc2Vzc2lvbikgPT4gc2Vzc2lvbiBpcyBBY2NvdW50U2Vzc2lvbiwKICApOwoKICAvLy8gU3RhcnRzIHRoZSBzZXNzaW9uIHdpdGggW3NlcnZpY2VdOiB0YWtlcyB0aGUgdXNlciB3aG8gaXMgc2lnbmVkIGluIG9uCiAgLy8vIHRoaXMgZGV2aWNlLCBhbmQgZm9sbG93cyB0aGUgY2hhbmdlcyB0aGF0IHRoZSBzZXJ2aWNlIHRlbGxzIG9mLgogIC8vLwogIC8vLyBgaW5pdEF1dGgoKWAgY2FsbHMgaXQgaW4gYGJvb3RzdHJhcCgpYCwgc28gdGhlIHNlc3Npb24gaXMga25vd24gYmVmb3JlCiAgLy8vIHRoZSBmaXJzdCBmcmFtZS4gSW4gdGhlIG1vZGUgW0F1dGhNb2RlLmFub255bW91c10sIGFuIGFwcCB3aXRob3V0IGEKICAvLy8gdXNlciBzaWducyBpbiBhbm9ueW1vdXNseSBoZXJlIGFuZCB3YWl0cyBmb3IgdGhhdCBmb3IgYXQgbW9zdAogIC8vLyBbYW5vbnltb3VzV2FpdF0uIFdoZW4gdGhlIHNpZ24taW4gZmFpbHMgb3IgdGFrZXMgbG9uZ2VyLCB0aGUgYXBwCiAgLy8vIHN0YXJ0cyB3aXRob3V0IGEgdXNlci4gQSBzaWduLWluIHRoYXQgdGFrZXMgbG9uZ2VyIHN0aWxsIGJlY29tZXMgdGhlCiAgLy8vIHNlc3Npb24gd2hlbiBpdCBjb21lcywgYW5kIHRoZSBhcHAgdHJpZXMgYWdhaW4gZWFjaCB0aW1lIHRoZSB1c2VyCiAgLy8vIGNvbWVzIGJhY2sgdG8gaXQuCiAgLy8vCiAgLy8vIEEgY2FsbCBtYWRlIGJlZm9yZSB0aGUgZmlyc3Qgc3RhcnQgd2FpdHMgZm9yIGl0OiBbc2lnbkluXSwgW3NpZ25VcF0sCiAgLy8vIFtzZW5kUGFzc3dvcmRSZXNldF0sIFtzaWduT3V0XSBhbmQgW2RlbGV0ZUFjY291bnRdLiBTdWNoIGNhbGxzIHJ1biBpbgogIC8vLyB0aGVpciBvcmRlciBvbmNlIHRoZSBzdGFydCBoYXMgdGhlIHVzZXIsIGFuZCB0aGUgZnV0dXJlIG9mIHRoaXMgc3RhcnQKICAvLy8gY29tcGxldGVzIGFmdGVyIHRoZW0sIGJ1dCB3YWl0cyBmb3Igbm8gY2FsbCB0aGF0IGlzIG1hZGUgd2hpbGUgaXQKICAvLy8gcnVucy4gVGhlIG1vY2tzIG9mIHRoZSB0ZXN0cyBvZiBhbiBhcHAgdXNlIHRoaXM6IGEgY2FsbCBvZiBbc2lnblVwXQogIC8vLyBtYWRlIGJlZm9yZSBgYm9vdHN0cmFwKClgLCB3aGljaCBub3RoaW5nIGF3YWl0cywgZ2l2ZXMgdGhlIGFwcCBhbgogIC8vLyBhY2NvdW50IGJlZm9yZSBpdHMgZmlyc3QgZnJhbWUuIEEgdGVzdCBtYWtlcyBzdWNoIGEgY2FsbCBvdXRzaWRlIHRoZQogIC8vLyBib2R5IG9mIGEgdGVzdCwgYXMgaW4gYSBgc2V0VXBBbGxgOiBtYWRlIGluIHRoZSBib2R5IG9mIGEgd2lkZ2V0CiAgLy8vIHRlc3QsIGl0IHdhaXRzIGluIHRoZSBmYWtlIHRpbWUgb2YgdGhhdCBib2R5LCBhbmQgYSBzdGFydCB0aGF0IHJ1bnMgaW4KICAvLy8gcmVhbCB0aW1lIG5ldmVyIGNvbXBsZXRlcy4KICAvLy8KICAvLy8gSXQgbWF5IGJlIGNhbGxlZCBhZ2Fpbiwgd2l0aCB0aGUgc2VydmljZSB0aGF0IHRoZSBzZXNzaW9uIGhhcyBmcm9tCiAgLy8vIHRoZW4gb246IGBpbml0QXV0aCgpYCBkb2VzIHNvIGluIGEgdGVzdCBvZiB0aGUgbmV4dCBsYXVuY2ggb2YgdGhlIGFwcCwKICAvLy8gYW5kIGEgdGVzdCBnaXZlcyBpdCBhIHNlcnZpY2Ugb2YgaXRzIG93bi4gU3VjaCBhIHN0YXJ0IHRha2VzIGl0cyB0dXJuCiAgLy8vIGFmdGVyIHRoZSBjYWxscyB0aGF0IGFyZSBvbiB0aGVpciB3YXkuCiAgRnV0dXJlPHZvaWQ+IHN0YXJ0KEF1dGhTZXJ2aWNlIHNlcnZpY2UpIGFzeW5jIHsKICAgIC8vIFRoZSBjYWxscyB0aGF0IHdlcmUgbWFkZSBiZWZvcmUgdGhpcyBzdGFydC4gVGhlIGZpcnN0IHN0YXJ0IGxldHMKICAgIC8vIHRoZW0gcnVuIG9uY2UgaXQgaGFzIHRoZSB1c2VyLCBhbmQgYSBsYXRlciBvbmUgd2FpdHMgZm9yIHRoZW0uCiAgICBmaW5hbCBlYXJsaWVyID0gX2xhc3RDYWxsOwogICAgZmluYWwgZmlyc3QgPSAhX3N0YXJ0ZWQuaXNDb21wbGV0ZWQ7CiAgICBpZiAoIWZpcnN0KSBhd2FpdCBlYXJsaWVyOwogICAgdW5hd2FpdGVkKF91c2VyQ2hhbmdlcz8uY2FuY2VsKCkpOwogICAgX3NlcnZpY2UgPSBzZXJ2aWNlOwogICAgX3VzZXJDaGFuZ2VzID0gc2VydmljZS51c2VyQ2hhbmdlcy5saXN0ZW4oCiAgICAgIChfKSA9PiBfc3luYygpLAogICAgICBvbkVycm9yOiAoT2JqZWN0IGVycm9yLCBTdGFja1RyYWNlIHN0YWNrVHJhY2UpID0+IF9yZXBvcnQoCiAgICAgICAgZXJyb3IsCiAgICAgICAgc3RhY2tUcmFjZSwKICAgICAgICAnd2hpbGUgZm9sbG93aW5nIHRoZSB1c2VyIG9mIHRoZSBwcm92aWRlciBvZiBzaWduLWluJywKICAgICAgKSwKICAgICk7CiAgICBfc3luYygpOwogICAgaWYgKG1vZGUgPT0gQXV0aE1vZGUuYW5vbnltb3VzKSB7CiAgICAgIGlmIChfb2JzZXJ2ZXIgPT0gbnVsbCkgewogICAgICAgIGZpbmFsIG9ic2VydmVyID0gX29ic2VydmVyID0gX1Jlc3VtZU9ic2VydmVyKF9yZXRyeSk7CiAgICAgICAgV2lkZ2V0c0JpbmRpbmcuaW5zdGFuY2UuYWRkT2JzZXJ2ZXIob2JzZXJ2ZXIpOwogICAgICB9CiAgICAgIGF3YWl0IF9zaWduSW5Bbm9ueW1vdXNseSgpOwogICAgfQogICAgaWYgKCFfc3RhcnRlZC5pc0NvbXBsZXRlZCkgX3N0YXJ0ZWQuY29tcGxldGUoKTsKICAgIGlmIChmaXJzdCkgYXdhaXQgZWFybGllcjsKICB9CgogIC8vLyBTaWducyBpbiB0byB0aGUgYWNjb3VudCBvZiBbZW1haWxdIHdpdGggW3Bhc3N3b3JkXS4KICAvLy8KICAvLy8gQW4gYW5vbnltb3VzIHVzZXIgYmVjb21lcyB0aGUgdXNlciBvZiB0aGF0IGFjY291bnQsIGFuZCB3aGF0IHRoZQogIC8vLyBhbm9ueW1vdXMgdXNlciBoYWQgbW92ZXMgdG8gdGhlIGFjY291bnQgYXMgYHRha2VHdWVzdERhdGFgIHNheXMuCiAgRnV0dXJlPHZvaWQ+IHNpZ25Jbih7cmVxdWlyZWQgU3RyaW5nIGVtYWlsLCByZXF1aXJlZCBTdHJpbmcgcGFzc3dvcmR9KSA9PgogICAgICBfY2FsbCgKICAgICAgICAoc2VydmljZSkgPT4gX3RvQWNjb3VudCgKICAgICAgICAgICgpID0+IHNlcnZpY2Uuc2lnbkluKGVtYWlsOiBlbWFpbCwgcGFzc3dvcmQ6IHBhc3N3b3JkKSwKICAgICAgICApLAogICAgICApOwoKICAvLy8gQ3JlYXRlcyBhbiBhY2NvdW50IGZvciBbZW1haWxdIHdpdGggW3Bhc3N3b3JkXSBhbmQgc2lnbnMgaW4gdG8gaXQuCiAgLy8vCiAgLy8vIEFuIGFub255bW91cyB1c2VyIGdldHMgdGhlIGFjY291bnQgYW5kIGtlZXBzIHRoZSBpZCwgc28gZXZlcnl0aGluZwogIC8vLyB0aGF0IHRoZSB1c2VyIGhhZCBzdGF5cy4KICBGdXR1cmU8dm9pZD4gc2lnblVwKHtyZXF1aXJlZCBTdHJpbmcgZW1haWwsIHJlcXVpcmVkIFN0cmluZyBwYXNzd29yZH0pID0+CiAgICAgIF9jYWxsKAogICAgICAgIChzZXJ2aWNlKSA9PiBfc2Vzc2lvbiBpcyBBbm9ueW1vdXNTZXNzaW9uCiAgICAgICAgICAgID8gc2VydmljZS5saW5rUGFzc3dvcmQoZW1haWw6IGVtYWlsLCBwYXNzd29yZDogcGFzc3dvcmQpCiAgICAgICAgICAgIDogc2VydmljZS5zaWduVXAoZW1haWw6IGVtYWlsLCBwYXNzd29yZDogcGFzc3dvcmQpLAogICAgICApOwoKICAvLy8gU2VuZHMgdGhlIG1lc3NhZ2Ugd2l0aCB3aGljaCB0aGUgb3duZXIgb2YgdGhlIGFjY291bnQgb2YgW2VtYWlsXSBzZXRzCiAgLy8vIGEgbmV3IHBhc3N3b3JkLiBJdCBjb21wbGV0ZXMgd2hldGhlciBbZW1haWxdIGhhcyBhbiBhY2NvdW50IG9yIG5vdC4KICBGdXR1cmU8dm9pZD4gc2VuZFBhc3N3b3JkUmVzZXQoU3RyaW5nIGVtYWlsKSA9PgogICAgICBfY2FsbCgoc2VydmljZSkgPT4gc2VydmljZS5zZW5kUGFzc3dvcmRSZXNldChlbWFpbCkpOwoKICAvLy8gU2lnbnMgdGhlIHVzZXIgb3V0LiBJbiB0aGUgbW9kZSBbQXV0aE1vZGUuYW5vbnltb3VzXSwgdGhlIGFwcCB0aGVuCiAgLy8vIHNpZ25zIGluIGFub255bW91c2x5IGFnYWluLCBhcyB3aGVuIGl0IHN0YXJ0cy4KICBGdXR1cmU8dm9pZD4gc2lnbk91dCgpID0+CiAgICAgIF9jYWxsKChzZXJ2aWNlKSA9PiBzZXJ2aWNlLnNpZ25PdXQoKSwgd2FpdHNGb3JBbm9ueW1vdXNVc2VyOiB0cnVlKTsKCiAgLy8vIERlbGV0ZXMgdGhlIHVzZXIgd2hvIGlzIHNpZ25lZCBpbi4gVGhlIGFwcCBpcyB0aGVuIHdpdGhvdXQgYSB1c2VyLCBhcwogIC8vLyBhZnRlciBbc2lnbk91dF0sIGFuZCBpbiB0aGUgbW9kZSBbQXV0aE1vZGUuYW5vbnltb3VzXSBpdCBzaWducyBpbgogIC8vLyBhbm9ueW1vdXNseSBhZ2Fpbi4KICAvLy8KICAvLy8gSXQgbWF5IGZhaWwgd2l0aCBbQXV0aEZhaWx1cmVSZWFzb24ucmVjZW50U2lnbkluUmVxdWlyZWRdOiB0aGUgdXNlcgogIC8vLyB0aGVuIHNpZ25zIG91dCwgc2lnbnMgaW4gYWdhaW4gYW5kIHJlcGVhdHMgaXQuCiAgRnV0dXJlPHZvaWQ+IGRlbGV0ZUFjY291bnQoKSA9PgogICAgICBfY2FsbCgoc2VydmljZSkgPT4gc2VydmljZS5kZWxldGVBY2NvdW50KCksIHdhaXRzRm9yQW5vbnltb3VzVXNlcjogdHJ1ZSk7CgogIC8vLyBTdG9wcyBmb2xsb3dpbmcgdGhlIHNlcnZpY2UgYW5kIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGFwcC4gQSBjYWxsIHRoYXQKICAvLy8gaXMgb24gaXRzIHdheSBzdGlsbCBlbmRzIGFzIGl0IHdvdWxkIGhhdmUsIGJ1dCB0ZWxscyBubyBsaXN0ZW5lciwgYW5kCiAgLy8vIG5vIGFub255bW91cyBzaWduLWluIGZvbGxvd3MgaXQuCiAgQG92ZXJyaWRlCiAgdm9pZCBkaXNwb3NlKCkgewogICAgX2Rpc3Bvc2VkID0gdHJ1ZTsKICAgIHVuYXdhaXRlZChfdXNlckNoYW5nZXM/LmNhbmNlbCgpKTsKICAgIGlmIChfb2JzZXJ2ZXIgY2FzZSBmaW5hbCBvYnNlcnZlcj8pIHsKICAgICAgV2lkZ2V0c0JpbmRpbmcuaW5zdGFuY2UucmVtb3ZlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwogICAgfQogICAgc3VwZXIuZGlzcG9zZSgpOwogIH0KCiAgLy8vIFRoZSB1c2VyIGNhbWUgYmFjayB0byB0aGUgYXBwLiBJbiB0aGUgbW9kZSBbQXV0aE1vZGUuYW5vbnltb3VzXSwgYW4KICAvLy8gYXBwIHdpdGhvdXQgYSB1c2VyIHRoZW4gc2lnbnMgaW4gYW5vbnltb3VzbHkgYWdhaW46IGFzIHdoYXQgZm9sbG93cwogIC8vLyBldmVyeSBjYWxsLCBzbyB0aGlzIHRha2VzIGEgdHVybiBhbW9uZyB0aGUgY2FsbHMgd2l0aCBub3RoaW5nIGVsc2UgdG8KICAvLy8gZG8sIGFuZCBzdGFydHMgbm8gYW5vbnltb3VzIHNpZ24taW4gbmV4dCB0byBhIHNpZ24taW4uCiAgdm9pZCBfcmV0cnkoKSA9PiB1bmF3YWl0ZWQoX2NhbGwoKHNlcnZpY2UpIGFzeW5jIHt9KSk7CgogIC8vLyBSdW5zIFtjYWxsXSB3aXRoIHRoZSBzZXJ2aWNlIG9uY2UgdGhlIGNhbGxzIG1hZGUgYmVmb3JlIGl0IGFyZSBvdmVyLAogIC8vLyBhbmQgbm90IGJlZm9yZSB0aGUgYXBwIGhhcyBzdGFydGVkIGZvciB0aGUgZmlyc3QgdGltZS4KICAvLy8KICAvLy8gSW4gdGhlIG1vZGUgW0F1dGhNb2RlLmFub255bW91c10sIGEgY2FsbCB0aGF0IGxlYXZlcyBub2JvZHkgc2lnbmVkIGluCiAgLy8vIGlzIGZvbGxvd2VkIGJ5IGFuIGFub255bW91cyBzaWduLWluLiBBIGNhbGwgdGhhdAogIC8vLyBbd2FpdHNGb3JBbm9ueW1vdXNVc2VyXSwgYXMgYSBzaWduLW91dCwgY29tcGxldGVzIG9uY2UgdGhhdCBzaWduLWluIGlzCiAgLy8vIG92ZXIgb3IgdG9vayB0b28gbG9uZywgYXMgdGhlIHN0YXJ0IGRvZXMuCiAgRnV0dXJlPHZvaWQ+IF9jYWxsKAogICAgRnV0dXJlPHZvaWQ+IEZ1bmN0aW9uKEF1dGhTZXJ2aWNlIHNlcnZpY2UpIGNhbGwsIHsKICAgIGJvb2wgd2FpdHNGb3JBbm9ueW1vdXNVc2VyID0gZmFsc2UsCiAgfSkgYXN5bmMgewogICAgZmluYWwgZWFybGllciA9CiAgICAgICAgX2xhc3RDYWxsID8/IChfc3RhcnRlZC5pc0NvbXBsZXRlZCA/IG51bGwgOiBfc3RhcnRlZC5mdXR1cmUpOwogICAgZmluYWwgZG9uZSA9IENvbXBsZXRlcjx2b2lkPigpOwogICAgZmluYWwgb3duID0gX2xhc3RDYWxsID0gZG9uZS5mdXR1cmU7CiAgICBpZiAoZWFybGllciAhPSBudWxsKSBhd2FpdCBlYXJsaWVyOwogICAgdHJ5IHsKICAgICAgYXdhaXQgX2d1YXJkZWQoY2FsbCk7CiAgICAgIGZpbmFsIHNpZ25JbiA9IF9zaWduSW5Bbm9ueW1vdXNseSgpOwogICAgICBpZiAod2FpdHNGb3JBbm9ueW1vdXNVc2VyKSBhd2FpdCBzaWduSW47CiAgICB9IGZpbmFsbHkgewogICAgICBpZiAoaWRlbnRpY2FsKF9sYXN0Q2FsbCwgb3duKSkgX2xhc3RDYWxsID0gbnVsbDsKICAgICAgZG9uZS5jb21wbGV0ZSgpOwogICAgfQogIH0KCiAgLy8vIFJ1bnMgW2NhbGxdIHdpdGggdGhlIHNlcnZpY2UsIG9uY2UgYW4gYW5vbnltb3VzIHNpZ24taW4gdGhhdCBpcyBvbiBpdHMKICAvLy8gd2F5IGlzIG92ZXI6IG9mIGEgY2FsbCBhbmQgYSBzaWduLWluIHRoYXQgcnVuIGF0IHRoZSBzYW1lIHRpbWUsIHRoZQogIC8vLyBvbmUgdGhhdCBlbmRlZCBsYXN0IHdvdWxkIGRlY2lkZSB3aG8gdGhlIHVzZXIgaXMuCiAgLy8vCiAgLy8vIFdoYXRldmVyIFtjYWxsXSB0aHJvd3MgdGhhdCBpcyBubyBbQXV0aEZhaWx1cmVdIGJlY29tZXMgb25lLCBhbmQgdGhlCiAgLy8vIHNlc3Npb24gaGFzIHRoZSB1c2VyIG9mIHRoZSBzZXJ2aWNlIHdoZW4gaXQgaXMgb3ZlciwgYWxzbyB3aGVuIGl0CiAgLy8vIGZhaWxlZC4gQSBjYWxsIHRoYXQgZmFpbGVkIGRvZXMgbm90IHdhaXQgZm9yIHRoZSBhbm9ueW1vdXMgc2lnbi1pbgogIC8vLyB0aGF0IGZvbGxvd3MgaXQsIHNvIHRoYXQgaXRzIGZhaWx1cmUgaXMgbm90IGxhdGUuCiAgRnV0dXJlPHZvaWQ+IF9ndWFyZGVkKAogICAgRnV0dXJlPHZvaWQ+IEZ1bmN0aW9uKEF1dGhTZXJ2aWNlIHNlcnZpY2UpIGNhbGwsCiAgKSBhc3luYyB7CiAgICBmaW5hbCBzZXJ2aWNlID0gX3NlcnZpY2UhOwogICAgdHJ5IHsKICAgICAgYXdhaXQgX2Fub255bW91c1NpZ25JbnNbc2VydmljZV07CiAgICAgIGF3YWl0IGNhbGwoc2VydmljZSk7CiAgICB9IG9uIE9iamVjdCBjYXRjaCAoZXJyb3IsIHN0YWNrVHJhY2UpIHsKICAgICAgX3N5bmMoKTsKICAgICAgdW5hd2FpdGVkKF9zaWduSW5Bbm9ueW1vdXNseSgpKTsKICAgICAgaWYgKGVycm9yIGlzIEF1dGhGYWlsdXJlKSByZXRocm93OwogICAgICBFcnJvci50aHJvd1dpdGhTdGFja1RyYWNlKAogICAgICAgIEF1dGhGYWlsdXJlKEF1dGhGYWlsdXJlUmVhc29uLnVua25vd24sIGRldmVsb3BlckhpbnQ6ICckZXJyb3InKSwKICAgICAgICBzdGFja1RyYWNlLAogICAgICApOwogICAgfQogICAgX3N5bmMoKTsKICB9CgogIC8vLyBTaWducyBpbiB0byBhbiBhY2NvdW50IHdpdGggW3NpZ25Jbl0sIGluIHdoaWNoZXZlciB3YXksIGFuZCBtb3ZlcyB3aGF0CiAgLy8vIGFuIGFub255bW91cyB1c2VyIGhhZCB0byB0aGF0IGFjY291bnQuCiAgLy8vCiAgLy8vIEl0IHRha2VzIHRoZSBkYXRhIGJlZm9yZSB0aGUgc2lnbi1pbiwgd2hpbGUgdGhlIGFub255bW91cyB1c2VyIGlzCiAgLy8vIHN0aWxsIHNpZ25lZCBpbiwgYW5kIGdpdmVzIGl0IG9uY2UgdGhlIHVzZXIgb2YgYW5vdGhlciBpZCBoYXMgYW4KICAvLy8gYWNjb3VudC4gSWYgdGFraW5nIGZhaWxzLCB0aGUgY2FsbCBmYWlscyBhbmQgbm90aGluZyBoYXMgY2hhbmdlZC4gSWYKICAvLy8gZ2l2aW5nIGZhaWxzLCB0aGUgdXNlciBpcyBzaWduZWQgaW4gYWxyZWFkeSwgc28gdGhlIGNhbGwgY29tcGxldGVzIGFuZAogIC8vLyB0aGUgZXJyb3IgaXMgcmVwb3J0ZWQgYXMgYW4gZXJyb3Igb2YgdGhlIGFwcC4KICBGdXR1cmU8dm9pZD4gX3RvQWNjb3VudChGdXR1cmU8dm9pZD4gRnVuY3Rpb24oKSBzaWduSW4pIGFzeW5jIHsKICAgIGZpbmFsIGd1ZXN0ID0gX3Nlc3Npb247CiAgICBmaW5hbCBnaXZlID0KICAgICAgICBndWVzdCBpcyBBbm9ueW1vdXNTZXNzaW9uID8gYXdhaXQgdGFrZUd1ZXN0RGF0YShndWVzdC51aWQpIDogbnVsbDsKICAgIGF3YWl0IHNpZ25JbigpOwogICAgX3N5bmMoKTsKICAgIGZpbmFsIGFjY291bnQgPSBfc2Vzc2lvbjsKICAgIGlmIChnaXZlID09IG51bGwgfHwKICAgICAgICBhY2NvdW50IGlzISBBY2NvdW50U2Vzc2lvbiB8fAogICAgICAgIGFjY291bnQudWlkID09IGd1ZXN0LnVpZCkgewogICAgICByZXR1cm47CiAgICB9CiAgICB0cnkgewogICAgICBhd2FpdCBnaXZlKGFjY291bnQudWlkKTsKICAgIH0gb24gT2JqZWN0IGNhdGNoIChlcnJvciwgc3RhY2tUcmFjZSkgewogICAgICBfcmVwb3J0KAogICAgICAgIGVycm9yLAogICAgICAgIHN0YWNrVHJhY2UsCiAgICAgICAgJ3doaWxlIGdpdmluZyB0aGUgZGF0YSBvZiBhIGd1ZXN0IHRvIHRoZSBhY2NvdW50JywKICAgICAgKTsKICAgIH0KICB9CgogIC8vLyBSZXBvcnRzIFtlcnJvcl0sIHdoaWNoIG5vIGNhbGwgY2FuIGZhaWwgd2l0aCwgYXMgYW4gZXJyb3Igb2YgdGhlIGFwcC4KICB2b2lkIF9yZXBvcnQoT2JqZWN0IGVycm9yLCBTdGFja1RyYWNlIHN0YWNrVHJhY2UsIFN0cmluZyBkdXJpbmcpID0+CiAgICAgIEZsdXR0ZXJFcnJvci5yZXBvcnRFcnJvcigKICAgICAgICBGbHV0dGVyRXJyb3JEZXRhaWxzKAogICAgICAgICAgZXhjZXB0aW9uOiBlcnJvciwKICAgICAgICAgIHN0YWNrOiBzdGFja1RyYWNlLAogICAgICAgICAgbGlicmFyeTogJ2FwcCBzZXNzaW9uJywKICAgICAgICAgIGNvbnRleHQ6IEVycm9yRGVzY3JpcHRpb24oZHVyaW5nKSwKICAgICAgICApLAogICAgICApOwoKICAvLy8gSW4gdGhlIG1vZGUgW0F1dGhNb2RlLmFub255bW91c10sIHNpZ25zIGluIGFub255bW91c2x5IHdoZW4gbm9ib2R5IGlzCiAgLy8vIHNpZ25lZCBpbiwgYW5kIHdhaXRzIGZvciB0aGF0IGZvciBhdCBtb3N0IFthbm9ueW1vdXNXYWl0XS4KICAvLy8KICAvLy8gSXQgbmV2ZXIgZmFpbHMuIEEgc2lnbi1pbiB0aGF0IHRha2VzIGxvbmdlciBnb2VzIG9uIGFuZCBiZWNvbWVzIHRoZQogIC8vLyBzZXNzaW9uIHdoZW4gaXQgY29tZXMuIE9uZSB0aGF0IGZhaWxzIGxlYXZlcyB0aGUgYXBwIHdpdGhvdXQgYSB1c2VyCiAgLy8vIHVudGlsIHRoZSBuZXh0IHRyeSwgYW5kIGluIGRlYnVnIG1vZGUgaXRzIGVycm9yIGlzIHByaW50ZWQuCiAgRnV0dXJlPHZvaWQ+IF9zaWduSW5Bbm9ueW1vdXNseSgpIGFzeW5jIHsKICAgIGZpbmFsIHNlcnZpY2UgPSBfc2VydmljZSE7CiAgICBpZiAoX2Rpc3Bvc2VkIHx8CiAgICAgICAgbW9kZSAhPSBBdXRoTW9kZS5hbm9ueW1vdXMgfHwKICAgICAgICBzZXJ2aWNlLmN1cnJlbnRVc2VyICE9IG51bGwpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgZmluYWwgc2lnbkluID0gX2Fub255bW91c1NpZ25JbnNbc2VydmljZV0gPz89CiAgICAgICAgX3RyeUFub255bW91c2x5KHNlcnZpY2UpLndoZW5Db21wbGV0ZSgoKSB7CiAgICAgIF9hbm9ueW1vdXNTaWduSW5zLnJlbW92ZShzZXJ2aWNlKTsKICAgICAgX3N5bmMoKTsKICAgIH0pOwogICAgYXdhaXQgc2lnbkluLnRpbWVvdXQoYW5vbnltb3VzV2FpdCwgb25UaW1lb3V0OiAoKSB7fSk7CiAgfQoKICBGdXR1cmU8dm9pZD4gX3RyeUFub255bW91c2x5KEF1dGhTZXJ2aWNlIHNlcnZpY2UpIGFzeW5jIHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IHNlcnZpY2Uuc2lnbkluQW5vbnltb3VzbHkoKTsKICAgIH0gb24gT2JqZWN0IGNhdGNoIChlcnJvcikgewogICAgICBpZiAoa0RlYnVnTW9kZSkgewogICAgICAgIGRlYnVnUHJpbnQoCiAgICAgICAgICAnVGhlIGFub255bW91cyBzaWduLWluIGZhaWxlZCwgc28gdGhlIGFwcCBoYXMgbm8gdXNlcjogJGVycm9yJywKICAgICAgICApOwogICAgICB9CiAgICB9CiAgfQoKICAvLy8gVGFrZXMgdGhlIHVzZXIgb2YgdGhlIHNlcnZpY2UgYXMgdGhlIHNlc3Npb24sIGFuZCB0ZWxscyB0aGUgbGlzdGVuZXJzCiAgLy8vIHdoZW4gdGhhdCBjaGFuZ2VzIGl0LCB1bmxlc3MgdGhlIHNlc3Npb24gd2FzIGRpc3Bvc2VkIG9mLgogIHZvaWQgX3N5bmMoKSB7CiAgICBpZiAoX2Rpc3Bvc2VkKSByZXR1cm47CiAgICBmaW5hbCBzZXNzaW9uID0gc3dpdGNoIChfc2VydmljZSEuY3VycmVudFVzZXIpIHsKICAgICAgbnVsbCA9PiBjb25zdCBTaWduZWRPdXRTZXNzaW9uKCksCiAgICAgIEF1dGhVc2VyKGlzQW5vbnltb3VzOiB0cnVlLCA6ZmluYWwgdWlkKSA9PiBBbm9ueW1vdXNTZXNzaW9uKHVpZCksCiAgICAgIEF1dGhVc2VyKDpmaW5hbCB1aWQsIDpmaW5hbCBlbWFpbCkgPT4gQWNjb3VudFNlc3Npb24odWlkLCBlbWFpbDogZW1haWwpLAogICAgfTsKICAgIGlmIChzZXNzaW9uID09IF9zZXNzaW9uKSByZXR1cm47CiAgICBfc2Vzc2lvbiA9IHNlc3Npb247CiAgICBub3RpZnlMaXN0ZW5lcnMoKTsKICB9Cn0KCi8vLyBDYWxscyBbX29uUmVzdW1lXSBlYWNoIHRpbWUgdGhlIGFwcCBpcyByZXN1bWVkLCB3aGF0ZXZlciBzdGF0ZSBpdCB3YXMgaW4KLy8vIGJlZm9yZS4KZmluYWwgY2xhc3MgX1Jlc3VtZU9ic2VydmVyIHdpdGggV2lkZ2V0c0JpbmRpbmdPYnNlcnZlciB7CiAgX1Jlc3VtZU9ic2VydmVyKHRoaXMuX29uUmVzdW1lKTsKCiAgZmluYWwgVm9pZENhbGxiYWNrIF9vblJlc3VtZTsKCiAgQG92ZXJyaWRlCiAgdm9pZCBkaWRDaGFuZ2VBcHBMaWZlY3ljbGVTdGF0ZShBcHBMaWZlY3ljbGVTdGF0ZSBzdGF0ZSkgewogICAgaWYgKHN0YXRlID09IEFwcExpZmVjeWNsZVN0YXRlLnJlc3VtZWQpIF9vblJlc3VtZSgpOwogIH0KfQoKLy8vIEEgZmxhZyBvZiB0aGUgc2Vzc2lvbiBvZiBhIGNvbnRyb2xsZXI6IGl0cyB2YWx1ZSBpcyBjb21wdXRlZCBmcm9tIHRoZQovLy8gc2Vzc2lvbiBlYWNoIHRpbWUgaXQgaXMgcmVhZCwgYW5kIGl0cyBsaXN0ZW5lcnMgYXJlIHRob3NlIG9mIHRoZQovLy8gc2Vzc2lvbi4KZmluYWwgY2xhc3MgX1Nlc3Npb25GbGFnIGltcGxlbWVudHMgVmFsdWVMaXN0ZW5hYmxlPGJvb2w+IHsKICBjb25zdCBfU2Vzc2lvbkZsYWcodGhpcy5fY29udHJvbGxlciwgdGhpcy5fb2YpOwoKICBmaW5hbCBBcHBTZXNzaW9uQ29udHJvbGxlciBfY29udHJvbGxlcjsKICBmaW5hbCBib29sIEZ1bmN0aW9uKEFwcFNlc3Npb24gc2Vzc2lvbikgX29mOwoKICBAb3ZlcnJpZGUKICBib29sIGdldCB2YWx1ZSA9PiBfb2YoX2NvbnRyb2xsZXIudmFsdWUpOwoKICBAb3ZlcnJpZGUKICB2b2lkIGFkZExpc3RlbmVyKFZvaWRDYWxsYmFjayBsaXN0ZW5lcikgPT4gX2NvbnRyb2xsZXIuYWRkTGlzdGVuZXIobGlzdGVuZXIpOwoKICBAb3ZlcnJpZGUKICB2b2lkIHJlbW92ZUxpc3RlbmVyKFZvaWRDYWxsYmFjayBsaXN0ZW5lcikgPT4KICAgICAgX2NvbnRyb2xsZXIucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpOwp9CgovLy8gUmV0dXJucyB0aGUgc2VydmljZSBvZiB0aGUgcHJvdmlkZXIgb2Ygc2lnbi1pbiwgd2hpY2ggW2luaXRBdXRoXSBjcmVhdGVkOgovLy8gYGJvb3RzdHJhcCgpYCBhd2FpdHMgaXQgYmVmb3JlIHRoZSBmaXJzdCBmcmFtZSwgYW5kIHRoZXJlIGlzIG5vbmUgdG8KLy8vIHJldHVybiBiZWZvcmUgdGhhdC4KLy8vCi8vLyBUaGUgY29kZSBvZiB0aGUgYXBwIGRvZXMgbm90IGNhbGwgaXQ6IGl0IHNpZ25zIGluIHRocm91Z2ggW2FwcFNlc3Npb25dLgpBdXRoU2VydmljZSBjcmVhdGVBdXRoU2VydmljZSgpID0+IF9hdXRoU2VydmljZTsKCnt7e3NtZl9hdXRoX19pbXBsZW1lbnRhdGlvbnN9fX0K",
"type": "text"
},
{
"path": "lib/core/auth/auth_service.dart",
"data":
"Ly8vIEEgdXNlciBhcyB0aGUgcHJvdmlkZXIgb2Ygc2lnbi1pbiBrbm93cyB0aGVtLgpmaW5hbCBjbGFzcyBBdXRoVXNlciB7CiAgLy8vIENyZWF0ZXMgdGhlIHVzZXIgW3VpZF0uCiAgY29uc3QgQXV0aFVzZXIoe3JlcXVpcmVkIHRoaXMudWlkLCByZXF1aXJlZCB0aGlzLmlzQW5vbnltb3VzLCB0aGlzLmVtYWlsfSk7CgogIC8vLyBUaGUgaWQgb2YgdGhlIHVzZXIuIEl0IHN0YXlzIHRoZSBzYW1lIGZvciBhcyBsb25nIGFzIHRoZSB1c2VyIGV4aXN0cywKICAvLy8gYWxzbyB3aGVuIGFuIGFub255bW91cyB1c2VyIGdldHMgYW4gYWNjb3VudC4KICBmaW5hbCBTdHJpbmcgdWlkOwoKICAvLy8gV2hldGhlciB0aGUgdXNlciBpcyBhbm9ueW1vdXM6IGEgdXNlciB0aGF0IHRoZSBhcHAgc2lnbmVkIGluIGl0c2VsZiwKICAvLy8gd2hvIGhhcyBubyBhY2NvdW50IGFuZCBub3RoaW5nIHRvIHNpZ24gaW4gd2l0aCBhZ2Fpbi4KICBmaW5hbCBib29sIGlzQW5vbnltb3VzOwoKICAvLy8gVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIsIG9yIGBudWxsYCBmb3IgYSB1c2VyIHdpdGhvdXQgb25lLCBzdWNoCiAgLy8vIGFzIGFuIGFub255bW91cyB1c2VyLgogIGZpbmFsIFN0cmluZz8gZW1haWw7Cn0KCi8vLyBXaHkgYSBjYWxsIG9mIHNpZ24taW4gZmFpbGVkLgplbnVtIEF1dGhGYWlsdXJlUmVhc29uIHsKICAvLy8gVGhlIGVtYWlsIGFkZHJlc3MgYW5kIHRoZSBwYXNzd29yZCBtYXRjaCBubyBhY2NvdW50LiBBIHdyb25nIHBhc3N3b3JkCiAgLy8vIGFuZCBhbiBhZGRyZXNzIHdpdGhvdXQgYW4gYWNjb3VudCBhcmUgdGhpcyBvbmUgcmVhc29uLCBzbyB0aGF0IG5vYm9keQogIC8vLyBsZWFybnMgZnJvbSB0aGUgYXBwIHdoaWNoIGFkZHJlc3NlcyBoYXZlIGFuIGFjY291bnQuCiAgaW52YWxpZENyZWRlbnRpYWxzLAoKICAvLy8gVGhlIGVtYWlsIGFkZHJlc3MgaGFzIGFuIGFjY291bnQgYWxyZWFkeS4KICBlbWFpbEluVXNlLAoKICAvLy8gVGhlIHByb3ZpZGVyIHRha2VzIG5vIHBhc3N3b3JkIGFzIHdlYWsgYXMgdGhpcyBvbmUuCiAgd2Vha1Bhc3N3b3JkLAoKICAvLy8gVGhlIHRleHQgaXMgbm8gZW1haWwgYWRkcmVzcy4KICBpbnZhbGlkRW1haWwsCgogIC8vLyBUaGUgYWNjb3VudCBpcyBkaXNhYmxlZC4KICB1c2VyRGlzYWJsZWQsCgogIC8vLyBUb28gbWFueSBhdHRlbXB0czogdGhlIHByb3ZpZGVyIHRha2VzIG5vIG1vcmUgZm9yIGEgd2hpbGUuCiAgdG9vTWFueUF0dGVtcHRzLAoKICAvLy8gVGhlIGRldmljZSBkaWQgbm90IHJlYWNoIHRoZSBwcm92aWRlci4KICBuZXR3b3JrLAoKICAvLy8gVGhlIGNhbGwgbmVlZHMgYSB1c2VyIHdobyBzaWduZWQgaW4gYSBzaG9ydCB3aGlsZSBhZ28sIGFzIHRoZSBkZWxldGlvbgogIC8vLyBvZiBhbiBhY2NvdW50IGRvZXM6IHRoZSB1c2VyIHNpZ25zIGluIGFnYWluIGFuZCByZXBlYXRzIGl0LgogIC8vLwogIC8vLyBJdCBpcyBhbHNvIHRoZSByZWFzb24gb2YgYSBjYWxsIGZvciBhIHVzZXIgd2hvc2Ugc2Vzc2lvbiBoYXMgZW5kZWQgb24KICAvLy8gdGhlIHNlcnZlci4gVGhlIHNlcnZpY2Ugc2lnbnMgdGhhdCB1c2VyIG91dCBvbiB0aGUgZGV2aWNlIGJlZm9yZSBpdAogIC8vLyBmYWlscy4KICByZWNlbnRTaWduSW5SZXF1aXJlZCwKCiAgLy8vIFNpZ24taW4gaXMgbm90IHNldCB1cCBhdCB0aGUgcHJvdmlkZXIsIHN1Y2ggYXMgYSB3YXkgdG8gc2lnbiBpbiB0aGF0CiAgLy8vIGlzIG5vdCBlbmFibGVkIHRoZXJlLiBUaGlzIGlzIGEgbWlzdGFrZSBpbiB0aGUgc2V0dXAgb2YgdGhlIGFwcCwgd2hpY2gKICAvLy8gW0F1dGhGYWlsdXJlLmRldmVsb3BlckhpbnRdIGV4cGxhaW5zLgogIG5vdENvbmZpZ3VyZWQsCgogIC8vLyBBbnl0aGluZyBlbHNlLiBbQXV0aEZhaWx1cmUuZGV2ZWxvcGVySGludF0gaGFzIHRoZSBlcnJvci4KICB1bmtub3duLAp9CgovLy8gVGhlIGZhaWx1cmUgb2YgYSBjYWxsIG9mIHNpZ24taW46IHRoZSBvbmx5IHRoaW5nIHRoYXQgc3VjaCBhIGNhbGwgdGhyb3dzLgpmaW5hbCBjbGFzcyBBdXRoRmFpbHVyZSBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIENyZWF0ZXMgdGhlIGZhaWx1cmUgZm9yIFtyZWFzb25dLgogIGNvbnN0IEF1dGhGYWlsdXJlKHRoaXMucmVhc29uLCB7dGhpcy5kZXZlbG9wZXJIaW50fSk7CgogIC8vLyBXaHkgdGhlIGNhbGwgZmFpbGVkLiBUaGUgYXBwIHNob3dzIGEgdGV4dCBvZiBpdHMgb3duIGZvciBlYWNoIHJlYXNvbi4KICBmaW5hbCBBdXRoRmFpbHVyZVJlYXNvbiByZWFzb247CgogIC8vLyBXaGF0IHdlbnQgd3JvbmcgaW4gdGhlIHdvcmRzIG9mIHRoZSBwcm92aWRlciwgZm9yIHRoZSBkZXZlbG9wZXIgb2YgdGhlCiAgLy8vIGFwcCwgb3IgYG51bGxgLiBJdCBpcyBubyB0ZXh0IGZvciB0aGUgdXNlcjogc2hvdyBpdCBpbiBkZWJ1ZyBtb2RlCiAgLy8vIG9ubHkuCiAgZmluYWwgU3RyaW5nPyBkZXZlbG9wZXJIaW50OwoKICBAb3ZlcnJpZGUKICBTdHJpbmcgdG9TdHJpbmcoKSA9PiBkZXZlbG9wZXJIaW50ID09IG51bGwKICAgICAgPyAnQXV0aEZhaWx1cmU6ICR7cmVhc29uLm5hbWV9JwogICAgICA6ICdBdXRoRmFpbHVyZTogJHtyZWFzb24ubmFtZX0gKCRkZXZlbG9wZXJIaW50KSc7Cn0KCi8vLyBUaGUgYWNjb3VudHMgb2YgdGhlIHVzZXJzIG9mIHRoZSBhcHAgYW5kIHRoZSB1c2VyIG9mIHRoaXMgZGV2aWNlLCBhcyB0aGUKLy8vIHByb3ZpZGVyIG9mIHNpZ24taW4ga2VlcHMgdGhlbS4KLy8vCi8vLyBUaGUgcHJvdmlkZXIgaW1wbGVtZW50cyBpdC4gVGhlIGNvZGUgb2YgdGhlIGFwcCBkb2VzIG5vdCBjYWxsIGl0OiBpdAovLy8gc2lnbnMgaW4gdGhyb3VnaCBgYXBwU2Vzc2lvbmAgb2YgYGFwcF9zZXNzaW9uLmRhcnRgLCB3aGljaCBjYWxscyB0aGlzCi8vLyBzZXJ2aWNlIGFuZCBkb2VzIHdoYXQgaXMgdGhlIHNhbWUgd2l0aCBldmVyeSBwcm92aWRlci4KLy8vCi8vLyBFdmVyeSBpbXBsZW1lbnRhdGlvbiBrZWVwcyB0byB0aGlzLCBpbiBldmVyeSBtb2RlIG9mIHRoZSBhcHAsIHdoYXRldmVyCi8vLyB0aGUgcHJvdmlkZXIgZ2VuZXJhdGVzIGZvciB0aGUgbW9kZToKLy8vIC0gVGhlIHNlcnZpY2UgaGFzIFtjdXJyZW50VXNlcl0gZnJvbSB0aGUgbW9tZW50IGl0IGlzIGNyZWF0ZWQ6IHRoZSB1c2VyCi8vLyAgIHdobyB3YXMgc2lnbmVkIGluIG9uIHRoaXMgZGV2aWNlIHdoZW4gdGhlIGFwcCBsYXN0IHJhbiwgd2l0aG91dCBhCi8vLyAgIHJlcXVlc3QgdG8gdGhlIHNlcnZlci4gVGhlIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyB0aGUgc2VydmljZSBtYXkgYmUKLy8vICAgY2FsbGVkIGFnYWluLCBhbmQgdGhlIHNlcnZpY2UgdGhhdCBpdCByZXR1cm5zIHRoZW4gaGFzIHRoZSB1c2VyIHdobyBpcwovLy8gICBzaWduZWQgaW4gbm93LgovLy8gLSBXaGVuIHRoZSBmdXR1cmUgb2YgYSBjYWxsIGNvbXBsZXRlcywgW2N1cnJlbnRVc2VyXSBpcyB0aGUgcmVzdWx0IG9mCi8vLyAgIHRoZSBjYWxsLiBbdXNlckNoYW5nZXNdIHRlbGxzIG9mIGV2ZXJ5IGNoYW5nZSBvZiBbY3VycmVudFVzZXJdLCBhbHNvCi8vLyAgIG9mIG9uZSB0aGF0IG5vIGNhbGwgaGVyZSBtYWRlLCBhbmQgd2hlbiBpdCB0ZWxscyBvZiBhIHVzZXIsCi8vLyAgIFtjdXJyZW50VXNlcl0gaXMgdGhhdCB1c2VyLgovLy8gLSBBIGNhbGwgZmFpbHMgb25seSB3aXRoIGFuIFtBdXRoRmFpbHVyZV0sIGFuZCBldmVyeSBjYWxsIGVuZHM6IHdoZW4gdGhlCi8vLyAgIHNlcnZlciBkb2VzIG5vdCBhbnN3ZXIsIGl0cyBmdXR1cmUgY29tcGxldGVzIHdpdGgKLy8vICAgW0F1dGhGYWlsdXJlUmVhc29uLm5ldHdvcmtdLgovLy8gLSBBIGNhbGwgdGhhdCBmYWlscyBsZWF2ZXMgdGhlIHVzZXIgd2hvIGlzIHNpZ25lZCBpbiBhcyB0aGF0IHVzZXIgd2FzOgovLy8gICBhbiBhbm9ueW1vdXMgdXNlciBzdGF5cyBzaWduZWQgaW4gd2hlbiBbbGlua1Bhc3N3b3JkXSBmYWlscywgYW5kIHNvCi8vLyAgIGRvZXMgd2hvZXZlciBpcyBzaWduZWQgaW4gd2hlbiBbc2lnbkluXSBvciBbc2lnblVwXSBmYWlscy4gVGhlIG9uZQovLy8gICBleGNlcHRpb24gaXMgYSBjYWxsIGZvciBhIHVzZXIgd2hvc2Ugc2Vzc2lvbiBoYXMgZW5kZWQgb24gdGhlIHNlcnZlci4KLy8vIC0gW2xpbmtQYXNzd29yZF0gYW5kIFtkZWxldGVBY2NvdW50XSBhcmUgY2FsbHMgZm9yIHRoZSB1c2VyIHdobyBpcwovLy8gICBzaWduZWQgaW4uIE1hZGUgd2hlbiBub2JvZHkgaXMgc2lnbmVkIGluLCBvciB3aGVuIHRoZSBzZXNzaW9uIG9mIHRoYXQKLy8vICAgdXNlciBoYXMgZW5kZWQgb24gdGhlIHNlcnZlciwgc3VjaCBhIGNhbGwgZmFpbHMgd2l0aAovLy8gICBbQXV0aEZhaWx1cmVSZWFzb24ucmVjZW50U2lnbkluUmVxdWlyZWRdLCBhbmQgaW4gdGhlIHNlY29uZCBjYXNlIGl0Ci8vLyAgIHNpZ25zIHRoZSB1c2VyIG91dCBvbiB0aGUgZGV2aWNlIGZpcnN0LgphYnN0cmFjdCBpbnRlcmZhY2UgY2xhc3MgQXV0aFNlcnZpY2UgewogIC8vLyBUaGUgdXNlciB3aG8gaXMgc2lnbmVkIGluIG9uIHRoaXMgZGV2aWNlLCBvciBgbnVsbGAuCiAgQXV0aFVzZXI/IGdldCBjdXJyZW50VXNlcjsKCiAgLy8vIFRlbGxzIG9mIGVhY2ggY2hhbmdlIG9mIFtjdXJyZW50VXNlcl0sIG9uY2UgW2N1cnJlbnRVc2VyXSBoYXMgY2hhbmdlZDoKICAvLy8gYSBicm9hZGNhc3Qgc3RyZWFtLiBXaGVuIGl0IHRlbGxzIG9mIGEgdXNlciwgW2N1cnJlbnRVc2VyXSBpcyB0aGF0CiAgLy8vIHVzZXIuIEl0IG1heSBhbHNvIHRlbGwgb2YgYSB1c2VyIHdobyBoYXMgbm90IGNoYW5nZWQuCiAgLy8vCiAgLy8vIEFuIGVycm9yIHRoYXQgaXQgc2VuZHMgY2hhbmdlcyBub3RoaW5nOiB0aGUgc2Vzc2lvbiByZXBvcnRzIGl0IGFzIGFuCiAgLy8vIGVycm9yIG9mIHRoZSBhcHAgYW5kIGdvZXMgb24gbGlzdGVuaW5nLgogIFN0cmVhbTxBdXRoVXNlcj8+IGdldCB1c2VyQ2hhbmdlczsKCiAgLy8vIFNpZ25zIGluIHRvIHRoZSBhY2NvdW50IG9mIFtlbWFpbF0gd2l0aCBbcGFzc3dvcmRdLgogIC8vLwogIC8vLyBBIHdyb25nIHBhc3N3b3JkIGFuZCBhbiBhZGRyZXNzIHdpdGhvdXQgYW4gYWNjb3VudCBib3RoIGZhaWwgd2l0aAogIC8vLyBbQXV0aEZhaWx1cmVSZWFzb24uaW52YWxpZENyZWRlbnRpYWxzXS4KICAvLy8KICAvLy8gSXQgaXMgYWxzbyBjYWxsZWQgd2hpbGUgYSB1c2VyIGlzIHNpZ25lZCBpbiwgYW4gYW5vbnltb3VzIG9uZSBvciB0aGUKICAvLy8gdXNlciBvZiBhbm90aGVyIGFjY291bnQ6IHRoZSB1c2VyIG9mIHRoaXMgYWNjb3VudCB0aGVuIHJlcGxhY2VzIHRoYXQKICAvLy8gdXNlciBvbiB0aGUgZGV2aWNlLiBXaGVuIGl0IGZhaWxzLCB0aGF0IHVzZXIgc3RheXMgc2lnbmVkIGluLgogIEZ1dHVyZTx2b2lkPiBzaWduSW4oe3JlcXVpcmVkIFN0cmluZyBlbWFpbCwgcmVxdWlyZWQgU3RyaW5nIHBhc3N3b3JkfSk7CgogIC8vLyBDcmVhdGVzIGFuIGFjY291bnQgZm9yIFtlbWFpbF0gd2l0aCBbcGFzc3dvcmRdIGFuZCBzaWducyBpbiB0byBpdC4KICAvLy8KICAvLy8gRm9yIGFuIGFkZHJlc3MgdGhhdCBoYXMgYW4gYWNjb3VudCBhbHJlYWR5LCBpdCBmYWlscyB3aXRoCiAgLy8vIFtBdXRoRmFpbHVyZVJlYXNvbi5lbWFpbEluVXNlXSBhbmQgY2hhbmdlcyBub3RoaW5nOiB0aGF0IGFjY291bnQga2VlcHMKICAvLy8gaXRzIHBhc3N3b3JkLCBhbmQgd2hvZXZlciBpcyBzaWduZWQgaW4gc3RheXMgc2lnbmVkIGluLgogIC8vLwogIC8vLyBJdCBpcyBhbHNvIGNhbGxlZCB3aGlsZSB0aGUgdXNlciBvZiBhbm90aGVyIGFjY291bnQgaXMgc2lnbmVkIGluLCBhbmQKICAvLy8gdGhlIHVzZXIgb2YgdGhlIG5ldyBhY2NvdW50IHRoZW4gcmVwbGFjZXMgdGhhdCB1c2VyIG9uIHRoZSBkZXZpY2UuCiAgLy8vIEZvciBhbiBhbm9ueW1vdXMgdXNlciwgdGhlIHNlc3Npb24gY2FsbHMgW2xpbmtQYXNzd29yZF0gaW5zdGVhZC4KICBGdXR1cmU8dm9pZD4gc2lnblVwKHtyZXF1aXJlZCBTdHJpbmcgZW1haWwsIHJlcXVpcmVkIFN0cmluZyBwYXNzd29yZH0pOwoKICAvLy8gR2l2ZXMgdGhlIGFub255bW91cyB1c2VyIHdobyBpcyBzaWduZWQgaW4gYW4gYWNjb3VudCBmb3IgW2VtYWlsXSB3aXRoCiAgLy8vIFtwYXNzd29yZF0uIFRoZSB1c2VyIGtlZXBzIHRoZSBbQXV0aFVzZXIudWlkXSBhbmQgaXMgbm8gbG9uZ2VyCiAgLy8vIGFub255bW91cy4KICAvLy8KICAvLy8gRm9yIGFuIGFkZHJlc3MgdGhhdCBoYXMgYW4gYWNjb3VudCBhbHJlYWR5LCBpdCBmYWlscyB3aXRoCiAgLy8vIFtBdXRoRmFpbHVyZVJlYXNvbi5lbWFpbEluVXNlXSBhbmQgY2hhbmdlcyBub3RoaW5nOiB0aGUgYW5vbnltb3VzIHVzZXIKICAvLy8gc3RheXMgc2lnbmVkIGluLCB3aXRoIHRoZSBzYW1lIGlkLgogIEZ1dHVyZTx2b2lkPiBsaW5rUGFzc3dvcmQoe3JlcXVpcmVkIFN0cmluZyBlbWFpbCwgcmVxdWlyZWQgU3RyaW5nIHBhc3N3b3JkfSk7CgogIC8vLyBDcmVhdGVzIGFuIGFub255bW91cyB1c2VyLCB3aXRoIGFuIGlkIG9mIGl0cyBvd24sIGFuZCBzaWducyBpbiBhcyB0aGF0CiAgLy8vIHVzZXIuCiAgRnV0dXJlPHZvaWQ+IHNpZ25JbkFub255bW91c2x5KCk7CgogIC8vLyBTZW5kcyB0aGUgbWVzc2FnZSB3aXRoIHdoaWNoIHRoZSBvd25lciBvZiB0aGUgYWNjb3VudCBvZiBbZW1haWxdIHNldHMKICAvLy8gYSBuZXcgcGFzc3dvcmQuCiAgLy8vCiAgLy8vIEl0IGNvbXBsZXRlcyB3aGV0aGVyIFtlbWFpbF0gaGFzIGFuIGFjY291bnQgb3Igbm90LCBzbyB0aGF0IG5vYm9keQogIC8vLyBsZWFybnMgZnJvbSB0aGUgYXBwIHdoaWNoIGFkZHJlc3NlcyBoYXZlIG9uZS4KICBGdXR1cmU8dm9pZD4gc2VuZFBhc3N3b3JkUmVzZXQoU3RyaW5nIGVtYWlsKTsKCiAgLy8vIFNpZ25zIHRoZSB1c2VyIG91dCBvbiB0aGlzIGRldmljZS4gSXQgY29tcGxldGVzIHdoZW4gbm9ib2R5IGlzIHNpZ25lZAogIC8vLyBpbiB0b28uCiAgRnV0dXJlPHZvaWQ+IHNpZ25PdXQoKTsKCiAgLy8vIERlbGV0ZXMgdGhlIHVzZXIgd2hvIGlzIHNpZ25lZCBpbiwgYW4gYW5vbnltb3VzIG9uZSB0b28sIGFuZCBzaWducwogIC8vLyBvdXQuCiAgLy8vCiAgLy8vIEl0IHN1Y2NlZWRzIGZvciBhIHVzZXIgd2hvIGhhcyBqdXN0IHNpZ25lZCBpbiwgaW4gd2hpY2hldmVyIHdheSwgYW5kCiAgLy8vIGZvciBhbiBhbm9ueW1vdXMgdXNlciB3aG8gd2FzIGp1c3QgY3JlYXRlZC4gRm9yIGEgdXNlciB3aG8gc2lnbmVkIGluCiAgLy8vIGxvbmdlciBhZ28sIHN1Y2ggYXMgb25lIHdob20gdGhlIHNlcnZpY2UgZm91bmQgb24gdGhlIGRldmljZSB3aGVuIGl0CiAgLy8vIHdhcyBjcmVhdGVkLCBpdCBtYXkgZmFpbCB3aXRoCiAgLy8vIFtBdXRoRmFpbHVyZVJlYXNvbi5yZWNlbnRTaWduSW5SZXF1aXJlZF0uIEl0IHRoZW4gc3VjY2VlZHMgb25jZSB0aGUKICAvLy8gdXNlciBoYXMgc2lnbmVkIGluIGFnYWluLCBpbiB3aGljaGV2ZXIgd2F5IHRoZSBhY2NvdW50IGFsbG93cy4KICBGdXR1cmU8dm9pZD4gZGVsZXRlQWNjb3VudCgpOwp9Cg==",
"type": "text"
},
{
"path": "lib/core/auth/guest_data.dart",
"data":
"Ly8vIEdpdmVzIHRoZSBhY2NvdW50IFthY2NvdW50VWlkXSB3aGF0IGEgZ3Vlc3QgaGFkOiB0aGUgZnVuY3Rpb24gdGhhdAovLy8gW3Rha2VHdWVzdERhdGFdIHJldHVybnMuCnR5cGVkZWYgR2l2ZUd1ZXN0RGF0YSA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgYWNjb3VudFVpZCk7CgovLy8gVGFrZXMgd2hhdCB0aGUgZ3Vlc3QgW2d1ZXN0VWlkXSBoYXMgaW4gdGhlIGFwcCwgYW5kIHJldHVybnMgdGhlIGZ1bmN0aW9uCi8vLyB0aGF0IGdpdmVzIGl0IHRvIGFuIGFjY291bnQsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gbW92ZS4KLy8vCi8vLyBBIGd1ZXN0IGlzIGFuIGFub255bW91cyB1c2VyLiBXaGVuIGEgZ3Vlc3Qgc2lnbnMgaW4gdG8gYW4gYWNjb3VudCB0aGF0Ci8vLyBleGlzdHMgYWxyZWFkeSwgdGhlIHVzZXIgb2YgdGhlIGFwcCBjaGFuZ2VzIGZyb20gdGhlIGd1ZXN0IHRvIHRoYXQKLy8vIGFjY291bnQsIGFuZCB3aGF0IHdhcyBrZXB0IHVuZGVyIHRoZSBpZCBvZiB0aGUgZ3Vlc3QsIHN1Y2ggYXMgYSBjYXJ0IG9uCi8vLyBhIHNlcnZlciwgd291bGQgYmUgbGVmdCBiZWhpbmQuIFNvIHRoZSBzZXNzaW9uIG9mIHRoZSBhcHAgY2FsbHMgdGhpcwovLy8gZnVuY3Rpb24gYmVmb3JlIHRoZSBzaWduLWluLCB3aGlsZSB0aGUgZ3Vlc3QgaXMgc3RpbGwgc2lnbmVkIGluIGFuZCBtYXkKLy8vIHJlYWQgdGhhdCBkYXRhLCBhbmQgY2FsbHMgdGhlIGZ1bmN0aW9uIHRoYXQgaXQgcmV0dXJucyBvbmNlIHRoZSB1c2VyIG9mCi8vLyB0aGUgYWNjb3VudCBpcyBzaWduZWQgaW46Ci8vLwovLy8gYGBgZGFydAovLy8gRnV0dXJlPEdpdmVHdWVzdERhdGE/PiB0YWtlR3Vlc3REYXRhKFN0cmluZyBndWVzdFVpZCkgYXN5bmMgewovLy8gICBmaW5hbCBjYXJ0ID0gYXdhaXQgY2FydHMucmVhZChndWVzdFVpZCk7Ci8vLyAgIGlmIChjYXJ0LmlzRW1wdHkpIHJldHVybiBudWxsOwovLy8gICByZXR1cm4gKGFjY291bnRVaWQpID0+IGNhcnRzLmFkZChhY2NvdW50VWlkLCBjYXJ0KTsKLy8vIH0KLy8vIGBgYAovLy8KLy8vIE9ubHkgcmVhZCBoZXJlOiB0aGUgc2lnbi1pbiBtYXkgc3RpbGwgZmFpbCwgYW5kIHRoZW4gdGhlIGd1ZXN0IHN0YXlzLiBBbgovLy8gZXJyb3IgdGhyb3duIGhlcmUgZmFpbHMgdGhlIHNpZ24taW4gYmVmb3JlIGl0IHN0YXJ0cy4gQW4gZXJyb3Igb2YgdGhlCi8vLyBmdW5jdGlvbiB0aGF0IHRoaXMgb25lIHJldHVybnMgaXMgcmVwb3J0ZWQgYXMgYW4gZXJyb3Igb2YgdGhlIGFwcCwgYW5kCi8vLyB0aGUgdXNlciBzdGF5cyBzaWduZWQgaW4uCi8vLwovLy8gQ2FsbCBubyBtZXRob2Qgb2YgYGFwcFNlc3Npb25gIGhlcmUsIG5vciBpbiB0aGUgZnVuY3Rpb24gdGhhdCB0aGlzIG9uZQovLy8gcmV0dXJucy4gVGhlIHNpZ24taW4gaXMgb25lIG9mIGl0cyBjYWxscywgd2hpY2ggcnVuIG9uZSBhZnRlciBhbm90aGVyLAovLy8gc28gc3VjaCBhIGNhbGwgd291bGQgd2FpdCBmb3IgdGhlIHNpZ24taW4sIGFuZCB0aGUgc2lnbi1pbiBmb3IgaXQuCi8vLwovLy8gSXQgaXMgbm90IGNhbGxlZCB3aGVuIGEgZ3Vlc3Qgc2lnbnMgdXAsIHNpbmNlIHRoZSBndWVzdCB0aGVuIGtlZXBzIHRoZQovLy8gaWQgYW5kIGV2ZXJ5dGhpbmcgdW5kZXIgaXQsIG5vciBpbiBhbiBhcHAgd2l0aG91dCBhbm9ueW1vdXMgdXNlcnMuCkZ1dHVyZTxHaXZlR3Vlc3REYXRhPz4gdGFrZUd1ZXN0RGF0YShTdHJpbmcgZ3Vlc3RVaWQpIGFzeW5jID0+IG51bGw7Cg==",
"type": "text"
}
],
"hooks": [],
"name": "auth_role",
"description":
"The template of the auth role of SMF: the session of the app, and the service that a provider of sign-in implements.",
"version": "0.1.0+1",
"environment": {"mason": "^0.1.1"},
"vars": {}
});