/**
 * Generated bundle index. Do not edit.
 */
export * from './index';
export { BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c, _document as ɵangular_packages_platform_browser_platform_browser_b, errorHandler as ɵangular_packages_platform_browser_platform_browser_a } from './src/browser';
export { GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_o } from './src/browser/generic_browser_adapter';
export { createMeta as ɵangular_packages_platform_browser_platform_browser_d } from './src/browser/meta';
export { SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l, appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k } from './src/browser/server-transition';
export { createTitle as ɵangular_packages_platform_browser_platform_browser_e } from './src/browser/title';
export { initTransferState as ɵangular_packages_platform_browser_platform_browser_f } from './src/browser/transfer_state';
export { ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n, _createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m } from './src/dom/debug/ng_probe';
export { EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g } from './src/dom/events/event_manager';
export { HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i, HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h } from './src/dom/events/hammer_gestures';
export { domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j } from './src/security/dom_sanitization_service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvcGxhdGZvcm0tYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxxREFBcUQsRUFBQyxTQUFTLElBQUkscURBQXFELEVBQUMsWUFBWSxJQUFJLHFEQUFxRCxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pQLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxxREFBcUQsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hJLE9BQU8sRUFBQyxVQUFVLElBQUkscURBQXFELEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RyxPQUFPLEVBQUMsMkJBQTJCLElBQUkscURBQXFELEVBQUMscUJBQXFCLElBQUkscURBQXFELEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwTixPQUFPLEVBQUMsV0FBVyxJQUFJLHFEQUFxRCxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFDLGlCQUFpQixJQUFJLHFEQUFxRCxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEgsT0FBTyxFQUFDLGlDQUFpQyxJQUFJLHFEQUFxRCxFQUFDLGdCQUFnQixJQUFJLHFEQUFxRCxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOU0sT0FBTyxFQUFDLGtCQUFrQixJQUFJLHFEQUFxRCxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdCQUFnQixJQUFJLHFEQUFxRCxFQUFDLDBCQUEwQixJQUFJLHFEQUFxRCxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL00sT0FBTyxFQUFDLHVCQUF1QixJQUFJLHFEQUFxRCxFQUFDLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge0JST1dTRVJfTU9EVUxFX1BST1ZJREVSUyBhcyDJtWFuZ3VsYXJfcGFja2FnZXNfcGxhdGZvcm1fYnJvd3Nlcl9wbGF0Zm9ybV9icm93c2VyX2MsX2RvY3VtZW50IGFzIMm1YW5ndWxhcl9wYWNrYWdlc19wbGF0Zm9ybV9icm93c2VyX3BsYXRmb3JtX2Jyb3dzZXJfYixlcnJvckhhbmRsZXIgYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9hfSBmcm9tICcuL3NyYy9icm93c2VyJztcbmV4cG9ydCB7R2VuZXJpY0Jyb3dzZXJEb21BZGFwdGVyIGFzIMm1YW5ndWxhcl9wYWNrYWdlc19wbGF0Zm9ybV9icm93c2VyX3BsYXRmb3JtX2Jyb3dzZXJfb30gZnJvbSAnLi9zcmMvYnJvd3Nlci9nZW5lcmljX2Jyb3dzZXJfYWRhcHRlcic7XG5leHBvcnQge2NyZWF0ZU1ldGEgYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9kfSBmcm9tICcuL3NyYy9icm93c2VyL21ldGEnO1xuZXhwb3J0IHtTRVJWRVJfVFJBTlNJVElPTl9QUk9WSURFUlMgYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9sLGFwcEluaXRpYWxpemVyRmFjdG9yeSBhcyDJtWFuZ3VsYXJfcGFja2FnZXNfcGxhdGZvcm1fYnJvd3Nlcl9wbGF0Zm9ybV9icm93c2VyX2t9IGZyb20gJy4vc3JjL2Jyb3dzZXIvc2VydmVyLXRyYW5zaXRpb24nO1xuZXhwb3J0IHtjcmVhdGVUaXRsZSBhcyDJtWFuZ3VsYXJfcGFja2FnZXNfcGxhdGZvcm1fYnJvd3Nlcl9wbGF0Zm9ybV9icm93c2VyX2V9IGZyb20gJy4vc3JjL2Jyb3dzZXIvdGl0bGUnO1xuZXhwb3J0IHtpbml0VHJhbnNmZXJTdGF0ZSBhcyDJtWFuZ3VsYXJfcGFja2FnZXNfcGxhdGZvcm1fYnJvd3Nlcl9wbGF0Zm9ybV9icm93c2VyX2Z9IGZyb20gJy4vc3JjL2Jyb3dzZXIvdHJhbnNmZXJfc3RhdGUnO1xuZXhwb3J0IHtFTEVNRU5UX1BST0JFX1BST1ZJREVSU19fUFJFX1IzX18gYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9uLF9jcmVhdGVOZ1Byb2JlUjIgYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9tfSBmcm9tICcuL3NyYy9kb20vZGVidWcvbmdfcHJvYmUnO1xuZXhwb3J0IHtFdmVudE1hbmFnZXJQbHVnaW4gYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9nfSBmcm9tICcuL3NyYy9kb20vZXZlbnRzL2V2ZW50X21hbmFnZXInO1xuZXhwb3J0IHtIQU1NRVJfUFJPVklERVJTIGFzIMm1YW5ndWxhcl9wYWNrYWdlc19wbGF0Zm9ybV9icm93c2VyX3BsYXRmb3JtX2Jyb3dzZXJfaSxIQU1NRVJfUFJPVklERVJTX19QUkVfUjNfXyBhcyDJtWFuZ3VsYXJfcGFja2FnZXNfcGxhdGZvcm1fYnJvd3Nlcl9wbGF0Zm9ybV9icm93c2VyX2h9IGZyb20gJy4vc3JjL2RvbS9ldmVudHMvaGFtbWVyX2dlc3R1cmVzJztcbmV4cG9ydCB7ZG9tU2FuaXRpemVySW1wbEZhY3RvcnkgYXMgybVhbmd1bGFyX3BhY2thZ2VzX3BsYXRmb3JtX2Jyb3dzZXJfcGxhdGZvcm1fYnJvd3Nlcl9qfSBmcm9tICcuL3NyYy9zZWN1cml0eS9kb21fc2FuaXRpemF0aW9uX3NlcnZpY2UnOyJdfQ==