UNPKG

ngx-agora

Version:

Angular wrapper for Agora RTC client (https://www.agora.io/en/)

233 lines 21.3 kB
/** * @fileoverview added by tsickle * Generated from: lib/data/models/stream-spec.model.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * A class defining the `spec` paramter in the * [createStream](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#createstream) method. * * * \@remark * - Do not set `video` and `screen` as `true` at the same time. * - To enable screen-sharing on the Firefox browser, ensure that the `screen` property is * set to `true`, and the `mediaSource` property has been set to specify a certain sharing mode. * * # Create a Stream * * You have two options to create an audio/video stream: * * ## Set the audio, video, and screen properties * const stream = AgoraRTC.createStream({ * streamID: uid, * audio:true, * video:true, * screen:false * }); * * * ## Set the audioSource and videoSource properties * * Compared with the first option, the * [audioSource](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#audiosource) * and [videoSource](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#videosource) * properties can specify the audio and video tracks for the stream. Use this option if you need to process the audio * and video before creating the stream. * * Use the `mediaStream` method to get the audio and video tracks from `MediaStreamTrack`, and then set `audioSource` and `videoSource`: * * navigator.mediaDevices.getUserMedia( * {video: true, audio: true} * ).then(function(mediaStream){ * var videoSource = mediaStream.getVideoTracks()[0]; * var audioSource = mediaStream.getAudioTracks()[0]; * // After processing videoSource and audioSource * var localStream = AgoraRTC.createStream({ * video: true, * audio: true, * videoSource: videoSource, * audioSource: audioSource * }); * localStream.init(function(){ * client.publish(localStream, function(e){ * //... * }); * }); * }); * * \@remark * - `MediaStreamTrack` refers to the `MediaStreamTrack` object supported by the browser. * - Currently this option only supports the Chrome brower. * * @see [MediaStreamTrack API](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack) for details. * * * ### Enable Screen-sharing on the Chrome Web Browser * * const stream = AgoraRTC.createStream({ * streamID: uid, * audio:false, * video:false, * screen:true, * extensionId:"minllpmhdgpndnkomcoccfekfegnlikg"}); * * ### Enable Screen-sharing on the Firefox Web Browser * * localStream = AgoraRTC.createStream({ * streamID: uid, * audio: false, * video: false, * screen: true, * mediaSource: "screen", * }); * * For a tutorial on screen-sharing on a website, * @see [Share the Screen](https://docs.agora.io/en/Video/screensharing_web?platform=Web). * @record */ export function StreamSpec() { } if (false) { /** * Whether this stream contains an audio track. * @type {?} */ StreamSpec.prototype.audio; /** * Whether to enable audio processing. * * \@param [AEC] Whether to enable acoustic echo cancellation. * The default value is `true` (enable). If you wish not to enable the acoustic echo cancellation, set AEC as `false`. * \@param [AGC] Whether to enable audio gain control. * The default value is true (enable). If you wish not to enable the audio gain control, set AGC as false. * \@param [ANS] Whether to enable automatic noise suppression. * The default value is true (enable). If you wish not to enable automatic noise suppression, set ANS as false. * * \@remark * - Safari does not support this setting. * - Noise suppression is always enabled on Firefox. Setting `ANS` as `false` does not take effect on Firefox. * @type {?|undefined} */ StreamSpec.prototype.audioProcessing; /** * Specifies the audio source of the stream. * @type {?|undefined} */ StreamSpec.prototype.audioSource; /** * The camera device ID retrieved from the [getDevices](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#getdevices) * method. * * The retrieved ID is ASCII characters, and the string length is greater than 0 and less than 256 bytes. * * When the string length is 0, this property is ignored. * @type {?|undefined} */ StreamSpec.prototype.cameraId; /** * The extension ID of the Chrome screen-sharing extension. * * ASCII characters only, and the string length must be greater than 0 and less than 256 bytes. * Set this property if you use the Chrome screen-sharing extension. * @see [Chrome Extension for Screen Sharing](https://docs.agora.io/en/Video/chrome_screensharing_plugin?platform=Web) for details. * * \@remark * Chrome 72 and later versions support screen sharing without the extension. You can leave extensionId as empty. * If you set the `extensionId`, then you need to use the screen-sharing extension. * @type {?|undefined} */ StreamSpec.prototype.extensionId; /** * Sets using the front or rear camera. * * You can set this parameter to use the front or rear camera on mobile devices: * - `"user"`: The front camera * - `"environment"`: The rear camera * @type {?|undefined} */ StreamSpec.prototype.facingMode; /** * The screen-sharing mode on the Firefox browser. * * If you are using the Firefox browser, setting this property specifies the screen-sharing mode: * - `"screen"`: (default) share the current screen * - `"application"`: share all windows of an App * - `"window"`: share a specified window of an App * * \@remark * Firefox on Windows does not support the application mode. * * @see * [Screen Sharing on Firefox](https://docs.agora.io/en/Video/screensharing_web?platform=Web#a-name-ff-a-screen-sharing-on-firefox) * for details. * @type {?|undefined} */ StreamSpec.prototype.mediaSource; /** * The microphone device ID retrieved from the * [getDevices](https://docs.agora.io/en/Video/API%20Reference/web/globals.html#getdevices) method. * * The retrieved ID is ASCII characters, and the string length is greater than 0 and less than 256 bytes. * * When the string length is 0, this property is ignored. * @type {?|undefined} */ StreamSpec.prototype.microphoneId; /** * Marks whether to mirror the local video image of the publisher in the local preview. * * This setting does not take effect in screen-sharing streams. * - `true`: (Default) Mirror the local video. * - `false`: Do not mirror the local video. * * Agora recommends enabling this function when using the front camera, and disabling it when using the rear camera. * @type {?|undefined} */ StreamSpec.prototype.mirror; /** * Whether this stream contains a screen-sharing track. * * @see [Share the Screen](https://docs.agora.io/en/Video/screensharing_web?platform=Web) for details. * @type {?|undefined} */ StreamSpec.prototype.screen; /** * Marks whether to share the audio playback when sharing the screen. * * - `true`: Share the local audio playback when sharing the screen. * - `false`: (Default) Do not share the local audio playback when sharing the screen. * * To share the local audio playback when sharing the screen, ensure that you set screen as `true`. * We recommend also setting [audio](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.streamspec.html#audio) * as false. If both `screenAudio` and `audio` are set as `true`, the stream only contains the local audio playback. * * \@remark * - This function supports only Chrome 73 or later on Windows. * - For the audio sharing to take effect, the user must check **Share audio** in the pop-up window when sharing the screen. * * \@since 3.0.0 * @type {?|undefined} */ StreamSpec.prototype.screenAudio; /** * The stream ID. * * Please set the stream ID as the user ID, which can be retrieved from the callback of * [Client.join](https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.client.html#join). * @type {?|undefined} */ StreamSpec.prototype.streamID; /** * Whether this stream contains a video track. * @type {?} */ StreamSpec.prototype.video; /** * Specifies the video source of the stream. * * \@remark * If you use a video source created by the Canvas API, re-draw on the canvas every one second * when the drawing is still to keep the video publishing. * @type {?|undefined} */ StreamSpec.prototype.videoSource; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLXNwZWMubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYWdvcmEvIiwic291cmNlcyI6WyJsaWIvZGF0YS9tb2RlbHMvc3RyZWFtLXNwZWMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRkEsZ0NBb0lDOzs7Ozs7SUFoSUMsMkJBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7SUFlZixxQ0FJRTs7Ozs7SUFJRixpQ0FBK0I7Ozs7Ozs7Ozs7SUFTL0IsOEJBQWtCOzs7Ozs7Ozs7Ozs7O0lBWWxCLGlDQUFxQjs7Ozs7Ozs7O0lBUXJCLGdDQUFvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQnBDLGlDQUFrRDs7Ozs7Ozs7OztJQVNsRCxrQ0FBc0I7Ozs7Ozs7Ozs7O0lBVXRCLDRCQUFpQjs7Ozs7OztJQU1qQiw0QkFBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWlCakIsaUNBQXNCOzs7Ozs7OztJQU90Qiw4QkFBMkI7Ozs7O0lBRTNCLDJCQUFlOzs7Ozs7Ozs7SUFRZixpQ0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYVN0cmVhbVRyYWNrIH0gZnJvbSAnLi9tZWRpYS1zdHJlYW0tdHJhY2subW9kZWwnO1xuXG4vKipcbiAqIEEgY2xhc3MgZGVmaW5pbmcgdGhlIGBzcGVjYCBwYXJhbXRlciBpbiB0aGVcbiAqIFtjcmVhdGVTdHJlYW1dKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNjcmVhdGVzdHJlYW0pIG1ldGhvZC5cbiAqXG4gKiAgKiBAcmVtYXJrXG4gKiAtIERvIG5vdCBzZXQgYHZpZGVvYCBhbmQgYHNjcmVlbmAgYXMgYHRydWVgIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiAtIFRvIGVuYWJsZSBzY3JlZW4tc2hhcmluZyBvbiB0aGUgRmlyZWZveCBicm93c2VyLCBlbnN1cmUgdGhhdCB0aGUgYHNjcmVlbmAgcHJvcGVydHkgaXNcbiAqIHNldCB0byBgdHJ1ZWAsIGFuZCB0aGUgYG1lZGlhU291cmNlYCBwcm9wZXJ0eSBoYXMgYmVlbiBzZXQgdG8gc3BlY2lmeSBhIGNlcnRhaW4gc2hhcmluZyBtb2RlLlxuICpcbiAqICMgQ3JlYXRlIGEgU3RyZWFtXG4gKlxuICogWW91IGhhdmUgdHdvIG9wdGlvbnMgdG8gY3JlYXRlIGFuIGF1ZGlvL3ZpZGVvIHN0cmVhbTpcbiAqXG4gKiAgIyMgU2V0IHRoZSBhdWRpbywgdmlkZW8sIGFuZCBzY3JlZW4gcHJvcGVydGllc1xuICogIGNvbnN0IHN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgIGF1ZGlvOnRydWUsXG4gKiAgIHZpZGVvOnRydWUsXG4gKiAgIHNjcmVlbjpmYWxzZVxuICogIH0pO1xuICpcbiAqXG4gKiAjIyBTZXQgdGhlIGF1ZGlvU291cmNlIGFuZCB2aWRlb1NvdXJjZSBwcm9wZXJ0aWVzXG4gKlxuICogQ29tcGFyZWQgd2l0aCB0aGUgZmlyc3Qgb3B0aW9uLCB0aGVcbiAqIFthdWRpb1NvdXJjZV0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL0FQSSUyMFJlZmVyZW5jZS93ZWIvaW50ZXJmYWNlcy9hZ29yYXJ0Yy5zdHJlYW1zcGVjLmh0bWwjYXVkaW9zb3VyY2UpXG4gKiBhbmQgW3ZpZGVvU291cmNlXShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vQVBJJTIwUmVmZXJlbmNlL3dlYi9pbnRlcmZhY2VzL2Fnb3JhcnRjLnN0cmVhbXNwZWMuaHRtbCN2aWRlb3NvdXJjZSlcbiAqIHByb3BlcnRpZXMgY2FuIHNwZWNpZnkgdGhlIGF1ZGlvIGFuZCB2aWRlbyB0cmFja3MgZm9yIHRoZSBzdHJlYW0uIFVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgbmVlZCB0byBwcm9jZXNzIHRoZSBhdWRpb1xuICogYW5kIHZpZGVvIGJlZm9yZSBjcmVhdGluZyB0aGUgc3RyZWFtLlxuICpcbiAqIFVzZSB0aGUgYG1lZGlhU3RyZWFtYCBtZXRob2QgdG8gZ2V0IHRoZSBhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGZyb20gYE1lZGlhU3RyZWFtVHJhY2tgLCBhbmQgdGhlbiBzZXQgYGF1ZGlvU291cmNlYCBhbmQgYHZpZGVvU291cmNlYDpcbiAqXG4gKiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShcbiAqICAgICB7dmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlfVxuICogKS50aGVuKGZ1bmN0aW9uKG1lZGlhU3RyZWFtKXtcbiAqICAgICB2YXIgdmlkZW9Tb3VyY2UgPSBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdO1xuICogICAgIHZhciBhdWRpb1NvdXJjZSA9IG1lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07XG4gKiAgICAgLy8gQWZ0ZXIgcHJvY2Vzc2luZyB2aWRlb1NvdXJjZSBhbmQgYXVkaW9Tb3VyY2VcbiAqICAgICB2YXIgbG9jYWxTdHJlYW0gPSBBZ29yYVJUQy5jcmVhdGVTdHJlYW0oe1xuICogICAgICAgICB2aWRlbzogdHJ1ZSxcbiAqICAgICAgICAgYXVkaW86IHRydWUsXG4gKiAgICAgICAgIHZpZGVvU291cmNlOiB2aWRlb1NvdXJjZSxcbiAqICAgICAgICAgYXVkaW9Tb3VyY2U6IGF1ZGlvU291cmNlXG4gKiAgICAgfSk7XG4gKiAgICAgbG9jYWxTdHJlYW0uaW5pdChmdW5jdGlvbigpe1xuICogICAgICAgICBjbGllbnQucHVibGlzaChsb2NhbFN0cmVhbSwgZnVuY3Rpb24oZSl7XG4gKiAgICAgICAgICAgICAvLy4uLlxuICogICAgICAgICB9KTtcbiAqICAgICB9KTtcbiAqIH0pO1xuICpcbiAqIEByZW1hcmtcbiAqIC0gYE1lZGlhU3RyZWFtVHJhY2tgIHJlZmVycyB0byB0aGUgYE1lZGlhU3RyZWFtVHJhY2tgIG9iamVjdCBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXIuXG4gKiAtIEN1cnJlbnRseSB0aGlzIG9wdGlvbiBvbmx5IHN1cHBvcnRzIHRoZSBDaHJvbWUgYnJvd2VyLlxuICpcbiAqIEBzZWUgW01lZGlhU3RyZWFtVHJhY2sgQVBJXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTWVkaWFTdHJlYW1UcmFjaykgZm9yIGRldGFpbHMuXG4gKlxuICpcbiAqICMjIyBFbmFibGUgU2NyZWVuLXNoYXJpbmcgb24gdGhlIENocm9tZSBXZWIgQnJvd3NlclxuICpcbiAqIGNvbnN0IHN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgIGF1ZGlvOmZhbHNlLFxuICogICB2aWRlbzpmYWxzZSxcbiAqICAgc2NyZWVuOnRydWUsXG4gKiAgIGV4dGVuc2lvbklkOlwibWlubGxwbWhkZ3BuZG5rb21jb2NjZmVrZmVnbmxpa2dcIn0pO1xuICpcbiAqICMjIyBFbmFibGUgU2NyZWVuLXNoYXJpbmcgb24gdGhlIEZpcmVmb3ggV2ViIEJyb3dzZXJcbiAqXG4gKiBsb2NhbFN0cmVhbSA9IEFnb3JhUlRDLmNyZWF0ZVN0cmVhbSh7XG4gKiAgICAgIHN0cmVhbUlEOiB1aWQsXG4gKiAgICAgIGF1ZGlvOiBmYWxzZSxcbiAqICAgICAgdmlkZW86IGZhbHNlLFxuICogICAgICBzY3JlZW46IHRydWUsXG4gKiAgICAgIG1lZGlhU291cmNlOiBcInNjcmVlblwiLFxuICogICAgfSk7XG4gKlxuICogRm9yIGEgdHV0b3JpYWwgb24gc2NyZWVuLXNoYXJpbmcgb24gYSB3ZWJzaXRlLFxuICogQHNlZSBbU2hhcmUgdGhlIFNjcmVlbl0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL3NjcmVlbnNoYXJpbmdfd2ViP3BsYXRmb3JtPVdlYikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWFtU3BlYyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RyZWFtIGNvbnRhaW5zIGFuIGF1ZGlvIHRyYWNrLlxuICAgKi9cbiAgYXVkaW86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhdWRpbyBwcm9jZXNzaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gW0FFQ10gV2hldGhlciB0byBlbmFibGUgYWNvdXN0aWMgZWNobyBjYW5jZWxsYXRpb24uXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGB0cnVlYCAoZW5hYmxlKS4gSWYgeW91IHdpc2ggbm90IHRvIGVuYWJsZSB0aGUgYWNvdXN0aWMgZWNobyBjYW5jZWxsYXRpb24sIHNldCBBRUMgYXMgYGZhbHNlYC5cbiAgICogQHBhcmFtIFtBR0NdIFdoZXRoZXIgdG8gZW5hYmxlIGF1ZGlvIGdhaW4gY29udHJvbC5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHJ1ZSAoZW5hYmxlKS4gSWYgeW91IHdpc2ggbm90IHRvIGVuYWJsZSB0aGUgYXVkaW8gZ2FpbiBjb250cm9sLCBzZXQgQUdDIGFzIGZhbHNlLlxuICAgKiBAcGFyYW0gW0FOU10gV2hldGhlciB0byBlbmFibGUgYXV0b21hdGljIG5vaXNlIHN1cHByZXNzaW9uLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0cnVlIChlbmFibGUpLiBJZiB5b3Ugd2lzaCBub3QgdG8gZW5hYmxlIGF1dG9tYXRpYyBub2lzZSBzdXBwcmVzc2lvbiwgc2V0IEFOUyBhcyBmYWxzZS5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiAtIFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgc2V0dGluZy5cbiAgICogLSBOb2lzZSBzdXBwcmVzc2lvbiBpcyBhbHdheXMgZW5hYmxlZCBvbiBGaXJlZm94LiBTZXR0aW5nIGBBTlNgIGFzIGBmYWxzZWAgZG9lcyBub3QgdGFrZSBlZmZlY3Qgb24gRmlyZWZveC5cbiAgICovXG4gIGF1ZGlvUHJvY2Vzc2luZz86IHtcbiAgICBBRUM/OiBib29sZWFuO1xuICAgIEFHQz86IGJvb2xlYW47XG4gICAgQU5TPzogYm9vbGVhbjtcbiAgfTtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYXVkaW8gc291cmNlIG9mIHRoZSBzdHJlYW0uXG4gICAqL1xuICBhdWRpb1NvdXJjZT86IE1lZGlhU3RyZWFtVHJhY2s7XG4gIC8qKlxuICAgKiBUaGUgY2FtZXJhIGRldmljZSBJRCByZXRyaWV2ZWQgZnJvbSB0aGUgW2dldERldmljZXNdKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNnZXRkZXZpY2VzKVxuICAgKiBtZXRob2QuXG4gICAqXG4gICAqIFRoZSByZXRyaWV2ZWQgSUQgaXMgQVNDSUkgY2hhcmFjdGVycywgYW5kIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gMjU2IGJ5dGVzLlxuICAgKlxuICAgKiBXaGVuIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIDAsIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZC5cbiAgICovXG4gIGNhbWVyYUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiBJRCBvZiB0aGUgQ2hyb21lIHNjcmVlbi1zaGFyaW5nIGV4dGVuc2lvbi5cbiAgICpcbiAgICogQVNDSUkgY2hhcmFjdGVycyBvbmx5LCBhbmQgdGhlIHN0cmluZyBsZW5ndGggbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIDI1NiBieXRlcy5cbiAgICogU2V0IHRoaXMgcHJvcGVydHkgaWYgeW91IHVzZSB0aGUgQ2hyb21lIHNjcmVlbi1zaGFyaW5nIGV4dGVuc2lvbi5cbiAgICogQHNlZSBbQ2hyb21lIEV4dGVuc2lvbiBmb3IgU2NyZWVuIFNoYXJpbmddKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9jaHJvbWVfc2NyZWVuc2hhcmluZ19wbHVnaW4/cGxhdGZvcm09V2ViKSBmb3IgZGV0YWlscy5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiBDaHJvbWUgNzIgYW5kIGxhdGVyIHZlcnNpb25zIHN1cHBvcnQgc2NyZWVuIHNoYXJpbmcgd2l0aG91dCB0aGUgZXh0ZW5zaW9uLiBZb3UgY2FuIGxlYXZlIGV4dGVuc2lvbklkIGFzIGVtcHR5LlxuICAgKiBJZiB5b3Ugc2V0IHRoZSBgZXh0ZW5zaW9uSWRgLCB0aGVuIHlvdSBuZWVkIHRvIHVzZSB0aGUgc2NyZWVuLXNoYXJpbmcgZXh0ZW5zaW9uLlxuICAgKi9cbiAgZXh0ZW5zaW9uSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIHVzaW5nIHRoZSBmcm9udCBvciByZWFyIGNhbWVyYS5cbiAgICpcbiAgICogWW91IGNhbiBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gdXNlIHRoZSBmcm9udCBvciByZWFyIGNhbWVyYSBvbiBtb2JpbGUgZGV2aWNlczpcbiAgICogLSBgXCJ1c2VyXCJgOiBUaGUgZnJvbnQgY2FtZXJhXG4gICAqIC0gYFwiZW52aXJvbm1lbnRcImA6IFRoZSByZWFyIGNhbWVyYVxuICAgKi9cbiAgZmFjaW5nTW9kZT86ICd1c2VyJyB8ICdlbnZpcm9ubWVudCc7XG4gIC8qKlxuICAgKiBUaGUgc2NyZWVuLXNoYXJpbmcgbW9kZSBvbiB0aGUgRmlyZWZveCBicm93c2VyLlxuICAgKlxuICAgKiBJZiB5b3UgYXJlIHVzaW5nIHRoZSBGaXJlZm94IGJyb3dzZXIsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIHNjcmVlbi1zaGFyaW5nIG1vZGU6XG4gICAqIC0gYFwic2NyZWVuXCJgOiAoZGVmYXVsdCkgc2hhcmUgdGhlIGN1cnJlbnQgc2NyZWVuXG4gICAqIC0gYFwiYXBwbGljYXRpb25cImA6IHNoYXJlIGFsbCB3aW5kb3dzIG9mIGFuIEFwcFxuICAgKiAtIGBcIndpbmRvd1wiYDogc2hhcmUgYSBzcGVjaWZpZWQgd2luZG93IG9mIGFuIEFwcFxuICAgKlxuICAgKiBAcmVtYXJrXG4gICAqIEZpcmVmb3ggb24gV2luZG93cyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhcHBsaWNhdGlvbiBtb2RlLlxuICAgKlxuICAgKiBAc2VlXG4gICAqIFtTY3JlZW4gU2hhcmluZyBvbiBGaXJlZm94XShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vc2NyZWVuc2hhcmluZ193ZWI/cGxhdGZvcm09V2ViI2EtbmFtZS1mZi1hLXNjcmVlbi1zaGFyaW5nLW9uLWZpcmVmb3gpXG4gICAqIGZvciBkZXRhaWxzLlxuICAgKi9cbiAgbWVkaWFTb3VyY2U/OiAnc2NyZWVuJyB8ICdhcHBsaWNhdGlvbicgfCAnd2luZG93JztcbiAgLyoqXG4gICAqIFRoZSBtaWNyb3Bob25lIGRldmljZSBJRCByZXRyaWV2ZWQgZnJvbSB0aGVcbiAgICogW2dldERldmljZXNdKGh0dHBzOi8vZG9jcy5hZ29yYS5pby9lbi9WaWRlby9BUEklMjBSZWZlcmVuY2Uvd2ViL2dsb2JhbHMuaHRtbCNnZXRkZXZpY2VzKSBtZXRob2QuXG4gICAqXG4gICAqIFRoZSByZXRyaWV2ZWQgSUQgaXMgQVNDSUkgY2hhcmFjdGVycywgYW5kIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gMjU2IGJ5dGVzLlxuICAgKlxuICAgKiBXaGVuIHRoZSBzdHJpbmcgbGVuZ3RoIGlzIDAsIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZC5cbiAgICovXG4gIG1pY3JvcGhvbmVJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE1hcmtzIHdoZXRoZXIgdG8gbWlycm9yIHRoZSBsb2NhbCB2aWRlbyBpbWFnZSBvZiB0aGUgcHVibGlzaGVyIGluIHRoZSBsb2NhbCBwcmV2aWV3LlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgZG9lcyBub3QgdGFrZSBlZmZlY3QgaW4gc2NyZWVuLXNoYXJpbmcgc3RyZWFtcy5cbiAgICogLSBgdHJ1ZWA6IChEZWZhdWx0KSBNaXJyb3IgdGhlIGxvY2FsIHZpZGVvLlxuICAgKiAtIGBmYWxzZWA6IERvIG5vdCBtaXJyb3IgdGhlIGxvY2FsIHZpZGVvLlxuICAgKlxuICAgKiBBZ29yYSByZWNvbW1lbmRzIGVuYWJsaW5nIHRoaXMgZnVuY3Rpb24gd2hlbiB1c2luZyB0aGUgZnJvbnQgY2FtZXJhLCBhbmQgZGlzYWJsaW5nIGl0IHdoZW4gdXNpbmcgdGhlIHJlYXIgY2FtZXJhLlxuICAgKi9cbiAgbWlycm9yPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdHJlYW0gY29udGFpbnMgYSBzY3JlZW4tc2hhcmluZyB0cmFjay5cbiAgICpcbiAgICogQHNlZSBbU2hhcmUgdGhlIFNjcmVlbl0oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL3NjcmVlbnNoYXJpbmdfd2ViP3BsYXRmb3JtPVdlYikgZm9yIGRldGFpbHMuXG4gICAqL1xuICBzY3JlZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogTWFya3Mgd2hldGhlciB0byBzaGFyZSB0aGUgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqXG4gICAqIC0gYHRydWVgOiBTaGFyZSB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqIC0gYGZhbHNlYDogKERlZmF1bHQpIERvIG5vdCBzaGFyZSB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2sgd2hlbiBzaGFyaW5nIHRoZSBzY3JlZW4uXG4gICAqXG4gICAqIFRvIHNoYXJlIHRoZSBsb2NhbCBhdWRpbyBwbGF5YmFjayB3aGVuIHNoYXJpbmcgdGhlIHNjcmVlbiwgZW5zdXJlIHRoYXQgeW91IHNldCBzY3JlZW4gYXMgYHRydWVgLlxuICAgKiBXZSByZWNvbW1lbmQgYWxzbyBzZXR0aW5nIFthdWRpb10oaHR0cHM6Ly9kb2NzLmFnb3JhLmlvL2VuL1ZpZGVvL0FQSSUyMFJlZmVyZW5jZS93ZWIvaW50ZXJmYWNlcy9hZ29yYXJ0Yy5zdHJlYW1zcGVjLmh0bWwjYXVkaW8pXG4gICAqIGFzIGZhbHNlLiBJZiBib3RoIGBzY3JlZW5BdWRpb2AgYW5kIGBhdWRpb2AgYXJlIHNldCBhcyBgdHJ1ZWAsIHRoZSBzdHJlYW0gb25seSBjb250YWlucyB0aGUgbG9jYWwgYXVkaW8gcGxheWJhY2suXG4gICAqXG4gICAqIEByZW1hcmtcbiAgICogLSBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIG9ubHkgQ2hyb21lIDczIG9yIGxhdGVyIG9uIFdpbmRvd3MuXG4gICAqIC0gRm9yIHRoZSBhdWRpbyBzaGFyaW5nIHRvIHRha2UgZWZmZWN0LCB0aGUgdXNlciBtdXN0IGNoZWNrICoqU2hhcmUgYXVkaW8qKiBpbiB0aGUgcG9wLXVwIHdpbmRvdyB3aGVuIHNoYXJpbmcgdGhlIHNjcmVlbi5cbiAgICpcbiAgICogQHNpbmNlIDMuMC4wXG4gICAqL1xuICBzY3JlZW5BdWRpbz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIElELlxuICAgKlxuICAgKiBQbGVhc2Ugc2V0IHRoZSBzdHJlYW0gSUQgYXMgdGhlIHVzZXIgSUQsIHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgY2FsbGJhY2sgb2ZcbiAgICogW0NsaWVudC5qb2luXShodHRwczovL2RvY3MuYWdvcmEuaW8vZW4vVmlkZW8vQVBJJTIwUmVmZXJlbmNlL3dlYi9pbnRlcmZhY2VzL2Fnb3JhcnRjLmNsaWVudC5odG1sI2pvaW4pLlxuICAgKi9cbiAgc3RyZWFtSUQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoaXMgc3RyZWFtIGNvbnRhaW5zIGEgdmlkZW8gdHJhY2suICovXG4gIHZpZGVvOiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB2aWRlbyBzb3VyY2Ugb2YgdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQHJlbWFya1xuICAgKiBJZiB5b3UgdXNlIGEgdmlkZW8gc291cmNlIGNyZWF0ZWQgYnkgdGhlIENhbnZhcyBBUEksIHJlLWRyYXcgb24gdGhlIGNhbnZhcyBldmVyeSBvbmUgc2Vjb25kXG4gICAqIHdoZW4gdGhlIGRyYXdpbmcgaXMgc3RpbGwgdG8ga2VlcCB0aGUgdmlkZW8gcHVibGlzaGluZy5cbiAgICovXG4gIHZpZGVvU291cmNlPzogTWVkaWFTdHJlYW1UcmFjaztcbn1cbiJdfQ==