@angular/core
Version:
Angular - the core framework
1 lines • 23.3 kB
JavaScript
sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvc3R5bGluZ19uZXh0L2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuKiBAbGljZW5zZVxuKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbipcbiogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuKi9cbmltcG9ydCB7U3R5bGVTYW5pdGl6ZUZufSBmcm9tICcuLi8uLi9zYW5pdGl6YXRpb24vc3R5bGVfc2FuaXRpemVyJztcbmltcG9ydCB7UHJvY2VkdXJhbFJlbmRlcmVyMywgUkVsZW1lbnQsIFJlbmRlcmVyM30gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZW5kZXJlcic7XG5pbXBvcnQge0xWaWV3fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG4vKipcbiAqIC0tLS0tLS0tXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb3JlIGludGVyZmFjZXMgZm9yIHN0eWxpbmcgaW4gQW5ndWxhci5cbiAqXG4gKiBUbyBsZWFybiBtb3JlIGFib3V0IHRoZSBhbGdvcml0aG0gc2VlIGBUU3R5bGluZ0NvbnRleHRgLlxuICpcbiAqIC0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBBIHN0YXRpYy1sZXZlbCByZXByZXNlbnRhdGlvbiBvZiBhbGwgc3R5bGUgb3IgY2xhc3MgYmluZGluZ3MvdmFsdWVzXG4gKiBhc3NvY2lhdGVkIHdpdGggYSBgVE5vZGVgLlxuICpcbiAqIFRoZSBgVFN0eWxpbmdDb250ZXh0YCB1bml0ZXMgYWxsIHRlbXBsYXRlIHN0eWxpbmcgYmluZGluZ3MgKGkuZS5cbiAqIGBbY2xhc3NdYCBhbmQgYFtzdHlsZV1gIGJpbmRpbmdzKSBhcyB3ZWxsIGFzIGFsbCBob3N0LWxldmVsXG4gKiBzdHlsaW5nIGJpbmRpbmdzIChmb3IgY29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcykgdG9nZXRoZXIgaW50b1xuICogYSBzaW5nbGUgbWFuaWZlc3QuIEl0IGlzIHVzZWQgZWFjaCB0aW1lIHRoZXJlIGFyZSBvbmUgb3IgbW9yZVxuICogc3R5bGluZyBiaW5kaW5ncyBwcmVzZW50IGZvciBhbiBlbGVtZW50LlxuICpcbiAqIFRoZSBzdHlsaW5nIGNvbnRleHQgaXMgc3RvcmVkIG9uIGEgYFROb2RlYCBvbiBhbmQgdGhlcmUgYXJlXG4gKiB0d28gaW5zdGFuY2VzIG9mIGl0OiBvbmUgZm9yIGNsYXNzZXMgYW5kIGFub3RoZXIgZm9yIHN0eWxlcy5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB0Tm9kZS5zdHlsZXMgPSBbIC4uLiBhIGNvbnRleHQgb25seSBmb3Igc3R5bGVzIC4uLiBdO1xuICogdE5vZGUuY2xhc3NlcyA9IFsgLi4uIGEgY29udGV4dCBvbmx5IGZvciBjbGFzc2VzIC4uLiBdO1xuICogYGBgXG4gKlxuICogRHVlIHRvIHRoZSBmYWN0IHRoZSB0aGUgYFRTdHlsaW5nQ29udGV4dGAgaXMgc3RvcmVkIG9uIGEgYFROb2RlYFxuICogdGhpcyBtZWFucyB0aGF0IGFsbCBkYXRhIHdpdGhpbiB0aGUgY29udGV4dCBpcyBzdGF0aWMuIEluc3RlYWQgb2ZcbiAqIHN0b3JpbmcgYWN0dWFsIHN0eWxpbmcgYmluZGluZyB2YWx1ZXMsIHRoZSBsVmlldyBiaW5kaW5nIGluZGV4IHZhbHVlc1xuICogYXJlIHN0b3JlZCB3aXRoaW4gdGhlIGNvbnRleHQuIChzdGF0aWMgbmF0dXJlIG1lYW5zIGl0IGlzIG1vcmUgY29tcGFjdC4pXG5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiY1wiICAvLyBsVmlldyBiaW5kaW5nIGluZGV4ID0gMjBcbiAqIC8vICAgICAgW3N0eWxlLndpZHRoXT1cInhcIiAgIC8vIGxWaWV3IGJpbmRpbmcgaW5kZXggPSAyMVxuICogLy8gICAgICBbc3R5bGUuaGVpZ2h0XT1cInlcIj4gLy8gbFZpZXcgYmluZGluZyBpbmRleCA9IDIyXG4gKiB0Tm9kZS5zdHlsZXNDb250ZXh0ID0gW1xuICogICAwLCAvLyB0aGUgY29udGV4dCBjb25maWcgdmFsdWVcbiAqXG4gKiAgIDBiMDAxLCAvLyBndWFyZCBtYXNrIGZvciB3aWR0aFxuICogICAyLCAvLyB0b3RhbCBlbnRyaWVzIGZvciB3aWR0aFxuICogICAnd2lkdGgnLCAvLyB0aGUgcHJvcGVydHkgbmFtZVxuICogICAyMSwgLy8gdGhlIGJpbmRpbmcgbG9jYXRpb24gZm9yIHRoZSBcInhcIiBiaW5kaW5nIGluIHRoZSBsVmlld1xuICogICBudWxsLFxuICpcbiAqICAgMGIwMTAsIC8vIGd1YXJkIG1hc2sgZm9yIGhlaWdodFxuICogICAyLCAvLyB0b3RhbCBlbnRyaWVzIGZvciBoZWlnaHRcbiAqICAgJ2hlaWdodCcsIC8vIHRoZSBwcm9wZXJ0eSBuYW1lXG4gKiAgIDIyLCAvLyB0aGUgYmluZGluZyBsb2NhdGlvbiBmb3IgdGhlIFwieVwiIGJpbmRpbmcgaW4gdGhlIGxWaWV3XG4gKiAgIG51bGwsXG4gKiBdO1xuICpcbiAqIHROb2RlLmNsYXNzZXNDb250ZXh0ID0gW1xuICogICAwLCAvLyB0aGUgY29udGV4dCBjb25maWcgdmFsdWVcbiAqXG4gKiAgIDBiMDAxLCAvLyBndWFyZCBtYXNrIGZvciBhY3RpdmVcbiAqICAgMiwgLy8gdG90YWwgZW50cmllcyBmb3IgYWN0aXZlXG4gKiAgICdhY3RpdmUnLCAvLyB0aGUgcHJvcGVydHkgbmFtZVxuICogICAyMCwgLy8gdGhlIGJpbmRpbmcgbG9jYXRpb24gZm9yIHRoZSBcImNcIiBiaW5kaW5nIGluIHRoZSBsVmlld1xuICogICBudWxsLFxuICogXTtcbiAqIGBgYFxuICpcbiAqIEVudHJ5IHZhbHVlIHByZXNlbnQgaW4gYW4gZW50cnkgKGNhbGxlZCBhIHR1cGxlKSB3aXRoaW4gdGhlXG4gKiBzdHlsaW5nIGNvbnRleHQgaXMgYXMgZm9sbG93czpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb250ZXh0ID0gW1xuICogICBDT05GSUcsIC8vIHRoZSBzdHlsaW5nIGNvbnRleHQgY29uZmlnIHZhbHVlXG4gKiAgIC8vLi4uXG4gKiAgIGd1YXJkTWFzayxcbiAqICAgdG90YWxFbnRyaWVzLFxuICogICBwcm9wTmFtZSxcbiAqICAgYmluZGluZ0luZGljZXMuLi4sXG4gKiAgIGRlZmF1bHRWYWx1ZVxuICogXTtcbiAqIGBgYFxuICpcbiAqIEJlbG93IGlzIGEgYnJlYWtkb3duIG9mIGVhY2ggdmFsdWU6XG4gKlxuICogLSAqKmd1YXJkTWFzayoqOlxuICogICBBIG51bWVyaWMgdmFsdWUgd2hlcmUgZWFjaCBiaXQgcmVwcmVzZW50cyBhIGJpbmRpbmcgaW5kZXhcbiAqICAgbG9jYXRpb24uIEVhY2ggYmluZGluZyBpbmRleCBsb2NhdGlvbiBpcyBhc3NpZ25lZCBiYXNlZCBvblxuICogICBhIGxvY2FsIGNvdW50ZXIgdmFsdWUgdGhhdCBpbmNyZW1lbnRzIGVhY2ggdGltZSBhbiBpbnN0cnVjdGlvblxuICogICBpcyBjYWxsZWQ6XG4gKlxuICogYGBgXG4gKiA8ZGl2IFtzdHlsZS53aWR0aF09XCJ4XCIgICAvLyBiaW5kaW5nIGluZGV4ID0gMjEgKGNvdW50ZXIgaW5kZXggPSAwKVxuICogICAgICBbc3R5bGUuaGVpZ2h0XT1cInlcIj4gLy8gYmluZGluZyBpbmRleCA9IDIyIChjb3VudGVyIGluZGV4ID0gMSlcbiAqIGBgYFxuICpcbiAqICAgSW4gdGhlIGV4YW1wbGUgY29kZSBhYm92ZSwgaWYgdGhlIGB3aWR0aGAgdmFsdWUgd2hlcmUgdG8gY2hhbmdlXG4gKiAgIHRoZW4gdGhlIGZpcnN0IGJpdCBpbiB0aGUgbG9jYWwgYml0IG1hc2sgdmFsdWUgd291bGQgYmUgZmxpcHBlZFxuICogICAoYW5kIHRoZSBzZWNvbmQgYml0IGZvciB3aGVuIGBoZWlnaHRgKS5cbiAqXG4gKiAgIElmIGFuZCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gMzIgYmluZGluZyBzb3VyY2VzIGluIHRoZSBjb250ZXh0XG4gKiAgIChtb3JlIHRoYW4gMzIgYFtzdHlsZS9jbGFzc11gIGJpbmRpbmdzKSB0aGVuIHRoZSBiaXQgbWFza2luZyB3aWxsXG4gKiAgIG92ZXJmbG93IGFuZCB3ZSBhcmUgbGVmdCB3aXRoIGEgc2l0dWF0aW9uIHdoZXJlIGEgYC0xYCB2YWx1ZSB3aWxsXG4gKiAgIHJlcHJlc2VudCB0aGUgYml0IG1hc2suIER1ZSB0byB0aGUgd2F5IHRoYXQgSmF2YVNjcmlwdCBoYW5kbGVzXG4gKiAgIG5lZ2F0aXZlIHZhbHVlcywgd2hlbiB0aGUgYml0IG1hc2sgaXMgYC0xYCB0aGVuIGFsbCBiaXRzIHdpdGhpblxuICogICB0aGF0IHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBmbGlwcGVkICh0aGlzIGlzIGEgcXVpY2sgYW5kXG4gKiAgIGVmZmljaWVudCB3YXkgdG8gZmxpcCBhbGwgYml0cyBvbiB0aGUgbWFzayB3aGVuIGEgc3BlY2lhbCBraW5kXG4gKiAgIG9mIGNhY2hpbmcgc2NlbmFyaW8gb2NjdXJzIG9yIHdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiAzMiBiaW5kaW5ncykuXG4gKlxuICogLSAqKnRvdGFsRW50cmllcyoqOlxuICogICBFYWNoIHByb3BlcnR5IHByZXNlbnQgaW4gdGhlIGNvbnRhaW5zIHZhcmlvdXMgYmluZGluZyBzb3VyY2VzIG9mXG4gKiAgIHdoZXJlIHRoZSBzdHlsaW5nIGRhdGEgY291bGQgY29tZSBmcm9tLiBUaGlzIGluY2x1ZGVzIHRlbXBsYXRlXG4gKiAgIGxldmVsIGJpbmRpbmdzLCBkaXJlY3RpdmUvY29tcG9uZW50IGhvc3QgYmluZGluZ3MgYXMgd2VsbCBhcyB0aGVcbiAqICAgZGVmYXVsdCB2YWx1ZSAob3Igc3RhdGljIHZhbHVlKSBhbGwgd3JpdGluZyB0byB0aGUgc2FtZSBwcm9wZXJ0eS5cbiAqICAgVGhpcyB2YWx1ZSBkZXBpY3RzIGhvdyBtYW55IGJpbmRpbmcgc291cmNlIGVudHJpZXMgZXhpc3QgZm9yIHRoZVxuICogICBwcm9wZXJ0eS5cbiAqXG4gKiAgIFRoZSByZWFzb24gd2h5IHRoZSB0b3RhbEVudHJpZXMgdmFsdWUgaXMgbmVlZGVkIGlzIGJlY2F1c2UgdGhlXG4gKiAgIHN0eWxpbmcgY29udGV4dCBpcyBkeW5hbWljIGluIHNpemUgYW5kIGl0J3Mgbm90IHBvc3NpYmxlXG4gKiAgIGZvciB0aGUgZmx1c2hpbmcgb3IgdXBkYXRlIGFsZ29yaXRobXMgdG8ga25vdyB3aGVuIGFuZCB3aGVyZVxuICogICBhIHByb3BlcnR5IHN0YXJ0cyBhbmQgZW5kcyB3aXRob3V0IGl0LlxuICpcbiAqIC0gKipwcm9wTmFtZSoqOlxuICogICBUaGUgQ1NTIHByb3BlcnR5IG5hbWUgb3IgY2xhc3MgbmFtZSAoZS5nIGB3aWR0aGAgb3IgYGFjdGl2ZWApLlxuICpcbiAqIC0gKipiaW5kaW5nSW5kaWNlcy4uLioqOlxuICogICBBIHNlcmllcyBvZiBudW1lcmljIGJpbmRpbmcgdmFsdWVzIHRoYXQgcmVmbGVjdCB3aGVyZSBpbiB0aGVcbiAqICAgbFZpZXcgdG8gZmluZCB0aGUgc3R5bGUvY2xhc3MgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvcGVydHkuXG4gKiAgIEVhY2ggdmFsdWUgaXMgaW4gb3JkZXIgaW4gdGVybXMgb2YgcHJpb3JpdHkgKHRlbXBsYXRlcyBhcmUgZmlyc3QsXG4gKiAgIHRoZW4gZGlyZWN0aXZlcyBhbmQgdGhlbiBjb21wb25lbnRzKS4gV2hlbiB0aGUgY29udGV4dCBpcyBmbHVzaGVkXG4gKiAgIGFuZCB0aGUgc3R5bGUvY2xhc3MgdmFsdWVzIGFyZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50ICh0aGlzIGhhcHBlbnNcbiAqICAgaW5zaWRlIG9mIHRoZSBgc3R5bGluZ0FwcGx5YCBpbnN0cnVjdGlvbikgdGhlbiB0aGUgZmx1c2hpbmcgY29kZVxuICogICB3aWxsIGtlZXAgY2hlY2tpbmcgZWFjaCBiaW5kaW5nIGluZGV4IGFnYWluc3QgdGhlIGFzc29jaWF0ZWQgbFZpZXdcbiAqICAgdG8gZmluZCB0aGUgZmlyc3Qgc3R5bGUvY2xhc3MgdmFsdWUgdGhhdCBpcyBub24tbnVsbC5cbiAqXG4gKiAtICoqZGVmYXVsdFZhbHVlKio6XG4gKiAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgdGhhdCB3aWxsIGFsd2F5cyBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IGlmXG4gKiAgIGFuZCB3aGVuIGFsbCBvdGhlciBiaW5kaW5nIHNvdXJjZXMgcmV0dXJuIGEgcmVzdWx0IHRoYXQgaXMgbnVsbC5cbiAqICAgVXN1YWxseSB0aGlzIHZhbHVlIGlzIG51bGwgYnV0IGl0IGNhbiBhbHNvIGJlIGEgc3RhdGljIHZhbHVlIHRoYXRcbiAqICAgaXMgaW50ZXJjZXB0ZWQgd2hlbiB0aGUgdE5vZGUgaXMgZmlyc3QgY29uc3RydWN0dXJlZCAoZS5nLlxuICogICBgPGRpdiBzdHlsZT1cIndpZHRoOjIwMHB4XCI+YCBoYXMgYSBkZWZhdWx0IHZhbHVlIG9mIGAyMDBweGAgZm9yXG4gKiAgIHRoZSBgd2lkdGhgIHByb3BlcnR5KS5cbiAqXG4gKiBFYWNoIHRpbWUgYSBuZXcgYmluZGluZyBpcyBlbmNvdW50ZXJlZCBpdCBpcyByZWdpc3RlcmVkIGludG8gdGhlXG4gKiBjb250ZXh0LiBUaGUgY29udGV4dCB0aGVuIGlzIGNvbnRpbnVhbGx5IHVwZGF0ZWQgdW50aWwgdGhlIGZpcnN0XG4gKiBzdHlsaW5nIGFwcGx5IGNhbGwgaGFzIGJlZW4gY2FsbGVkICh0aGlzIGlzIHRyaWdnZXJlZCBieSB0aGVcbiAqIGBzdHlsaW5nQXBwbHkoKWAgaW5zdHJ1Y3Rpb24gZm9yIHRoZSBhY3RpdmUgZWxlbWVudCkuXG4gKlxuICogIyBIb3cgU3R5bGVzL0NsYXNzZXMgYXJlIFJlbmRlcmVkXG4gKiBFYWNoIHRpbWUgYSBzdHlsaW5nIGluc3RydWN0aW9uIChlLmcuIGBbY2xhc3MubmFtZV1gLCBgW3N0eWxlLnByb3BdYCxcbiAqIGV0Yy4uLikgaXMgZXhlY3V0ZWQsIHRoZSBhc3NvY2lhdGVkIGBsVmlld2AgZm9yIHRoZSB2aWV3IGlzIHVwZGF0ZWRcbiAqIGF0IHRoZSBjdXJyZW50IGJpbmRpbmcgbG9jYXRpb24uIEFsc28sIHdoZW4gdGhpcyBoYXBwZW5zLCBhIGxvY2FsXG4gKiBjb3VudGVyIHZhbHVlIGlzIGluY3JlbWVudGVkLiBJZiB0aGUgYmluZGluZyB2YWx1ZSBoYXMgY2hhbmdlZCB0aGVuXG4gKiBhIGxvY2FsIGBiaXRNYXNrYCB2YXJpYWJsZSBpcyB1cGRhdGVkIHdpdGggdGhlIHNwZWNpZmljIGJpdCBiYXNlZFxuICogb24gdGhlIGNvdW50ZXIgdmFsdWUuXG4gKlxuICogQmVsb3cgaXMgYSBsaWdodHdlaWdodCBleGFtcGxlIG9mIHdoYXQgaGFwcGVucyB3aGVuIGEgc2luZ2xlIHN0eWxlXG4gKiBwcm9wZXJ0eSBpcyB1cGRhdGVkIChpLmUuIGA8ZGl2IFtzdHlsZS5wcm9wXT1cInZhbFwiPmApOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlUHJvcChwcm9wOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAqICAgY29uc3QgbFZpZXcgPSBnZXRMVmlldygpO1xuICogICBjb25zdCBiaW5kaW5nSW5kZXggPSBCSU5ESU5HX0lOREVYKys7XG4gKiAgIGNvbnN0IGluZGV4Rm9yU3R5bGUgPSBsb2NhbFN0eWxlc0NvdW50ZXIrKztcbiAqICAgaWYgKGxWaWV3W2JpbmRpbmdJbmRleF0gIT09IHZhbHVlKSB7XG4gKiAgICAgbFZpZXdbYmluZGluZ0luZGV4XSA9IHZhbHVlO1xuICogICAgIGxvY2FsQml0TWFza0ZvclN0eWxlcyB8PSAxIDw8IGluZGV4Rm9yU3R5bGU7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICMjIFRoZSBBcHBseSBBbGdvcml0aG1cbiAqIEFzIGV4cGxhaW5lZCBhYm92ZSwgZWFjaCB0aW1lIGEgYmluZGluZyB1cGRhdGVzIGl0cyB2YWx1ZSwgdGhlIHJlc3VsdGluZ1xuICogdmFsdWUgaXMgc3RvcmVkIGluIHRoZSBgbFZpZXdgIGFycmF5LiBUaGVzZSBzdHlsaW5nIHZhbHVlcyBoYXZlIHlldCB0b1xuICogYmUgZmx1c2hlZCB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBPbmNlIGFsbCB0aGUgc3R5bGluZyBpbnN0cnVjdGlvbnMgaGF2ZSBiZWVuIGV2YWx1YXRlZCwgdGhlbiB0aGUgc3R5bGluZ1xuICogY29udGV4dChzKSBhcmUgZmx1c2hlZCB0byB0aGUgZWxlbWVudC4gV2hlbiB0aGlzIGhhcHBlbnMsIHRoZSBjb250ZXh0IHdpbGxcbiAqIGJlIGl0ZXJhdGVkIG92ZXIgKHByb3BlcnR5IGJ5IHByb3BlcnR5KSBhbmQgZWFjaCBiaW5kaW5nIHNvdXJjZSB3aWxsIGJlXG4gKiBleGFtaW5lZCBhbmQgdGhlIGZpcnN0IG5vbi1udWxsIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBMZXQncyBzYXkgdGhhdCB3ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGNvZGU6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBbc3R5bGUud2lkdGhdPVwidzFcIiBkaXItdGhhdC1zZXQtd2lkdGg9XCJ3MlwiPjwvZGl2PlxuICogYGBgXG4gKlxuICogVGhlcmUgYXJlIHR3byBzdHlsaW5nIGJpbmRpbmdzIGluIHRoZSBjb2RlIGFib3ZlIGFuZCB0aGV5IGJvdGggd3JpdGVcbiAqIHRvIHRoZSBgd2lkdGhgIHByb3BlcnR5LiBXaGVuIHN0eWxpbmcgaXMgZmx1c2hlZCBvbiB0aGUgZWxlbWVudCwgdGhlXG4gKiBhbGdvcml0aG0gd2lsbCB0cnkgYW5kIGZpZ3VyZSBvdXQgd2hpY2ggb25lIG9mIHRoZXNlIHZhbHVlcyB0byB3cml0ZVxuICogdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGljaCB2YWx1ZSB0byBhcHBseSwgdGhlIGZvbGxvd2luZ1xuICogYmluZGluZyBwcmlvcml0aXphdGlvbiBpcyBhZGhlcmVkIHRvOlxuICpcbiAqICAgMS4gRmlyc3QgdGVtcGxhdGUtbGV2ZWwgc3R5bGluZyBiaW5kaW5ncyBhcmUgYXBwbGllZCAoaWYgcHJlc2VudCkuXG4gKiAgICAgIFRoaXMgaW5jbHVkZXMgdGhpbmdzIGxpa2UgYFtzdHlsZS53aWR0aF1gIGFuZCBgW2NsYXNzLmFjdGl2ZV1gLlxuICpcbiAqICAgMi4gU2Vjb25kIGFyZSBzdHlsaW5nLWxldmVsIGhvc3QgYmluZGluZ3MgcHJlc2VudCBpbiBkaXJlY3RpdmVzLlxuICogICAgICAoaWYgdGhlcmUgYXJlIHN1Yi9zdXBlciBkaXJlY3RpdmVzIHByZXNlbnQgdGhlbiB0aGUgc3ViIGRpcmVjdGl2ZXNcbiAqICAgICAgYXJlIGFwcGxpZWQgZmlyc3QpLlxuICpcbiAqICAgMy4gVGhpcmQgYXJlIHN0eWxpbmctbGV2ZWwgaG9zdCBiaW5kaW5ncyBwcmVzZW50IGluIGNvbXBvbmVudHMuXG4gKiAgICAgIChpZiB0aGVyZSBhcmUgc3ViL3N1cGVyIGNvbXBvbmVudHMgcHJlc2VudCB0aGVuIHRoZSBzdWIgZGlyZWN0aXZlc1xuICogICAgICBhcmUgYXBwbGllZCBmaXJzdCkuXG4gKlxuICogVGhpcyBtZWFucyB0aGF0IGluIHRoZSBjb2RlIGFib3ZlIHRoZSBzdHlsaW5nIGJpbmRpbmcgcHJlc2VudCBpbiB0aGVcbiAqIHRlbXBsYXRlIGlzIGFwcGxpZWQgZmlyc3QgYW5kLCBvbmx5IGlmIGl0cyBmYWxzeSwgdGhlbiB0aGUgZGlyZWN0aXZlXG4gKiBzdHlsaW5nIGJpbmRpbmcgZm9yIHdpZHRoIHdpbGwgYmUgYXBwbGllZC5cbiAqXG4gKiAjIyMgV2hhdCBhYm91dCBtYXAtYmFzZWQgc3R5bGluZyBiaW5kaW5ncz9cbiAqIE1hcC1iYXNlZCBzdHlsaW5nIGJpbmRpbmdzIGFyZSBhY3RpdmF0ZWQgd2hlbiB0aGVyZSBhcmUgb25lIG9yIG1vcmVcbiAqIGBbc3R5bGVdYCBhbmQvb3IgYFtjbGFzc11gIGJpbmRpbmdzIHByZXNlbnQgb24gYW4gZWxlbWVudC4gV2hlbiB0aGlzXG4gKiBjb2RlIGlzIGFjdGl2YXRlZCwgdGhlIGFwcGx5IGFsZ29yaXRobSB3aWxsIGl0ZXJhdGUgb3ZlciBlYWNoIG1hcFxuICogZW50cnkgYW5kIGFwcGx5IGVhY2ggc3R5bGluZyB2YWx1ZSB0byB0aGUgZWxlbWVudCB3aXRoIHRoZSBzYW1lXG4gKiBwcmlvcml0aXphdGlvbiBydWxlcyBhcyBhYm92ZS5cbiAqXG4gKiBGb3IgdGhlIGFsZ29yaXRobSB0byBhcHBseSBzdHlsaW5nIHZhbHVlcyBlZmZpY2llbnRseSwgdGhlXG4gKiBzdHlsaW5nIG1hcCBlbnRyaWVzIG11c3QgYmUgYXBwbGllZCBpbiBzeW5jIChwcm9wZXJ0eSBieSBwcm9wZXJ0eSlcbiAqIHdpdGggcHJvcC1iYXNlZCBiaW5kaW5ncy4gKFRoZSBtYXAtYmFzZWQgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZFxuICogbW9yZSBpbnNpZGUgb2YgdGhlIGByZW5kZXIzL3N0eWxpbmdfbmV4dC9tYXBfYmFzZWRfYmluZGluZ3MudHNgIGZpbGUuKVxuICpcbiAqICMjIFNhbml0aXphdGlvblxuICogU2FuaXRpemF0aW9uIGlzIHVzZWQgdG8gcHJldmVudCBpbnZhbGlkIHN0eWxlIHZhbHVlcyBmcm9tIGJlaW5nIGFwcGxpZWQgdG9cbiAqIHRoZSBlbGVtZW50LlxuICpcbiAqIEl0IGlzIGVuYWJsZWQgaW4gdHdvIGNhc2VzOlxuICpcbiAqICAgMS4gVGhlIGBzdHlsZVNhbml0aXplcihzYW5pdGl6ZXJGbilgIGluc3RydWN0aW9uIHdhcyBjYWxsZWQgKGp1c3QgYmVmb3JlIGFueSBvdGhlclxuICogICAgICBzdHlsaW5nIGluc3RydWN0aW9ucyBhcmUgcnVuKS5cbiAqXG4gKiAgIDIuIFRoZSBjb21wb25lbnQvZGlyZWN0aXZlIGBMVmlld2AgaW5zdGFuY2UgaGFzIGEgc2FuaXRpemVyIG9iamVjdCBhdHRhY2hlZCB0byBpdFxuICogICAgICAodGhpcyBoYXBwZW5zIHdoZW4gYHJlbmRlckNvbXBvbmVudGAgaXMgZXhlY3V0ZWQgd2l0aCBhIGBzYW5pdGl6ZXJgIHZhbHVlIG9yXG4gKiAgICAgIGlmIHRoZSBuZ01vZHVsZSBjb250YWlucyBhIHNhbml0aXplciBwcm92aWRlciBhdHRhY2hlZCB0byBpdCkuXG4gKlxuICogSWYgYW5kIHdoZW4gc2FuaXRpemF0aW9uIGlzIGFjdGl2ZSB0aGVuIGFsbCBwcm9wZXJ0eS92YWx1ZSBlbnRyaWVzIHdpbGwgYmUgZXZhbHVhdGVkXG4gKiB0aHJvdWdoIHRoZSBhY3RpdmUgc2FuaXRpemVyIGJlZm9yZSB0aGV5IGFyZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvciB0aGUgc3R5bGluZ1xuICogZGVidWcgaGFuZGxlcikuXG4gKlxuICogSWYgYSBgU2FuaXRpemVyYCBvYmplY3QgaXMgdXNlZCAodmlhIHRoZSBgTFZpZXdbU0FOSVRJWkVSXWAgdmFsdWUpIHRoZW4gdGhhdCBvYmplY3RcbiAqIHdpbGwgYmUgdXNlZCBmb3IgZXZlcnkgcHJvcGVydHkuXG4gKlxuICogSWYgYSBgU3R5bGVTYW5pdGl6ZXJGbmAgZnVuY3Rpb24gaXMgdXNlZCAodmlhIHRoZSBgc3R5bGVTYW5pdGl6ZXJgKSB0aGVuIGl0IHdpbGwgYmVcbiAqIGNhbGxlZCBpbiB0d28gd2F5czpcbiAqXG4gKiAgIDEuIHByb3BlcnR5IHZhbGlkYXRpb24gbW9kZTogdGhpcyB3aWxsIGJlIGNhbGxlZCBlYXJseSB0byBtYXJrIHdoZXRoZXIgYSBwcm9wZXJ0eVxuICogICAgICBzaG91bGQgYmUgc2FuaXRpemVkIG9yIG5vdCBhdCBkdXJpbmcgdGhlIGZsdXNoaW5nIHN0YWdlLlxuICpcbiAqICAgMi4gdmFsdWUgc2FuaXRpemF0aW9uIG1vZGU6IHRoaXMgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZSBmbHVzaGluZyBzdGFnZSBhbmQgd2lsbFxuICogICAgICBydW4gdGhlIHNhbml0aXplciBmdW5jdGlvbiBhZ2FpbnN0IHRoZSB2YWx1ZSBiZWZvcmUgYXBwbHlpbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgc2FuaXRpemF0aW9uIHJldHVybnMgYW4gZW1wdHkgdmFsdWUgdGhlbiB0aGF0IGVtcHR5IHZhbHVlIHdpbGwgYmUgYXBwbGllZFxuICogdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVFN0eWxpbmdDb250ZXh0IGV4dGVuZHMgQXJyYXk8bnVtYmVyfHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfExTdHlsaW5nTWFwPiB7XG4gIC8qKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIHRoZSBjb250ZXh0ICovXG4gIFtUU3R5bGluZ0NvbnRleHRJbmRleC5Db25maWdQb3NpdGlvbl06IFRTdHlsaW5nQ29uZmlnRmxhZ3M7XG5cbiAgLyoqIFRlbXBvcmFyeSB2YWx1ZSB1c2VkIHRvIHRyYWNrIGRpcmVjdGl2ZSBpbmRleCBlbnRyaWVzIHVudGlsXG4gICAgIHRoZSBvbGQgc3R5bGluZyBjb2RlIGlzIGZ1bGx5IHJlbW92ZWQuIFRoZSByZWFzb24gd2h5IHRoaXNcbiAgICAgaXMgcmVxdWlyZWQgaXMgdG8gZmlndXJlIG91dCB3aGljaCBkaXJlY3RpdmUgaXMgbGFzdCBhbmQsXG4gICAgIHdoZW4gZW5jb3VudGVyZWQsIHRyaWdnZXIgYSBzdHlsaW5nIGZsdXNoIHRvIGhhcHBlbiAqL1xuICBbVFN0eWxpbmdDb250ZXh0SW5kZXguTWF4RGlyZWN0aXZlSW5kZXhQb3NpdGlvbl06IG51bWJlcjtcblxuICAvKiogVGhlIGJpdCBndWFyZCB2YWx1ZSBmb3IgYWxsIG1hcC1iYXNlZCBiaW5kaW5ncyBvbiBhbiBlbGVtZW50ICovXG4gIFtUU3R5bGluZ0NvbnRleHRJbmRleC5NYXBCaW5kaW5nc0JpdEd1YXJkUG9zaXRpb25dOiBudW1iZXI7XG5cbiAgLyoqIFRoZSB0b3RhbCBhbW91bnQgb2YgbWFwLWJhc2VkIGJpbmRpbmdzIHByZXNlbnQgb24gYW4gZWxlbWVudCAqL1xuICBbVFN0eWxpbmdDb250ZXh0SW5kZXguTWFwQmluZGluZ3NWYWx1ZXNDb3VudFBvc2l0aW9uXTogbnVtYmVyO1xuXG4gIC8qKiBUaGUgcHJvcCB2YWx1ZSBmb3IgbWFwLWJhc2VkIGJpbmRpbmdzICh0aGVyZSBhY3R1YWxseSBpc24ndCBhXG4gICAqIHZhbHVlIGF0IGFsbCwgYnV0IHRoaXMgaXMganVzdCB1c2VkIGluIHRoZSBjb250ZXh0IHRvIGF2b2lkXG4gICAqIGhhdmluZyBhbnkgc3BlY2lhbCBjb2RlIHRvIHVwZGF0ZSB0aGUgYmluZGluZyBpbmZvcm1hdGlvbiBmb3JcbiAgICogbWFwLWJhc2VkIGVudHJpZXMpLiAqL1xuICBbVFN0eWxpbmdDb250ZXh0SW5kZXguTWFwQmluZGluZ3NQcm9wUG9zaXRpb25dOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzZXJpZXMgb2YgZmxhZ3MgdXNlZCB0byBjb25maWd1cmUgdGhlIGNvbmZpZyB2YWx1ZSBwcmVzZW50IHdpdGhpbiBhXG4gKiBgVFN0eWxpbmdDb250ZXh0YCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gVFN0eWxpbmdDb25maWdGbGFncyB7XG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgc3R5bGluZyBjb250ZXh0IGNvbmZpZ1xuICAgKi9cbiAgSW5pdGlhbCA9IDBiMCxcblxuICAvKipcbiAgICogQSBmbGFnIHdoaWNoIG1hcmtzIHRoZSBjb250ZXh0IGFzIGJlaW5nIGxvY2tlZC5cbiAgICpcbiAgICogVGhlIHN0eWxpbmcgY29udGV4dCBpcyBjb25zdHJ1Y3RlZCBhY3Jvc3MgYW4gZWxlbWVudCB0ZW1wbGF0ZVxuICAgKiBmdW5jdGlvbiBhcyB3ZWxsIGFzIGFueSBhc3NvY2lhdGVkIGhvc3RCaW5kaW5ncyBmdW5jdGlvbnMuIFdoZW5cbiAgICogdGhpcyBvY2N1cnMsIHRoZSBjb250ZXh0IGl0c2VsZiBpcyBvcGVuIHRvIG11dGF0aW9uIGFuZCBvbmx5IG9uY2VcbiAgICogaXQgaGFzIGJlZW4gZmx1c2hlZCBvbmNlIHRoZW4gaXQgd2lsbCBiZSBsb2NrZWQgZm9yIGdvb2QgKG5vIGV4dHJhXG4gICAqIGJpbmRpbmdzIGNhbiBiZSBhZGRlZCB0byBpdCkuXG4gICAqL1xuICBMb2NrZWQgPSAwYjEsXG59XG5cbi8qKlxuICogQW4gaW5kZXggb2YgcG9zaXRpb24gYW5kIG9mZnNldCB2YWx1ZXMgdXNlZCB0byBuYXRpZ2F0ZSB0aGUgYFRTdHlsaW5nQ29udGV4dGAuXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFRTdHlsaW5nQ29udGV4dEluZGV4IHtcbiAgQ29uZmlnUG9zaXRpb24gPSAwLFxuICBNYXhEaXJlY3RpdmVJbmRleFBvc2l0aW9uID0gMSxcblxuICAvLyBpbmRleC9vZmZzZXQgdmFsdWVzIGZvciBtYXAtYmFzZWQgZW50cmllcyAoaS5lLiBgW3N0eWxlXWBcbiAgLy8gYW5kIGBbY2xhc3NdIGJpbmRpbmdzKS5cbiAgTWFwQmluZGluZ3NQb3NpdGlvbiA9IDIsXG4gIE1hcEJpbmRpbmdzQml0R3VhcmRQb3NpdGlvbiA9IDIsXG4gIE1hcEJpbmRpbmdzVmFsdWVzQ291bnRQb3NpdGlvbiA9IDMsXG4gIE1hcEJpbmRpbmdzUHJvcFBvc2l0aW9uID0gNCxcbiAgTWFwQmluZGluZ3NCaW5kaW5nc1N0YXJ0UG9zaXRpb24gPSA1LFxuXG4gIC8vIGVhY2ggdHVwbGUgZW50cnkgaW4gdGhlIGNvbnRleHRcbiAgLy8gKG1hc2ssIGNvdW50LCBwcm9wLCAuLi5iaW5kaW5nc3x8ZGVmYXVsdC12YWx1ZSlcbiAgQ29uZmlnQW5kR3VhcmRPZmZzZXQgPSAwLFxuICBWYWx1ZXNDb3VudE9mZnNldCA9IDEsXG4gIFByb3BPZmZzZXQgPSAyLFxuICBCaW5kaW5nc1N0YXJ0T2Zmc2V0ID0gMyxcbn1cblxuLyoqXG4gKiBBIHNlcmllcyBvZiBmbGFncyB1c2VkIGZvciBlYWNoIHByb3BlcnR5IGVudHJ5IHdpdGhpbiB0aGUgYFRTdHlsaW5nQ29udGV4dGAuXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFRTdHlsaW5nQ29udGV4dFByb3BDb25maWdGbGFncyB7XG4gIERlZmF1bHQgPSAwYjAsXG4gIFNhbml0aXphdGlvblJlcXVpcmVkID0gMGIxLFxuICBUb3RhbEJpdHMgPSAxLFxuICBNYXNrID0gMGIxLFxufVxuXG4vKipcbiAqIEEgZnVuY3Rpb24gdXNlZCB0byBhcHBseSBvciByZW1vdmUgc3R5bGluZyBmcm9tIGFuIGVsZW1lbnQgZm9yIGEgZ2l2ZW4gcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlTdHlsaW5nRm4ge1xuICAocmVuZGVyZXI6IFJlbmRlcmVyM3xQcm9jZWR1cmFsUmVuZGVyZXIzfG51bGwsIGVsZW1lbnQ6IFJFbGVtZW50LCBwcm9wOiBzdHJpbmcsXG4gICB2YWx1ZTogc3RyaW5nfG51bGwsIGJpbmRpbmdJbmRleD86IG51bWJlcnxudWxsKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSdW50aW1lIGRhdGEgdHlwZSB0aGF0IGlzIHVzZWQgdG8gc3RvcmUgYmluZGluZyBkYXRhIHJlZmVyZW5jZWQgZnJvbSB0aGUgYFRTdHlsaW5nQ29udGV4dGAuXG4gKlxuICogQmVjYXVzZSBgTFZpZXdgIGlzIGp1c3QgYW4gYXJyYXkgd2l0aCBkYXRhLCB0aGVyZSBpcyBubyByZWFzb24gdG9cbiAqIHNwZWNpYWwgY2FzZSBgTFZpZXdgIGV2ZXJ5d2hlcmUgaW4gdGhlIHN0eWxpbmcgYWxnb3JpdGhtLiBCeSBhbGxvd2luZ1xuICogdGhpcyBkYXRhIHR5cGUgdG8gYmUgYW4gYXJyYXkgdGhhdCBjb250YWlucyB2YXJpb3VzIHNjYWxhciBkYXRhIHR5cGVzLFxuICogYW4gaW5zdGFuY2Ugb2YgYExWaWV3YCBkb2Vzbid0IG5lZWQgdG8gYmUgY29uc3RydWN0ZWQgZm9yIHRlc3RzLlxuICovXG5leHBvcnQgdHlwZSBMU3R5bGluZ0RhdGEgPSBMVmlldyB8IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbClbXTtcblxuLyoqXG4gKiBBcnJheS1iYXNlZCByZXByZXNlbnRhdGlvbiBvZiBhIGtleS92YWx1ZSBhcnJheS5cbiAqXG4gKiBUaGUgZm9ybWF0IG9mIHRoZSBhcnJheSBpcyBcInByb3BlcnR5XCIsIFwidmFsdWVcIiwgXCJwcm9wZXJ0eTJcIixcbiAqIFwidmFsdWUyXCIsIGV0Yy4uLlxuICpcbiAqIFRoZSBmaXJzdCB2YWx1ZSBpbiB0aGUgYXJyYXkgaXMgcmVzZXJ2ZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlXG4gKiBvZiB0aGUga2V5L3ZhbHVlIGFycmF5IHRoYXQgd2FzIHVzZWQgdG8gcG9wdWxhdGUgdGhlIHByb3BlcnR5L1xuICogdmFsdWUgZW50cmllcyB0aGF0IHRha2UgcGxhY2UgaW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTFN0eWxpbmdNYXAgZXh0ZW5kcyBBcnJheTx7fXxzdHJpbmd8bnVtYmVyfG51bGw+IHtcbiAgW0xTdHlsaW5nTWFwSW5kZXguUmF3VmFsdWVQb3NpdGlvbl06IHt9fHN0cmluZ3xudWxsO1xufVxuXG4vKipcbiAqIEFuIGluZGV4IG9mIHBvc2l0aW9uIGFuZCBvZmZzZXQgcG9pbnRzIGZvciBhbnkgZGF0YSBzdG9yZWQgd2l0aGluIGEgYExTdHlsaW5nTWFwYCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gTFN0eWxpbmdNYXBJbmRleCB7XG4gIC8qKiBUaGUgbG9jYXRpb24gb2YgdGhlIHJhdyBrZXkvdmFsdWUgbWFwIGluc3RhbmNlIHVzZWQgbGFzdCB0byBwb3B1bGF0ZSB0aGUgYXJyYXkgZW50cmllcyAqL1xuICBSYXdWYWx1ZVBvc2l0aW9uID0gMCxcblxuICAvKiogV2hlcmUgdGhlIHZhbHVlcyBzdGFydCBpbiB0aGUgYXJyYXkgKi9cbiAgVmFsdWVzU3RhcnRQb3NpdGlvbiA9IDEsXG5cbiAgLyoqIFRoZSBzaXplIG9mIGVhY2ggcHJvcGVydHkvdmFsdWUgZW50cnkgKi9cbiAgVHVwbGVTaXplID0gMixcblxuICAvKiogVGhlIG9mZnNldCBmb3IgdGhlIHByb3BlcnR5IGVudHJ5IGluIHRoZSB0dXBsZSAqL1xuICBQcm9wT2Zmc2V0ID0gMCxcblxuICAvKiogVGhlIG9mZnNldCBmb3IgdGhlIHZhbHVlIGVudHJ5IGluIHRoZSB0dXBsZSAqL1xuICBWYWx1ZU9mZnNldCA9IDEsXG59XG5cbi8qKlxuICogVXNlZCB0byBhcHBseS90cmF2ZXJzZSBhY3Jvc3MgYWxsIG1hcC1iYXNlZCBzdHlsaW5nIGVudHJpZXMgdXAgdG8gdGhlIHByb3ZpZGVkIGB0YXJnZXRQcm9wYFxuICogdmFsdWUuXG4gKlxuICogV2hlbiBjYWxsZWQsIGVhY2ggb2YgdGhlIG1hcC1iYXNlZCBgTFN0eWxpbmdNYXBgIGVudHJpZXMgKHdoaWNoIGFyZSBzdG9yZWQgaW5cbiAqIHRoZSBwcm92aWRlZCBgTFN0eWxpbmdEYXRhYCBhcnJheSkgd2lsbCBiZSBpdGVyYXRlZCBvdmVyLiBEZXBlbmRpbmcgb24gdGhlIHByb3ZpZGVkXG4gKiBgbW9kZWAgdmFsdWUsIGVhY2ggcHJvcC92YWx1ZSBlbnRyeSBtYXkgYmUgYXBwbGllZCBvciBza2lwcGVkIG92ZXIuXG4gKlxuICogSWYgYHRhcmdldFByb3BgIHZhbHVlIGlzIHByb3ZpZGVkIHRoZSBpdGVyYXRpb24gY29kZSB3aWxsIHN0b3Agb25jZSBpdCByZWFjaGVzXG4gKiB0aGUgcHJvcGVydHkgKGlmIGZvdW5kKS4gT3RoZXJ3aXNlIGlmIHRoZSB0YXJnZXQgcHJvcGVydHkgaXMgbm90IGVuY291bnRlcmVkIHRoZW5cbiAqIGl0IHdpbGwgc3RvcCBvbmNlIGl0IHJlYWNoZXMgdGhlIG5leHQgdmFsdWUgdGhhdCBhcHBlYXJzIGFscGhhYmV0aWNhbGx5IGFmdGVyIGl0LlxuICpcbiAqIElmIGEgYGRlZmF1bHRWYWx1ZWAgaXMgcHJvdmlkZWQgdGhlbiBpdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQgb25seSBpZiB0aGVcbiAqIGB0YXJnZXRQcm9wYCBwcm9wZXJ0eSB2YWx1ZSBpcyBlbmNvdW50ZXJlZCBhbmQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFyZ2V0XG4gKiBwcm9wZXJ0eSBpcyBgbnVsbGAuIFRoZSByZWFzb24gd2h5IHRoZSBgZGVmYXVsdFZhbHVlYCBpcyBuZWVkZWQgaXMgdG8gYXZvaWQgaGF2aW5nIHRoZVxuICogYWxnb3JpdGhtIGFwcGx5IGEgYG51bGxgIHZhbHVlIGFuZCB0aGVuIGFwcGx5IGEgZGVmYXVsdCB2YWx1ZSBhZnRlcndhcmRzICh0aGlzIHdvdWxkXG4gKiBlbmQgdXAgYmVpbmcgdHdvIHN0eWxlIHByb3BlcnR5IHdyaXRlcykuXG4gKlxuICogQHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHRhcmdldCBwcm9wZXJ0eSB3YXMgcmVhY2hlZCBhbmQgaXRzIHZhbHVlIHdhc1xuICogIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0eWxpbmdNYXBzRm4ge1xuICAoY29udGV4dDogVFN0eWxpbmdDb250ZXh0LCByZW5kZXJlcjogUmVuZGVyZXIzfFByb2NlZHVyYWxSZW5kZXJlcjN8bnVsbCwgZWxlbWVudDogUkVsZW1lbnQsXG4gICBkYXRhOiBMU3R5bGluZ0RhdGEsIGFwcGx5U3R5bGluZ0ZuOiBBcHBseVN0eWxpbmdGbiwgc2FuaXRpemVyOiBTdHlsZVNhbml0aXplRm58bnVsbCxcbiAgIG1vZGU6IFN0eWxpbmdNYXBzU3luY01vZGUsIHRhcmdldFByb3A/OiBzdHJpbmd8bnVsbCwgZGVmYXVsdFZhbHVlPzogc3RyaW5nfG51bGwpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gZGlyZWN0IGhvdyBtYXAtYmFzZWQgdmFsdWVzIGFyZSBhcHBsaWVkL3RyYXZlcnNlZCB3aGVuIHN0eWxpbmcgaXMgZmx1c2hlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gU3R5bGluZ01hcHNTeW5jTW9kZSB7XG4gIC8qKiBPbmx5IHRyYXZlcnNlIHZhbHVlcyAobm8gcHJvcC92YWx1ZSBzdHlsaW5nIGVudHJpZXMgZ2V0IGFwcGxpZWQpICovXG4gIFRyYXZlcnNlVmFsdWVzID0gMGIwMDAsXG5cbiAgLyoqIEFwcGx5IGV2ZXJ5IHByb3AvdmFsdWUgc3R5bGluZyBlbnRyeSB0byB0aGUgZWxlbWVudCAqL1xuICBBcHBseUFsbFZhbHVlcyA9IDBiMDAxLFxuXG4gIC8qKiBPbmx5IGFwcGx5IHRoZSB0YXJnZXQgcHJvcC92YWx1ZSBlbnRyeSAqL1xuICBBcHBseVRhcmdldFByb3AgPSAwYjAxMCxcblxuICAvKiogU2tpcCBhcHBseWluZyB0aGUgdGFyZ2V0IHByb3AvdmFsdWUgZW50cnkgKi9cbiAgU2tpcFRhcmdldFByb3AgPSAwYjEwMCxcbn1cbiJdfQ==