Frontend Software Engineer
Hackajob
Software Engineering
Lexington, MA, USA
Posted on Mar 10, 2026
hackajob is collaborating with Aquila Technology to connect them with exceptional professionals for this role.
PHA+PHN0cm9uZz5Tb2Z0d2FyZSBFbmdpbmVlcjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz5Mb2NhdGlvbjombmJzcDs8L3N0cm9uZz5IeWJyaWQgYnV0IG11c3QgYmUgd2l0aGluIDEwMCBtaWxlcyBmcm9tIExleGluZ3RvbiwgTUEuIFRoZSBpbmRpdmlkdWFsIHdpbGwgYmUgcmVxdWlyZWQgdG8gYmUgb25zaXRlIDItMyBkYXlzIGEgd2Vlay4gQ2FuZGlkYXRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgbG9jYWwgYXQgdGhlIHRpbWUgb2YgdGhlIHN0YXJ0IG9mIHRoZSBhc3NpZ25tZW50LiBUaGUgZmluYWwgc2NoZWR1bGUgaXMgdG8gYmUgZGV0ZXJtaW5lZCAoVEJEKSBieSB0aGUgaGlyaW5nIG1hbmFnZXIuPC9wPgo8cD48c3Ryb25nPkNsZWFyYW5jZSBMZXZlbDo8L3N0cm9uZz4mbmJzcDtNdXN0IGJlIGFibGUgdG8gb2J0YWluIGFuIEludGVyaW0vQWN0aXZlIFNlY3JldCBDbGVhcmFuY2UtJm5ic3A7PHN0cm9uZz5NdXN0IEJlIFVTIENpdGl6ZW4gdG8gYXBwbHk8L3N0cm9uZz48L3A+CjxwPkF0IEFxdWlsYSBUZWNobm9sb2d5LCB5b3Ugd2lsbCBzZWUgb3VyIHRlYW0mcnNxdW87cyBwYXNzaW9uIGV2ZXJ5IGRheSwgd2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgYSByb2J1c3QsIHBvbGljeS1jb21wbGlhbnQgSVQgc3lzdGVtIG9yIHN0cmVzcy10ZXN0aW5nIGEgc3lzdGVtIHRvIGlkZW50aWZ5IGdhcHMgYW5kIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gVG8gb3duIHRoZSBhZHZhbnRhZ2UsIHdlIGVuc3VyZSBvdXIgdGVhbSBvd25zIHJlc3VsdHMgYW5kIGdldHMgdGhlIHdvcmsgZG9uZSByaWdodCB0aGUgZmlyc3QgdGltZSBieSBkZXBsb3lpbmcgc21hcnQsIHB1cnBvc2VmdWwgc29sdXRpb25zIHRoYXQgd29yay4gQXF1aWxhIGlzIHRoZSByaWdodCBwZW9wbGUgd2l0aCB0aGUgcmlnaHQgc2tpbGxzIGRyaXZpbmcgdGhlIHJpZ2h0IG91dGNvbWVzLiBXZSBjYWxsIHRoaXMgdGhlIEFxdWlsYSBBZHZhbnRhZ2UuPC9wPgo8cD48c3Ryb25nPkFib3V0IHRoZSBSb2xlOjwvc3Ryb25nPjwvcD4KPHA+QXF1aWxhIFRlY2hub2xvZ3kgaXMgc2Vla2luZyBhJm5ic3A7PHN0cm9uZz5Tb2Z0d2FyZSBFbmdpbmVlcjwvc3Ryb25nPjxzdHJvbmc+Jm5ic3A7PC9zdHJvbmc+dG8gam9pbiBvdXIgdGVhbSBpbiBzdXBwb3J0aW5nIG9uZSBvZiB0aGUgY291bnRyeSZyc3F1bztzIHByZW1pZXIgZGVmZW5zZSByZXNlYXJjaCBvcmdhbml6YXRpb25zLiZuYnNwO1RoZSBTb2Z0d2FyZSBFbmdpbmVlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyBhbmQgbWFpbnRhaW5pbmcgYW4gYXBwbGljYXRpb24gdGhhdCBzdXBwb3J0cyByZXZlcnNlIGVuZ2luZWVyaW5nLCBtYWx3YXJlIGFuYWx5c2lzIGFuZCBjb250aW51b3VzIGRlcGxveW1lbnQgd29ya2Zsb3dzLiBUaGUgY2FuZGlkYXRlIHdpbGwgZGVzaWduIGFuZCBpbXBsZW1lbnQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgd2l0aCBhIHN0cm9uZyBlbXBoYXNpcyBvbiBmcm9udGVuZCBhcmNoaXRlY3R1cmUsIHBlcmZvcm1hbmNlLCB1c2FiaWxpdHksIHRlc3RpbmcgYW5kIHByb2R1Y3QtcXVhbGl0eSBVWC4gVGhlIGNhbmRpZGF0ZSB3aWxsIHdvcmsgYWNyb3NzIHRoZSBzdGFjayBhbmQgY29sbGFib3JhdGUgd2l0aCBiYWNrZW5kIGVuZ2luZWVycyBhbmQgYW5hbHlzdHMgdG8gaW50ZWdyYXRlIEFQSXMsIG1hbmFnZSBkYXRhIGZsb3dzLCBhbmQgZGVsaXZlciBzY2FsYWJsZSBzb2x1dGlvbnMuIFRoZSBwb3NpdGlvbiBpbmNsdWRlcyBjb3JlIHNvZnR3YXJlIGVuZ2luZWVyaW5nIHJlc3BvbnNpYmlsaXRpZXMgc3VjaCBhcyBjb2RlIHJldmlldywgcmVmYWN0b3JpbmcsIGFuZCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zLjwvcD4KPHA+PHN0cm9uZz5NdXN0IEhhdmU8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPjQgeWVhcnMgLSBQcm9ncmFtL1Byb2plY3QgTWFuYWdlbWVudCBPUiBBbmFseXNpczwvbGk+CjxsaT40IHllYXJzIC0gU29mdHdhcmUgRG9jdW1lbnRhdGlvbjwvbGk+CjxsaT40IHllYXJzIC0gUHJvZ3JhbW1pbmc8L2xpPgo8bGk+NCB5ZWFycyAtIEFuZ3VsYXI8L2xpPgo8bGk+NCB5ZWFycyAtIENTUzwvbGk+CjxsaT40IHllYXJzIC0gRXhwZXJpZW5jZSBkZXZlbG9waW5nIFJFU1Qgd2ViIHNlcnZpY2VzPC9saT4KPGxpPjQgeWVhcnMgLSBIVE1MPC9saT4KPGxpPjQgeWVhcnMgLSBQeXRob248L2xpPgo8bGk+NSB5ZWFycyAtIFNvZnR3YXJlIEFsZ29yaXRobXM8L2xpPgo8bGk+NSB5ZWFycyAtIFNvZnR3YXJlIERlc2lnbi9EZXZlbG9wbWVudDwvbGk+CjxsaT40IHllYXJzIC0gQVBJcywgUkVTVGZ1bCBzZXJ2aWNlcywgYW5kIGludGVncmF0aW9uczwvbGk+CjxsaT40IHllYXJzIC0gRGVzaWduaW5nIHdlYi1iYXNlZCBhcHBsaWNhdGlvbnM8L2xpPgo8bGk+MyB5ZWFycyAtIEdJVC9HSVRIVUIvR0lUTEFCPC9saT4KPC91bD4KPHA+PHN0cm9uZz5OaWNlIHRvIEhhdmU8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPlByb2dyYW1taW5nPC9saT4KPGxpPkJhY2tlbmQgUHJvZ3JhbW1pbmcgKFNRTCk8L2xpPgo8bGk+Q29udGFpbmVyaXphdGlvbiB0ZWNobm9sb2dpZXMgKGUuZy4sIERvY2tlciwgS3ViZXJuZXRlcyk8L2xpPgo8bGk+Tm9kZS5qczwvbGk+CjxsaT5QYXJhbGxlbCBwcm9ncmFtbWluZyAobXVsdGktdGhyZWFkaW5nLCBzeW5jaHJvbml6YXRpb24sIGV0Yy4pPC9saT4KPGxpPlJFU1RmdWwgQVBJIGRldmVsb3BtZW50IGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gZGF0YSB2aXJ0dWFsaXphdGlvbiBhbmQgZGF0YSBpbnRlZ3JhdGlvbiBwbGF0Zm9ybXNTb2Z0d2FyZTwvbGk+CjxsaT5Db250aW51b3VzIGludGVncmF0aW9uIChidWlsZC90ZXN0KSBhbmQgY29udGludW91cyBkZWxpdmVyeTwvbGk+CjxsaT5EZXZTZWNPcHMgZW52aXJvbm1lbnRzIChHaXRodWIsIEpmcm9nLCBKZW5raW5zLCBHaXRMYWIsIEZvcnRpZnksIERvY2tlciwgS3ViZXJuZXRlcywgZXRjLik8L2xpPgo8bGk+RnJvbnQtZW5kIGZyYW1ld29ya3MgKFJlYWN0IGFuZCBCb290c3RyYXApPC9saT4KPC91bD4KPHA+PHN0cm9uZz5XaGF0IFlvdSBXaWxsIEJyaW5nOjwvc3Ryb25nPjwvcD4KPHA+VGhlIGNhbmRpZGF0ZSBzaG91bGQgaGF2ZSBzdHJvbmcgZXhwZXJpZW5jZSB3aXRoIEFuZ3VsYXIgKHYyMCspLCBpbmNsdWRpbmcgVHlwZVNjcmlwdCwgSFRNTC9DU1MsIHJlc3BvbnNpdmUgZGVzaWduLCBhbmQgZnJvbnRlbmQgdGVzdGluZyB3aXRoIEphc21pbmUvS2FybWEvVml0ZXN0IGFuZCBlbmQtdG8tZW5kIHRlc3Rpbmcgd2l0aCBQbGF5d3JpZ2h0LiBPbiB0aGUgYmFja2VuZCwgZXhwZXJpZW5jZSB3aXRoIFB5dGhvbiBhbmQgRGphbmdvIGlzIHJlcXVpcmVkLCBpbmNsdWRpbmcgUkVTVCBBUEkgZGVzaWduLCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIGFuZCBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEFuZ3VsYXIgYXBwbGljYXRpb25zIGFuZCBiYWNrZW5kIHNlcnZpY2VzLjwvcD4KPHA+RXhwZXJpZW5jZSB3aXRoIERqYW5nbyBSRVNUIEZyYW1ld29yayBpcyBoaWdobHkgZGVzaXJlZCwgaG93ZXZlciwgY2FuZGlkYXRlcyB3aXRoIHNvbGlkIGV4cGVyaWVuY2UgaW4gc2ltaWxhciBiYWNrZW5kIGZyYW1ld29ya3MgYXJlIGVuY291cmFnZWQgdG8gYXBwbHkuIEZhbWlsaWFyaXR5IHdpdGggRG9ja2VyLCBLdWJlcm5ldGVzLCBDSS9DRCBwaXBlbGluZXMgaXMgaGVhdmlseSBkZXNpcmVkLiBHaXQgd29ya2Zsb3dzIGFuZCBMaW51eCBjb21tYW5kLWxpbmUgZW52aXJvbm1lbnRzIGlzIGV4cGVjdGVkLiBUaGUgcm9sZSByZXF1aXJlcyBlZmZlY3RpdmUgdGVhbXdvcmssIHRoZSBhYmlsaXR5IHRvIGRlbGl2ZXIgaGlnaC1xdWFsaXR5IGNvbXBvbmVudHMgdW5kZXIgdGlnaHQgdGltZWxpbmVzIGFuZCB0aGUgaW5pdGlhdGl2ZSB0byBkZWxpdmVyIG5vdCBqdXN0IHdoYXQgaXMgcmVxdWVzdGVkIGJ1dCB3aGF0IGlzIHRydWx5IG5lZWRlZC48L3A+CjxwPjxzdHJvbmc+UmVxdWlyZWQgU2tpbGxzOjwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+UHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzOiBQeXRob24sIFR5cGVTY3JpcHQsIEhUTUwsIENTUzwvbGk+CjxsaT5Nb2Rlcm4gd2ViIHRlY2hub2xvZ2llczogQW5ndWxhciwgRGphbmdvLCBSRVNUIEFQSXM8L2xpPgo8bGk+RnJvbnRlbmQgdGVzdGluZyBmcmFtZXdvcmtzOiBKYXNtaW5lL0thcm1hL1ZpdGVzdDwvbGk+CjxsaT5GYW1pbGlhcml0eSB3aXRoIE5HTklYL2luZ3Jlc3MgY29udHJvbGxlcnM8L2xpPgo8bGk+RXhwZXJpZW5jZSB3aXRoIHBvc3RncmVzIG9yIHNpbWlsYXIgcmVsYXRpb25hbCBkYXRhYmFzZXM8L2xpPgo8bGk+RXhwb3N1cmUgdG8gb2JzZXJ2YWJpbGl0eSB0b29scyAobG9nZ2luZywgbWV0cmljcywgdHJhY2luZyk8L2xpPgo8bGk+R2l0IHdvcmtmbG93cyBhbmQgTGludXggY29tbWFuZC1saW5lIGVudmlyb25tZW50czwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+TmljZSB0byBIYXZlOjwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+RXhwZXJpZW5jZSB3aXRoIERqYW5nbyBSRVNUIEZyYW1ld29yazwvbGk+CjxsaT5VbmRlcnN0YW5kaW5nIG9mIE9BdXRoMiBhbmQgT3BlbklEIENvbm5lY3Q8L2xpPgo8bGk+RGV2T3BzIChEb2NrZXIsIERvY2tlciBDb21wb3NlLCBLdWJlcm5ldGVzIGFuZCBIZWxtKTwvbGk+CjxsaT5GYW1pbGlhcml0eSB3aXRoIENJL0NEIHBpcGVsaW5lcyAoZS5nLiwgSmVua2lucyk8L2xpPgo8L3VsPgo8cD48c3Ryb25nPldvcmsgTG9jYXRpb246PC9zdHJvbmc+Jm5ic3A7VGhpcyBwb3NpdGlvbiBpcyBIeWJyaWQuIFRoZSBpbmRpdmlkdWFsIHdpbGwgYmUgcmVxdWlyZWQgdG8gYmUgb25zaXRlIDItMyBkYXlzIGEgd2Vlay4gQ2FuZGlkYXRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgbG9jYWwgYXQgdGhlIHRpbWUgb2YgdGhlIHN0YXJ0IG9mIHRoZSBhc3NpZ25tZW50LiBUaGUgZmluYWwgc2NoZWR1bGUgaXMgdG8gYmUgZGV0ZXJtaW5lZCAoVEJEKSBieSB0aGUgaGlyaW5nIG1hbmFnZXIuPGJyPjxzdHJvbmc+Q2xlYXJhbmNlIExldmVsOjwvc3Ryb25nPiZuYnNwO0ludGVyaW0gQ2xlYXJhbmNlIGlzIHN1ZmZpY2llbnQgdG8gc3RhcnQuPHN0cm9uZz48YnI+PC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPkludGVydmlldyBQcm9jZXNzOjwvc3Ryb25nPiZuYnNwOzFzdCByb3VuZCBpbnRlcnZpZXcgd2lsbCBiZSBhIFpvb20gd2l0aCB0aGUgaGlyaW5nIG1hbmFnZXIuIDJuZCByb3VuZCBpbnRlcnZpZXcgd2lsbCBiZSBhIFpvb20gd2l0aCBhZGRpdGlvbmFsIHRlYW0gbWVtYmVycyBhcyBuZWVkZWQuPC9wPgo8cD48c3Ryb25nPldlIGFyZSBhbiBFcXVhbCBPcHBvcnR1bml0eSBFbXBsb3llci48L3N0cm9uZz48L3A+
PHA+PHN0cm9uZz5Tb2Z0d2FyZSBFbmdpbmVlcjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz5Mb2NhdGlvbjombmJzcDs8L3N0cm9uZz5IeWJyaWQgYnV0IG11c3QgYmUgd2l0aGluIDEwMCBtaWxlcyBmcm9tIExleGluZ3RvbiwgTUEuIFRoZSBpbmRpdmlkdWFsIHdpbGwgYmUgcmVxdWlyZWQgdG8gYmUgb25zaXRlIDItMyBkYXlzIGEgd2Vlay4gQ2FuZGlkYXRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgbG9jYWwgYXQgdGhlIHRpbWUgb2YgdGhlIHN0YXJ0IG9mIHRoZSBhc3NpZ25tZW50LiBUaGUgZmluYWwgc2NoZWR1bGUgaXMgdG8gYmUgZGV0ZXJtaW5lZCAoVEJEKSBieSB0aGUgaGlyaW5nIG1hbmFnZXIuPC9wPgo8cD48c3Ryb25nPkNsZWFyYW5jZSBMZXZlbDo8L3N0cm9uZz4mbmJzcDtNdXN0IGJlIGFibGUgdG8gb2J0YWluIGFuIEludGVyaW0vQWN0aXZlIFNlY3JldCBDbGVhcmFuY2UtJm5ic3A7PHN0cm9uZz5NdXN0IEJlIFVTIENpdGl6ZW4gdG8gYXBwbHk8L3N0cm9uZz48L3A+CjxwPkF0IEFxdWlsYSBUZWNobm9sb2d5LCB5b3Ugd2lsbCBzZWUgb3VyIHRlYW0mcnNxdW87cyBwYXNzaW9uIGV2ZXJ5IGRheSwgd2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgYSByb2J1c3QsIHBvbGljeS1jb21wbGlhbnQgSVQgc3lzdGVtIG9yIHN0cmVzcy10ZXN0aW5nIGEgc3lzdGVtIHRvIGlkZW50aWZ5IGdhcHMgYW5kIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gVG8gb3duIHRoZSBhZHZhbnRhZ2UsIHdlIGVuc3VyZSBvdXIgdGVhbSBvd25zIHJlc3VsdHMgYW5kIGdldHMgdGhlIHdvcmsgZG9uZSByaWdodCB0aGUgZmlyc3QgdGltZSBieSBkZXBsb3lpbmcgc21hcnQsIHB1cnBvc2VmdWwgc29sdXRpb25zIHRoYXQgd29yay4gQXF1aWxhIGlzIHRoZSByaWdodCBwZW9wbGUgd2l0aCB0aGUgcmlnaHQgc2tpbGxzIGRyaXZpbmcgdGhlIHJpZ2h0IG91dGNvbWVzLiBXZSBjYWxsIHRoaXMgdGhlIEFxdWlsYSBBZHZhbnRhZ2UuPC9wPgo8cD48c3Ryb25nPkFib3V0IHRoZSBSb2xlOjwvc3Ryb25nPjwvcD4KPHA+QXF1aWxhIFRlY2hub2xvZ3kgaXMgc2Vla2luZyBhJm5ic3A7PHN0cm9uZz5Tb2Z0d2FyZSBFbmdpbmVlcjwvc3Ryb25nPjxzdHJvbmc+Jm5ic3A7PC9zdHJvbmc+dG8gam9pbiBvdXIgdGVhbSBpbiBzdXBwb3J0aW5nIG9uZSBvZiB0aGUgY291bnRyeSZyc3F1bztzIHByZW1pZXIgZGVmZW5zZSByZXNlYXJjaCBvcmdhbml6YXRpb25zLiZuYnNwO1RoZSBTb2Z0d2FyZSBFbmdpbmVlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyBhbmQgbWFpbnRhaW5pbmcgYW4gYXBwbGljYXRpb24gdGhhdCBzdXBwb3J0cyByZXZlcnNlIGVuZ2luZWVyaW5nLCBtYWx3YXJlIGFuYWx5c2lzIGFuZCBjb250aW51b3VzIGRlcGxveW1lbnQgd29ya2Zsb3dzLiBUaGUgY2FuZGlkYXRlIHdpbGwgZGVzaWduIGFuZCBpbXBsZW1lbnQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgd2l0aCBhIHN0cm9uZyBlbXBoYXNpcyBvbiBmcm9udGVuZCBhcmNoaXRlY3R1cmUsIHBlcmZvcm1hbmNlLCB1c2FiaWxpdHksIHRlc3RpbmcgYW5kIHByb2R1Y3QtcXVhbGl0eSBVWC4gVGhlIGNhbmRpZGF0ZSB3aWxsIHdvcmsgYWNyb3NzIHRoZSBzdGFjayBhbmQgY29sbGFib3JhdGUgd2l0aCBiYWNrZW5kIGVuZ2luZWVycyBhbmQgYW5hbHlzdHMgdG8gaW50ZWdyYXRlIEFQSXMsIG1hbmFnZSBkYXRhIGZsb3dzLCBhbmQgZGVsaXZlciBzY2FsYWJsZSBzb2x1dGlvbnMuIFRoZSBwb3NpdGlvbiBpbmNsdWRlcyBjb3JlIHNvZnR3YXJlIGVuZ2luZWVyaW5nIHJlc3BvbnNpYmlsaXRpZXMgc3VjaCBhcyBjb2RlIHJldmlldywgcmVmYWN0b3JpbmcsIGFuZCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zLjwvcD4KPHA+PHN0cm9uZz5NdXN0IEhhdmU8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPjQgeWVhcnMgLSBQcm9ncmFtL1Byb2plY3QgTWFuYWdlbWVudCBPUiBBbmFseXNpczwvbGk+CjxsaT40IHllYXJzIC0gU29mdHdhcmUgRG9jdW1lbnRhdGlvbjwvbGk+CjxsaT40IHllYXJzIC0gUHJvZ3JhbW1pbmc8L2xpPgo8bGk+NCB5ZWFycyAtIEFuZ3VsYXI8L2xpPgo8bGk+NCB5ZWFycyAtIENTUzwvbGk+CjxsaT40IHllYXJzIC0gRXhwZXJpZW5jZSBkZXZlbG9waW5nIFJFU1Qgd2ViIHNlcnZpY2VzPC9saT4KPGxpPjQgeWVhcnMgLSBIVE1MPC9saT4KPGxpPjQgeWVhcnMgLSBQeXRob248L2xpPgo8bGk+NSB5ZWFycyAtIFNvZnR3YXJlIEFsZ29yaXRobXM8L2xpPgo8bGk+NSB5ZWFycyAtIFNvZnR3YXJlIERlc2lnbi9EZXZlbG9wbWVudDwvbGk+CjxsaT40IHllYXJzIC0gQVBJcywgUkVTVGZ1bCBzZXJ2aWNlcywgYW5kIGludGVncmF0aW9uczwvbGk+CjxsaT40IHllYXJzIC0gRGVzaWduaW5nIHdlYi1iYXNlZCBhcHBsaWNhdGlvbnM8L2xpPgo8bGk+MyB5ZWFycyAtIEdJVC9HSVRIVUIvR0lUTEFCPC9saT4KPC91bD4KPHA+PHN0cm9uZz5OaWNlIHRvIEhhdmU8L3N0cm9uZz48L3A+Cjx1bD4KPGxpPlByb2dyYW1taW5nPC9saT4KPGxpPkJhY2tlbmQgUHJvZ3JhbW1pbmcgKFNRTCk8L2xpPgo8bGk+Q29udGFpbmVyaXphdGlvbiB0ZWNobm9sb2dpZXMgKGUuZy4sIERvY2tlciwgS3ViZXJuZXRlcyk8L2xpPgo8bGk+Tm9kZS5qczwvbGk+CjxsaT5QYXJhbGxlbCBwcm9ncmFtbWluZyAobXVsdGktdGhyZWFkaW5nLCBzeW5jaHJvbml6YXRpb24sIGV0Yy4pPC9saT4KPGxpPlJFU1RmdWwgQVBJIGRldmVsb3BtZW50IGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gZGF0YSB2aXJ0dWFsaXphdGlvbiBhbmQgZGF0YSBpbnRlZ3JhdGlvbiBwbGF0Zm9ybXNTb2Z0d2FyZTwvbGk+CjxsaT5Db250aW51b3VzIGludGVncmF0aW9uIChidWlsZC90ZXN0KSBhbmQgY29udGludW91cyBkZWxpdmVyeTwvbGk+CjxsaT5EZXZTZWNPcHMgZW52aXJvbm1lbnRzIChHaXRodWIsIEpmcm9nLCBKZW5raW5zLCBHaXRMYWIsIEZvcnRpZnksIERvY2tlciwgS3ViZXJuZXRlcywgZXRjLik8L2xpPgo8bGk+RnJvbnQtZW5kIGZyYW1ld29ya3MgKFJlYWN0IGFuZCBCb290c3RyYXApPC9saT4KPC91bD4KPHA+PHN0cm9uZz5XaGF0IFlvdSBXaWxsIEJyaW5nOjwvc3Ryb25nPjwvcD4KPHA+VGhlIGNhbmRpZGF0ZSBzaG91bGQgaGF2ZSBzdHJvbmcgZXhwZXJpZW5jZSB3aXRoIEFuZ3VsYXIgKHYyMCspLCBpbmNsdWRpbmcgVHlwZVNjcmlwdCwgSFRNTC9DU1MsIHJlc3BvbnNpdmUgZGVzaWduLCBhbmQgZnJvbnRlbmQgdGVzdGluZyB3aXRoIEphc21pbmUvS2FybWEvVml0ZXN0IGFuZCBlbmQtdG8tZW5kIHRlc3Rpbmcgd2l0aCBQbGF5d3JpZ2h0LiBPbiB0aGUgYmFja2VuZCwgZXhwZXJpZW5jZSB3aXRoIFB5dGhvbiBhbmQgRGphbmdvIGlzIHJlcXVpcmVkLCBpbmNsdWRpbmcgUkVTVCBBUEkgZGVzaWduLCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIGFuZCBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEFuZ3VsYXIgYXBwbGljYXRpb25zIGFuZCBiYWNrZW5kIHNlcnZpY2VzLjwvcD4KPHA+RXhwZXJpZW5jZSB3aXRoIERqYW5nbyBSRVNUIEZyYW1ld29yayBpcyBoaWdobHkgZGVzaXJlZCwgaG93ZXZlciwgY2FuZGlkYXRlcyB3aXRoIHNvbGlkIGV4cGVyaWVuY2UgaW4gc2ltaWxhciBiYWNrZW5kIGZyYW1ld29ya3MgYXJlIGVuY291cmFnZWQgdG8gYXBwbHkuIEZhbWlsaWFyaXR5IHdpdGggRG9ja2VyLCBLdWJlcm5ldGVzLCBDSS9DRCBwaXBlbGluZXMgaXMgaGVhdmlseSBkZXNpcmVkLiBHaXQgd29ya2Zsb3dzIGFuZCBMaW51eCBjb21tYW5kLWxpbmUgZW52aXJvbm1lbnRzIGlzIGV4cGVjdGVkLiBUaGUgcm9sZSByZXF1aXJlcyBlZmZlY3RpdmUgdGVhbXdvcmssIHRoZSBhYmlsaXR5IHRvIGRlbGl2ZXIgaGlnaC1xdWFsaXR5IGNvbXBvbmVudHMgdW5kZXIgdGlnaHQgdGltZWxpbmVzIGFuZCB0aGUgaW5pdGlhdGl2ZSB0byBkZWxpdmVyIG5vdCBqdXN0IHdoYXQgaXMgcmVxdWVzdGVkIGJ1dCB3aGF0IGlzIHRydWx5IG5lZWRlZC48L3A+CjxwPjxzdHJvbmc+UmVxdWlyZWQgU2tpbGxzOjwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+UHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzOiBQeXRob24sIFR5cGVTY3JpcHQsIEhUTUwsIENTUzwvbGk+CjxsaT5Nb2Rlcm4gd2ViIHRlY2hub2xvZ2llczogQW5ndWxhciwgRGphbmdvLCBSRVNUIEFQSXM8L2xpPgo8bGk+RnJvbnRlbmQgdGVzdGluZyBmcmFtZXdvcmtzOiBKYXNtaW5lL0thcm1hL1ZpdGVzdDwvbGk+CjxsaT5GYW1pbGlhcml0eSB3aXRoIE5HTklYL2luZ3Jlc3MgY29udHJvbGxlcnM8L2xpPgo8bGk+RXhwZXJpZW5jZSB3aXRoIHBvc3RncmVzIG9yIHNpbWlsYXIgcmVsYXRpb25hbCBkYXRhYmFzZXM8L2xpPgo8bGk+RXhwb3N1cmUgdG8gb2JzZXJ2YWJpbGl0eSB0b29scyAobG9nZ2luZywgbWV0cmljcywgdHJhY2luZyk8L2xpPgo8bGk+R2l0IHdvcmtmbG93cyBhbmQgTGludXggY29tbWFuZC1saW5lIGVudmlyb25tZW50czwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+TmljZSB0byBIYXZlOjwvc3Ryb25nPjwvcD4KPHVsPgo8bGk+RXhwZXJpZW5jZSB3aXRoIERqYW5nbyBSRVNUIEZyYW1ld29yazwvbGk+CjxsaT5VbmRlcnN0YW5kaW5nIG9mIE9BdXRoMiBhbmQgT3BlbklEIENvbm5lY3Q8L2xpPgo8bGk+RGV2T3BzIChEb2NrZXIsIERvY2tlciBDb21wb3NlLCBLdWJlcm5ldGVzIGFuZCBIZWxtKTwvbGk+CjxsaT5GYW1pbGlhcml0eSB3aXRoIENJL0NEIHBpcGVsaW5lcyAoZS5nLiwgSmVua2lucyk8L2xpPgo8L3VsPgo8cD48c3Ryb25nPldvcmsgTG9jYXRpb246PC9zdHJvbmc+Jm5ic3A7VGhpcyBwb3NpdGlvbiBpcyBIeWJyaWQuIFRoZSBpbmRpdmlkdWFsIHdpbGwgYmUgcmVxdWlyZWQgdG8gYmUgb25zaXRlIDItMyBkYXlzIGEgd2Vlay4gQ2FuZGlkYXRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgbG9jYWwgYXQgdGhlIHRpbWUgb2YgdGhlIHN0YXJ0IG9mIHRoZSBhc3NpZ25tZW50LiBUaGUgZmluYWwgc2NoZWR1bGUgaXMgdG8gYmUgZGV0ZXJtaW5lZCAoVEJEKSBieSB0aGUgaGlyaW5nIG1hbmFnZXIuPGJyPjxzdHJvbmc+Q2xlYXJhbmNlIExldmVsOjwvc3Ryb25nPiZuYnNwO0ludGVyaW0gQ2xlYXJhbmNlIGlzIHN1ZmZpY2llbnQgdG8gc3RhcnQuPHN0cm9uZz48YnI+PC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPkludGVydmlldyBQcm9jZXNzOjwvc3Ryb25nPiZuYnNwOzFzdCByb3VuZCBpbnRlcnZpZXcgd2lsbCBiZSBhIFpvb20gd2l0aCB0aGUgaGlyaW5nIG1hbmFnZXIuIDJuZCByb3VuZCBpbnRlcnZpZXcgd2lsbCBiZSBhIFpvb20gd2l0aCBhZGRpdGlvbmFsIHRlYW0gbWVtYmVycyBhcyBuZWVkZWQuPC9wPgo8cD48c3Ryb25nPldlIGFyZSBhbiBFcXVhbCBPcHBvcnR1bml0eSBFbXBsb3llci48L3N0cm9uZz48L3A+