(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n("zUnb")},kiQV:function(e){e.exports=JSON.parse('{"name":"awesome-web","version":"0.11.0","scripts":{"ng":"ng","start":"ng serve","build":"ng build --prod","test":"ng test","lint":"ng lint","e2e":"ng e2e","dev:ssr":"ng run awesome-web:serve-ssr:development","build:ssr":"ng build --prod && ng run awesome-web:server:production","serve:ssr":"node dist/server/main.js","build:prerender":"npm run build:ssr && npm run generate:prerender","generate:prerender":"cd dist && ts-node -P ../tsconfig.server.json ../prerender.ts"},"private":true,"dependencies":{"@angular/animations":"~11.2.13","@angular/common":"~11.2.13","@angular/compiler":"~11.2.13","@angular/core":"~11.2.13","@angular/forms":"~11.2.13","@angular/platform-browser":"~11.2.13","@angular/platform-browser-dynamic":"~11.2.13","@angular/platform-server":"^11.2.13","@angular/router":"~11.2.13","@fortawesome/fontawesome-free":"^5.15.3","@nguniversal/express-engine":"^11.2.1","angulartics2":"^10.0.0","bootstrap":"^4.6.0","express":"^4.17.1","jquery":"^3.6.0","rxjs":"~6.6.0","tslib":"^2.0.0","zone.js":"~0.11.3"},"devDependencies":{"@angular-devkit/build-angular":"~0.1102.12","@angular/cli":"~11.2.12","@angular/compiler-cli":"~11.2.13","@nguniversal/builders":"~11.2.1","@types/jasmine":"~3.6.0","@types/node":"^12.11.1","codelyzer":"^6.0.0","jasmine-core":"~3.6.0","jasmine-spec-reporter":"~5.0.0","karma":"^6.3.16","karma-chrome-launcher":"~3.1.0","karma-coverage":"~2.0.3","karma-jasmine":"~4.0.0","karma-jasmine-html-reporter":"^1.5.0","protractor":"~7.0.0","ts-loader":"^8.1.0","ts-node":"~8.3.0","tslint":"~6.1.0","typescript":"~4.1.5"}}')},mjNN:function(e){e.exports=JSON.parse('{"subscription":{"pricePerMonth":2,"pricePerYear":18,"yearlyDiscount":25,"discounts":[{"units":25,"percent":10},{"units":50,"percent":20},{"units":100,"percent":30},{"units":200,"percent":40},{"units":400,"percent":50},{"units":700,"percent":60},{"units":1000,"percent":65},{"units":2000,"percent":70},{"units":5000,"percent":75}]}}')},zUnb:function(e,t,n){"use strict";function i(e){return"function"==typeof e}n.r(t);let r=!1;const o={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else r&&console.log("RxJS: Back to a better error behavior. Thank you. <3");r=e},get useDeprecatedSynchronousErrorHandling(){return r}};function s(e){setTimeout(()=>{throw e},0)}const a={closed:!0,next(e){},error(e){if(o.useDeprecatedSynchronousErrorHandling)throw e;s(e)},complete(){}},l=(()=>Array.isArray||(e=>e&&"number"==typeof e.length))();function c(e){return null!==e&&"object"==typeof e}const u=(()=>{function e(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((e,t)=>`${t+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e})();let d=(()=>{class e{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:r,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(let e=0;ee.concat(t instanceof u?t.errors:t),[])}const p=(()=>"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random())();class m extends d{constructor(e,t,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=a;break;case 1:if(!e){this.destination=a;break}if("object"==typeof e){e instanceof m?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new f(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new f(this,e,t,n)}}[p](){return this}static create(e,t,n){const i=new m(e,t,n);return i.syncErrorThrowable=!1,i}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class f extends m{constructor(e,t,n,r){let o;super(),this._parentSubscriber=e;let s=this;i(t)?o=t:t&&(o=t.next,n=t.error,r=t.complete,t!==a&&(s=Object.create(t),i(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=o,this._error=n,this._complete=r}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;o.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:n}=o;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):s(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;s(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);o.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),o.useDeprecatedSynchronousErrorHandling)throw n;s(n)}}__tryOrSetError(e,t,n){if(!o.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(i){return o.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=i,e.syncErrorThrown=!0,!0):(s(i),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const g=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")();function b(e){return e}let w=(()=>{class e{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(t){const n=new e;return n.source=this,n.operator=t,n}subscribe(e,t,n){const{operator:i}=this,r=function(e,t,n){if(e){if(e instanceof m)return e;if(e[p])return e[p]()}return e||t||n?new m(e,t,n):new m(a)}(e,t,n);if(r.add(i?i.call(r,this.source):this.source||o.useDeprecatedSynchronousErrorHandling&&!r.syncErrorThrowable?this._subscribe(r):this._trySubscribe(r)),o.useDeprecatedSynchronousErrorHandling&&r.syncErrorThrowable&&(r.syncErrorThrowable=!1,r.syncErrorThrown))throw r.syncErrorValue;return r}_trySubscribe(e){try{return this._subscribe(e)}catch(t){o.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),function(e){for(;e;){const{closed:t,destination:n,isStopped:i}=e;if(t||i)return!1;e=n&&n instanceof m?n:null}return!0}(e)?e.error(t):console.warn(t)}}forEach(e,t){return new(t=v(t))((t,n)=>{let i;i=this.subscribe(t=>{try{e(t)}catch(r){n(r),i&&i.unsubscribe()}},n,t)})}_subscribe(e){const{source:t}=this;return t&&t.subscribe(e)}[g](){return this}pipe(...e){return 0===e.length?this:(0===(t=e).length?b:1===t.length?t[0]:function(e){return t.reduce((e,t)=>t(e),e)})(this);var t}toPromise(e){return new(e=v(e))((e,t)=>{let n;this.subscribe(e=>n=e,e=>t(e),()=>e(n))})}}return e.create=t=>new e(t),e})();function v(e){if(e||(e=o.Promise||Promise),!e)throw new Error("no Promise impl found");return e}const y=(()=>{function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e})();class C extends d{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}class S extends m{constructor(e){super(e),this.destination=e}}let _=(()=>{class e extends w{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[p](){return new S(this)}lift(e){const t=new A(this,this);return t.operator=e,t}next(e){if(this.closed)throw new y;if(!this.isStopped){const{observers:t}=this,n=t.length,i=t.slice();for(let r=0;rnew A(e,t),e})();class A extends _{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):d.EMPTY}}function k(e){return e&&"function"==typeof e.schedule}function x(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new T(e,t))}}class T{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new P(e,this.project,this.thisArg))}}class P extends m{constructor(e,t,n){super(e),this.project=t,this.count=0,this.thisArg=n||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)}}const M=e=>t=>{for(let n=0,i=e.length;ne&&"number"==typeof e.length&&"function"!=typeof e;function F(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}const U=e=>{if(e&&"function"==typeof e[g])return i=e,e=>{const t=i[g]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(E(e))return M(e);if(F(e))return n=e,e=>(n.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,s),e);if(e&&"function"==typeof e[O])return t=e,e=>{const n=t[O]();for(;;){let t;try{t=n.next()}catch(i){return e.error(i),e}if(t.done){e.complete();break}if(e.next(t.value),e.closed)break}return"function"==typeof n.return&&e.add(()=>{n.return&&n.return()}),e};{const t=c(e)?"an invalid object":`'${e}'`;throw new TypeError(`You provided ${t} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`)}var t,n,i};function L(e,t){return new w(n=>{const i=new d;let r=0;return i.add(t.schedule(function(){r!==e.length?(n.next(e[r++]),n.closed||i.add(this.schedule())):n.complete()})),i})}function D(e,t){return t?function(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[g]}(e))return function(e,t){return new w(n=>{const i=new d;return i.add(t.schedule(()=>{const r=e[g]();i.add(r.subscribe({next(e){i.add(t.schedule(()=>n.next(e)))},error(e){i.add(t.schedule(()=>n.error(e)))},complete(){i.add(t.schedule(()=>n.complete()))}}))})),i})}(e,t);if(F(e))return function(e,t){return new w(n=>{const i=new d;return i.add(t.schedule(()=>e.then(e=>{i.add(t.schedule(()=>{n.next(e),i.add(t.schedule(()=>n.complete()))}))},e=>{i.add(t.schedule(()=>n.error(e)))}))),i})}(e,t);if(E(e))return L(e,t);if(function(e){return e&&"function"==typeof e[O]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new w(n=>{const i=new d;let r;return i.add(()=>{r&&"function"==typeof r.return&&r.return()}),i.add(t.schedule(()=>{r=e[O](),i.add(t.schedule(function(){if(n.closed)return;let e,t;try{const n=r.next();e=n.value,t=n.done}catch(i){return void n.error(i)}t?n.complete():(n.next(e),this.schedule())}))})),i})}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}(e,t):e instanceof w?e:new w(U(e))}class R extends m{constructor(e){super(),this.parent=e}_next(e){this.parent.notifyNext(e)}_error(e){this.parent.notifyError(e),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class N extends m{notifyNext(e){this.destination.next(e)}notifyError(e){this.destination.error(e)}notifyComplete(){this.destination.complete()}}function V(e,t){if(t.closed)return;if(e instanceof w)return e.subscribe(t);let n;try{n=U(e)(t)}catch(i){t.error(i)}return n}function j(e,t,n=Number.POSITIVE_INFINITY){return"function"==typeof t?i=>i.pipe(j((n,i)=>D(e(n,i)).pipe(x((e,r)=>t(n,e,i,r))),n)):("number"==typeof t&&(n=t),t=>t.lift(new H(e,n)))}class H{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new z(e,this.project,this.concurrent))}}class z extends N{constructor(e,t,n=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function B(e=Number.POSITIVE_INFINITY){return j(b,e)}function $(e,t){return t?L(e,t):new w(M(e))}function q(){return function(e){return e.lift(new G(e))}}class G{constructor(e){this.connectable=e}call(e,t){const{connectable:n}=this;n._refCount++;const i=new W(e,n),r=t.subscribe(i);return i.closed||(i.connection=n.connect()),r}}class W extends m{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:n}=this,i=e._connection;this.connection=null,!i||n&&i!==n||i.unsubscribe()}}class Y extends w{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new d,e.add(this.source.subscribe(new Q(this.getSubject(),this))),e.closed&&(this._connection=null,e=d.EMPTY)),e}refCount(){return q()(this)}}const Z=(()=>{const e=Y.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}})();class Q extends S{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}function K(){return new _}function J(e){for(let t in e)if(e[t]===J)return t;throw Error("Could not find renamed property on target object.")}function X(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function ee(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ee).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function te(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const ne=J({__forward_ref__:J});function ie(e){return e.__forward_ref__=ie,e.toString=function(){return ee(this())},e}function re(e){return oe(e)?e():e}function oe(e){return"function"==typeof e&&e.hasOwnProperty(ne)&&e.__forward_ref__===ie}class se extends Error{constructor(e,t){super(function(e,t){return`${e?`NG0${e}: `:""}${t}`}(e,t)),this.code=e}}function ae(e){return"string"==typeof e?e:null==e?"":String(e)}function le(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():ae(e)}function ce(e,t){const n=t?` in ${t}`:"";throw new se("201",`No provider for ${le(e)} found${n}`)}function ue(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function de(e){return{providers:e.providers||[],imports:e.imports||[]}}function he(e){return pe(e,fe)||pe(e,be)}function pe(e,t){return e.hasOwnProperty(t)?e[t]:null}function me(e){return e&&(e.hasOwnProperty(ge)||e.hasOwnProperty(we))?e[ge]:null}const fe=J({"\u0275prov":J}),ge=J({"\u0275inj":J}),be=J({ngInjectableDef:J}),we=J({ngInjectorDef:J});var ve=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}({});let ye;function Ce(e){const t=ye;return ye=e,t}function Se(e,t,n){const i=he(e);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:n&ve.Optional?null:void 0!==t?t:void ce(ee(e),"Injector")}function _e(e){return{toString:e}.toString()}var Ae=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}({}),ke=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}({});const xe="undefined"!=typeof globalThis&&globalThis,Te="undefined"!=typeof window&&window,Pe="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,Me="undefined"!=typeof global&&global,Ie=xe||Me||Te||Pe,Oe={},Ee=[],Fe=[],Ue=J({"\u0275cmp":J}),Le=J({"\u0275dir":J}),De=J({"\u0275pipe":J}),Re=J({"\u0275mod":J}),Ne=J({"\u0275loc":J}),Ve=J({"\u0275fac":J}),je=J({__NG_ELEMENT_ID__:J});let He=0;function ze(e){return _e(()=>{const t={},n={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===Ae.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||Fe,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||ke.Emulated,id:"c",styles:e.styles||Fe,_:null,setInput:null,schemas:e.schemas||null,tView:null},i=e.directives,r=e.features,o=e.pipes;return n.id+=He++,n.inputs=We(e.inputs,t),n.outputs=We(e.outputs),r&&r.forEach(e=>e(n)),n.directiveDefs=i?()=>("function"==typeof i?i():i).map(Be):null,n.pipeDefs=o?()=>("function"==typeof o?o():o).map($e):null,n})}function Be(e){return Qe(e)||function(e){return e[Le]||null}(e)}function $e(e){return function(e){return e[De]||null}(e)}const qe={};function Ge(e){const t={type:e.type,bootstrap:e.bootstrap||Fe,declarations:e.declarations||Fe,imports:e.imports||Fe,exports:e.exports||Fe,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&_e(()=>{qe[e.id]=e.type}),t}function We(e,t){if(null==e)return Oe;const n={};for(const i in e)if(e.hasOwnProperty(i)){let r=e[i],o=r;Array.isArray(r)&&(o=r[1],r=r[0]),n[r]=i,t&&(t[r]=o)}return n}const Ye=ze;function Ze(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,onDestroy:e.type.prototype.ngOnDestroy||null}}function Qe(e){return e[Ue]||null}function Ke(e,t){const n=e[Re]||null;if(!n&&!0===t)throw new Error(`Type ${ee(e)} does not have '\u0275mod' property.`);return n}const Je=20,Xe=10;function et(e){return Array.isArray(e)&&"object"==typeof e[1]}function tt(e){return Array.isArray(e)&&!0===e[1]}function nt(e){return 0!=(8&e.flags)}function it(e){return 2==(2&e.flags)}function rt(e){return 1==(1&e.flags)}function ot(e){return null!==e.template}function st(e,t){return e.hasOwnProperty(Ve)?e[Ve]:null}class at{constructor(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}isFirstChange(){return this.firstChange}}function lt(){return ct}function ct(e){return e.type.prototype.ngOnChanges&&(e.setInput=dt),ut}function ut(){const e=ht(this),t=null==e?void 0:e.current;if(t){const n=e.previous;if(n===Oe)e.previous=t;else for(let e in t)n[e]=t[e];e.current=null,this.ngOnChanges(t)}}function dt(e,t,n,i){const r=ht(e)||function(e,t){return e.__ngSimpleChanges__=t}(e,{previous:Oe,current:null}),o=r.current||(r.current={}),s=r.previous,a=this.declaredInputs[n],l=s[a];o[a]=new at(l&&l.currentValue,t,s===Oe),e[i]=t}function ht(e){return e.__ngSimpleChanges__||null}let pt;function mt(){return void 0!==pt?pt:"undefined"!=typeof document?document:void 0}function ft(e){return!!e.listen}lt.ngInherit=!0;const gt={createRenderer:(e,t)=>mt()};function bt(e){for(;Array.isArray(e);)e=e[0];return e}function wt(e,t){return bt(t[e])}function vt(e,t){return bt(t[e.index])}function yt(e,t){return e.data[t]}function Ct(e,t){return e[t]}function St(e,t){const n=t[e];return et(n)?n:n[0]}function _t(e){const t=function(e){return e.__ngContext__||null}(e);return t?Array.isArray(t)?t:t.lView:null}function At(e){return 128==(128&e[2])}function kt(e,t){return null==t?null:e[t]}function xt(e){e[18]=0}function Tt(e,t){e[5]+=t;let n=e,i=e[3];for(;null!==i&&(1===t&&1===n[5]||-1===t&&0===n[5]);)i[5]+=t,n=i,i=i[3]}const Pt={lFrame:Kt(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Mt(){return Pt.bindingsEnabled}function It(){return Pt.lFrame.lView}function Ot(){return Pt.lFrame.tView}function Et(e){Pt.lFrame.contextLView=e}function Ft(){let e=Ut();for(;null!==e&&64===e.type;)e=e.parent;return e}function Ut(){return Pt.lFrame.currentTNode}function Lt(e,t){const n=Pt.lFrame;n.currentTNode=e,n.isParent=t}function Dt(){return Pt.lFrame.isParent}function Rt(){Pt.lFrame.isParent=!1}function Nt(){return Pt.isInCheckNoChangesMode}function Vt(e){Pt.isInCheckNoChangesMode=e}function jt(){const e=Pt.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Ht(){return Pt.lFrame.bindingIndex}function zt(){return Pt.lFrame.bindingIndex++}function Bt(e){const t=Pt.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function $t(e,t){const n=Pt.lFrame;n.bindingIndex=n.bindingRootIndex=e,qt(t)}function qt(e){Pt.lFrame.currentDirectiveIndex=e}function Gt(e){Pt.lFrame.currentQueryIndex=e}function Wt(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function Yt(e,t,n){if(n&ve.SkipSelf){let i=t,r=e;for(;i=i.parent,!(null!==i||n&ve.Host||(i=Wt(r),null===i)||(r=r[15],10&i.type)););if(null===i)return!1;t=i,e=r}const i=Pt.lFrame=Qt();return i.currentTNode=t,i.lView=e,!0}function Zt(e){const t=Qt(),n=e[1];Pt.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Qt(){const e=Pt.lFrame,t=null===e?null:e.child;return null===t?Kt(e):t}function Kt(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function Jt(){const e=Pt.lFrame;return Pt.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Xt=Jt;function en(){const e=Jt();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function tn(){return Pt.lFrame.selectedIndex}function nn(e){Pt.lFrame.selectedIndex=e}function rn(){const e=Pt.lFrame;return yt(e.tView,e.selectedIndex)}function on(e,t){for(let n=t.directiveStart,i=t.directiveEnd;n=i)break}else t[a]<0&&(e[18]+=65536),(s>11>16&&(3&e[2])===t){e[2]+=2048;try{o.call(s)}finally{}}}else try{o.call(s)}finally{}}const dn=-1;class hn{constructor(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}}function pn(e,t,n){const i=ft(e);let r=0;for(;rt){s=o-1;break}}}for(;o>16,i=t;for(;n>0;)i=i[15],n--;return i}let Cn=!0;function Sn(e){const t=Cn;return Cn=e,t}let _n=0;function An(e,t){const n=xn(e,t);if(-1!==n)return n;const i=t[1];i.firstCreatePass&&(e.injectorIndex=t.length,kn(i.data,e),kn(t,null),kn(i.blueprint,null));const r=Tn(e,t),o=e.injectorIndex;if(wn(r)){const e=vn(r),n=yn(r,t),i=n[1].data;for(let r=0;r<8;r++)t[o+r]=n[e+r]|i[e+r]}return t[o+8]=r,o}function kn(e,t){e.push(0,0,0,0,0,0,0,0,t)}function xn(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function Tn(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,i=null,r=t;for(;null!==r;){const e=r[1],t=e.type;if(i=2===t?e.declTNode:1===t?r[6]:null,null===i)return dn;if(n++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|n<<16}return dn}function Pn(e,t,n){!function(e,t,n){let i;"string"==typeof n?i=n.charCodeAt(0)||0:n.hasOwnProperty(je)&&(i=n[je]),null==i&&(i=n[je]=_n++);const r=255&i;t.data[e+(r>>5)]|=1<=0?255&t:Fn:t}(n);if("function"==typeof o){if(!Yt(t,e,i))return i&ve.Host?Mn(r,n,i):In(t,n,i,r);try{const e=o();if(null!=e||i&ve.Optional)return e;ce(n)}finally{Xt()}}else if("number"==typeof o){let r=null,s=xn(e,t),a=dn,l=i&ve.Host?t[16][6]:null;for((-1===s||i&ve.SkipSelf)&&(a=-1===s?Tn(e,t):t[s+8],a!==dn&&Rn(i,!1)?(r=t[1],s=vn(a),t=yn(a,t)):s=-1);-1!==s;){const e=t[1];if(Dn(o,s,e.data)){const e=Un(s,t,n,r,i,l);if(e!==En)return e}a=t[s+8],a!==dn&&Rn(i,t[1].data[s+8]===l)&&Dn(o,s,t)?(r=e,s=vn(a),t=yn(a,t)):s=-1}}}return In(t,n,i,r)}const En={};function Fn(){return new Nn(Ft(),It())}function Un(e,t,n,i,r,o){const s=t[1],a=s.data[e+8],l=function(e,t,n,i,r){const o=e.providerIndexes,s=t.data,a=1048575&o,l=e.directiveStart,c=o>>20,u=r?a+c:e.directiveEnd;for(let d=i?a:a+c;d=l&&e.type===n)return d}if(r){const e=s[l];if(e&&ot(e)&&e.type===n)return l}return null}(a,s,n,null==i?it(a)&&Cn:i!=s&&0!=(3&a.type),r&ve.Host&&o===a);return null!==l?Ln(t,s,l,a):En}function Ln(e,t,n,i){let r=e[n];const o=t.data;if(r instanceof hn){const s=r;s.resolving&&function(e,t){throw new se("200",`Circular dependency in DI detected for ${e}`)}(le(o[n]));const a=Sn(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?Ce(s.injectImpl):null;Yt(e,i,ve.Default);try{r=e[n]=s.factory(void 0,o,e,i),t.firstCreatePass&&n>=i.directiveStart&&function(e,t,n){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=t.type.prototype;if(i){const i=ct(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i)}r&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,r),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,o))}(n,o[n],t)}finally{null!==l&&Ce(l),Sn(a),s.resolving=!1,Xt()}}return r}function Dn(e,t,n){return!!(n[t+(e>>5)]&1<{const t=e.prototype.constructor,n=t[Ve]||jn(t),i=Object.prototype;let r=Object.getPrototypeOf(e.prototype).constructor;for(;r&&r!==i;){const e=r[Ve]||jn(r);if(e&&e!==n)return e;r=Object.getPrototypeOf(r)}return e=>new e})}function jn(e){return oe(e)?()=>{const t=jn(re(e));return t&&t()}:st(e)}const Hn="__parameters__";function zn(e,t,n){return _e(()=>{const i=function(e){return function(...t){if(e){const n=e(...t);for(const e in n)this[e]=n[e]}}}(t);function r(...e){if(this instanceof r)return i.apply(this,e),this;const t=new r(...e);return n.annotation=t,n;function n(e,n,i){const r=e.hasOwnProperty(Hn)?e[Hn]:Object.defineProperty(e,Hn,{value:[]})[Hn];for(;r.length<=i;)r.push(null);return(r[i]=r[i]||[]).push(t),e}}return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=e,r.annotationCls=r,r})}class Bn{constructor(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=ue({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const $n=new Bn("AnalyzeForEntryComponents"),qn=Function;function Gn(e,t){e.forEach(e=>Array.isArray(e)?Gn(e,t):t(e))}function Wn(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Yn(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Zn(e,t){const n=[];for(let i=0;i=0?e[1|i]=n:(i=~i,function(e,t,n,i){let r=e.length;if(r==t)e.push(n,i);else if(1===r)e.push(i,e[0]),e[0]=n;else{for(r--,e.push(e[r-1],e[r]);r>t;)e[r]=e[r-2],r--;e[t]=n,e[t+1]=i}}(e,i,t,n)),i}function Kn(e,t){const n=Jn(e,t);if(n>=0)return e[1|n]}function Jn(e,t){return function(e,t,n){let i=0,r=e.length>>1;for(;r!==i;){const n=i+(r-i>>1),o=e[n<<1];if(t===o)return n<<1;o>t?r=n:i=n+1}return~(r<<1)}(e,t)}const Xn={},ei=/\n/gm,ti="__source",ni=J({provide:String,useValue:J});let ii;function ri(e){const t=ii;return ii=e,t}function oi(e,t=ve.Default){if(void 0===ii)throw new Error("inject() must be called from an injection context");return null===ii?Se(e,void 0,t):ii.get(e,t&ve.Optional?null:void 0,t)}function si(e,t=ve.Default){return(ye||oi)(re(e),t)}function ai(e){const t=[];for(let n=0;n({token:e})),-1),ui=li(zn("Optional"),8),di=li(zn("SkipSelf"),4);let hi,pi;function mi(e){var t;return(null===(t=function(){if(void 0===hi&&(hi=null,Ie.trustedTypes))try{hi=Ie.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(t){}return hi}())||void 0===t?void 0:t.createHTML(e))||e}function fi(e){var t;return(null===(t=function(){if(void 0===pi&&(pi=null,Ie.trustedTypes))try{pi=Ie.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(t){}return pi}())||void 0===t?void 0:t.createHTML(e))||e}class gi{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class bi extends gi{getTypeName(){return"HTML"}}class wi extends gi{getTypeName(){return"Style"}}class vi extends gi{getTypeName(){return"Script"}}class yi extends gi{getTypeName(){return"URL"}}class Ci extends gi{getTypeName(){return"ResourceURL"}}function Si(e){return e instanceof gi?e.changingThisBreaksApplicationSecurity:e}function _i(e,t){const n=Ai(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see https://g.co/ng/security#xss)`)}return n===t}function Ai(e){return e instanceof gi&&e.getTypeName()||null}class ki{constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{const t=(new window.DOMParser).parseFromString(mi(e),"text/html").body;return null===t?this.inertDocumentHelper.getInertBodyElement(e):(t.removeChild(t.firstChild),t)}catch(t){return null}}}class xi{constructor(e){if(this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const t=this.inertDocument.createElement("body");e.appendChild(t)}}getInertBodyElement(e){const t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=mi(e),t;const n=this.inertDocument.createElement("body");return n.innerHTML=mi(e),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n}stripCustomNsAttrs(e){const t=e.attributes;for(let i=t.length-1;0Mi(e.trim())).join(", ")),this.buf.push(" ",t,'="',$i(s),'"')}var i;return this.buf.push(">"),!0}endElement(e){const t=e.nodeName.toLowerCase();Di.hasOwnProperty(t)&&!Ei.hasOwnProperty(t)&&(this.buf.push(""))}chars(e){this.buf.push($i(e))}checkClobberedElement(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`);return t}}const zi=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Bi=/([^\#-~ |!])/g;function $i(e){return e.replace(/&/g,"&").replace(zi,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(Bi,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}let qi;function Gi(e,t){let n=null;try{qi=qi||function(e){const t=new xi(e);return function(){try{return!!(new window.DOMParser).parseFromString(mi(""),"text/html")}catch(e){return!1}}()?new ki(t):t}(e);let i=t?String(t):"";n=qi.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=n.innerHTML,n=qi.getInertBodyElement(i)}while(i!==o);return mi((new Hi).sanitizeChildren(Wi(n)||n))}finally{if(n){const e=Wi(n)||n;for(;e.firstChild;)e.removeChild(e.firstChild)}}}function Wi(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Yi=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}({});function Zi(e){const t=Ki();return t?fi(t.sanitize(Yi.HTML,e)||""):_i(e,"HTML")?fi(Si(e)):Gi(mt(),ae(e))}function Qi(e){const t=Ki();return t?t.sanitize(Yi.URL,e)||"":_i(e,"URL")?Si(e):Mi(ae(e))}function Ki(){const e=It();return e&&e[12]}function Ji(e){return e.ngDebugContext}function Xi(e){return e.ngOriginalError}function er(e,...t){e.error(...t)}class tr{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),n=this._findContext(e),i=function(e){return e.ngErrorLogger||er}(e);i(this._console,"ERROR",e),t&&i(this._console,"ORIGINAL ERROR",t),n&&i(this._console,"ERROR CONTEXT",n)}_findContext(e){return e?Ji(e)?Ji(e):this._findContext(Xi(e)):null}_findOriginalError(e){let t=Xi(e);for(;t&&Xi(t);)t=Xi(t);return t}}function nr(e,t){e.__ngContext__=t}const ir=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Ie))();function rr(e){return e instanceof Function?e():e}var or=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}({});function sr(e,t){return(void 0)(e,t)}function ar(e){const t=e[3];return tt(t)?t[3]:t}function lr(e){return ur(e[13])}function cr(e){return ur(e[4])}function ur(e){for(;null!==e&&!tt(e);)e=e[4];return e}function dr(e,t,n,i,r){if(null!=i){let o,s=!1;tt(i)?o=i:et(i)&&(s=!0,i=i[0]);const a=bt(i);0===e&&null!==n?null==r?vr(t,n,a):wr(t,n,a,r||null,!0):1===e&&null!==n?wr(t,n,a,r||null,!0):2===e?function(e,t,n){const i=Cr(e,t);i&&function(e,t,n,i){ft(e)?e.removeChild(t,n,i):t.removeChild(n)}(e,i,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=o&&function(e,t,n,i,r){const o=n[7];o!==bt(n)&&dr(t,e,i,o,r);for(let s=Xe;s0&&(e[n-1][4]=i[4]);const s=Yn(e,Xe+t);Mr(i[1],r=i,r[11],2,null,null),r[0]=null,r[6]=null;const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-129}var r;return i}function fr(e,t){if(!(256&t[2])){const n=t[11];ft(n)&&n.destroyNode&&Mr(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return gr(e[1],e);for(;t;){let n=null;if(et(t))n=t[13];else{const e=t[10];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)et(t)&&gr(t[1],t),t=t[3];null===t&&(t=e),et(t)&&gr(t[1],t),n=t&&t[4]}t=n}}(t)}}function gr(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let i=0;i=0?i[r=l]():i[r=-l].unsubscribe(),o+=2}else{const e=i[r=n[o+1]];n[o].call(e)}if(null!==i){for(let e=r+1;eo?"":r[u+1].toLowerCase();const t=8&i?e:null;if(t&&-1!==Fr(t,c,0)||2&i&&c!==e){if(Vr(i))return!1;s=!0}}}}else{if(!s&&!Vr(i)&&!Vr(l))return!1;if(s&&Vr(l))continue;s=!1,i=l|1&i}}return Vr(i)||s}function Vr(e){return 0==(1&e)}function jr(e,t,n,i){if(null===t)return-1;let r=0;if(i||!n){let n=!1;for(;r-1)for(n++;n0?'="'+t+'"':"")+"]"}else 8&i?r+="."+s:4&i&&(r+=" "+s);else""===r||Vr(s)||(t+=zr(o,r),r=""),i=s,o=o||!Vr(i);n++}return""!==r&&(t+=zr(o,r)),t}const $r={};function qr(e){Gr(Ot(),It(),tn()+e,Nt())}function Gr(e,t,n,i){if(!i)if(3==(3&t[2])){const i=e.preOrderCheckHooks;null!==i&&sn(t,i,n)}else{const i=e.preOrderHooks;null!==i&&an(t,i,0,n)}nn(n)}function Wr(e,t){return e<<17|t<<2}function Yr(e){return e>>17&32767}function Zr(e){return 2|e}function Qr(e){return(131068&e)>>2}function Kr(e,t){return-131069&e|t<<2}function Jr(e){return 1|e}function Xr(e,t){const n=e.contentQueries;if(null!==n)for(let i=0;iJe&&Gr(e,t,Je,Nt()),n(i,r)}finally{nn(o)}}function ao(e,t,n){if(nt(t)){const i=t.directiveEnd;for(let r=t.directiveStart;r0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(n)!=o&&n.push(o),n.push(i,r,s)}}function bo(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function wo(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function vo(e,t,n){if(n){if(t.exportAs)for(let i=0;i0&&To(n)}}function To(e){for(let n=lr(e);null!==n;n=cr(n))for(let e=Xe;e0&&To(t)}const t=e[1].components;if(null!==t)for(let n=0;n0&&To(i)}}function Po(e,t){const n=St(t,e),i=n[1];!function(e,t){for(let n=t.length;nPromise.resolve(null))();function Lo(e){return e[7]||(e[7]=[])}function Do(e){return e.cleanup||(e.cleanup=[])}function Ro(e,t){const n=e[9],i=n?n.get(tr,null):null;i&&i.handleError(t)}function No(e,t,n,i,r){for(let o=0;othis.processProvider(n,e,t)),Gn([e],e=>this.processInjectorType(e,[],r)),this.records.set(Ho,Xo(void 0,this));const o=this.records.get(Bo);this.scope=null!=o?o.value:null,this.source=i||("object"==typeof e?null:ee(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=Xn,n=ve.Default){this.assertNotDestroyed();const i=ri(this);try{if(!(n&ve.SkipSelf)){let t=this.records.get(e);if(void 0===t){const n=("function"==typeof(r=e)||"object"==typeof r&&r instanceof Bn)&&he(e);t=n&&this.injectableDefInScope(n)?Xo(Ko(e),$o):null,this.records.set(e,t)}if(null!=t)return this.hydrate(e,t)}return(n&ve.Self?Yo():this.parent).get(e,t=n&ve.Optional&&t===Xn?null:t)}catch(o){if("NullInjectorError"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(ee(e)),i)throw o;return function(e,t,n,i){const r=e.ngTempTokenPath;throw t[ti]&&r.unshift(t[ti]),e.message=function(e,t,n,i=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.substr(2):e;let r=ee(t);if(Array.isArray(t))r=t.map(ee).join(" -> ");else if("object"==typeof t){let e=[];for(let n in t)if(t.hasOwnProperty(n)){let i=t[n];e.push(n+":"+("string"==typeof i?JSON.stringify(i):ee(i)))}r=`{${e.join(", ")}}`}return`${n}${i?"("+i+")":""}[${r}]: ${e.replace(ei,"\n ")}`}("\n"+e.message,r,n,i),e.ngTokenPath=r,e.ngTempTokenPath=null,e}(o,e,"R3InjectorError",this.source)}throw o}finally{ri(i)}var r}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(e=>this.get(e))}toString(){const e=[];return this.records.forEach((t,n)=>e.push(ee(n))),`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(e,t,n){if(!(e=re(e)))return!1;let i=me(e);const r=null==i&&e.ngModule||void 0,o=void 0===r?e:r,s=-1!==n.indexOf(o);if(void 0!==r&&(i=me(r)),null==i)return!1;if(null!=i.imports&&!s){let e;n.push(o);try{Gn(i.imports,i=>{this.processInjectorType(i,t,n)&&(void 0===e&&(e=[]),e.push(i))})}finally{}if(void 0!==e)for(let t=0;tthis.processProvider(e,n,i||Go))}}this.injectorDefTypes.add(o);const a=st(o)||(()=>new o);this.records.set(o,Xo(a,$o));const l=i.providers;if(null!=l&&!s){const t=e;Gn(l,e=>this.processProvider(e,t,l))}return void 0!==r&&void 0!==e.providers}processProvider(e,t,n){let i=ts(e=re(e))?e:re(e&&e.provide);const r=function(e,t,n){return es(e)?Xo(void 0,e.useValue):Xo(Jo(e),$o)}(e);if(ts(e)||!0!==e.multi)this.records.get(i);else{let t=this.records.get(i);t||(t=Xo(void 0,$o,!0),t.factory=()=>ai(t.multi),this.records.set(i,t)),i=e,t.multi.push(e)}this.records.set(i,r)}hydrate(e,t){var n;return t.value===$o&&(t.value=qo,t.value=t.factory()),"object"==typeof t.value&&t.value&&null!==(n=t.value)&&"object"==typeof n&&"function"==typeof n.ngOnDestroy&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){return!!e.providedIn&&("string"==typeof e.providedIn?"any"===e.providedIn||e.providedIn===this.scope:this.injectorDefTypes.has(e.providedIn))}}function Ko(e){const t=he(e),n=null!==t?t.factory:st(e);if(null!==n)return n;if(e instanceof Bn)throw new Error(`Token ${ee(e)} is missing a \u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const n=Zn(t,"?");throw new Error(`Can't resolve all parameters for ${ee(e)}: (${n.join(", ")}).`)}const n=function(e){const t=e&&(e[fe]||e[be]);if(t){const n=function(e){if(e.hasOwnProperty("name"))return e.name;const t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token "${n}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${n}" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error("unreachable")}function Jo(e,t,n){let i;if(ts(e)){const t=re(e);return st(t)||Ko(t)}if(es(e))i=()=>re(e.useValue);else if((r=e)&&r.useFactory)i=()=>e.useFactory(...ai(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))i=()=>si(re(e.useExisting));else{const t=re(e&&(e.useClass||e.provide));if(!function(e){return!!e.deps}(e))return st(t)||Ko(t);i=()=>new t(...ai(e.deps))}var r;return i}function Xo(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function es(e){return null!==e&&"object"==typeof e&&ni in e}function ts(e){return"function"==typeof e}const ns=function(e,t,n){return function(e,t=null,n=null,i){const r=Zo(e,t,n,i);return r._resolveInjectorDefTypes(),r}({name:n},t,e,n)};let is=(()=>{class e{static create(e,t){return Array.isArray(e)?ns(e,t,""):ns(e.providers,e.parent,e.name||"")}}return e.THROW_IF_NOT_FOUND=Xn,e.NULL=new zo,e.\u0275prov=ue({token:e,providedIn:"any",factory:()=>si(Ho)}),e.__NG_ELEMENT_ID__=-1,e})();function rs(e,t){on(_t(e)[1],Ft())}function os(e){let t=Object.getPrototypeOf(e.type.prototype).constructor,n=!0;const i=[e];for(;t;){let r;if(ot(e))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new Error("Directives cannot inherit Components");r=t.\u0275dir}if(r){if(n){i.push(r);const t=e;t.inputs=ss(e.inputs),t.declaredInputs=ss(e.declaredInputs),t.outputs=ss(e.outputs);const n=r.hostBindings;n&&cs(e,n);const o=r.viewQuery,s=r.contentQueries;if(o&&as(e,o),s&&ls(e,s),X(e.inputs,r.inputs),X(e.declaredInputs,r.declaredInputs),X(e.outputs,r.outputs),ot(r)&&r.data.animation){const t=e.data;t.animation=(t.animation||[]).concat(r.data.animation)}}const t=r.features;if(t)for(let i=0;i=0;i--){const r=e[i];r.hostVars=t+=r.hostVars,r.hostAttrs=gn(r.hostAttrs,n=gn(n,r.hostAttrs))}}(i)}function ss(e){return e===Oe?{}:e===Fe?[]:e}function as(e,t){const n=e.viewQuery;e.viewQuery=n?(e,i)=>{t(e,i),n(e,i)}:t}function ls(e,t){const n=e.contentQueries;e.contentQueries=n?(e,i,r)=>{t(e,i,r),n(e,i,r)}:t}function cs(e,t){const n=e.hostBindings;e.hostBindings=n?(e,i)=>{t(e,i),n(e,i)}:t}let us=null;function ds(){if(!us){const e=Ie.Symbol;if(e&&e.iterator)us=e.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ta(bt(e[i.index])).target:i.index;if(ft(n)){let s=null;if(!a&&l&&(s=function(e,t,n,i){const r=e.cleanup;if(null!=r)for(let o=0;on?e[n]:null}"string"==typeof e&&(o+=2)}return null}(e,t,r,i.index)),null!==s)(s.__ngLastListenerFn__||s).__ngNextListenerFn__=o,s.__ngLastListenerFn__=o,d=!1;else{o=Ds(i,t,0,o,!1);const e=n.listen(p.name||m,r,o);u.push(o,e),c&&c.push(r,g,f,f+1)}}else o=Ds(i,t,0,o,!0),m.addEventListener(r,o,s),u.push(o),c&&c.push(r,g,f,s)}else o=Ds(i,t,0,o,!1);const h=i.outputs;let p;if(d&&null!==h&&(p=h[r])){const e=p.length;if(e)for(let n=0;n0;)t=t[15],e--;return t}(e,Pt.lFrame.contextLView))[8]}(e)}function Ns(e,t,n){return Vs(e,"",t,"",n),Ns}function Vs(e,t,n,i,r){const o=It(),s=ys(o,t,n,i);return s!==$r&&mo(Ot(),rn(),o,e,s,o[11],r,!1),Vs}function js(e,t,n,i,r){const o=e[n+1],s=null===t;let a=i?Yr(o):Qr(o),l=!1;for(;0!==a&&(!1===l||s);){const n=e[a+1];Hs(e[a],t)&&(l=!0,e[a+1]=i?Jr(n):Zr(n)),a=i?Yr(n):Qr(n)}l&&(e[n+1]=i?Zr(o):Jr(o))}function Hs(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Jn(e,t)>=0}function zs(e,t){return function(e,t,n,i){const r=It(),o=Ot(),s=Bt(2);o.firstUpdatePass&&function(e,t,n,i){const r=e.data;if(null===r[n+1]){const o=r[tn()],s=function(e,t){return t>=e.expandoStartIndex}(e,n);(function(e,t){return 0!=(16&e.flags)})(o)&&null===t&&!s&&(t=!1),t=function(e,t,n,i){const r=function(e){const t=Pt.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let o=t.residualClasses;if(null===r)0===t.classBindings&&(n=$s(n=Bs(null,e,t,n,i),t.attrs,i),o=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==r)if(n=Bs(r,e,t,n,i),null===o){let n=function(e,t,n){const i=t.classBindings;if(0!==Qr(i))return e[Yr(i)]}(e,t);void 0!==n&&Array.isArray(n)&&(n=Bs(null,e,t,n[1],i),n=$s(n,t.attrs,i),function(e,t,n,i){e[Yr(t.classBindings)]=i}(e,t,0,n))}else o=function(e,t,n){let i;const r=t.directiveEnd;for(let o=1+t.directiveStylingLast;o0)&&(u=!0)}else c=n;if(r)if(0!==l){const t=Yr(e[a+1]);e[i+1]=Wr(t,a),0!==t&&(e[t+1]=Kr(e[t+1],i)),e[a+1]=131071&e[a+1]|i<<17}else e[i+1]=Wr(a,0),0!==a&&(e[a+1]=Kr(e[a+1],i)),a=i;else e[i+1]=Wr(l,0),0===a?a=i:e[l+1]=Kr(e[l+1],i),l=i;u&&(e[i+1]=Zr(e[i+1])),js(e,c,i,!0),js(e,c,i,!1),function(e,t,n,i,r){const o=e.residualClasses;null!=o&&"string"==typeof t&&Jn(o,t)>=0&&(n[i+1]=Jr(n[i+1]))}(t,c,e,i),s=Wr(a,l),t.classBindings=s}(r,o,t,n,s)}}(o,e,s,true),t!==$r&&gs(r,s,t)&&function(e,t,n,i,r,o,s,a){if(!(3&t.type))return;const l=e.data,c=l[a+1];Gs(1==(1&c)?qs(l,t,n,r,Qr(c),s):void 0)||(Gs(o)||function(e){return 2==(2&e)}(c)&&(o=qs(l,null,n,r,a,s)),function(e,t,n,i,r){const o=ft(e);r?o?e.addClass(n,i):n.classList.add(i):o?e.removeClass(n,i):n.classList.remove(i)}(i,0,wt(tn(),n),r,o))}(o,o.data[tn()],r,r[11],e,r[s+1]=function(e,t){return null==e||"object"==typeof e&&(e=ee(Si(e))),e}(t),true,s)}(e,t),zs}function Bs(e,t,n,i,r){let o=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const t=e[r],o=Array.isArray(t),l=o?t[1]:t,c=null===l;let u=n[r+1];u===$r&&(u=c?Ee:void 0);let d=c?Kn(u,i):l===i?u:void 0;if(o&&!Gs(d)&&(d=Kn(t,i)),Gs(d)&&(a=d,s))return a;const h=e[r+1];r=s?Yr(h):Qr(h)}if(null!==t){let e=o?t.residualClasses:t.residualStyles;null!=e&&(a=Kn(e,i))}return a}function Gs(e){return void 0!==e}function Ws(e,t=""){const n=It(),i=Ot(),r=e+Je,o=i.firstCreatePass?to(i,r,1,t,null):i.data[r],s=n[r]=function(e,t){return ft(e)?e.createText(t):e.createTextNode(t)}(n[11],t);Ar(i,n,s,o),Lt(o,!1)}function Ys(e){return Zs("",e,""),Ys}function Zs(e,t,n){const i=It(),r=ys(i,e,t,n);return r!==$r&&Vo(i,tn(),r),Zs}function Qs(e,t,n,i,r){const o=It(),s=function(e,t,n,i,r,o){const s=bs(e,Ht(),n,r);return Bt(2),s?t+ae(n)+i+ae(r)+o:$r}(o,e,t,n,i,r);return s!==$r&&Vo(o,tn(),s),Qs}function Ks(e,t,n,i,r,o,s){const a=It(),l=function(e,t,n,i,r,o,s,a){const l=ws(e,Ht(),n,r,s);return Bt(3),l?t+ae(n)+i+ae(r)+o+ae(s)+a:$r}(a,e,t,n,i,r,o,s);return l!==$r&&Vo(a,tn(),l),Ks}function Js(e,t,n){const i=It();return gs(i,zt(),t)&&mo(Ot(),rn(),i,e,t,i[11],n,!0),Js}const Xs=void 0;var ea=["en",[["a","p"],["AM","PM"],Xs],[["AM","PM"],Xs,Xs],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Xs,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Xs,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Xs,"{1} 'at' {0}",Xs],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===n?1:5}];let ta={};function na(e){const t=function(e){return e.toLowerCase().replace(/_/g,"-")}(e);let n=ia(t);if(n)return n;const i=t.split("-")[0];if(n=ia(i),n)return n;if("en"===i)return ea;throw new Error(`Missing locale data for the locale "${e}".`)}function ia(e){return e in ta||(ta[e]=Ie.ng&&Ie.ng.common&&Ie.ng.common.locales&&Ie.ng.common.locales[e]),ta[e]}var ra=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}({});const oa="en-US";let sa=oa;function aa(e){var t,n;n="Expected localeId to be defined",null==(t=e)&&function(e,t,n,i){throw new Error(`ASSERTION ERROR: ${e} [Expected=> null != ${t} <=Actual]`)}(n,t),"string"==typeof e&&(sa=e.toLowerCase().replace(/_/g,"-"))}function la(e,t,n,i,r){if(e=re(e),Array.isArray(e))for(let o=0;o>20;if(ts(e)||!e.multi){const i=new hn(l,r,_s),p=da(a,t,r?u:u+h,d);-1===p?(Pn(An(c,s),o,a),ca(o,e,t.length),t.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),n.push(i),s.push(i)):(n[p]=i,s[p]=i)}else{const p=da(a,t,u+h,d),m=da(a,t,u,u+h),f=p>=0&&n[p],g=m>=0&&n[m];if(r&&!g||!r&&!f){Pn(An(c,s),o,a);const u=function(e,t,n,i,r){const o=new hn(e,n,_s);return o.multi=[],o.index=t,o.componentProviders=0,ua(o,r,i&&!n),o}(r?pa:ha,n.length,r,i,l);!r&&g&&(n[m].providerFactory=u),ca(o,e,t.length,0),t.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),n.push(u),s.push(u)}else ca(o,e,p>-1?p:m,ua(n[r?m:p],l,!r&&i));!r&&i&&g&&n[m].componentProviders++}}}function ca(e,t,n,i){const r=ts(t);if(r||t.useClass){const o=(t.useClass||t).prototype.ngOnDestroy;if(o){const s=e.destroyHooks||(e.destroyHooks=[]);if(!r&&t.multi){const e=s.indexOf(n);-1===e?s.push(n,[i,o]):s[e+1].push(i,o)}else s.push(n,o)}}}function ua(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function da(e,t,n,i){for(let r=n;r{n.providersResolver=(n,i)=>function(e,t,n){const i=Ot();if(i.firstCreatePass){const r=ot(e);la(n,i.data,i.blueprint,r,!0),la(t,i.data,i.blueprint,r,!1)}}(n,i?i(e):e,t)}}class ba{}class wa{resolveComponentFactory(e){throw function(e){const t=Error(`No component factory found for ${ee(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(e)}}let va=(()=>{class e{}return e.NULL=new wa,e})();function ya(...e){}function Ca(e,t){return new _a(vt(e,t))}const Sa=function(){return Ca(Ft(),It())};let _a=(()=>{class e{constructor(e){this.nativeElement=e}}return e.__NG_ELEMENT_ID__=Sa,e})();class Aa{}let ka=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>xa(),e})();const xa=function(){const e=It(),t=St(Ft().index,e);return function(e){return e[11]}(et(t)?t:e)};let Ta=(()=>{class e{}return e.\u0275prov=ue({token:e,providedIn:"root",factory:()=>null}),e})();class Pa{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const Ma=new Pa("11.2.14");class Ia{constructor(){}supports(e){return ps(e)}create(e){return new Ea(e)}}const Oa=(e,t)=>t;class Ea{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||Oa}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,n=this._removalsHead,i=0,r=null;for(;t||n;){const o=!n||t&&t.currentIndex{i=this._trackByFn(t,e),null!==r&&Object.is(r.trackById,i)?(o&&(r=this._verifyReinsertion(r,e,i,t)),Object.is(r.item,e)||this._addIdentityChange(r,e)):(r=this._mismatch(r,e,i,t),o=!0),r=r._next,t++}),this.length=t;return this._truncate(r),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,n,i){let r;return null===e?r=this._itTail:(r=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,r,i)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,i))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,r,i)):e=this._addAfter(new Fa(t,n),r,i),e}_verifyReinsertion(e,t,n,i){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==r?e=this._reinsertAfter(r,e._prev,i):e.currentIndex!=i&&(e.currentIndex=i,this._addToMoves(e,i)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const i=e._prevRemoved,r=e._nextRemoved;return null===i?this._removalsHead=r:i._nextRemoved=r,null===r?this._removalsTail=i:r._prevRemoved=i,this._insertAfter(e,t,n),this._addToMoves(e,n),e}_moveAfter(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e}_addAfter(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,n){const i=null===t?this._itHead:t._next;return e._next=i,e._prev=t,null===i?this._itTail=e:i._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new La),this._linkedRecords.put(e),e.currentIndex=n,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e}_addToMoves(e,t){return e.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new La),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class Fa{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ua{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&Object.is(n.trackById,e))return n;return null}remove(e){const t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head}}class La{constructor(){this.map=new Map}put(e){const t=e.trackById;let n=this.map.get(t);n||(n=new Ua,this.map.set(t,n)),n.add(e)}get(e,t){const n=this.map.get(e);return n?n.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Da(e,t,n){const i=e.previousIndex;if(null===i)return i;let r=0;return n&&i{if(t&&t.key===n)this._maybeAddToChanges(t,e),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(n,e);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let e=t;null!==e;e=e._nextRemoved)e===this._mapHead&&(this._mapHead=null),this._records.delete(e.key),e._nextRemoved=e._next,e.previousValue=e.currentValue,e.currentValue=null,e._prev=null,e._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const n=this._records.get(e);this._maybeAddToChanges(n,t);const i=n._prev,r=n._next;return i&&(i._next=r),r&&(r._prev=i),n._next=null,n._prev=null,n}const n=new Va(e);return this._records.set(e,n),n.currentValue=t,this._addToAdditions(n),n}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Object.is(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(n=>t(e[n],n))}}class Va{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function ja(){return new Ha([new Ia])}let Ha=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(null!=n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>e.create(t,n||ja()),deps:[[e,new di,new ui]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(null!=t)return t;throw new Error(`Cannot find a differ supporting object '${e}' of type '${n=e,n.name||typeof n}'`);var n}}return e.\u0275prov=ue({token:e,providedIn:"root",factory:ja}),e})();function za(){return new Ba([new Ra])}let Ba=(()=>{class e{constructor(e){this.factories=e}static create(t,n){if(n){const e=n.factories.slice();t=t.concat(e)}return new e(t)}static extend(t){return{provide:e,useFactory:n=>e.create(t,n||za()),deps:[[e,new di,new ui]]}}find(e){const t=this.factories.find(t=>t.supports(e));if(t)return t;throw new Error(`Cannot find a differ supporting object '${e}'`)}}return e.\u0275prov=ue({token:e,providedIn:"root",factory:za}),e})();function $a(e,t,n,i,r=!1){for(;null!==n;){const o=t[n.index];if(null!==o&&i.push(bt(o)),tt(o))for(let e=Xe;e-1&&(mr(e,n),Yn(t,n))}this._attachedToViewContainer=!1}fr(this._lView[1],this._lView)}onDestroy(e){!function(e,t,n,i){const r=Lo(t);r.push(i)}(0,this._lView,0,e)}markForCheck(){Io(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){Oo(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){Vt(!0);try{Oo(e,t,n)}finally{Vt(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){var e;this._appRef=null,Mr(this._lView[1],e=this._lView,e[11],2,null,null)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e}}class Ga extends qa{constructor(e){super(e),this._view=e}detectChanges(){Eo(this._view)}checkNoChanges(){!function(e){Vt(!0);try{Eo(e)}finally{Vt(!1)}}(this._view)}get context(){return null}}const Wa=function(e=!1){return function(e,t,n){if(!n&&it(e)){const n=St(e.index,t);return new qa(n,n)}return 47&e.type?new qa(t[16],t):null}(Ft(),It(),e)};let Ya=(()=>{class e{}return e.__NG_ELEMENT_ID__=Wa,e.__ChangeDetectorRef__=!0,e})();const Za=[new Ra],Qa=new Ha([new Ia]),Ka=new Ba(Za),Ja=function(){return e=Ft(),t=It(),4&e.type?new tl(t,e,Ca(e,t)):null;var e,t};let Xa=(()=>{class e{}return e.__NG_ELEMENT_ID__=Ja,e})();const el=Xa,tl=class extends el{constructor(e,t,n){super(),this._declarationLView=e,this._declarationTContainer=t,this.elementRef=n}createEmbeddedView(e){const t=this._declarationTContainer.tViews,n=eo(this._declarationLView,t,e,16,null,t.declTNode,null,null,null,null);n[17]=this._declarationLView[this._declarationTContainer.index];const i=this._declarationLView[19];return null!==i&&(n[19]=i.createEmbeddedView(t)),io(t,n,e),new qa(n)}};class nl{}class il{}const rl=function(){return function(e,t){let n;const i=t[e.index];if(tt(i))n=i;else{let r;if(8&e.type)r=bt(i);else{const n=t[11];r=n.createComment("");const i=vt(e,t);wr(n,Cr(n,i),r,function(e,t){return ft(e)?e.nextSibling(t):t.nextSibling}(n,i),!1)}t[e.index]=n=ko(i,t,r,e),Mo(t,n)}return new al(n,e,t)}(Ft(),It())};let ol=(()=>{class e{}return e.__NG_ELEMENT_ID__=rl,e})();const sl=ol,al=class extends sl{constructor(e,t,n){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=n}get element(){return Ca(this._hostTNode,this._hostLView)}get injector(){return new Nn(this._hostTNode,this._hostLView)}get parentInjector(){const e=Tn(this._hostTNode,this._hostLView);if(wn(e)){const t=yn(e,this._hostLView),n=vn(e);return new Nn(t[1].data[n+8],t)}return new Nn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const t=ll(this._lContainer);return null!==t&&t[e]||null}get length(){return this._lContainer.length-Xe}createEmbeddedView(e,t,n){const i=e.createEmbeddedView(t||{});return this.insert(i,n),i}createComponent(e,t,n,i,r){const o=n||this.parentInjector;if(!r&&null==e.ngModule&&o){const e=o.get(nl,null);e&&(r=e)}const s=e.create(o,i,void 0,r);return this.insert(s.hostView,t),s}insert(e,t){const n=e._lView,i=n[1];if(tt(n[3])){const t=this.indexOf(e);if(-1!==t)this.detach(t);else{const t=n[3],i=new al(t,t[6],t[3]);i.detach(i.indexOf(e))}}const r=this._adjustIndex(t),o=this._lContainer;!function(e,t,n,i){const r=Xe+i,o=n.length;i>0&&(n[r-1][4]=t),iir});class ml extends ba{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=e.selectors.map(Br).join(","),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return hl(this.componentDef.inputs)}get outputs(){return hl(this.componentDef.outputs)}create(e,t,n,i){const r=(i=i||this.ngModule)?function(e,t){return{get:(n,i,r)=>{const o=e.get(n,ul,r);return o!==ul||i===ul?o:t.get(n,i,r)}}}(e,i.injector):e,o=r.get(Aa,gt),s=r.get(Ta,null),a=o.createRenderer(null,this.componentDef),l=this.componentDef.selectors[0][0]||"div",c=n?function(e,t,n){if(ft(e))return e.selectRootElement(t,n===ke.ShadowDom);let i="string"==typeof t?e.querySelector(t):t;return i.textContent="",i}(a,n,this.componentDef.encapsulation):hr(o.createRenderer(null,this.componentDef),l,function(e){const t=e.toLowerCase();return"svg"===t?"http://www.w3.org/2000/svg":"math"===t?"http://www.w3.org/1998/MathML/":null}(l)),u=this.componentDef.onPush?576:528,d={components:[],scheduler:ir,clean:Uo,playerHandler:null,flags:0},h=ho(0,null,null,1,0,null,null,null,null,null),p=eo(null,h,d,u,null,null,o,a,s,r);let m,f;Zt(p);try{const e=function(e,t,n,i,r,o){const s=n[1];n[20]=e;const a=to(s,20,2,"#host",null),l=a.mergedAttrs=t.hostAttrs;null!==l&&(jo(a,l,!0),null!==e&&(pn(r,e,l),null!==a.classes&&Er(r,e,a.classes),null!==a.styles&&Or(r,e,a.styles)));const c=i.createRenderer(e,t),u=eo(n,uo(t),null,t.onPush?64:16,n[20],a,i,c,null,null);return s.firstCreatePass&&(Pn(An(a,n),s,t.type),wo(s,a),yo(a,n.length,1)),Mo(n,u),n[20]=u}(c,this.componentDef,p,o,a);if(c)if(n)pn(a,c,["ng-version",Ma.full]);else{const{attrs:e,classes:t}=function(e){const t=[],n=[];let i=1,r=2;for(;i0&&Er(a,c,t.join(" "))}if(f=yt(h,Je),void 0!==t){const e=f.projection=[];for(let n=0;ne(s,t)),t.contentQueries){const e=Ft();t.contentQueries(1,s,e.directiveStart)}const a=Ft();return!o.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(nn(a.index),go(n[1],a,0,a.directiveStart,a.directiveEnd,t),bo(t,s)),s}(e,this.componentDef,p,d,[rs]),io(h,p,null)}finally{en()}return new fl(this.componentType,m,Ca(f,p),p,f)}}class fl extends class{}{constructor(e,t,n,i,r){super(),this.location=n,this._rootLView=i,this._tNode=r,this.instance=t,this.hostView=this.changeDetectorRef=new Ga(i),this.componentType=e}get injector(){return new Nn(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}}const gl=new Map;class bl extends nl{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new dl(this);const n=Ke(e),i=e[Ne]||null;i&&aa(i),this._bootstrapComponents=rr(n.bootstrap),this._r3Injector=Zo(e,t,[{provide:nl,useValue:this},{provide:va,useValue:this.componentFactoryResolver}],ee(e)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(e)}get(e,t=is.THROW_IF_NOT_FOUND,n=ve.Default){return e===is||e===nl||e===Ho?this:this._r3Injector.get(e,t,n)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class wl extends il{constructor(e){super(),this.moduleType=e,null!==Ke(e)&&function(e){const t=new Set;!function e(n){const i=Ke(n,!0),r=i.id;null!==r&&(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${ee(t)} vs ${ee(t.name)}`)}(r,gl.get(r),n),gl.set(r,n));const o=rr(i.imports);for(const s of o)t.has(s)||(t.add(s),e(s))}(e)}(e)}create(e){return new bl(this.moduleType,e)}}function vl(e,t,n){const i=jt()+e,r=It();return r[i]===$r?fs(r,i,n?t.call(n):t()):function(e,t){return e[t]}(r,i)}function yl(e,t,n,i){return _l(It(),jt(),e,t,n,i)}function Cl(e,t,n,i,r){return Al(It(),jt(),e,t,n,i,r)}function Sl(e,t){const n=e[t];return n===$r?void 0:n}function _l(e,t,n,i,r,o){const s=t+n;return gs(e,s,r)?fs(e,s+1,o?i.call(o,r):i(r)):Sl(e,s+1)}function Al(e,t,n,i,r,o,s){const a=t+n;return bs(e,a,r,o)?fs(e,a+2,s?i.call(s,r,o):i(r,o)):Sl(e,a+2)}function kl(e,t){const n=Ot();let i;const r=e+Je;n.firstCreatePass?(i=function(e,t){if(t)for(let n=t.length-1;n>=0;n--){const i=t[n];if(e===i.name)return i}throw new se("302",`The pipe '${e}' could not be found!`)}(t,n.pipeRegistry),n.data[r]=i,i.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(r,i.onDestroy)):i=n.data[r];const o=i.factory||(i.factory=st(i.type)),s=Ce(_s);try{const e=Sn(!1),t=o();return Sn(e),function(e,t,n,i){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=i}(n,It(),r,t),t}finally{Ce(s)}}function xl(e,t,n){const i=e+Je,r=It(),o=Ct(r,i);return Ml(r,Pl(r,i)?_l(r,jt(),t,o.transform,n,o):o.transform(n))}function Tl(e,t,n,i){const r=e+Je,o=It(),s=Ct(o,r);return Ml(o,Pl(o,r)?Al(o,jt(),t,s.transform,n,i,s):s.transform(n,i))}function Pl(e,t){return e[1].data[t].pure}function Ml(e,t){return hs.isWrapped(t)&&(t=hs.unwrap(t),e[Ht()]=$r),t}function Il(e){return t=>{setTimeout(e,void 0,t)}}const Ol=class extends _{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,n){var i,r,o;let s=e,a=t||(()=>null),l=n;if(e&&"object"==typeof e){const t=e;s=null===(i=t.next)||void 0===i?void 0:i.bind(t),a=null===(r=t.error)||void 0===r?void 0:r.bind(t),l=null===(o=t.complete)||void 0===o?void 0:o.bind(t)}this.__isAsync&&(a=Il(a),s&&(s=Il(s)),l&&(l=Il(l)));const c=super.subscribe({next:s,error:a,complete:l});return e instanceof d&&e.add(c),c}},El=new Bn("Application Initializer");let Fl=(()=>{class e{constructor(e){this.appInits=e,this.resolve=ya,this.reject=ya,this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}runInitializers(){if(this.initialized)return;const e=[],t=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n{t()}).catch(e=>{this.reject(e)}),0===e.length&&t(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(si(El,8))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const Ul=new Bn("AppId"),Ll={provide:Ul,useFactory:function(){return`${Dl()}${Dl()}${Dl()}`},deps:[]};function Dl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Rl=new Bn("Platform Initializer"),Nl=new Bn("Platform ID"),Vl=new Bn("appBootstrapListener");let jl=(()=>{class e{log(e){console.log(e)}warn(e){console.warn(e)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const Hl=new Bn("LocaleId"),zl=new Bn("DefaultCurrencyCode");class Bl{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}const $l=function(e){return new wl(e)},ql=$l,Gl=function(e){return Promise.resolve($l(e))},Wl=function(e){const t=$l(e),n=rr(Ke(e).declarations).reduce((e,t)=>{const n=Qe(t);return n&&e.push(new ml(n)),e},[]);return new Bl(t,n)},Yl=Wl,Zl=function(e){return Promise.resolve(Wl(e))};let Ql=(()=>{class e{constructor(){this.compileModuleSync=ql,this.compileModuleAsync=Gl,this.compileModuleAndAllComponentsSync=Yl,this.compileModuleAndAllComponentsAsync=Zl}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const Kl=(()=>Promise.resolve(0))();function Jl(e){"undefined"==typeof Zone?Kl.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class Xl{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:n=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ol(!1),this.onMicrotaskEmpty=new Ol(!1),this.onStable=new Ol(!1),this.onError=new Ol(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const i=this;i._nesting=0,i._outer=i._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(i._inner=i._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(i._inner=i._inner.fork(Zone.longStackTraceZoneSpec)),i.shouldCoalesceEventChangeDetection=!n&&t,i.shouldCoalesceRunChangeDetection=n,i.lastRequestAnimationFrameId=-1,i.nativeRequestAnimationFrame=function(){let e=Ie.requestAnimationFrame,t=Ie.cancelAnimationFrame;if("undefined"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=()=>{!function(e){-1===e.lastRequestAnimationFrameId&&(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(Ie,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,nc(e),tc(e)},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),nc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,i,r,o,s,a)=>{try{return ic(e),n.invokeTask(r,o,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||e.shouldCoalesceRunChangeDetection)&&t(),rc(e)}},onInvoke:(n,i,r,o,s,a,l)=>{try{return ic(e),n.invoke(r,o,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),rc(e)}},onHasTask:(t,n,i,r)=>{t.hasTask(i,r),n===i&&("microTask"==r.change?(e._hasPendingMicrotasks=r.microTask,nc(e),tc(e)):"macroTask"==r.change&&(e.hasPendingMacrotasks=r.macroTask))},onHandleError:(t,n,i,r)=>(t.handleError(i,r),e.runOutsideAngular(()=>e.onError.emit(r)),!1)})}(i)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Xl.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Xl.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,i){const r=this._inner,o=r.scheduleEventTask("NgZoneEvent: "+i,e,ec,ya,ya);try{return r.runTask(o,t,n)}finally{r.cancelTask(o)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}}const ec={};function tc(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function nc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function ic(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function rc(e){e._nesting--,tc(e)}class oc{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ol,this.onMicrotaskEmpty=new Ol,this.onStable=new Ol,this.onError=new Ol}run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,i){return e.apply(t,n)}}let sc=(()=>{class e{constructor(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Xl.assertNotInAngularZone(),Jl(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Jl(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(t=>!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,t,n){let i=-1;t&&t>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(e=>e.timeoutId!==i),e(this._didWork,this.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:i,updateCb:n})}whenStable(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(e,t,n){return[]}}return e.\u0275fac=function(t){return new(t||e)(si(Xl))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),ac=(()=>{class e{constructor(){this._applications=new Map,uc.addToWindow(this)}registerApplication(e,t){this._applications.set(e,t)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,t=!0){return uc.findTestabilityInTree(this,e,t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();class lc{addToWindow(e){}findTestabilityInTree(e,t,n){return null}}let cc,uc=new lc,dc=!0,hc=!1;const pc=new Bn("AllowMultipleToken");class mc{constructor(e,t){this.name=e,this.token=t}}function fc(e,t,n=[]){const i=`Platform: ${t}`,r=new Bn(i);return(t=[])=>{let o=gc();if(!o||o.injector.get(pc,!1))if(e)e(n.concat(t).concat({provide:r,useValue:!0}));else{const e=n.concat(t).concat({provide:r,useValue:!0},{provide:Bo,useValue:"platform"});!function(e){if(cc&&!cc.destroyed&&!cc.injector.get(pc,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");cc=e.get(bc);const t=e.get(Rl,null);t&&t.forEach(e=>e())}(is.create({providers:e,name:i}))}return function(e){const t=gc();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}(r)}}function gc(){return cc&&!cc.destroyed?cc:null}let bc=(()=>{class e{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,t){const n=function(e,t){let n;return n="noop"===e?new oc:("zone.js"===e?void 0:e)||new Xl({enableLongStackTrace:(hc=!0,dc),shouldCoalesceEventChangeDetection:!!(null==t?void 0:t.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==t?void 0:t.ngZoneRunCoalescing)}),n}(t?t.ngZone:void 0,{ngZoneEventCoalescing:t&&t.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:t&&t.ngZoneRunCoalescing||!1}),i=[{provide:Xl,useValue:n}];return n.run(()=>{const t=is.create({providers:i,parent:this.injector,name:e.moduleType.name}),r=e.create(t),o=r.injector.get(tr,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.runOutsideAngular(()=>{const e=n.onError.subscribe({next:e=>{o.handleError(e)}});r.onDestroy(()=>{yc(this._modules,r),e.unsubscribe()})}),function(e,t,n){try{const i=n();return Es(i)?i.catch(n=>{throw t.runOutsideAngular(()=>e.handleError(n)),n}):i}catch(i){throw t.runOutsideAngular(()=>e.handleError(i)),i}}(o,n,()=>{const e=r.injector.get(Fl);return e.runInitializers(),e.donePromise.then(()=>(aa(r.injector.get(Hl,oa)||oa),this._moduleDoBootstrap(r),r))})})}bootstrapModule(e,t=[]){const n=wc({},t);return function(e,t,n){const i=new wl(n);return Promise.resolve(i)}(0,0,e).then(e=>this.bootstrapModuleFactory(e,n))}_moduleDoBootstrap(e){const t=e.injector.get(vc);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(e=>t.bootstrap(e));else{if(!e.instance.ngDoBootstrap)throw new Error(`The module ${ee(e.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.`);e.instance.ngDoBootstrap(t)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(e=>e.destroy()),this._destroyListeners.forEach(e=>e()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(si(is))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function wc(e,t){return Array.isArray(t)?t.reduce(wc,e):Object.assign(Object.assign({},e),t)}let vc=(()=>{class e{constructor(e,t,n,i,r){this._zone=e,this._injector=t,this._exceptionHandler=n,this._componentFactoryResolver=i,this._initStatus=r,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const o=new w(e=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{e.next(this._stable),e.complete()})}),s=new w(e=>{let t;this._zone.runOutsideAngular(()=>{t=this._zone.onStable.subscribe(()=>{Xl.assertNotInAngularZone(),Jl(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,e.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{Xl.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{e.next(!1)}))});return()=>{t.unsubscribe(),n.unsubscribe()}});this.isStable=function(...e){let t=Number.POSITIVE_INFINITY,n=null,i=e[e.length-1];return k(i)?(n=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(t=e.pop())):"number"==typeof i&&(t=e.pop()),null===n&&1===e.length&&e[0]instanceof w?e[0]:B(t)($(e,n))}(o,s.pipe(e=>{return q()((t=K,function(e){let n;n="function"==typeof t?t:function(){return t};const i=Object.create(e,Z);return i.source=e,i.subjectFactory=n,i})(e));var t}))}bootstrap(e,t){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let n;n=e instanceof ba?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);const i=n.isBoundToModule?void 0:this._injector.get(nl),r=n.create(is.NULL,[],t||n.selector,i),o=r.location.nativeElement,s=r.injector.get(sc,null),a=s&&r.injector.get(ac);return s&&a&&a.registerApplication(o,s),r.onDestroy(()=>{this.detachView(r.hostView),yc(this.components,r),a&&a.unregisterApplication(o)}),this._loadComponent(r),r}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){const t=e;yc(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Vl,[]).concat(this._bootstrapListeners).forEach(t=>t(e))}ngOnDestroy(){this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return e.\u0275fac=function(t){return new(t||e)(si(Xl),si(is),si(tr),si(va),si(Fl))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function yc(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Cc{}class Sc{}const _c={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};let Ac=(()=>{class e{constructor(e,t){this._compiler=e,this._config=t||_c}load(e){return this.loadAndCompile(e)}loadAndCompile(e){let[t,i]=e.split("#");return void 0===i&&(i="default"),n("zn8P")(t).then(e=>e[i]).then(e=>kc(e,t,i)).then(e=>this._compiler.compileModuleAsync(e))}loadFactory(e){let[t,i]=e.split("#"),r="NgFactory";return void 0===i&&(i="default",r=""),n("zn8P")(this._config.factoryPathPrefix+t+this._config.factoryPathSuffix).then(e=>e[i+r]).then(e=>kc(e,t,i))}}return e.\u0275fac=function(t){return new(t||e)(si(Ql),si(Sc,8))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function kc(e,t,n){if(!e)throw new Error(`Cannot find '${n}' in '${t}'`);return e}const xc=fc(null,"core",[{provide:Nl,useValue:"unknown"},{provide:bc,deps:[is]},{provide:ac,deps:[]},{provide:jl,deps:[]}]),Tc=[{provide:vc,useClass:vc,deps:[Xl,is,tr,va,Fl]},{provide:pl,deps:[Xl],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(e){t.push(e)}}},{provide:Fl,useClass:Fl,deps:[[new ui,El]]},{provide:Ql,useClass:Ql,deps:[]},Ll,{provide:Ha,useFactory:function(){return Qa},deps:[]},{provide:Ba,useFactory:function(){return Ka},deps:[]},{provide:Hl,useFactory:function(e){return aa(e=e||"undefined"!=typeof $localize&&$localize.locale||oa),e},deps:[[new ci(Hl),new ui,new di]]},{provide:zl,useValue:"USD"}];let Pc=(()=>{class e{constructor(e){}}return e.\u0275fac=function(t){return new(t||e)(si(vc))},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:Tc}),e})(),Mc=null;function Ic(){return Mc}const Oc=new Bn("DocumentToken");let Ec=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({factory:Fc,token:e,providedIn:"platform"}),e})();function Fc(){return si(Lc)}const Uc=new Bn("Location Initialized");let Lc=(()=>{class e extends Ec{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=Ic().getLocation(),this._history=Ic().getHistory()}getBaseHrefFromDOM(){return Ic().getBaseHref(this._doc)}onPopState(e){Ic().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",e,!1)}onHashChange(e){Ic().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",e,!1)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(e){this.location.pathname=e}pushState(e,t,n){Dc()?this._history.pushState(e,t,n):this.location.hash=n}replaceState(e,t,n){Dc()?this._history.replaceState(e,t,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({factory:Rc,token:e,providedIn:"platform"}),e})();function Dc(){return!!window.history.pushState}function Rc(){return new Lc(si(Oc))}function Nc(e,t){if(0==e.length)return t;if(0==t.length)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function Vc(e){const t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function jc(e){return e&&"?"!==e[0]?"?"+e:e}let Hc=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({factory:zc,token:e,providedIn:"root"}),e})();function zc(e){const t=si(Oc).location;return new $c(si(Ec),t&&t.origin||"")}const Bc=new Bn("appBaseHref");let $c=(()=>{class e extends Hc{constructor(e,t){if(super(),this._platformLocation=e,null==t&&(t=this._platformLocation.getBaseHrefFromDOM()),null==t)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=t}onPopState(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Nc(this._baseHref,e)}path(e=!1){const t=this._platformLocation.pathname+jc(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?`${t}${n}`:t}pushState(e,t,n,i){const r=this.prepareExternalUrl(n+jc(i));this._platformLocation.pushState(e,t,r)}replaceState(e,t,n,i){const r=this.prepareExternalUrl(n+jc(i));this._platformLocation.replaceState(e,t,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return e.\u0275fac=function(t){return new(t||e)(si(Ec),si(Bc,8))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),qc=(()=>{class e extends Hc{constructor(e,t){super(),this._platformLocation=e,this._baseHref="",null!=t&&(this._baseHref=t)}onPopState(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)}getBaseHref(){return this._baseHref}path(e=!1){let t=this._platformLocation.hash;return null==t&&(t="#"),t.length>0?t.substring(1):t}prepareExternalUrl(e){const t=Nc(this._baseHref,e);return t.length>0?"#"+t:t}pushState(e,t,n,i){let r=this.prepareExternalUrl(n+jc(i));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(e,t,r)}replaceState(e,t,n,i){let r=this.prepareExternalUrl(n+jc(i));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}return e.\u0275fac=function(t){return new(t||e)(si(Ec),si(Bc,8))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),Gc=(()=>{class e{constructor(e,t){this._subject=new Ol,this._urlChangeListeners=[],this._platformStrategy=e;const n=this._platformStrategy.getBaseHref();this._platformLocation=t,this._baseHref=Vc(Yc(n)),this._platformStrategy.onPopState(e=>{this._subject.emit({url:this.path(!0),pop:!0,state:e.state,type:e.type})})}path(e=!1){return this.normalize(this._platformStrategy.path(e))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(e,t=""){return this.path()==this.normalize(e+jc(t))}normalize(t){return e.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,Yc(t)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)}go(e,t="",n=null){this._platformStrategy.pushState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+jc(t)),n)}replaceState(e,t="",n=null){this._platformStrategy.replaceState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+jc(t)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(e){this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(e=>{this._notifyUrlChangeListeners(e.url,e.state)}))}_notifyUrlChangeListeners(e="",t){this._urlChangeListeners.forEach(n=>n(e,t))}subscribe(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})}}return e.\u0275fac=function(t){return new(t||e)(si(Hc),si(Ec))},e.normalizeQueryParams=jc,e.joinWithSlash=Nc,e.stripTrailingSlash=Vc,e.\u0275prov=ue({factory:Wc,token:e,providedIn:"root"}),e})();function Wc(){return new Gc(si(Hc),si(Ec))}function Yc(e){return e.replace(/\/index.html$/,"")}var Zc=function(e){return e[e.Zero=0]="Zero",e[e.One=1]="One",e[e.Two=2]="Two",e[e.Few=3]="Few",e[e.Many=4]="Many",e[e.Other=5]="Other",e}({}),Qc=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}({}),Kc=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}({}),Jc=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}({}),Xc=function(e){return e[e.Decimal=0]="Decimal",e[e.Group=1]="Group",e[e.List=2]="List",e[e.PercentSign=3]="PercentSign",e[e.PlusSign=4]="PlusSign",e[e.MinusSign=5]="MinusSign",e[e.Exponential=6]="Exponential",e[e.SuperscriptingExponent=7]="SuperscriptingExponent",e[e.PerMille=8]="PerMille",e[e[1/0]=9]="Infinity",e[e.NaN=10]="NaN",e[e.TimeSeparator=11]="TimeSeparator",e[e.CurrencyDecimal=12]="CurrencyDecimal",e[e.CurrencyGroup=13]="CurrencyGroup",e}({});function eu(e,t){return ou(na(e)[ra.DateFormat],t)}function tu(e,t){return ou(na(e)[ra.TimeFormat],t)}function nu(e,t){return ou(na(e)[ra.DateTimeFormat],t)}function iu(e,t){const n=na(e),i=n[ra.NumberSymbols][t];if(void 0===i){if(t===Xc.CurrencyDecimal)return n[ra.NumberSymbols][Xc.Decimal];if(t===Xc.CurrencyGroup)return n[ra.NumberSymbols][Xc.Group]}return i}function ru(e){if(!e[ra.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[ra.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function ou(e,t){for(let n=t;n>-1;n--)if(void 0!==e[n])return e[n];throw new Error("Locale data API: locale data undefined")}function su(e){const[t,n]=e.split(":");return{hours:+t,minutes:+n}}const au=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,lu={},cu=/((?:[^GyYMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var uu=function(e){return e[e.Short=0]="Short",e[e.ShortGMT=1]="ShortGMT",e[e.Long=2]="Long",e[e.Extended=3]="Extended",e}({}),du=function(e){return e[e.FullYear=0]="FullYear",e[e.Month=1]="Month",e[e.Date=2]="Date",e[e.Hours=3]="Hours",e[e.Minutes=4]="Minutes",e[e.Seconds=5]="Seconds",e[e.FractionalSeconds=6]="FractionalSeconds",e[e.Day=7]="Day",e}({}),hu=function(e){return e[e.DayPeriods=0]="DayPeriods",e[e.Days=1]="Days",e[e.Months=2]="Months",e[e.Eras=3]="Eras",e}({});function pu(e,t,n,i){let r=function(e){if(xu(e))return e;if("number"==typeof e&&!isNaN(e))return new Date(e);if("string"==typeof e){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){const[t,n=1,i=1]=e.split("-").map(e=>+e);return mu(t,n-1,i)}const t=parseFloat(e);if(!isNaN(e-t))return new Date(t);let n;if(n=e.match(au))return function(e){const t=new Date(0);let n=0,i=0;const r=e[8]?t.setUTCFullYear:t.setFullYear,o=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),i=Number(e[9]+e[11])),r.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));const s=Number(e[4]||0)-n,a=Number(e[5]||0)-i,l=Number(e[6]||0),c=Math.floor(1e3*parseFloat("0."+(e[7]||0)));return o.call(t,s,a,l,c),t}(n)}const t=new Date(e);if(!xu(t))throw new Error(`Unable to convert "${e}" into a date`);return t}(e);t=fu(n,t)||t;let o,s=[];for(;t;){if(o=cu.exec(t),!o){s.push(t);break}{s=s.concat(o.slice(1));const e=s.pop();if(!e)break;t=e}}let a=r.getTimezoneOffset();i&&(a=ku(i,a),r=function(e,t,n){const i=e.getTimezoneOffset();return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,-1*(ku(t,i)-i))}(r,i));let l="";return s.forEach(e=>{const t=function(e){if(Au[e])return Au[e];let t;switch(e){case"G":case"GG":case"GGG":t=vu(hu.Eras,Kc.Abbreviated);break;case"GGGG":t=vu(hu.Eras,Kc.Wide);break;case"GGGGG":t=vu(hu.Eras,Kc.Narrow);break;case"y":t=wu(du.FullYear,1,0,!1,!0);break;case"yy":t=wu(du.FullYear,2,0,!0,!0);break;case"yyy":t=wu(du.FullYear,3,0,!1,!0);break;case"yyyy":t=wu(du.FullYear,4,0,!1,!0);break;case"Y":t=_u(1);break;case"YY":t=_u(2,!0);break;case"YYY":t=_u(3);break;case"YYYY":t=_u(4);break;case"M":case"L":t=wu(du.Month,1,1);break;case"MM":case"LL":t=wu(du.Month,2,1);break;case"MMM":t=vu(hu.Months,Kc.Abbreviated);break;case"MMMM":t=vu(hu.Months,Kc.Wide);break;case"MMMMM":t=vu(hu.Months,Kc.Narrow);break;case"LLL":t=vu(hu.Months,Kc.Abbreviated,Qc.Standalone);break;case"LLLL":t=vu(hu.Months,Kc.Wide,Qc.Standalone);break;case"LLLLL":t=vu(hu.Months,Kc.Narrow,Qc.Standalone);break;case"w":t=Su(1);break;case"ww":t=Su(2);break;case"W":t=Su(1,!0);break;case"d":t=wu(du.Date,1);break;case"dd":t=wu(du.Date,2);break;case"E":case"EE":case"EEE":t=vu(hu.Days,Kc.Abbreviated);break;case"EEEE":t=vu(hu.Days,Kc.Wide);break;case"EEEEE":t=vu(hu.Days,Kc.Narrow);break;case"EEEEEE":t=vu(hu.Days,Kc.Short);break;case"a":case"aa":case"aaa":t=vu(hu.DayPeriods,Kc.Abbreviated);break;case"aaaa":t=vu(hu.DayPeriods,Kc.Wide);break;case"aaaaa":t=vu(hu.DayPeriods,Kc.Narrow);break;case"b":case"bb":case"bbb":t=vu(hu.DayPeriods,Kc.Abbreviated,Qc.Standalone,!0);break;case"bbbb":t=vu(hu.DayPeriods,Kc.Wide,Qc.Standalone,!0);break;case"bbbbb":t=vu(hu.DayPeriods,Kc.Narrow,Qc.Standalone,!0);break;case"B":case"BB":case"BBB":t=vu(hu.DayPeriods,Kc.Abbreviated,Qc.Format,!0);break;case"BBBB":t=vu(hu.DayPeriods,Kc.Wide,Qc.Format,!0);break;case"BBBBB":t=vu(hu.DayPeriods,Kc.Narrow,Qc.Format,!0);break;case"h":t=wu(du.Hours,1,-12);break;case"hh":t=wu(du.Hours,2,-12);break;case"H":t=wu(du.Hours,1);break;case"HH":t=wu(du.Hours,2);break;case"m":t=wu(du.Minutes,1);break;case"mm":t=wu(du.Minutes,2);break;case"s":t=wu(du.Seconds,1);break;case"ss":t=wu(du.Seconds,2);break;case"S":t=wu(du.FractionalSeconds,1);break;case"SS":t=wu(du.FractionalSeconds,2);break;case"SSS":t=wu(du.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=yu(uu.Short);break;case"ZZZZZ":t=yu(uu.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=yu(uu.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=yu(uu.Long);break;default:return null}return Au[e]=t,t}(e);l+=t?t(r,n,a):"''"===e?"'":e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function mu(e,t,n){const i=new Date(0);return i.setFullYear(e,t,n),i.setHours(0,0,0),i}function fu(e,t){const n=function(e){return na(e)[ra.LocaleId]}(e);if(lu[n]=lu[n]||{},lu[n][t])return lu[n][t];let i="";switch(t){case"shortDate":i=eu(e,Jc.Short);break;case"mediumDate":i=eu(e,Jc.Medium);break;case"longDate":i=eu(e,Jc.Long);break;case"fullDate":i=eu(e,Jc.Full);break;case"shortTime":i=tu(e,Jc.Short);break;case"mediumTime":i=tu(e,Jc.Medium);break;case"longTime":i=tu(e,Jc.Long);break;case"fullTime":i=tu(e,Jc.Full);break;case"short":const t=fu(e,"shortTime"),n=fu(e,"shortDate");i=gu(nu(e,Jc.Short),[t,n]);break;case"medium":const r=fu(e,"mediumTime"),o=fu(e,"mediumDate");i=gu(nu(e,Jc.Medium),[r,o]);break;case"long":const s=fu(e,"longTime"),a=fu(e,"longDate");i=gu(nu(e,Jc.Long),[s,a]);break;case"full":const l=fu(e,"fullTime"),c=fu(e,"fullDate");i=gu(nu(e,Jc.Full),[l,c])}return i&&(lu[n][t]=i),i}function gu(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(e,n){return null!=t&&n in t?t[n]:e})),e}function bu(e,t,n="-",i,r){let o="";(e<0||r&&e<=0)&&(r?e=1-e:(e=-e,o=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===du.Hours)0===a&&-12===n&&(a=12);else if(e===du.FractionalSeconds)return l=t,bu(a,3).substr(0,l);var l;const c=iu(s,Xc.MinusSign);return bu(a,t,c,i,r)}}function vu(e,t,n=Qc.Format,i=!1){return function(r,o){return function(e,t,n,i,r,o){switch(n){case hu.Months:return function(e,t,n){const i=na(e),r=ou([i[ra.MonthsFormat],i[ra.MonthsStandalone]],t);return ou(r,n)}(t,r,i)[e.getMonth()];case hu.Days:return function(e,t,n){const i=na(e),r=ou([i[ra.DaysFormat],i[ra.DaysStandalone]],t);return ou(r,n)}(t,r,i)[e.getDay()];case hu.DayPeriods:const s=e.getHours(),a=e.getMinutes();if(o){const e=function(e){const t=na(e);return ru(t),(t[ra.ExtraData][2]||[]).map(e=>"string"==typeof e?su(e):[su(e[0]),su(e[1])])}(t),n=function(e,t,n){const i=na(e);ru(i);const r=ou([i[ra.ExtraData][0],i[ra.ExtraData][1]],t)||[];return ou(r,n)||[]}(t,r,i),o=e.findIndex(e=>{if(Array.isArray(e)){const[t,n]=e,i=s>=t.hours&&a>=t.minutes,r=s0?Math.floor(r/60):Math.ceil(r/60);switch(e){case uu.Short:return(r>=0?"+":"")+bu(s,2,o)+bu(Math.abs(r%60),2,o);case uu.ShortGMT:return"GMT"+(r>=0?"+":"")+bu(s,1,o);case uu.Long:return"GMT"+(r>=0?"+":"")+bu(s,2,o)+":"+bu(Math.abs(r%60),2,o);case uu.Extended:return 0===i?"Z":(r>=0?"+":"")+bu(s,2,o)+":"+bu(Math.abs(r%60),2,o);default:throw new Error(`Unknown zone width "${e}"`)}}}function Cu(e){return mu(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Su(e,t=!1){return function(n,i){let r;if(t){const e=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,t=n.getDate();r=1+Math.floor((t+e)/7)}else{const e=Cu(n),t=function(e){const t=mu(e,0,1).getDay();return mu(e,0,1+(t<=4?4:11)-t)}(e.getFullYear()),i=e.getTime()-t.getTime();r=1+Math.round(i/6048e5)}return bu(r,e,iu(i,Xc.MinusSign))}}function _u(e,t=!1){return function(n,i){return bu(Cu(n).getFullYear(),e,iu(i,Xc.MinusSign),t)}}const Au={};function ku(e,t){e=e.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function xu(e){return e instanceof Date&&!isNaN(e.valueOf())}class Tu{}let Pu=(()=>{class e extends Tu{constructor(e){super(),this.locale=e}getPluralCategory(e,t){switch(function(e){return na(e)[ra.PluralCase]}(t||this.locale)(e)){case Zc.Zero:return"zero";case Zc.One:return"one";case Zc.Two:return"two";case Zc.Few:return"few";case Zc.Many:return"many";default:return"other"}}}return e.\u0275fac=function(t){return new(t||e)(si(Hl))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function Mu(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const e=n.indexOf("="),[i,r]=-1==e?[n,""]:[n.slice(0,e),n.slice(e+1)];if(i.trim()===t)return decodeURIComponent(r)}return null}let Iu=(()=>{class e{constructor(e,t,n,i){this._iterableDiffers=e,this._keyValueDiffers=t,this._ngEl=n,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(ps(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(e=>this._toggleClass(e.key,e.currentValue)),e.forEachChangedItem(e=>this._toggleClass(e.key,e.currentValue)),e.forEachRemovedItem(e=>{e.previousValue&&this._toggleClass(e.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(e=>{if("string"!=typeof e.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ee(e.item)}`);this._toggleClass(e.item,!0)}),e.forEachRemovedItem(e=>this._toggleClass(e.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(e=>this._toggleClass(e,!0)):Object.keys(e).forEach(t=>this._toggleClass(t,!!e[t])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(e=>this._toggleClass(e,!1)):Object.keys(e).forEach(e=>this._toggleClass(e,!1)))}_toggleClass(e,t){(e=e.trim())&&e.split(/\s+/g).forEach(e=>{t?this._renderer.addClass(this._ngEl.nativeElement,e):this._renderer.removeClass(this._ngEl.nativeElement,e)})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ha),_s(Ba),_s(_a),_s(ka))},e.\u0275dir=Ye({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),e})();class Ou{constructor(e,t,n,i){this.$implicit=e,this.ngForOf=t,this.index=n,this.count=i}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Eu=(()=>{class e{constructor(e,t,n){this._viewContainer=e,this._template=t,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;if(!this._differ&&n)try{this._differ=this._differs.find(n).create(this.ngForTrackBy)}catch(t){throw new Error(`Cannot find a differ supporting object '${n}' of type '${e=n,e.name||typeof e}'. NgFor only supports binding to Iterables such as Arrays.`)}}var e;if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const t=[];e.forEachOperation((e,n,i)=>{if(null==e.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new Ou(null,this._ngForOf,-1,-1),null===i?void 0:i),r=new Fu(e,n);t.push(r)}else if(null==i)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const r=this._viewContainer.get(n);this._viewContainer.move(r,i);const o=new Fu(e,r);t.push(o)}});for(let n=0;n{this._viewContainer.get(e.currentIndex).context.$implicit=e.item})}_perViewChange(e,t){e.context.$implicit=t.item}static ngTemplateContextGuard(e,t){return!0}}return e.\u0275fac=function(t){return new(t||e)(_s(ol),_s(Xa),_s(Ha))},e.\u0275dir=Ye({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),e})();class Fu{constructor(e,t){this.record=e,this.view=t}}let Uu=(()=>{class e{constructor(e,t){this._viewContainer=e,this._context=new Lu,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=t}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){Du("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){Du("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,t){return!0}}return e.\u0275fac=function(t){return new(t||e)(_s(ol),_s(Xa))},e.\u0275dir=Ye({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),e})();class Lu{constructor(){this.$implicit=null,this.ngIf=null}}function Du(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${ee(t)}'.`)}function Ru(e,t){return Error(`InvalidPipeArgument: '${t}' for pipe '${ee(e)}'`)}let Nu=(()=>{class e{constructor(e){this.locale=e}transform(t,n="mediumDate",i,r){if(null==t||""===t||t!=t)return null;try{return pu(t,n,r||this.locale,i)}catch(o){throw Ru(e,o.message)}}}return e.\u0275fac=function(t){return new(t||e)(_s(Hl))},e.\u0275pipe=Ze({name:"date",type:e,pure:!0}),e})();const Vu=/#/g;let ju=(()=>{class e{constructor(e){this._localization=e}transform(t,n,i){if(null==t)return"";if("object"!=typeof n||null===n)throw Ru(e,n);return n[function(e,t,n,i){let r=`=${e}`;if(t.indexOf(r)>-1)return r;if(r=n.getPluralCategory(e,i),t.indexOf(r)>-1)return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${e}"`)}(t,Object.keys(n),this._localization,i)].replace(Vu,t.toString())}}return e.\u0275fac=function(t){return new(t||e)(_s(Tu))},e.\u0275pipe=Ze({name:"i18nPlural",type:e,pure:!0}),e})(),Hu=(()=>{class e{transform(t,n,i){if(null==t)return null;if(!this.supports(t))throw Ru(e,t);return t.slice(n,i)}supports(e){return"string"==typeof e||Array.isArray(e)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Ze({name:"slice",type:e,pure:!1}),e})(),zu=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[{provide:Tu,useClass:Pu}]}),e})();function Bu(e){return"server"===e}let $u=(()=>{class e{}return e.\u0275prov=ue({token:e,providedIn:"root",factory:()=>new qu(si(Oc),window)}),e})();class qu{constructor(e,t){this.document=e,this.window=t,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){if(!this.supportsScrolling())return;const t=function(e,t){const n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&(e.body.createShadowRoot||e.body.attachShadow)){const n=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let i=n.currentNode;for(;i;){const e=i.shadowRoot;if(e){const n=e.getElementById(t)||e.querySelector(`[name="${t}"]`);if(n)return n}i=n.nextNode()}}return null}(this.document,e);t&&(this.scrollToElement(t),this.attemptFocus(t))}setHistoryScrollRestoration(e){if(this.supportScrollRestoration()){const t=this.window.history;t&&t.scrollRestoration&&(t.scrollRestoration=e)}}scrollToElement(e){const t=e.getBoundingClientRect(),n=t.left+this.window.pageXOffset,i=t.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(n-r[0],i-r[1])}attemptFocus(e){return e.focus(),this.document.activeElement===e}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const e=Gu(this.window.history)||Gu(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch(e){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(e){return!1}}}function Gu(e){return Object.getOwnPropertyDescriptor(e,"scrollRestoration")}class Wu extends class extends class{}{constructor(){super()}supportsDOMEvents(){return!0}}{static makeCurrent(){var e;e=new Wu,Mc||(Mc=e)}getProperty(e,t){return e[t]}log(e){window.console&&window.console.log&&window.console.log(e)}logGroup(e){window.console&&window.console.group&&window.console.group(e)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}onAndCancel(e,t,n){return e.addEventListener(t,n,!1),()=>{e.removeEventListener(t,n,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){return e.parentNode&&e.parentNode.removeChild(e),e}getValue(e){return e.value}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(e){const t=Zu||(Zu=document.querySelector("base"),Zu)?Zu.getAttribute("href"):null;return null==t?null:(n=t,Yu||(Yu=document.createElement("a")),Yu.setAttribute("href",n),"/"===Yu.pathname.charAt(0)?Yu.pathname:"/"+Yu.pathname);var n}resetBaseElement(){Zu=null}getUserAgent(){return window.navigator.userAgent}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(e){return Mu(document.cookie,e)}}let Yu,Zu=null;const Qu=new Bn("TRANSITION_ID"),Ku=[{provide:El,useFactory:function(e,t,n){return()=>{n.get(Fl).donePromise.then(()=>{const n=Ic();Array.prototype.slice.apply(t.querySelectorAll("style[ng-transition]")).filter(t=>t.getAttribute("ng-transition")===e).forEach(e=>n.remove(e))})}},deps:[Qu,Oc,is],multi:!0}];class Ju{static init(){var e;e=new Ju,uc=e}addToWindow(e){Ie.getAngularTestability=(t,n=!0)=>{const i=e.findTestabilityInTree(t,n);if(null==i)throw new Error("Could not find testability for element.");return i},Ie.getAllAngularTestabilities=()=>e.getAllTestabilities(),Ie.getAllAngularRootElements=()=>e.getAllRootElements(),Ie.frameworkStabilizers||(Ie.frameworkStabilizers=[]),Ie.frameworkStabilizers.push(e=>{const t=Ie.getAllAngularTestabilities();let n=t.length,i=!1;const r=function(t){i=i||t,n--,0==n&&e(i)};t.forEach(function(e){e.whenStable(r)})})}findTestabilityInTree(e,t,n){if(null==t)return null;const i=e.getTestability(t);return null!=i?i:n?Ic().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}const Xu=new Bn("EventManagerPlugins");let ed=(()=>{class e{constructor(e,t){this._zone=t,this._eventNameToPlugin=new Map,e.forEach(e=>e.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)}addGlobalEventListener(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)}getZone(){return this._zone}_findPluginFor(e){const t=this._eventNameToPlugin.get(e);if(t)return t;const n=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(e){const t=new Set;e.forEach(e=>{this._stylesSet.has(e)||(this._stylesSet.add(e),t.add(e))}),this.onStylesAdded(t)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),id=(()=>{class e extends nd{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,t,n){e.forEach(e=>{const i=this._doc.createElement("style");i.textContent=e,n.push(t.appendChild(i))})}addHost(e){const t=[];this._addStylesToHost(this._stylesSet,e,t),this._hostNodes.set(e,t)}removeHost(e){const t=this._hostNodes.get(e);t&&t.forEach(rd),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((t,n)=>{this._addStylesToHost(e,n,t)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(rd))}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function rd(e){Ic().remove(e)}const od={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},sd=/%COMP%/g;function ad(e,t,n){for(let i=0;i{if("__ngUnwrap__"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let cd=(()=>{class e{constructor(e,t,n){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new ud(e)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case ke.Emulated:{let n=this.rendererByCompId.get(t.id);return n||(n=new dd(this.eventManager,this.sharedStylesHost,t,this.appId),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n}case 1:case ke.ShadowDom:return new hd(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){const e=ad(t.id,t.styles,[]);this.sharedStylesHost.addStyles(e),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(si(ed),si(id),si(Ul))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();class ud{constructor(e){this.eventManager=e,this.data=Object.create(null)}destroy(){}createElement(e,t){return t?document.createElementNS(od[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,n){e&&e.insertBefore(t,n)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let n="string"==typeof e?document.querySelector(e):e;if(!n)throw new Error(`The selector "${e}" did not match any elements`);return t||(n.textContent=""),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,i){if(i){t=i+":"+t;const r=od[i];r?e.setAttributeNS(r,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){const i=od[n];i?e.removeAttributeNS(i,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,i){i&(or.DashCase|or.Important)?e.style.setProperty(t,n,i&or.Important?"important":""):e.style[t]=n}removeStyle(e,t,n){n&or.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,n){e[t]=n}setValue(e,t){e.nodeValue=t}listen(e,t,n){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,t,ld(n)):this.eventManager.addEventListener(e,t,ld(n))}}class dd extends ud{constructor(e,t,n,i){super(e),this.component=n;const r=ad(i+"-"+n.id,n.styles,[]);t.addStyles(r),this.contentAttr="_ngcontent-%COMP%".replace(sd,i+"-"+n.id),this.hostAttr="_nghost-%COMP%".replace(sd,i+"-"+n.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,t){const n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,""),n}}class hd extends ud{constructor(e,t,n,i){super(e),this.sharedStylesHost=t,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const r=ad(i.id,i.styles,[]);for(let o=0;o{class e extends td{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n){return e.addEventListener(t,n,!1),()=>this.removeEventListener(e,t,n)}removeEventListener(e,t,n){return e.removeEventListener(t,n)}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const md=["alt","control","meta","shift"],fd={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},gd={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},bd={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let wd=(()=>{class e extends td{constructor(e){super(e)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,n,i){const r=e.parseEventName(n),o=e.eventCallback(r.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ic().onAndCancel(t,r.domEventName,o))}static parseEventName(t){const n=t.toLowerCase().split("."),i=n.shift();if(0===n.length||"keydown"!==i&&"keyup"!==i)return null;const r=e._normalizeKey(n.pop());let o="";if(md.forEach(e=>{const t=n.indexOf(e);t>-1&&(n.splice(t,1),o+=e+".")}),o+=r,0!=n.length||0===r.length)return null;const s={};return s.domEventName=i,s.fullKey=o,s}static getEventFullKey(e){let t="",n=function(e){let t=e.key;if(null==t){if(t=e.keyIdentifier,null==t)return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&gd.hasOwnProperty(t)&&(t=gd[t]))}return fd[t]||t}(e);return n=n.toLowerCase()," "===n?n="space":"."===n&&(n="dot"),md.forEach(i=>{i!=n&&(0,bd[i])(e)&&(t+=i+".")}),t+=n,t}static eventCallback(t,n,i){return r=>{e.getEventFullKey(r)===t&&i.runGuarded(()=>n(r))}}static _normalizeKey(e){switch(e){case"esc":return"escape";default:return e}}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),vd=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({factory:function(){return si(yd)},token:e,providedIn:"root"}),e})(),yd=(()=>{class e extends vd{constructor(e){super(),this._doc=e}sanitize(e,t){if(null==t)return null;switch(e){case Yi.NONE:return t;case Yi.HTML:return _i(t,"HTML")?Si(t):Gi(this._doc,String(t)).toString();case Yi.STYLE:return _i(t,"Style")?Si(t):t;case Yi.SCRIPT:if(_i(t,"Script"))return Si(t);throw new Error("unsafe value used in a script context");case Yi.URL:return Ai(t),_i(t,"URL")?Si(t):Mi(String(t));case Yi.RESOURCE_URL:if(_i(t,"ResourceURL"))return Si(t);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${e} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(e){return new bi(e)}bypassSecurityTrustStyle(e){return new wi(e)}bypassSecurityTrustScript(e){return new vi(e)}bypassSecurityTrustUrl(e){return new yi(e)}bypassSecurityTrustResourceUrl(e){return new Ci(e)}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({factory:function(){return e=si(Ho),new yd(e.get(Oc));var e},token:e,providedIn:"root"}),e})();const Cd=fc(xc,"browser",[{provide:Nl,useValue:"browser"},{provide:Rl,useValue:function(){Wu.makeCurrent(),Ju.init()},multi:!0},{provide:Oc,useFactory:function(){return function(e){pt=e}(document),document},deps:[]}]),Sd=[[],{provide:Bo,useValue:"root"},{provide:tr,useFactory:function(){return new tr},deps:[]},{provide:Xu,useClass:pd,multi:!0,deps:[Oc,Xl,Nl]},{provide:Xu,useClass:wd,multi:!0,deps:[Oc]},[],{provide:cd,useClass:cd,deps:[ed,id,Ul]},{provide:Aa,useExisting:cd},{provide:nd,useExisting:id},{provide:id,useClass:id,deps:[Oc]},{provide:sc,useClass:sc,deps:[Xl]},{provide:ed,useClass:ed,deps:[Xu,Xl]},[]];let _d=(()=>{class e{constructor(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(t){return{ngModule:e,providers:[{provide:Ul,useValue:t.appId},{provide:Qu,useExisting:Ul},Ku]}}}return e.\u0275fac=function(t){return new(t||e)(si(e,12))},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:Sd,imports:[zu,Pc]}),e})();function Ad(){return new kd(si(Oc))}let kd=(()=>{class e{constructor(e){this._doc=e,this._dom=Ic()}addTag(e,t=!1){return e?this._getOrCreateElement(e,t):null}addTags(e,t=!1){return e?e.reduce((e,n)=>(n&&e.push(this._getOrCreateElement(n,t)),e),[]):[]}getTag(e){return e&&this._doc.querySelector(`meta[${e}]`)||null}getTags(e){if(!e)return[];const t=this._doc.querySelectorAll(`meta[${e}]`);return t?[].slice.call(t):[]}updateTag(e,t){if(!e)return null;t=t||this._parseSelector(e);const n=this.getTag(t);return n?this._setMetaElementAttributes(e,n):this._getOrCreateElement(e,!0)}removeTag(e){this.removeTagElement(this.getTag(e))}removeTagElement(e){e&&this._dom.remove(e)}_getOrCreateElement(e,t=!1){if(!t){const t=this._parseSelector(e),n=this.getTag(t);if(n&&this._containsAttributes(e,n))return n}const n=this._dom.createElement("meta");return this._setMetaElementAttributes(e,n),this._doc.getElementsByTagName("head")[0].appendChild(n),n}_setMetaElementAttributes(e,t){return Object.keys(e).forEach(n=>t.setAttribute(this._getMetaKeyMap(n),e[n])),t}_parseSelector(e){const t=e.name?"name":"property";return`${t}="${e[t]}"`}_containsAttributes(e,t){return Object.keys(e).every(n=>t.getAttribute(this._getMetaKeyMap(n))===e[n])}_getMetaKeyMap(e){return xd[e]||e}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({factory:Ad,token:e,providedIn:"root"}),e})();const xd={httpEquiv:"http-equiv"};function Td(){return new Pd(si(Oc))}let Pd=(()=>{class e{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return e.\u0275fac=function(t){return new(t||e)(si(Oc))},e.\u0275prov=ue({factory:Td,token:e,providedIn:"root"}),e})();"undefined"!=typeof window&&window;let Md=(()=>{class e{constructor(){this.store={},this.onSerializeCallbacks={}}static init(t){const n=new e;return n.store=t,n}get(e,t){return void 0!==this.store[e]?this.store[e]:t}set(e,t){this.store[e]=t}remove(e){delete this.store[e]}hasKey(e){return this.store.hasOwnProperty(e)}onSerialize(e,t){this.onSerializeCallbacks[e]=t}toJson(){for(const t in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(t))try{this.store[t]=this.onSerializeCallbacks[t]()}catch(e){console.warn("Exception in onSerialize callback: ",e)}return JSON.stringify(this.store)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function Id(e,t){const n=e.getElementById(t+"-state");let i={};if(n&&n.textContent)try{i=JSON.parse(function(e){const t={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"};return e.replace(/&[^;]+;/g,e=>t[e])}(n.textContent))}catch(r){console.warn("Exception while restoring TransferState for app "+t,r)}return Md.init(i)}let Od=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[{provide:Md,useFactory:Id,deps:[Oc,Ul]}]}),e})();function Ed(...e){let t=e[e.length-1];return k(t)?(e.pop(),L(e,t)):$(e)}class Fd extends _{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const t=super._subscribe(e);return t&&!t.closed&&e.next(this._value),t}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new y;return this._value}next(e){super.next(this._value=e)}}class Ud extends m{notifyNext(e,t,n,i,r){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class Ld extends m{constructor(e,t,n){super(),this.parent=e,this.outerValue=t,this.outerIndex=n,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function Dd(e,t,n,i,r=new Ld(e,n,i)){if(!r.closed)return t instanceof w?t.subscribe(r):U(t)(r)}const Rd={};class Nd{constructor(e){this.resultSelector=e}call(e,t){return t.subscribe(new Vd(e,this.resultSelector))}}class Vd extends Ud{constructor(e,t){super(e),this.resultSelector=t,this.active=0,this.values=[],this.observables=[]}_next(e){this.values.push(Rd),this.observables.push(e)}_complete(){const e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(let n=0;n{function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e})();function Hd(...e){return B(1)(Ed(...e))}const zd=new w(e=>e.complete());function Bd(e){return e?function(e){return new w(t=>e.schedule(()=>t.complete()))}(e):zd}function $d(e){return new w(t=>{let n;try{n=e()}catch(i){return void t.error(i)}return(n?D(n):Bd()).subscribe(t)})}function qd(e,t){return"function"==typeof t?n=>n.pipe(qd((n,i)=>D(e(n,i)).pipe(x((e,r)=>t(n,e,i,r))))):t=>t.lift(new Gd(e))}class Gd{constructor(e){this.project=e}call(e,t){return t.subscribe(new Wd(e,this.project))}}class Wd extends N{constructor(e,t){super(e),this.project=t,this.index=0}_next(e){let t;const n=this.index++;try{t=this.project(e,n)}catch(i){return void this.destination.error(i)}this._innerSub(t)}_innerSub(e){const t=this.innerSubscription;t&&t.unsubscribe();const n=new R(this),i=this.destination;i.add(n),this.innerSubscription=V(e,n),this.innerSubscription!==n&&i.add(this.innerSubscription)}_complete(){const{innerSubscription:e}=this;e&&!e.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(e){this.destination.next(e)}}const Yd=(()=>{function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e})();function Zd(e){return t=>0===e?Bd():t.lift(new Qd(e))}class Qd{constructor(e){if(this.total=e,this.total<0)throw new Yd}call(e,t){return t.subscribe(new Kd(e,this.total))}}class Kd extends m{constructor(e,t){super(e),this.total=t,this.count=0}_next(e){const t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))}}function Jd(e,t){let n=!1;return arguments.length>=2&&(n=!0),function(i){return i.lift(new Xd(e,t,n))}}class Xd{constructor(e,t,n=!1){this.accumulator=e,this.seed=t,this.hasSeed=n}call(e,t){return t.subscribe(new eh(e,this.accumulator,this.seed,this.hasSeed))}}class eh extends m{constructor(e,t,n,i){super(e),this.accumulator=t,this._seed=n,this.hasSeed=i,this.index=0}get seed(){return this._seed}set seed(e){this.hasSeed=!0,this._seed=e}_next(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}_tryNext(e){const t=this.index++;let n;try{n=this.accumulator(this.seed,e,t)}catch(i){this.destination.error(i)}this.seed=n,this.destination.next(n)}}function th(e,t){return function(n){return n.lift(new nh(e,t))}}class nh{constructor(e,t){this.predicate=e,this.thisArg=t}call(e,t){return t.subscribe(new ih(e,this.predicate,this.thisArg))}}class ih extends m{constructor(e,t,n){super(e),this.predicate=t,this.thisArg=n,this.count=0}_next(e){let t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}t&&this.destination.next(e)}}function rh(e){return function(t){const n=new oh(e),i=t.lift(n);return n.caught=i}}class oh{constructor(e){this.selector=e}call(e,t){return t.subscribe(new sh(e,this.selector,this.caught))}}class sh extends N{constructor(e,t,n){super(e),this.selector=t,this.caught=n}error(e){if(!this.isStopped){let n;try{n=this.selector(e,this.caught)}catch(t){return void super.error(t)}this._unsubscribeAndRecycle();const i=new R(this);this.add(i);const r=V(n,i);r!==i&&this.add(r)}}}function ah(e,t){return j(e,t,1)}function lh(e){return function(t){return 0===e?Bd():t.lift(new ch(e))}}class ch{constructor(e){if(this.total=e,this.total<0)throw new Yd}call(e,t){return t.subscribe(new uh(e,this.total))}}class uh extends m{constructor(e,t){super(e),this.total=t,this.ring=new Array,this.count=0}_next(e){const t=this.ring,n=this.total,i=this.count++;t.length0){const n=this.count>=this.total?this.total:this.count,i=this.ring;for(let r=0;rt.lift(new hh(e))}class hh{constructor(e){this.errorFactory=e}call(e,t){return t.subscribe(new ph(e,this.errorFactory))}}class ph extends m{constructor(e,t){super(e),this.errorFactory=t,this.hasValue=!1}_next(e){this.hasValue=!0,this.destination.next(e)}_complete(){if(this.hasValue)return this.destination.complete();{let t;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)}}}function mh(){return new jd}function fh(e=null){return t=>t.lift(new gh(e))}class gh{constructor(e){this.defaultValue=e}call(e,t){return t.subscribe(new bh(e,this.defaultValue))}}class bh extends m{constructor(e,t){super(e),this.defaultValue=t,this.isEmpty=!0}_next(e){this.isEmpty=!1,this.destination.next(e)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function wh(e,t){const n=arguments.length>=2;return i=>i.pipe(e?th((t,n)=>e(t,n,i)):b,Zd(1),n?fh(t):dh(()=>new jd))}function vh(){}function yh(e,t,n){return function(i){return i.lift(new Ch(e,t,n))}}class Ch{constructor(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}call(e,t){return t.subscribe(new Sh(e,this.nextOrObserver,this.error,this.complete))}}class Sh extends m{constructor(e,t,n,r){super(e),this._tapNext=vh,this._tapError=vh,this._tapComplete=vh,this._tapError=n||vh,this._tapComplete=r||vh,i(t)?(this._context=this,this._tapNext=t):t&&(this._context=t,this._tapNext=t.next||vh,this._tapError=t.error||vh,this._tapComplete=t.complete||vh)}_next(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}class _h{constructor(e){this.callback=e}call(e,t){return t.subscribe(new Ah(e,this.callback))}}class Ah extends m{constructor(e,t){super(e),this.add(new d(t))}}class kh{constructor(e,t){this.id=e,this.url=t}}class xh extends kh{constructor(e,t,n="imperative",i=null){super(e,t),this.navigationTrigger=n,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Th extends kh{constructor(e,t,n){super(e,t),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Ph extends kh{constructor(e,t,n){super(e,t),this.reason=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Mh extends kh{constructor(e,t,n){super(e,t),this.error=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Ih extends kh{constructor(e,t,n,i){super(e,t),this.urlAfterRedirects=n,this.state=i}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Oh extends kh{constructor(e,t,n,i){super(e,t),this.urlAfterRedirects=n,this.state=i}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Eh extends kh{constructor(e,t,n,i,r){super(e,t),this.urlAfterRedirects=n,this.state=i,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Fh extends kh{constructor(e,t,n,i){super(e,t),this.urlAfterRedirects=n,this.state=i}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Uh extends kh{constructor(e,t,n,i){super(e,t),this.urlAfterRedirects=n,this.state=i}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lh{constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Dh{constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Rh{constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Nh{constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Vh{constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jh{constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Hh{constructor(e,t,n){this.routerEvent=e,this.position=t,this.anchor=n}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const zh="primary";class Bh{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function $h(e){return new Bh(e)}function qh(e){const t=Error("NavigationCancelingError: "+e);return t.ngNavigationCancelingError=!0,t}function Gh(e,t,n){const i=n.path.split("/");if(i.length>e.length)return null;if("full"===n.pathMatch&&(t.hasChildren()||i.lengthi[t]===e)}return e===t}function Zh(e){return Array.prototype.concat.apply([],e)}function Qh(e){return e.length>0?e[e.length-1]:null}function Kh(e,t){for(const n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Jh(e){return Fs(e)?e:Es(e)?D(Promise.resolve(e)):Ed(e)}function Xh(e,t,n){return n?function(e,t){return Wh(e,t)}(e.queryParams,t.queryParams)&&ep(e.root,t.root):function(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>Yh(e[n],t[n]))}(e.queryParams,t.queryParams)&&tp(e.root,t.root)}function ep(e,t){if(!sp(e.segments,t.segments))return!1;if(e.numberOfChildren!==t.numberOfChildren)return!1;for(const n in t.children){if(!e.children[n])return!1;if(!ep(e.children[n],t.children[n]))return!1}return!0}function tp(e,t){return np(e,t,t.segments)}function np(e,t,n){if(e.segments.length>n.length)return!!sp(e.segments.slice(0,n.length),n)&&!t.hasChildren();if(e.segments.length===n.length){if(!sp(e.segments,n))return!1;for(const n in t.children){if(!e.children[n])return!1;if(!tp(e.children[n],t.children[n]))return!1}return!0}{const i=n.slice(0,e.segments.length),r=n.slice(e.segments.length);return!!sp(e.segments,i)&&!!e.children.primary&&np(e.children.primary,t,r)}}class ip{constructor(e,t,n){this.root=e,this.queryParams=t,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=$h(this.queryParams)),this._queryParamMap}toString(){return cp.serialize(this)}}class rp{constructor(e,t){this.segments=e,this.children=t,this.parent=null,Kh(t,(e,t)=>e.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return up(this)}}class op{constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap||(this._parameterMap=$h(this.parameters)),this._parameterMap}toString(){return bp(this)}}function sp(e,t){return e.length===t.length&&e.every((e,n)=>e.path===t[n].path)}class ap{}class lp{parse(e){const t=new Sp(e);return new ip(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){var t;return`/${dp(e.root,!0)}${function(e){const t=Object.keys(e).map(t=>{const n=e[t];return Array.isArray(n)?n.map(e=>`${pp(t)}=${pp(e)}`).join("&"):`${pp(t)}=${pp(n)}`});return t.length?`?${t.join("&")}`:""}(e.queryParams)}${"string"==typeof e.fragment?`#${t=e.fragment,encodeURI(t)}`:""}`}}const cp=new lp;function up(e){return e.segments.map(e=>bp(e)).join("/")}function dp(e,t){if(!e.hasChildren())return up(e);if(t){const t=e.children.primary?dp(e.children.primary,!1):"",n=[];return Kh(e.children,(e,t)=>{t!==zh&&n.push(`${t}:${dp(e,!1)}`)}),n.length>0?`${t}(${n.join("//")})`:t}{const t=function(e,t){let n=[];return Kh(e.children,(e,i)=>{i===zh&&(n=n.concat(t(e,i)))}),Kh(e.children,(e,i)=>{i!==zh&&(n=n.concat(t(e,i)))}),n}(e,(t,n)=>n===zh?[dp(e.children.primary,!1)]:[`${n}:${dp(t,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children.primary?`${up(e)}/${t[0]}`:`${up(e)}/(${t.join("//")})`}}function hp(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function pp(e){return hp(e).replace(/%3B/gi,";")}function mp(e){return hp(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fp(e){return decodeURIComponent(e)}function gp(e){return fp(e.replace(/\+/g,"%20"))}function bp(e){return`${mp(e.path)}${t=e.parameters,Object.keys(t).map(e=>`;${mp(e)}=${mp(t[e])}`).join("")}`;var t}const wp=/^[^\/()?;=#]+/;function vp(e){const t=e.match(wp);return t?t[0]:""}const yp=/^[^=?&#]+/,Cp=/^[^?&#]+/;class Sp{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new rp([],{}):new rp([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n.primary=new rp(e,t)),n}parseSegment(){const e=vp(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(e),new op(fp(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const t=vp(this.remaining);if(!t)return;this.capture(t);let n="";if(this.consumeOptional("=")){const e=vp(this.remaining);e&&(n=e,this.capture(n))}e[fp(t)]=fp(n)}parseQueryParam(e){const t=function(e){const t=e.match(yp);return t?t[0]:""}(this.remaining);if(!t)return;this.capture(t);let n="";if(this.consumeOptional("=")){const e=function(e){const t=e.match(Cp);return t?t[0]:""}(this.remaining);e&&(n=e,this.capture(n))}const i=gp(t),r=gp(n);if(e.hasOwnProperty(i)){let t=e[i];Array.isArray(t)||(t=[t],e[i]=t),t.push(r)}else e[i]=r}parseParens(e){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const n=vp(this.remaining),i=this.remaining[n.length];if("/"!==i&&")"!==i&&";"!==i)throw new Error(`Cannot parse url '${this.url}'`);let r;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):e&&(r=zh);const o=this.parseChildren();t[r]=1===Object.keys(o).length?o.primary:new rp([],o),this.consumeOptional("//")}return t}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new Error(`Expected "${e}".`)}}class _p{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){const t=Ap(e,this._root);return t?t.children.map(e=>e.value):[]}firstChild(e){const t=Ap(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){const t=kp(e,this._root);return t.length<2?[]:t[t.length-2].children.map(e=>e.value).filter(t=>t!==e)}pathFromRoot(e){return kp(e,this._root).map(e=>e.value)}}function Ap(e,t){if(e===t.value)return t;for(const n of t.children){const t=Ap(e,n);if(t)return t}return null}function kp(e,t){if(e===t.value)return[t];for(const n of t.children){const i=kp(e,n);if(i.length)return i.unshift(t),i}return[]}class xp{constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}}function Tp(e){const t={};return e&&e.children.forEach(e=>t[e.value.outlet]=e),t}class Pp extends _p{constructor(e,t){super(e),this.snapshot=t,Up(this,e)}toString(){return this.snapshot.toString()}}function Mp(e,t){const n=function(e,t){const n=new Ep([],{},{},"",{},zh,t,null,e.root,-1,{});return new Fp("",new xp(n,[]))}(e,t),i=new Fd([new op("",{})]),r=new Fd({}),o=new Fd({}),s=new Fd({}),a=new Fd(""),l=new Ip(i,r,s,a,o,zh,t,n.root);return l.snapshot=n.root,new Pp(new xp(l,[]),n)}class Ip{constructor(e,t,n,i,r,o,s,a){this.url=e,this.params=t,this.queryParams=n,this.fragment=i,this.data=r,this.outlet=o,this.component=s,this._futureSnapshot=a}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(x(e=>$h(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(x(e=>$h(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Op(e,t="emptyOnly"){const n=e.pathFromRoot;let i=0;if("always"!==t)for(i=n.length-1;i>=1;){const e=n[i],t=n[i-1];if(e.routeConfig&&""===e.routeConfig.path)i--;else{if(t.component)break;i--}}return function(e){return e.reduce((e,t)=>({params:Object.assign(Object.assign({},e.params),t.params),data:Object.assign(Object.assign({},e.data),t.data),resolve:Object.assign(Object.assign({},e.resolve),t._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(i))}class Ep{constructor(e,t,n,i,r,o,s,a,l,c,u){this.url=e,this.params=t,this.queryParams=n,this.fragment=i,this.data=r,this.outlet=o,this.component=s,this.routeConfig=a,this._urlSegment=l,this._lastPathIndex=c,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=$h(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=$h(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(e=>e.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Fp extends _p{constructor(e,t){super(t),this.url=e,Up(this,t)}toString(){return Lp(this._root)}}function Up(e,t){t.value._routerState=e,t.children.forEach(t=>Up(e,t))}function Lp(e){const t=e.children.length>0?` { ${e.children.map(Lp).join(", ")} } `:"";return`${e.value}${t}`}function Dp(e){if(e.snapshot){const t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,Wh(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),Wh(t.params,n.params)||e.params.next(n.params),function(e,t){if(e.length!==t.length)return!1;for(let n=0;nWh(e.parameters,i[t].parameters))&&!(!e.parent!=!t.parent)&&(!e.parent||Rp(e.parent,t.parent))}function Np(e,t,n){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){const i=n.value;i._futureSnapshot=t.value;const r=function(e,t,n){return t.children.map(t=>{for(const i of n.children)if(e.shouldReuseRoute(t.value,i.value.snapshot))return Np(e,t,i);return Np(e,t)})}(e,t,n);return new xp(i,r)}{if(e.shouldAttach(t.value)){const n=e.retrieve(t.value);if(null!==n){const e=n.route;return Vp(t,e),e}}const n=new Ip(new Fd((i=t.value).url),new Fd(i.params),new Fd(i.queryParams),new Fd(i.fragment),new Fd(i.data),i.outlet,i.component,i),r=t.children.map(t=>Np(e,t));return new xp(n,r)}var i}function Vp(e,t){if(e.value.routeConfig!==t.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==t.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");t.value._futureSnapshot=e.value;for(let n=0;n{o[t]=Array.isArray(e)?e.map(e=>`${e}`):`${e}`}),new ip(n.root===e?t:Bp(n.root,e,t),o,r)}function Bp(e,t,n){const i={};return Kh(e.children,(e,r)=>{i[r]=e===t?n:Bp(e,t,n)}),new rp(e.segments,i)}class $p{constructor(e,t,n){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=n,e&&n.length>0&&jp(n[0]))throw new Error("Root segment cannot have matrix parameters");const i=n.find(Hp);if(i&&i!==Qh(n))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class qp{constructor(e,t,n){this.segmentGroup=e,this.processChildren=t,this.index=n}}function Gp(e,t,n){if(e||(e=new rp([],{})),0===e.segments.length&&e.hasChildren())return Wp(e,t,n);const i=function(e,t,n){let i=0,r=t;const o={match:!1,pathIndex:0,commandIndex:0};for(;r=n.length)return o;const t=e.segments[r],s=n[i];if(Hp(s))break;const a=`${s}`,l=i0&&void 0===a)break;if(a&&l&&"object"==typeof l&&void 0===l.outlets){if(!Kp(a,l,t))return o;i+=2}else{if(!Kp(a,{},t))return o;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}(e,t,n),r=n.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof n&&(n=[n]),null!==n&&(r[i]=Gp(e.children[i],t,n))}),Kh(e.children,(e,t)=>{void 0===i[t]&&(r[t]=e)}),new rp(e.segments,r)}}function Yp(e,t,n){const i=e.segments.slice(0,t);let r=0;for(;r{"string"==typeof e&&(e=[e]),null!==e&&(t[n]=Yp(new rp([],{}),0,e))}),t}function Qp(e){const t={};return Kh(e,(e,n)=>t[n]=`${e}`),t}function Kp(e,t,n){return e==n.path&&Wh(t,n.parameters)}class Jp{constructor(e,t,n,i){this.routeReuseStrategy=e,this.futureState=t,this.currState=n,this.forwardEvent=i}activate(e){const t=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,n,e),Dp(this.futureState.root),this.activateChildRoutes(t,n,e)}deactivateChildRoutes(e,t,n){const i=Tp(t);e.children.forEach(e=>{const t=e.value.outlet;this.deactivateRoutes(e,i[t],n),delete i[t]}),Kh(i,(e,t)=>{this.deactivateRouteAndItsChildren(e,n)})}deactivateRoutes(e,t,n){const i=e.value,r=t?t.value:null;if(i===r)if(i.component){const r=n.getContext(i.outlet);r&&this.deactivateChildRoutes(e,t,r.children)}else this.deactivateChildRoutes(e,t,n);else r&&this.deactivateRouteAndItsChildren(t,n)}deactivateRouteAndItsChildren(e,t){this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){const n=t.getContext(e.value.outlet);if(n&&n.outlet){const t=n.outlet.detach(),i=n.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:t,route:e,contexts:i})}}deactivateRouteAndOutlet(e,t){const n=t.getContext(e.value.outlet),i=n&&e.value.component?n.children:t,r=Tp(e);for(const o of Object.keys(r))this.deactivateRouteAndItsChildren(r[o],i);n&&n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated(),n.attachRef=null,n.resolver=null,n.route=null)}activateChildRoutes(e,t,n){const i=Tp(t);e.children.forEach(e=>{this.activateRoutes(e,i[e.value.outlet],n),this.forwardEvent(new jh(e.value.snapshot))}),e.children.length&&this.forwardEvent(new Nh(e.value.snapshot))}activateRoutes(e,t,n){const i=e.value,r=t?t.value:null;if(Dp(i),i===r)if(i.component){const r=n.getOrCreateContext(i.outlet);this.activateChildRoutes(e,t,r.children)}else this.activateChildRoutes(e,t,n);else if(i.component){const t=n.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){const e=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),t.children.onOutletReAttached(e.contexts),t.attachRef=e.componentRef,t.route=e.route.value,t.outlet&&t.outlet.attach(e.componentRef,e.route.value),Xp(e.route)}else{const n=function(e){for(let t=e.parent;t;t=t.parent){const e=t.routeConfig;if(e&&e._loadedConfig)return e._loadedConfig;if(e&&e.component)return null}return null}(i.snapshot),r=n?n.module.componentFactoryResolver:null;t.attachRef=null,t.route=i,t.resolver=r,t.outlet&&t.outlet.activateWith(i,r),this.activateChildRoutes(e,null,t.children)}}else this.activateChildRoutes(e,null,n)}}function Xp(e){Dp(e.value),e.children.forEach(Xp)}class em{constructor(e,t){this.routes=e,this.module=t}}function tm(e){return"function"==typeof e}function nm(e){return e instanceof ip}const im=Symbol("INITIAL_VALUE");function rm(){return qd(e=>function(...e){let t,n;return k(e[e.length-1])&&(n=e.pop()),"function"==typeof e[e.length-1]&&(t=e.pop()),1===e.length&&l(e[0])&&(e=e[0]),$(e,n).lift(new Nd(t))}(e.map(e=>e.pipe(Zd(1),function(...e){const t=e[e.length-1];return k(t)?(e.pop(),n=>Hd(e,n,t)):t=>Hd(e,t)}(im)))).pipe(Jd((e,t)=>{let n=!1;return t.reduce((e,i,r)=>{if(e!==im)return e;if(i===im&&(n=!0),!n){if(!1===i)return i;if(r===t.length-1||nm(i))return i}return e},e)},im),th(e=>e!==im),x(e=>nm(e)?e:!0===e),Zd(1)))}let om=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:1,vars:0,template:function(e,t){1&e&&Ps(0,"router-outlet")},directives:function(){return[Xm]},encapsulation:2}),e})();function sm(e,t=""){for(let n=0;num(e)===t);return n.push(...e.filter(e=>um(e)!==t)),n}const hm={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function pm(e,t,n){var i;if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?Object.assign({},hm):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const r=(t.matcher||Gh)(n,e,t);if(!r)return Object.assign({},hm);const o={};Kh(r.posParams,(e,t)=>{o[t]=e.path});const s=r.consumed.length>0?Object.assign(Object.assign({},o),r.consumed[r.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:s,positionalParamSegments:null!==(i=r.posParams)&&void 0!==i?i:{}}}function mm(e,t,n,i,r="corrected"){if(n.length>0&&function(e,t,n){return n.some(n=>fm(e,t,n)&&um(n)!==zh)}(e,n,i)){const r=new rp(t,function(e,t,n,i){const r={};r.primary=i,i._sourceSegment=e,i._segmentIndexShift=t.length;for(const o of n)if(""===o.path&&um(o)!==zh){const n=new rp([],{});n._sourceSegment=e,n._segmentIndexShift=t.length,r[um(o)]=n}return r}(e,t,i,new rp(n,e.children)));return r._sourceSegment=e,r._segmentIndexShift=t.length,{segmentGroup:r,slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some(n=>fm(e,t,n))}(e,n,i)){const o=new rp(e.segments,function(e,t,n,i,r,o){const s={};for(const a of i)if(fm(e,n,a)&&!r[um(a)]){const n=new rp([],{});n._sourceSegment=e,n._segmentIndexShift="legacy"===o?e.segments.length:t.length,s[um(a)]=n}return Object.assign(Object.assign({},r),s)}(e,t,n,i,e.children,r));return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:n}}const o=new rp(e.segments,e.children);return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:n}}function fm(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}function gm(e,t,n,i){return!!(um(e)===i||i!==zh&&fm(t,n,e))&&("**"===e.path||pm(t,e,n).matched)}function bm(e,t,n){return 0===t.length&&!e.children[n]}class wm{constructor(e){this.segmentGroup=e||null}}class vm{constructor(e){this.urlTree=e}}function ym(e){return new w(t=>t.error(new wm(e)))}function Cm(e){return new w(t=>t.error(new vm(e)))}function Sm(e){return new w(t=>t.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${e}'`)))}class _m{constructor(e,t,n,i,r){this.configLoader=t,this.urlSerializer=n,this.urlTree=i,this.config=r,this.allowRedirects=!0,this.ngModule=e.get(nl)}apply(){const e=mm(this.urlTree.root,[],[],this.config).segmentGroup,t=new rp(e.segments,e.children);return this.expandSegmentGroup(this.ngModule,this.config,t,zh).pipe(x(e=>this.createUrlTree(Am(e),this.urlTree.queryParams,this.urlTree.fragment))).pipe(rh(e=>{if(e instanceof vm)return this.allowRedirects=!1,this.match(e.urlTree);if(e instanceof wm)throw this.noMatchError(e);throw e}))}match(e){return this.expandSegmentGroup(this.ngModule,this.config,e.root,zh).pipe(x(t=>this.createUrlTree(Am(t),e.queryParams,e.fragment))).pipe(rh(e=>{if(e instanceof wm)throw this.noMatchError(e);throw e}))}noMatchError(e){return new Error(`Cannot match any routes. URL Segment: '${e.segmentGroup}'`)}createUrlTree(e,t,n){const i=e.segments.length>0?new rp([],{[zh]:e}):e;return new ip(i,t,n)}expandSegmentGroup(e,t,n,i){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(e,t,n).pipe(x(e=>new rp([],e))):this.expandSegment(e,n,t,n.segments,i,!0)}expandChildren(e,t,n){const i=[];for(const r of Object.keys(n.children))"primary"===r?i.unshift(r):i.push(r);return D(i).pipe(ah(i=>{const r=n.children[i],o=dm(t,i);return this.expandSegmentGroup(e,o,r,i).pipe(x(e=>({segment:e,outlet:i})))}),Jd((e,t)=>(e[t.outlet]=t.segment,e),{}),function(e,t){const n=arguments.length>=2;return i=>i.pipe(e?th((t,n)=>e(t,n,i)):b,lh(1),n?fh(t):dh(()=>new jd))}())}expandSegment(e,t,n,i,r,o){return D(n).pipe(ah(s=>this.expandSegmentAgainstRoute(e,t,n,s,i,r,o).pipe(rh(e=>{if(e instanceof wm)return Ed(null);throw e}))),wh(e=>!!e),rh((e,n)=>{if(e instanceof jd||"EmptyError"===e.name){if(bm(t,i,r))return Ed(new rp([],{}));throw new wm(t)}throw e}))}expandSegmentAgainstRoute(e,t,n,i,r,o,s){return gm(i,t,r,o)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,t,i,r,o):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,n,i,r,o):ym(t):ym(t)}expandSegmentAgainstRouteUsingRedirect(e,t,n,i,r,o){return"**"===i.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,i,o):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,i,r,o)}expandWildCardWithParamsAgainstRouteUsingRedirect(e,t,n,i){const r=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Cm(r):this.lineralizeSegments(n,r).pipe(j(n=>{const r=new rp(n,{});return this.expandSegment(e,r,t,n,i,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,i,r,o){const{matched:s,consumedSegments:a,lastChild:l,positionalParamSegments:c}=pm(t,i,r);if(!s)return ym(t);const u=this.applyRedirectCommands(a,i.redirectTo,c);return i.redirectTo.startsWith("/")?Cm(u):this.lineralizeSegments(i,u).pipe(j(i=>this.expandSegment(e,t,n,i.concat(r.slice(l)),o,!1)))}matchSegmentAgainstRoute(e,t,n,i,r){if("**"===n.path)return n.loadChildren?(n._loadedConfig?Ed(n._loadedConfig):this.configLoader.load(e.injector,n)).pipe(x(e=>(n._loadedConfig=e,new rp(i,{})))):Ed(new rp(i,{}));const{matched:o,consumedSegments:s,lastChild:a}=pm(t,n,i);if(!o)return ym(t);const l=i.slice(a);return this.getChildConfig(e,n,i).pipe(j(e=>{const i=e.module,o=e.routes,{segmentGroup:a,slicedSegments:c}=mm(t,s,l,o),u=new rp(a.segments,a.children);if(0===c.length&&u.hasChildren())return this.expandChildren(i,o,u).pipe(x(e=>new rp(s,e)));if(0===o.length&&0===c.length)return Ed(new rp(s,{}));const d=um(n)===r;return this.expandSegment(i,u,o,c,d?zh:r,!0).pipe(x(e=>new rp(s.concat(e.segments),e.children)))}))}getChildConfig(e,t,n){return t.children?Ed(new em(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?Ed(t._loadedConfig):this.runCanLoadGuards(e.injector,t,n).pipe(j(n=>n?this.configLoader.load(e.injector,t).pipe(x(e=>(t._loadedConfig=e,e))):function(e){return new w(t=>t.error(qh(`Cannot load children because the guard of the route "path: '${e.path}'" returned false`)))}(t))):Ed(new em([],e))}runCanLoadGuards(e,t,n){const i=t.canLoad;return i&&0!==i.length?Ed(i.map(i=>{const r=e.get(i);let o;if(function(e){return e&&tm(e.canLoad)}(r))o=r.canLoad(t,n);else{if(!tm(r))throw new Error("Invalid CanLoad guard");o=r(t,n)}return Jh(o)})).pipe(rm(),yh(e=>{if(!nm(e))return;const t=qh(`Redirecting to "${this.urlSerializer.serialize(e)}"`);throw t.url=e,t}),x(e=>!0===e)):Ed(!0)}lineralizeSegments(e,t){let n=[],i=t.root;for(;;){if(n=n.concat(i.segments),0===i.numberOfChildren)return Ed(n);if(i.numberOfChildren>1||!i.children.primary)return Sm(e.redirectTo);i=i.children.primary}}applyRedirectCommands(e,t,n){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,n)}applyRedirectCreatreUrlTree(e,t,n,i){const r=this.createSegmentGroup(e,t.root,n,i);return new ip(r,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){const n={};return Kh(e,(e,i)=>{if("string"==typeof e&&e.startsWith(":")){const r=e.substring(1);n[i]=t[r]}else n[i]=e}),n}createSegmentGroup(e,t,n,i){const r=this.createSegments(e,t.segments,n,i);let o={};return Kh(t.children,(t,r)=>{o[r]=this.createSegmentGroup(e,t,n,i)}),new rp(r,o)}createSegments(e,t,n,i){return t.map(t=>t.path.startsWith(":")?this.findPosParam(e,t,i):this.findOrReturn(t,n))}findPosParam(e,t,n){const i=n[t.path.substring(1)];if(!i)throw new Error(`Cannot redirect to '${e}'. Cannot find '${t.path}'.`);return i}findOrReturn(e,t){let n=0;for(const i of t){if(i.path===e.path)return t.splice(n),i;n++}return e}}function Am(e){const t={};for(const n of Object.keys(e.children)){const i=Am(e.children[n]);(i.segments.length>0||i.hasChildren())&&(t[n]=i)}return function(e){if(1===e.numberOfChildren&&e.children.primary){const t=e.children.primary;return new rp(e.segments.concat(t.segments),t.children)}return e}(new rp(e.segments,t))}class km{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class xm{constructor(e,t){this.component=e,this.route=t}}function Tm(e,t,n){const i=e._root;return Mm(i,t?t._root:null,n,[i.value])}function Pm(e,t,n){const i=function(e){if(!e)return null;for(let t=e.parent;t;t=t.parent){const e=t.routeConfig;if(e&&e._loadedConfig)return e._loadedConfig}return null}(t);return(i?i.module.injector:n).get(e)}function Mm(e,t,n,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const o=Tp(t);return e.children.forEach(e=>{!function(e,t,n,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const o=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&o.routeConfig===s.routeConfig){const l=function(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!sp(e.url,t.url);case"pathParamsOrQueryParamsChange":return!sp(e.url,t.url)||!Wh(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Rp(e,t)||!Wh(e.queryParams,t.queryParams);case"paramsChange":default:return!Rp(e,t)}}(s,o,o.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new km(i)):(o.data=s.data,o._resolvedData=s._resolvedData),Mm(e,t,o.component?a?a.children:null:n,i,r),l&&a&&a.outlet&&a.outlet.isActivated&&r.canDeactivateChecks.push(new xm(a.outlet.component,s))}else s&&Im(t,a,r),r.canActivateChecks.push(new km(i)),Mm(e,null,o.component?a?a.children:null:n,i,r)}(e,o[e.value.outlet],n,i.concat([e.value]),r),delete o[e.value.outlet]}),Kh(o,(e,t)=>Im(e,n.getContext(t),r)),r}function Im(e,t,n){const i=Tp(e),r=e.value;Kh(i,(e,i)=>{Im(e,r.component?t?t.children.getContext(i):null:t,n)}),n.canDeactivateChecks.push(new xm(r.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,r))}class Om{}function Em(e){return new w(t=>t.error(e))}class Fm{constructor(e,t,n,i,r,o){this.rootComponentType=e,this.config=t,this.urlTree=n,this.url=i,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=o}recognize(){const e=mm(this.urlTree.root,[],[],this.config.filter(e=>void 0===e.redirectTo),this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,zh);if(null===t)return null;const n=new Ep([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},zh,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new xp(n,t),r=new Fp(this.url,i);return this.inheritParamsAndData(r._root),r}inheritParamsAndData(e){const t=e.value,n=Op(t,this.paramsInheritanceStrategy);t.params=Object.freeze(n.params),t.data=Object.freeze(n.data),e.children.forEach(e=>this.inheritParamsAndData(e))}processSegmentGroup(e,t,n){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,n)}processChildren(e,t){const n=[];for(const r of Object.keys(t.children)){const i=t.children[r],o=dm(e,r),s=this.processSegmentGroup(o,i,r);if(null===s)return null;n.push(...s)}const i=Lm(n);return i.sort((e,t)=>e.value.outlet===zh?-1:t.value.outlet===zh?1:e.value.outlet.localeCompare(t.value.outlet)),i}processSegment(e,t,n,i){for(const r of e){const e=this.processSegmentAgainstRoute(r,t,n,i);if(null!==e)return e}return bm(t,n,i)?[]:null}processSegmentAgainstRoute(e,t,n,i){if(e.redirectTo||!gm(e,t,n,i))return null;let r,o=[],s=[];if("**"===e.path){const i=n.length>0?Qh(n).parameters:{};r=new Ep(n,i,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Nm(e),um(e),e.component,e,Dm(t),Rm(t)+n.length,Vm(e))}else{const i=pm(t,e,n);if(!i.matched)return null;o=i.consumedSegments,s=n.slice(i.lastChild),r=new Ep(o,i.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Nm(e),um(e),e.component,e,Dm(t),Rm(t)+o.length,Vm(e))}const a=function(e){return e.children?e.children:e.loadChildren?e._loadedConfig.routes:[]}(e),{segmentGroup:l,slicedSegments:c}=mm(t,o,s,a.filter(e=>void 0===e.redirectTo),this.relativeLinkResolution);if(0===c.length&&l.hasChildren()){const e=this.processChildren(a,l);return null===e?null:[new xp(r,e)]}if(0===a.length&&0===c.length)return[new xp(r,[])];const u=um(e)===i,d=this.processSegment(a,l,c,u?zh:i);return null===d?null:[new xp(r,d)]}}function Um(e){const t=e.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function Lm(e){const t=[],n=new Set;for(const i of e){if(!Um(i)){t.push(i);continue}const e=t.find(e=>i.value.routeConfig===e.value.routeConfig);void 0!==e?(e.children.push(...i.children),n.add(e)):t.push(i)}for(const i of n){const e=Lm(i.children);t.push(new xp(i.value,e))}return t.filter(e=>!n.has(e))}function Dm(e){let t=e;for(;t._sourceSegment;)t=t._sourceSegment;return t}function Rm(e){let t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;for(;t._sourceSegment;)t=t._sourceSegment,n+=t._segmentIndexShift?t._segmentIndexShift:0;return n-1}function Nm(e){return e.data||{}}function Vm(e){return e.resolve||{}}function jm(e){return qd(t=>{const n=e(t);return n?D(n).pipe(x(()=>t)):Ed(t)})}class Hm extends class{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}}{}const zm=new Bn("ROUTES");class Bm{constructor(e,t,n,i){this.loader=e,this.compiler=t,this.onLoadStartListener=n,this.onLoadEndListener=i}load(e,t){if(t._loader$)return t._loader$;this.onLoadStartListener&&this.onLoadStartListener(t);const n=this.loadModuleFactory(t.loadChildren).pipe(x(n=>{this.onLoadEndListener&&this.onLoadEndListener(t);const i=n.create(e);return new em(Zh(i.injector.get(zm,void 0,ve.Self|ve.Optional)).map(cm),i)}),rh(e=>{throw t._loader$=void 0,e}));return t._loader$=new Y(n,()=>new _).pipe(q()),t._loader$}loadModuleFactory(e){return"string"==typeof e?D(this.loader.load(e)):Jh(e()).pipe(j(e=>e instanceof il?Ed(e):D(this.compiler.compileModuleAsync(e))))}}class $m{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new qm,this.attachRef=null}}class qm{constructor(){this.contexts=new Map}onChildOutletCreated(e,t){const n=this.getOrCreateContext(e);n.outlet=t,this.contexts.set(e,n)}onChildOutletDestroyed(e){const t=this.getContext(e);t&&(t.outlet=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let t=this.getContext(e);return t||(t=new $m,this.contexts.set(e,t)),t}getContext(e){return this.contexts.get(e)||null}}class Gm{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,t){return e}}function Wm(e){throw e}function Ym(e,t,n){return t.parse("/")}function Zm(e,t){return Ed(null)}let Qm=(()=>{class e{constructor(e,t,n,i,r,o,s,a){this.rootComponentType=e,this.urlSerializer=t,this.rootContexts=n,this.location=i,this.config=a,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.lastLocationChangeInfo=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new _,this.errorHandler=Wm,this.malformedUriErrorHandler=Ym,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Zm,afterPreactivation:Zm},this.urlHandlingStrategy=new Gm,this.routeReuseStrategy=new Hm,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.ngModule=r.get(nl),this.console=r.get(jl);const l=r.get(Xl);this.isNgZoneEnabled=l instanceof Xl&&Xl.isInAngularZone(),this.resetConfig(a),this.currentUrlTree=new ip(new rp([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Bm(o,s,e=>this.triggerEvent(new Lh(e)),e=>this.triggerEvent(new Dh(e))),this.routerState=Mp(this.currentUrlTree,this.rootComponentType),this.transitions=new Fd({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(e){const t=this.events;return e.pipe(th(e=>0!==e.id),x(e=>Object.assign(Object.assign({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl)})),qd(e=>{let n=!1,i=!1;return Ed(e).pipe(yh(e=>{this.currentNavigation={id:e.id,initialUrl:e.currentRawUrl,extractedUrl:e.extractedUrl,trigger:e.source,extras:e.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),qd(e=>{const n=!this.navigated||e.extractedUrl.toString()!==this.browserUrlTree.toString();if(("reload"===this.onSameUrlNavigation||n)&&this.urlHandlingStrategy.shouldProcessUrl(e.rawUrl))return Ed(e).pipe(qd(e=>{const n=this.transitions.getValue();return t.next(new xh(e.id,this.serializeUrl(e.extractedUrl),e.source,e.restoredState)),n!==this.transitions.getValue()?zd:Promise.resolve(e)}),(i=this.ngModule.injector,r=this.configLoader,o=this.urlSerializer,s=this.config,qd(e=>function(e,t,n,i,r){return new _m(e,t,n,i,r).apply()}(i,r,o,e.extractedUrl,s).pipe(x(t=>Object.assign(Object.assign({},e),{urlAfterRedirects:t}))))),yh(e=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:e.urlAfterRedirects})}),function(e,t,n,i,r){return j(o=>function(e,t,n,i,r="emptyOnly",o="legacy"){try{const s=new Fm(e,t,n,i,r,o).recognize();return null===s?Em(new Om):Ed(s)}catch(s){return Em(s)}}(e,t,o.urlAfterRedirects,n(o.urlAfterRedirects),i,r).pipe(x(e=>Object.assign(Object.assign({},o),{targetSnapshot:e}))))}(this.rootComponentType,this.config,e=>this.serializeUrl(e),this.paramsInheritanceStrategy,this.relativeLinkResolution),yh(e=>{"eager"===this.urlUpdateStrategy&&(e.extras.skipLocationChange||this.setBrowserUrl(e.urlAfterRedirects,!!e.extras.replaceUrl,e.id,e.extras.state),this.browserUrlTree=e.urlAfterRedirects);const n=new Ih(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.next(n)}));var i,r,o,s;if(n&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:n,extractedUrl:i,source:r,restoredState:o,extras:s}=e,a=new xh(n,this.serializeUrl(i),r,o);t.next(a);const l=Mp(i,this.rootComponentType).snapshot;return Ed(Object.assign(Object.assign({},e),{targetSnapshot:l,urlAfterRedirects:i,extras:Object.assign(Object.assign({},s),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=e.rawUrl,this.browserUrlTree=e.urlAfterRedirects,e.resolve(null),zd}),jm(e=>{const{targetSnapshot:t,id:n,extractedUrl:i,rawUrl:r,extras:{skipLocationChange:o,replaceUrl:s}}=e;return this.hooks.beforePreactivation(t,{navigationId:n,appliedUrlTree:i,rawUrlTree:r,skipLocationChange:!!o,replaceUrl:!!s})}),yh(e=>{const t=new Oh(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);this.triggerEvent(t)}),x(e=>Object.assign(Object.assign({},e),{guards:Tm(e.targetSnapshot,e.currentSnapshot,this.rootContexts)})),function(e,t){return j(n=>{const{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:o,canDeactivateChecks:s}}=n;return 0===s.length&&0===o.length?Ed(Object.assign(Object.assign({},n),{guardsResult:!0})):function(e,t,n,i){return D(e).pipe(j(e=>function(e,t,n,i,r){const o=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return o&&0!==o.length?Ed(o.map(o=>{const s=Pm(o,t,r);let a;if(function(e){return e&&tm(e.canDeactivate)}(s))a=Jh(s.canDeactivate(e,t,n,i));else{if(!tm(s))throw new Error("Invalid CanDeactivate guard");a=Jh(s(e,t,n,i))}return a.pipe(wh())})).pipe(rm()):Ed(!0)}(e.component,e.route,n,t,i)),wh(e=>!0!==e,!0))}(s,i,r,e).pipe(j(n=>n&&"boolean"==typeof n?function(e,t,n,i){return D(t).pipe(ah(t=>Hd(function(e,t){return null!==e&&t&&t(new Rh(e)),Ed(!0)}(t.route.parent,i),function(e,t){return null!==e&&t&&t(new Vh(e)),Ed(!0)}(t.route,i),function(e,t,n){const i=t[t.length-1],r=t.slice(0,t.length-1).reverse().map(e=>function(e){const t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(e)).filter(e=>null!==e).map(t=>$d(()=>Ed(t.guards.map(r=>{const o=Pm(r,t.node,n);let s;if(function(e){return e&&tm(e.canActivateChild)}(o))s=Jh(o.canActivateChild(i,e));else{if(!tm(o))throw new Error("Invalid CanActivateChild guard");s=Jh(o(i,e))}return s.pipe(wh())})).pipe(rm())));return Ed(r).pipe(rm())}(e,t.path,n),function(e,t,n){const i=t.routeConfig?t.routeConfig.canActivate:null;return i&&0!==i.length?Ed(i.map(i=>$d(()=>{const r=Pm(i,t,n);let o;if(function(e){return e&&tm(e.canActivate)}(r))o=Jh(r.canActivate(t,e));else{if(!tm(r))throw new Error("Invalid CanActivate guard");o=Jh(r(t,e))}return o.pipe(wh())}))).pipe(rm()):Ed(!0)}(e,t.route,n))),wh(e=>!0!==e,!0))}(i,o,e,t):Ed(n)),x(e=>Object.assign(Object.assign({},n),{guardsResult:e})))})}(this.ngModule.injector,e=>this.triggerEvent(e)),yh(e=>{if(nm(e.guardsResult)){const t=qh(`Redirecting to "${this.serializeUrl(e.guardsResult)}"`);throw t.url=e.guardsResult,t}const t=new Eh(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(e.urlAfterRedirects),e.targetSnapshot,!!e.guardsResult);this.triggerEvent(t)}),th(e=>{if(!e.guardsResult){this.resetUrlToCurrentUrlTree();const n=new Ph(e.id,this.serializeUrl(e.extractedUrl),"");return t.next(n),e.resolve(!1),!1}return!0}),jm(e=>{if(e.guards.canActivateChecks.length)return Ed(e).pipe(yh(e=>{const t=new Fh(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);this.triggerEvent(t)}),qd(e=>{let n=!1;return Ed(e).pipe((i=this.paramsInheritanceStrategy,r=this.ngModule.injector,j(e=>{const{targetSnapshot:t,guards:{canActivateChecks:n}}=e;if(!n.length)return Ed(e);let o=0;return D(n).pipe(ah(e=>function(e,t,n,i){return function(e,t,n,i){const r=Object.keys(e);if(0===r.length)return Ed({});const o={};return D(r).pipe(j(r=>function(e,t,n,i){const r=Pm(e,t,i);return Jh(r.resolve?r.resolve(t,n):r(t,n))}(e[r],t,n,i).pipe(yh(e=>{o[r]=e}))),lh(1),j(()=>Object.keys(o).length===r.length?Ed(o):zd))}(e._resolve,e,t,i).pipe(x(t=>(e._resolvedData=t,e.data=Object.assign(Object.assign({},e.data),Op(e,n).resolve),null)))}(e.route,t,i,r)),yh(()=>o++),lh(1),j(t=>o===n.length?Ed(e):zd))})),yh({next:()=>n=!0,complete:()=>{if(!n){const n=new Ph(e.id,this.serializeUrl(e.extractedUrl),"At least one route resolver didn't emit any value.");t.next(n),e.resolve(!1)}}}));var i,r}),yh(e=>{const t=new Uh(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);this.triggerEvent(t)}))}),jm(e=>{const{targetSnapshot:t,id:n,extractedUrl:i,rawUrl:r,extras:{skipLocationChange:o,replaceUrl:s}}=e;return this.hooks.afterPreactivation(t,{navigationId:n,appliedUrlTree:i,rawUrlTree:r,skipLocationChange:!!o,replaceUrl:!!s})}),x(e=>{const t=function(e,t,n){const i=Np(e,t._root,n?n._root:void 0);return new Pp(i,t)}(this.routeReuseStrategy,e.targetSnapshot,e.currentRouterState);return Object.assign(Object.assign({},e),{targetRouterState:t})}),yh(e=>{this.currentUrlTree=e.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl),this.routerState=e.targetRouterState,"deferred"===this.urlUpdateStrategy&&(e.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,!!e.extras.replaceUrl,e.id,e.extras.state),this.browserUrlTree=e.urlAfterRedirects)}),(o=this.rootContexts,s=this.routeReuseStrategy,a=e=>this.triggerEvent(e),x(e=>(new Jp(s,e.targetRouterState,e.currentRouterState,a).activate(o),e))),yh({next(){n=!0},complete(){n=!0}}),(r=()=>{if(!n&&!i){this.resetUrlToCurrentUrlTree();const n=new Ph(e.id,this.serializeUrl(e.extractedUrl),`Navigation ID ${e.id} is not equal to the current navigation id ${this.navigationId}`);t.next(n),e.resolve(!1)}this.currentNavigation=null},e=>e.lift(new _h(r))),rh(n=>{if(i=!0,(r=n)&&r.ngNavigationCancelingError){const i=nm(n.url);i||(this.navigated=!0,this.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl));const r=new Ph(e.id,this.serializeUrl(e.extractedUrl),n.message);t.next(r),i?setTimeout(()=>{const t=this.urlHandlingStrategy.merge(n.url,this.rawUrlTree);this.scheduleNavigation(t,"imperative",null,{skipLocationChange:e.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy},{resolve:e.resolve,reject:e.reject,promise:e.promise})},0):e.resolve(!1)}else{this.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl);const i=new Mh(e.id,this.serializeUrl(e.extractedUrl),n);t.next(i);try{e.resolve(this.errorHandler(n))}catch(o){e.reject(o)}}var r;return zd}));var r,o,s,a}))}resetRootComponentType(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}getTransition(){const e=this.transitions.value;return e.urlAfterRedirects=this.browserUrlTree,e}setTransition(e){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),e))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const t=this.extractLocationChangeInfoFromEvent(e);this.shouldScheduleNavigation(this.lastLocationChangeInfo,t)&&setTimeout(()=>{const{source:e,state:n,urlTree:i}=t,r={replaceUrl:!0};if(n){const e=Object.assign({},n);delete e.navigationId,0!==Object.keys(e).length&&(r.state=e)}this.scheduleNavigation(i,e,n,r)},0),this.lastLocationChangeInfo=t}))}extractLocationChangeInfoFromEvent(e){var t;return{source:"popstate"===e.type?"popstate":"hashchange",urlTree:this.parseUrl(e.url),state:(null===(t=e.state)||void 0===t?void 0:t.navigationId)?e.state:null,transitionId:this.getTransition().id}}shouldScheduleNavigation(e,t){if(!e)return!0;const n=t.urlTree.toString()===e.urlTree.toString();return!(t.transitionId===e.transitionId&&n&&("hashchange"===t.source&&"popstate"===e.source||"popstate"===t.source&&"hashchange"===e.source))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(e){this.events.next(e)}resetConfig(e){sm(e),this.config=e.map(cm),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,t={}){const{relativeTo:n,queryParams:i,fragment:r,queryParamsHandling:o,preserveFragment:s}=t,a=n||this.routerState.root,l=s?this.currentUrlTree.fragment:r;let c=null;switch(o){case"merge":c=Object.assign(Object.assign({},this.currentUrlTree.queryParams),i);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=i||null}return null!==c&&(c=this.removeEmptyProps(c)),function(e,t,n,i,r){if(0===n.length)return zp(t.root,t.root,t,i,r);const o=function(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new $p(!0,0,e);let t=0,n=!1;const i=e.reduce((e,i,r)=>{if("object"==typeof i&&null!=i){if(i.outlets){const t={};return Kh(i.outlets,(e,n)=>{t[n]="string"==typeof e?e.split("/"):e}),[...e,{outlets:t}]}if(i.segmentPath)return[...e,i.segmentPath]}return"string"!=typeof i?[...e,i]:0===r?(i.split("/").forEach((i,r)=>{0==r&&"."===i||(0==r&&""===i?n=!0:".."===i?t++:""!=i&&e.push(i))}),e):[...e,i]},[]);return new $p(n,t,i)}(n);if(o.toRoot())return zp(t.root,new rp([],{}),t,i,r);const s=function(e,t,n){if(e.isAbsolute)return new qp(t.root,!0,0);if(-1===n.snapshot._lastPathIndex){const e=n.snapshot._urlSegment;return new qp(e,e===t.root,0)}const i=jp(e.commands[0])?0:1;return function(e,t,n){let i=e,r=t,o=n;for(;o>r;){if(o-=r,i=i.parent,!i)throw new Error("Invalid number of '../'");r=i.segments.length}return new qp(i,!1,r-o)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+i,e.numberOfDoubleDots)}(o,t,e),a=s.processChildren?Wp(s.segmentGroup,s.index,o.commands):Gp(s.segmentGroup,s.index,o.commands);return zp(s.segmentGroup,a,t,i,r)}(a,this.currentUrlTree,e,c,l)}navigateByUrl(e,t={skipLocationChange:!1}){const n=nm(e)?e:this.parseUrl(e),i=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(i,"imperative",null,t)}navigate(e,t={skipLocationChange:!1}){return function(e){for(let t=0;t{const i=e[n];return null!=i&&(t[n]=i),t},{})}processNavigations(){this.navigations.subscribe(e=>{this.navigated=!0,this.lastSuccessfulId=e.id,this.events.next(new Th(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,e.resolve(!0)},e=>{this.console.warn("Unhandled Navigation Error: ")})}scheduleNavigation(e,t,n,i,r){if(this.disposed)return Promise.resolve(!1);const o=this.getTransition(),s="imperative"!==t&&"imperative"===(null==o?void 0:o.source),a=(this.lastSuccessfulId===o.id||this.currentNavigation?o.rawUrl:o.urlAfterRedirects).toString()===e.toString();if(s&&a)return Promise.resolve(!0);let l,c,u;r?(l=r.resolve,c=r.reject,u=r.promise):u=new Promise((e,t)=>{l=e,c=t});const d=++this.navigationId;return this.setTransition({id:d,source:t,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:e,extras:i,resolve:l,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(e=>Promise.reject(e))}setBrowserUrl(e,t,n,i){const r=this.urlSerializer.serialize(e);i=i||{},this.location.isCurrentPathEqualTo(r)||t?this.location.replaceState(r,"",Object.assign(Object.assign({},i),{navigationId:n})):this.location.go(r,"",Object.assign(Object.assign({},i),{navigationId:n}))}resetStateAndUrl(e,t,n){this.routerState=e,this.currentUrlTree=t,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",{navigationId:this.lastSuccessfulId})}}return e.\u0275fac=function(t){return new(t||e)(si(qn),si(ap),si(qm),si(Gc),si(is),si(Cc),si(Ql),si(void 0))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),Km=(()=>{class e{constructor(e,t,n){this.router=e,this.route=t,this.locationStrategy=n,this.commands=[],this.onChanges=new _,this.subscription=e.events.subscribe(e=>{e instanceof Th&&this.updateTargetUrlAndHref()})}set routerLink(e){this.commands=null!=e?Array.isArray(e)?e:[e]:[]}ngOnChanges(e){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(e,t,n,i,r){if(0!==e||t||n||i||r)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;const o={skipLocationChange:Jm(this.skipLocationChange),replaceUrl:Jm(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,o),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:Jm(this.preserveFragment)})}}return e.\u0275fac=function(t){return new(t||e)(_s(Qm),_s(Ip),_s(Hc))},e.\u0275dir=Ye({type:e,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(e,t){1&e&&Us("click",function(e){return t.onClick(e.button,e.ctrlKey,e.shiftKey,e.altKey,e.metaKey)}),2&e&&(Js("href",t.href,Qi),vs("target",t.target))},inputs:{routerLink:"routerLink",target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo"},features:[lt]}),e})();function Jm(e){return""===e||!!e}let Xm=(()=>{class e{constructor(e,t,n,i,r){this.parentContexts=e,this.location=t,this.resolver=n,this.changeDetector=r,this.activated=null,this._activatedRoute=null,this.activateEvents=new Ol,this.deactivateEvents=new Ol,this.name=i||zh,e.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const e=this.parentContexts.getContext(this.name);e&&e.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,e}attach(e,t){this.activated=e,this._activatedRoute=t,this.location.insert(e.hostView)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,t){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=e;const n=(t=t||this.resolver).resolveComponentFactory(e._futureSnapshot.routeConfig.component),i=this.parentContexts.getOrCreateContext(this.name).children,r=new ef(e,i,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,r),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return e.\u0275fac=function(t){return new(t||e)(_s(qm),_s(ol),_s(va),("name",function(e,t){const n=e.attrs;if(n){const e=n.length;let i=0;for(;i{class e{constructor(e,t,n,i,r){this.router=e,this.injector=i,this.preloadingStrategy=r,this.loader=new Bm(t,n,t=>e.triggerEvent(new Lh(t)),t=>e.triggerEvent(new Dh(t)))}setUpPreloading(){this.subscription=this.router.events.pipe(th(e=>e instanceof Th),ah(()=>this.preload())).subscribe(()=>{})}preload(){const e=this.injector.get(nl);return this.processRoutes(e,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,t){const n=[];for(const i of t)if(i.loadChildren&&!i.canLoad&&i._loadedConfig){const e=i._loadedConfig;n.push(this.processRoutes(e.module,e.routes))}else i.loadChildren&&!i.canLoad?n.push(this.preloadConfig(e,i)):i.children&&n.push(this.processRoutes(e,i.children));return D(n).pipe(B(),x(e=>{}))}preloadConfig(e,t){return this.preloadingStrategy.preload(t,()=>(t._loadedConfig?Ed(t._loadedConfig):this.loader.load(e.injector,t)).pipe(j(e=>(t._loadedConfig=e,this.processRoutes(e.module,e.routes)))))}}return e.\u0275fac=function(t){return new(t||e)(si(Qm),si(Cc),si(Ql),si(is),si(tf))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),of=(()=>{class e{constructor(e,t,n={}){this.router=e,this.viewportScroller=t,this.options=n,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||"disabled",n.anchorScrolling=n.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(e=>{e instanceof xh?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Th&&(this.lastId=e.id,this.scheduleScrollEvent(e,this.router.parseUrl(e.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(e=>{e instanceof Hh&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,t){this.router.triggerEvent(new Hh(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,t))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return e.\u0275fac=function(t){return new(t||e)(si(Qm),si($u),si(void 0))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const sf=new Bn("ROUTER_CONFIGURATION"),af=new Bn("ROUTER_FORROOT_GUARD"),lf=[Gc,{provide:ap,useClass:lp},{provide:Qm,useFactory:function(e,t,n,i,r,o,s,a={},l,c){const u=new Qm(null,e,t,n,i,r,o,Zh(s));if(l&&(u.urlHandlingStrategy=l),c&&(u.routeReuseStrategy=c),function(e,t){e.errorHandler&&(t.errorHandler=e.errorHandler),e.malformedUriErrorHandler&&(t.malformedUriErrorHandler=e.malformedUriErrorHandler),e.onSameUrlNavigation&&(t.onSameUrlNavigation=e.onSameUrlNavigation),e.paramsInheritanceStrategy&&(t.paramsInheritanceStrategy=e.paramsInheritanceStrategy),e.relativeLinkResolution&&(t.relativeLinkResolution=e.relativeLinkResolution),e.urlUpdateStrategy&&(t.urlUpdateStrategy=e.urlUpdateStrategy)}(a,u),a.enableTracing){const e=Ic();u.events.subscribe(t=>{e.logGroup(`Router Event: ${t.constructor.name}`),e.log(t.toString()),e.log(t),e.logGroupEnd()})}return u},deps:[ap,qm,Gc,is,Cc,Ql,zm,sf,[class{},new ui],[class{},new ui]]},qm,{provide:Ip,useFactory:function(e){return e.routerState.root},deps:[Qm]},{provide:Cc,useClass:Ac},rf,nf,class{preload(e,t){return t().pipe(rh(()=>Ed(null)))}},{provide:sf,useValue:{enableTracing:!1}}];function cf(){return new mc("Router",Qm)}let uf=(()=>{class e{constructor(e,t){}static forRoot(t,n){return{ngModule:e,providers:[lf,mf(t),{provide:af,useFactory:pf,deps:[[Qm,new ui,new di]]},{provide:sf,useValue:n||{}},{provide:Hc,useFactory:hf,deps:[Ec,[new ci(Bc),new ui],sf]},{provide:of,useFactory:df,deps:[Qm,$u,sf]},{provide:tf,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:nf},{provide:mc,multi:!0,useFactory:cf},[ff,{provide:El,multi:!0,useFactory:gf,deps:[ff]},{provide:wf,useFactory:bf,deps:[ff]},{provide:Vl,multi:!0,useExisting:wf}]]}}static forChild(t){return{ngModule:e,providers:[mf(t)]}}}return e.\u0275fac=function(t){return new(t||e)(si(af,8),si(Qm,8))},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({}),e})();function df(e,t,n){return n.scrollOffset&&t.setOffset(n.scrollOffset),new of(e,t,n)}function hf(e,t,n={}){return n.useHash?new qc(e,t):new $c(e,t)}function pf(e){return"guarded"}function mf(e){return[{provide:$n,multi:!0,useValue:e},{provide:zm,multi:!0,useValue:e}]}let ff=(()=>{class e{constructor(e){this.injector=e,this.initNavigation=!1,this.resultOfPreactivationDone=new _}appInitializer(){return this.injector.get(Uc,Promise.resolve(null)).then(()=>{let e=null;const t=new Promise(t=>e=t),n=this.injector.get(Qm),i=this.injector.get(sf);return"disabled"===i.initialNavigation?(n.setUpLocationChangeListener(),e(!0)):"enabled"===i.initialNavigation||"enabledBlocking"===i.initialNavigation?(n.hooks.afterPreactivation=()=>this.initNavigation?Ed(null):(this.initNavigation=!0,e(!0),this.resultOfPreactivationDone),n.initialNavigation()):e(!0),t})}bootstrapListener(e){const t=this.injector.get(sf),n=this.injector.get(rf),i=this.injector.get(of),r=this.injector.get(Qm),o=this.injector.get(vc);e===o.components[0]&&("enabledNonBlocking"!==t.initialNavigation&&void 0!==t.initialNavigation||r.initialNavigation(),n.setUpPreloading(),i.init(),r.resetRootComponentType(o.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}}return e.\u0275fac=function(t){return new(t||e)(si(is))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();function gf(e){return e.appInitializer.bind(e)}function bf(e){return e.bootstrapListener.bind(e)}const wf=new Bn("Router Initializer");let vf=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("About Awesome Miner"),this.metaTagService.updateTag({name:"description",content:"About Awesome Miner and IntelliBreeze Software AB"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-about-page"]],decls:36,vars:0,consts:[[1,"container"],[1,"imgSection"],["routerLink","/doc/productannouncement100"],["routerLink","/doc/productannouncement110"],["routerLink","/doc/productannouncement150"],["routerLink","/doc/productannouncement200"],["routerLink","/doc/productannouncement300"],["routerLink","/doc/productannouncement400"],["routerLink","/doc/productannouncement500"],["routerLink","/doc/productannouncement600"],["routerLink","/contact","role","button",1,"btn","btn-lg","btn-success","ngMainButton"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"About IntelliBreeze Software AB & Awesome Miner"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," IntelliBreeze Software AB (former IntelliBreeze Software) is a Swedish software company founded in 2012. IntelliBreeze Software AB released the first version of Awesome Miner in 2014 and the software has successfully been used in both small and large mining operations. "),Ts(),xs(6,"p"),Ws(7," The goal of Awesome Miner is to be the best Windows application for managing and monitoring mining of Bitcoin and all other popular crypto currencies. "),Ts(),xs(8,"p"),Ws(9," View Awesome Miner version announcements: "),xs(10,"a",2),Ws(11,"1.0"),Ts(),Ws(12,", "),xs(13,"a",3),Ws(14,"1.1"),Ts(),Ws(15,", "),xs(16,"a",4),Ws(17,"1.5"),Ts(),Ws(18,", "),xs(19,"a",5),Ws(20,"2.0"),Ts(),Ws(21,", "),xs(22,"a",6),Ws(23,"3.0"),Ts(),Ws(24,", "),xs(25,"a",7),Ws(26,"4.0"),Ts(),Ws(27,", "),xs(28,"a",8),Ws(29,"5.0"),Ts(),Ws(30,", "),xs(31,"a",9),Ws(32,"6.0"),Ts(),Ts(),xs(33,"p"),xs(34,"a",10),Ws(35,"Contact us"),Ts(),Ts(),Ts(),Ts())},directives:[Km],styles:[""]}),e})(),yf=(()=>{class e{constructor(){this.lgMinerPrices=[],this.lgCloudPrices=[],this.lgSupportPrices=[{count:10,price:48,link:""},{count:20,price:85,link:""},{count:40,price:170,link:""},{count:100,price:350,link:""},{count:200,price:600,link:""},{count:300,price:850,link:""},{count:400,price:1100,link:""},{count:500,price:1350,link:""},{count:600,price:1600,link:""},{count:700,price:1850,link:""},{count:800,price:2100,link:""},{count:900,price:2350,link:""}],this.ultimateMinerPrices=[{count:100,price:700,link:"awesomeminerultimateedition100"},{count:200,price:1250,link:"awesomeminerultimateedition200"},{count:300,price:1800,link:"awesomeminerultimateedition300"},{count:400,price:2300,link:"awesomeminerultimateedition400"},{count:500,price:2800,link:"awesomeminerultimateedition500"},{count:600,price:3300,link:"awesomeminerultimateedition600"},{count:700,price:3800,link:"awesomeminerultimateedition700"},{count:800,price:4300,link:"awesomeminerultimateedition800"},{count:900,price:4800,link:"awesomeminerultimateedition900"}],this.ultimateCloudPrices=[{count:100,priceAnnual:40,priceMonthly:50,linkAnnual:"ultimatesubscription100",linkMonthly:"ultimatesubscription100_m"},{count:200,priceAnnual:70,priceMonthly:85,linkAnnual:"ultimatesubscription200",linkMonthly:"ultimatesubscription200_m"},{count:300,priceAnnual:100,priceMonthly:120,linkAnnual:"ultimatesubscription300",linkMonthly:"ultimatesubscription300_m"},{count:400,priceAnnual:125,priceMonthly:150,linkAnnual:"ultimatesubscription400",linkMonthly:"ultimatesubscription400_m"},{count:500,priceAnnual:150,priceMonthly:180,linkAnnual:"ultimatesubscription500",linkMonthly:"ultimatesubscription500_m"},{count:600,priceAnnual:175,priceMonthly:210,linkAnnual:"ultimatesubscription600",linkMonthly:"ultimatesubscription600_m"},{count:700,priceAnnual:200,priceMonthly:240,linkAnnual:"ultimatesubscription700",linkMonthly:"ultimatesubscription700_m"},{count:800,priceAnnual:225,priceMonthly:270,linkAnnual:"ultimatesubscription800",linkMonthly:"ultimatesubscription800_m"},{count:900,priceAnnual:250,priceMonthly:300,linkAnnual:"ultimatesubscription900",linkMonthly:"ultimatesubscription900_m"}];for(let e=10;e<=100;e++)this.lgMinerPrices.push({count:100*e,price:1800+500*Math.min(e-3,7)+(e>10?450*(e-10):0)});for(let e=10;e<=50;e++)this.lgCloudPrices.push({count:100*e,priceAnnual:100+25*Math.min(e-3,7)+(e>10?20*(e-10):0),priceMonthly:120+30*Math.min(e-3,7)+(e>10?25*(e-10):0)});for(let e=10;e<=50;e++){let t=100*e;this.lgSupportPrices.push({count:t,price:1*t+1600})}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function Cf(e,t){return new w(n=>{const i=e.length;if(0===i)return void n.complete();const r=new Array(i);let o=0,s=0;for(let a=0;a{c||(c=!0,s++),r[a]=e},error:e=>n.error(e),complete:()=>{o++,o!==i&&c||(s===i&&n.next(t?t.reduce((e,t,n)=>(e[t]=r[n],e),{}):r),n.complete())}}))}})}class Sf{}const _f=new Bn("NgValueAccessor"),Af={provide:_f,useExisting:ie(()=>kf),multi:!0};let kf=(()=>{class e extends Sf{constructor(e,t){super(),this._renderer=e,this._elementRef=t,this.onChange=e=>{},this.onTouched=()=>{}}writeValue(e){this._renderer.setProperty(this._elementRef.nativeElement,"checked",e)}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)}}return e.\u0275fac=function(t){return new(t||e)(_s(ka),_s(_a))},e.\u0275dir=Ye({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(e,t){1&e&&Us("change",function(e){return t.onChange(e.target.checked)})("blur",function(){return t.onTouched()})},features:[fa([Af]),os]}),e})();const xf={provide:_f,useExisting:ie(()=>Pf),multi:!0},Tf=new Bn("CompositionEventMode");let Pf=(()=>{class e{constructor(e,t,n){this._renderer=e,this._elementRef=t,this._compositionMode=n,this.onChange=e=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const e=Ic()?Ic().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==e?"":e)}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return e.\u0275fac=function(t){return new(t||e)(_s(ka),_s(_a),_s(Tf,8))},e.\u0275dir=Ye({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,t){1&e&&Us("input",function(e){return t._handleInput(e.target.value)})("blur",function(){return t.onTouched()})("compositionstart",function(){return t._compositionStart()})("compositionend",function(e){return t._compositionEnd(e.target.value)})},features:[fa([xf])]}),e})();function Mf(e){return null==e||0===e.length}function If(e){return null!=e&&"number"==typeof e.length}const Of=new Bn("NgValidators"),Ef=new Bn("NgAsyncValidators"),Ff=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class Uf{static min(e){return function(e){return t=>{if(Mf(t.value)||Mf(e))return null;const n=parseFloat(t.value);return!isNaN(n)&&n{if(Mf(t.value)||Mf(e))return null;const n=parseFloat(t.value);return!isNaN(n)&&n>e?{max:{max:e,actual:t.value}}:null}}(e)}static required(e){return Lf(e)}static requiredTrue(e){return function(e){return!0===e.value?null:{required:!0}}(e)}static email(e){return function(e){return Mf(e.value)||Ff.test(e.value)?null:{email:!0}}(e)}static minLength(e){return function(e){return t=>Mf(t.value)||!If(t.value)?null:t.value.length{if(Mf(e.value))return null;const i=e.value;return t.test(i)?null:{pattern:{requiredPattern:n,actualValue:i}}}}(e)}static nullValidator(e){return null}static compose(e){return Bf(e)}static composeAsync(e){return qf(e)}}function Lf(e){return Mf(e.value)?{required:!0}:null}function Df(e){return t=>If(t.value)&&t.value.length>e?{maxlength:{requiredLength:e,actualLength:t.value.length}}:null}function Rf(e){return null}function Nf(e){return null!=e}function Vf(e){const t=Es(e)?D(e):e;return Fs(t),t}function jf(e){let t={};return e.forEach(e=>{t=null!=e?Object.assign(Object.assign({},t),e):t}),0===Object.keys(t).length?null:t}function Hf(e,t){return t.map(t=>t(e))}function zf(e){return e.map(e=>function(e){return!e.validate}(e)?e:t=>e.validate(t))}function Bf(e){if(!e)return null;const t=e.filter(Nf);return 0==t.length?null:function(e){return jf(Hf(e,t))}}function $f(e){return null!=e?Bf(zf(e)):null}function qf(e){if(!e)return null;const t=e.filter(Nf);return 0==t.length?null:function(e){return function(...e){if(1===e.length){const t=e[0];if(l(t))return Cf(t,null);if(c(t)&&Object.getPrototypeOf(t)===Object.prototype){const e=Object.keys(t);return Cf(e.map(e=>t[e]),e)}}if("function"==typeof e[e.length-1]){const t=e.pop();return Cf(e=1===e.length&&l(e[0])?e[0]:e,null).pipe(x(e=>t(...e)))}return Cf(e,null)}(Hf(e,t).map(Vf)).pipe(x(jf))}}function Gf(e){return null!=e?qf(zf(e)):null}function Wf(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function Yf(e){return e._rawValidators}function Zf(e){return e._rawAsyncValidators}let Qf=(()=>{class e{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=$f(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=Gf(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e){this.control&&this.control.reset(e)}hasError(e,t){return!!this.control&&this.control.hasError(e,t)}getError(e,t){return this.control?this.control.getError(e,t):null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=Ye({type:e}),e})(),Kf=(()=>{class e extends Qf{get formDirective(){return null}get path(){return null}}return e.\u0275fac=function(t){return Jf(t||e)},e.\u0275dir=Ye({type:e,features:[os]}),e})();const Jf=Vn(Kf);class Xf extends Qf{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class eg{constructor(e){this._cd=e}is(e){var t,n;return!!(null===(n=null===(t=this._cd)||void 0===t?void 0:t.control)||void 0===n?void 0:n[e])}}let tg=(()=>{class e extends eg{constructor(e){super(e)}}return e.\u0275fac=function(t){return new(t||e)(_s(Xf,2))},e.\u0275dir=Ye({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,t){2&e&&zs("ng-untouched",t.is("untouched"))("ng-touched",t.is("touched"))("ng-pristine",t.is("pristine"))("ng-dirty",t.is("dirty"))("ng-valid",t.is("valid"))("ng-invalid",t.is("invalid"))("ng-pending",t.is("pending"))},features:[os]}),e})(),ng=(()=>{class e extends eg{constructor(e){super(e)}}return e.\u0275fac=function(t){return new(t||e)(_s(Kf,10))},e.\u0275dir=Ye({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:14,hostBindings:function(e,t){2&e&&zs("ng-untouched",t.is("untouched"))("ng-touched",t.is("touched"))("ng-pristine",t.is("pristine"))("ng-dirty",t.is("dirty"))("ng-valid",t.is("valid"))("ng-invalid",t.is("invalid"))("ng-pending",t.is("pending"))},features:[os]}),e})();function ig(e,t){return[...t.path,e]}function rg(e,t){ag(e,t,!0),t.valueAccessor.writeValue(e.value),function(e,t){t.valueAccessor.registerOnChange(n=>{e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&cg(e,t)})}(e,t),function(e,t){const n=(e,n)=>{t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)};e.registerOnChange(n),t._registerOnDestroy(()=>{e._unregisterOnChange(n)})}(e,t),function(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&cg(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function(e,t){if(t.valueAccessor.setDisabledState){const n=e=>{t.valueAccessor.setDisabledState(e)};e.registerOnDisabledChange(n),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(n)})}}(e,t)}function og(e,t,n=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),lg(e,t,!0),e&&(t._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(()=>{}))}function sg(e,t){e.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function ag(e,t,n){const i=Yf(e);null!==t.validator?e.setValidators(Wf(i,t.validator)):"function"==typeof i&&e.setValidators([i]);const r=Zf(e);if(null!==t.asyncValidator?e.setAsyncValidators(Wf(r,t.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]),n){const n=()=>e.updateValueAndValidity();sg(t._rawValidators,n),sg(t._rawAsyncValidators,n)}}function lg(e,t,n){let i=!1;if(null!==e){if(null!==t.validator){const n=Yf(e);if(Array.isArray(n)&&n.length>0){const r=n.filter(e=>e!==t.validator);r.length!==n.length&&(i=!0,e.setValidators(r))}}if(null!==t.asyncValidator){const n=Zf(e);if(Array.isArray(n)&&n.length>0){const r=n.filter(e=>e!==t.asyncValidator);r.length!==n.length&&(i=!0,e.setAsyncValidators(r))}}}if(n){const e=()=>{};sg(t._rawValidators,e),sg(t._rawAsyncValidators,e)}return i}function cg(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function ug(e,t){ag(e,t,!1)}function dg(e,t){if(!e.hasOwnProperty("model"))return!1;const n=e.model;return!!n.isFirstChange()||!Object.is(t,n.currentValue)}function hg(e,t){e._syncPendingControls(),t.forEach(e=>{const t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)})}function pg(e,t){if(!t)return null;let n,i,r;return Array.isArray(t),t.forEach(e=>{e.constructor===Pf?n=e:Object.getPrototypeOf(e.constructor)===Sf?i=e:r=e}),r||i||n||null}function mg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const fg="VALID",gg="INVALID",bg="PENDING",wg="DISABLED";function vg(e){return(_g(e)?e.validators:e)||null}function yg(e){return Array.isArray(e)?$f(e):e||null}function Cg(e,t){return(_g(t)?t.asyncValidators:e)||null}function Sg(e){return Array.isArray(e)?Gf(e):e||null}function _g(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class Ag{constructor(e,t){this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=e,this._rawAsyncValidators=t,this._composedValidatorFn=yg(this._rawValidators),this._composedAsyncValidatorFn=Sg(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get valid(){return this.status===fg}get invalid(){return this.status===gg}get pending(){return this.status==bg}get disabled(){return this.status===wg}get enabled(){return this.status!==wg}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._rawValidators=e,this._composedValidatorFn=yg(e)}setAsyncValidators(e){this._rawAsyncValidators=e,this._composedAsyncValidatorFn=Sg(e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(e=>e.markAllAsTouched())}markAsUntouched(e={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}markAsDirty(e={}){this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}markAsPristine(e={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}markAsPending(e={}){this.status=bg,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}disable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=wg,this.errors=null,this._forEachChild(t=>{t.disable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach(e=>e(!0))}enable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=fg,this._forEachChild(t=>{t.enable(Object.assign(Object.assign({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach(e=>e(!1))}_updateAncestors(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(e){this._parent=e}updateValueAndValidity(e={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==fg&&this.status!==bg||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?wg:fg}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e){if(this.asyncValidator){this.status=bg,this._hasOwnPendingAsyncValidator=!0;const t=Vf(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(t=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(t,{emitEvent:e})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(e,t={}){this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}get(e){return function(e,t,n){if(null==t)return null;if(Array.isArray(t)||(t=t.split(".")),Array.isArray(t)&&0===t.length)return null;let i=e;return t.forEach(e=>{i=i instanceof xg?i.controls.hasOwnProperty(e)?i.controls[e]:null:i instanceof Tg&&i.at(e)||null}),i}(this,e)}getError(e,t){const n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null}hasError(e,t){return!!this.getError(e,t)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}_initObservables(){this.valueChanges=new Ol,this.statusChanges=new Ol}_calculateStatus(){return this._allControlsDisabled()?wg:this.errors?gg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(bg)?bg:this._anyControlsHaveStatus(gg)?gg:fg}_anyControlsHaveStatus(e){return this._anyControls(t=>t.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e={}){this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}_updateTouched(e={}){this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}_isBoxedValue(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){_g(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class kg extends Ag{constructor(e=null,t,n){super(vg(t),Cg(n,t)),this._onChange=[],this._applyFormState(e),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}setValue(e,t={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(e=>e(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(e,t={}){this.setValue(e,t)}reset(e=null,t={}){this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){mg(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){mg(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}}class xg extends Ag{constructor(e,t,n){super(vg(t),Cg(n,t)),this.controls=e,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}registerControl(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()}setControl(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,t={}){this._checkAllValuesPresent(e),Object.keys(e).forEach(n=>{this._throwIfControlMissing(n),this.controls[n].setValue(e[n],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(e,t={}){null!=e&&(Object.keys(e).forEach(n=>{this.controls[n]&&this.controls[n].patchValue(e[n],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(e={},t={}){this._forEachChild((n,i)=>{n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(e,t,n)=>(e[n]=t instanceof kg?t.value:t.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(e,t)=>!!t._syncPendingControls()||e);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_throwIfControlMissing(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error(`Cannot find form control with name: ${e}.`)}_forEachChild(e){Object.keys(this.controls).forEach(t=>{const n=this.controls[t];n&&e(n,t)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(const t of Object.keys(this.controls)){const n=this.controls[t];if(this.contains(t)&&e(n))return!0}return!1}_reduceValue(){return this._reduceChildren({},(e,t,n)=>((t.enabled||this.disabled)&&(e[n]=t.value),e))}_reduceChildren(e,t){let n=e;return this._forEachChild((e,i)=>{n=t(n,e,i)}),n}_allControlsDisabled(){for(const e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(e){this._forEachChild((t,n)=>{if(void 0===e[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)})}}class Tg extends Ag{constructor(e,t,n){super(vg(t),Cg(n,t)),this.controls=e,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!n})}at(e){return this.controls[e]}push(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()}insert(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity()}removeAt(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),this.controls.splice(e,1),this.updateValueAndValidity()}setControl(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,t={}){this._checkAllValuesPresent(e),e.forEach((e,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(e,t={}){null!=e&&(e.forEach((e,n)=>{this.at(n)&&this.at(n).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(e=[],t={}){this._forEachChild((n,i)=>{n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this.controls.map(e=>e instanceof kg?e.value:e.getRawValue())}clear(){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let e=this.controls.reduce((e,t)=>!!t._syncPendingControls()||e,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_throwIfControlMissing(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error(`Cannot find form control at index ${e}`)}_forEachChild(e){this.controls.forEach((t,n)=>{e(t,n)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(t=>t.enabled&&e(t))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_checkAllValuesPresent(e){this._forEachChild((t,n)=>{if(void 0===e[n])throw new Error(`Must supply a value for form control at index: ${n}.`)})}_allControlsDisabled(){for(const e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}}const Pg={provide:Kf,useExisting:ie(()=>Ig)},Mg=(()=>Promise.resolve(null))();let Ig=(()=>{class e extends Kf{constructor(e,t){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new Ol,this.form=new xg({},$f(e),Gf(t))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Mg.then(()=>{const t=this._findContainer(e.path);e.control=t.registerControl(e.name,e.control),rg(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Mg.then(()=>{const t=this._findContainer(e.path);t&&t.removeControl(e.name),mg(this._directives,e)})}addFormGroup(e){Mg.then(()=>{const t=this._findContainer(e.path),n=new xg({});ug(n,e),t.registerControl(e.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Mg.then(()=>{const t=this._findContainer(e.path);t&&t.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,t){Mg.then(()=>{this.form.get(e.path).setValue(t)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,hg(this.form,this._directives),this.ngSubmit.emit(e),!1}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return e.\u0275fac=function(t){return new(t||e)(_s(Of,10),_s(Ef,10))},e.\u0275dir=Ye({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,t){1&e&&Us("submit",function(e){return t.onSubmit(e)})("reset",function(){return t.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[fa([Pg]),os]}),e})();const Og={provide:Xf,useExisting:ie(()=>Fg)},Eg=(()=>Promise.resolve(null))();let Fg=(()=>{class e extends Xf{constructor(e,t,n,i){super(),this.control=new kg,this._registered=!1,this.update=new Ol,this._parent=e,this._setValidators(t),this._setAsyncValidators(n),this.valueAccessor=pg(0,i)}ngOnChanges(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),dg(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?ig(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){rg(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){Eg.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1})})}_updateDisabled(e){const t=e.isDisabled.currentValue,n=""===t||t&&"false"!==t;Eg.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()})}}return e.\u0275fac=function(t){return new(t||e)(_s(Kf,9),_s(Of,10),_s(Ef,10),_s(_f,10))},e.\u0275dir=Ye({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[fa([Og]),os,lt]}),e})(),Ug=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=Ye({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e})();const Lg={provide:_f,useExisting:ie(()=>Dg),multi:!0};let Dg=(()=>{class e extends Sf{constructor(e,t){super(),this._renderer=e,this._elementRef=t,this.onChange=e=>{},this.onTouched=()=>{}}writeValue(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==e?"":e)}registerOnChange(e){this.onChange=t=>{e(""==t?null:parseFloat(t))}}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)}}return e.\u0275fac=function(t){return new(t||e)(_s(ka),_s(_a))},e.\u0275dir=Ye({type:e,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(e,t){1&e&&Us("input",function(e){return t.onChange(e.target.value)})("blur",function(){return t.onTouched()})},features:[fa([Lg]),os]}),e})(),Rg=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({}),e})();const Ng=new Bn("NgModelWithFormControlWarning"),Vg={provide:Kf,useExisting:ie(()=>jg)};let jg=(()=>{class e extends Kf{constructor(e,t){super(),this.validators=e,this.asyncValidators=t,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ol,this._setValidators(e),this._setAsyncValidators(t)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(lg(this.form,this,!1),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const t=this.form.get(e.path);return rg(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t}getControl(e){return this.form.get(e.path)}removeControl(e){og(e.control||null,e,!1),mg(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,t){this.form.get(e.path).setValue(t)}onSubmit(e){return this.submitted=!0,hg(this.form,this.directives),this.ngSubmit.emit(e),!1}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const t=e.control,n=this.form.get(e.path);t!==n&&(og(t||null,e),n instanceof kg&&(rg(n,e),e.control=n))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const t=this.form.get(e.path);ug(t,e),t.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const t=this.form.get(e.path);t&&function(e,t){return lg(e,t,!1)}(t,e)&&t.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ag(this.form,this,!1),this._oldForm&&lg(this._oldForm,this,!1)}_checkFormPresent(){}}return e.\u0275fac=function(t){return new(t||e)(_s(Of,10),_s(Ef,10))},e.\u0275dir=Ye({type:e,selectors:[["","formGroup",""]],hostBindings:function(e,t){1&e&&Us("submit",function(e){return t.onSubmit(e)})("reset",function(){return t.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[fa([Vg]),os,lt]}),e})();const Hg={provide:Xf,useExisting:ie(()=>zg)};let zg=(()=>{class e extends Xf{constructor(e,t,n,i,r){super(),this._ngModelWarningConfig=r,this._added=!1,this.update=new Ol,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(t),this._setAsyncValidators(n),this.valueAccessor=pg(0,i)}set isDisabled(e){}ngOnChanges(e){this._added||this._setUpControl(),dg(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return ig(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return e.\u0275fac=function(t){return new(t||e)(_s(Kf,13),_s(Of,10),_s(Ef,10),_s(_f,10),_s(Ng,8))},e.\u0275dir=Ye({type:e,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[fa([Hg]),os,lt]}),e._ngModelWarningSentOnce=!1,e})();const Bg={provide:_f,useExisting:ie(()=>qg),multi:!0};function $g(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let qg=(()=>{class e extends Sf{constructor(e,t){super(),this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=e=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(e){this._compareWith=e}writeValue(e){this.value=e;const t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);const n=$g(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)}registerOnChange(e){this.onChange=t=>{this.value=this._getOptionValue(t),e(this.value)}}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(const t of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(t),e))return t;return null}_getOptionValue(e){const t=function(e){return e.split(":")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t):e}}return e.\u0275fac=function(t){return new(t||e)(_s(ka),_s(_a))},e.\u0275dir=Ye({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(e,t){1&e&&Us("change",function(e){return t.onChange(e.target.value)})("blur",function(){return t.onTouched()})},inputs:{compareWith:"compareWith"},features:[fa([Bg]),os]}),e})(),Gg=(()=>{class e{constructor(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue($g(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(_s(_a),_s(ka),_s(qg,9))},e.\u0275dir=Ye({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const Wg={provide:_f,useExisting:ie(()=>Zg),multi:!0};function Yg(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Zg=(()=>{class e extends Sf{constructor(e,t){super(),this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=e=>{},this.onTouched=()=>{},this._compareWith=Object.is}set compareWith(e){this._compareWith=e}writeValue(e){let t;if(this.value=e,Array.isArray(e)){const n=e.map(e=>this._getOptionId(e));t=(e,t)=>{e._setSelected(n.indexOf(t.toString())>-1)}}else t=(e,t)=>{e._setSelected(!1)};this._optionMap.forEach(t)}registerOnChange(e){this.onChange=t=>{const n=[];if(void 0!==t.selectedOptions){const e=t.selectedOptions;for(let t=0;t{class e{constructor(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){null!=this._select&&(this._value=e,this._setElementValue(Yg(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue(Yg(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(_s(_a),_s(ka),_s(Zg,9))},e.\u0275dir=Ye({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const Kg={provide:Of,useExisting:ie(()=>Jg),multi:!0};let Jg=(()=>{class e{constructor(){this._required=!1}get required(){return this._required}set required(e){this._required=null!=e&&!1!==e&&"false"!=`${e}`,this._onChange&&this._onChange()}validate(e){return this.required?Lf(e):null}registerOnValidatorChange(e){this._onChange=e}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=Ye({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(e,t){2&e&&vs("required",t.required?"":null)},inputs:{required:"required"},features:[fa([Kg])]}),e})();const Xg={provide:Of,useExisting:ie(()=>eb),multi:!0};let eb=(()=>{class e{constructor(){this._validator=Rf}ngOnChanges(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())}validate(e){return null!=this.maxlength?this._validator(e):null}registerOnValidatorChange(e){this._onChange=e}_createValidator(){this._validator=Df("number"==typeof this.maxlength?this.maxlength:parseInt(this.maxlength,10))}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275dir=Ye({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&vs("maxlength",t.maxlength?t.maxlength:null)},inputs:{maxlength:"maxlength"},features:[fa([Xg]),lt]}),e})(),tb=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[Rg]]}),e})(),nb=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[tb]}),e})(),ib=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Ng,useValue:t.warnOnNgModelWithFormControl}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[tb]}),e})(),rb=(()=>{class e{group(e,t=null){const n=this._reduceControls(e);let i,r=null,o=null;return null!=t&&(function(e){return void 0!==e.asyncValidators||void 0!==e.validators||void 0!==e.updateOn}(t)?(r=null!=t.validators?t.validators:null,o=null!=t.asyncValidators?t.asyncValidators:null,i=null!=t.updateOn?t.updateOn:void 0):(r=null!=t.validator?t.validator:null,o=null!=t.asyncValidator?t.asyncValidator:null)),new xg(n,{asyncValidators:o,updateOn:i,validators:r})}control(e,t,n){return new kg(e,t,n)}array(e,t,n){const i=e.map(e=>this._createControl(e));return new Tg(i,t,n)}_reduceControls(e){const t={};return Object.keys(e).forEach(n=>{t[n]=this._createControl(e[n])}),t}_createControl(e){return e instanceof kg||e instanceof xg||e instanceof Tg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({factory:function(){return new e},token:e,providedIn:ib}),e})();function ob(e,t){if(1&e&&(xs(0,"option",43),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Qs("",e.count," miners\xa0\xa0\xa0\xa0($",e.price,")\xa0\xa0")}}function sb(e,t){if(1&e&&(xs(0,"option",43),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Ys(e.count)}}function ab(e,t){if(1&e&&(xs(0,"div",36),xs(1,"label",44),Ws(2),Ts(),Ts()),2&e){const e=Rs();qr(2),Zs("Price of license: $",null==e.selectedPrice?null:e.selectedPrice.price,"")}}const lb=function(){return{topic:"sales"}};let cb=(()=>{class e{constructor(e,t,n){this.titleService=t,this.metaTagService=n,this.lgMinerPrices=[],this.selectedPrice=null,this.ultimateMinerPrices=[],this.selectedUltimatePrice=null,this.lgMinerPrices=e.lgMinerPrices,this.ultimateMinerPrices=e.ultimateMinerPrices,this.selectedUltimatePrice=this.ultimateMinerPrices[0]}ngOnInit(){this.titleService.setTitle("Buy Awesome Miner"),this.metaTagService.updateTag({name:"description",content:"Buy one of the editions of Awesome Miner to get access to more powerful mining features"})}}return e.\u0275fac=function(t){return new(t||e)(_s(yf),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-buy-page"]],decls:489,vars:13,consts:[[1,"container"],[1,"imgSection"],[1,"table","table-striped","table-responsive",2,"max-width","1110px"],[2,"width","455px"],[2,"width","90px","text-align","center"],[2,"width","100px","text-align","center"],[2,"width","140px","text-align","center"],[1,"featureCheck"],["alt","yes",1,"feature","fas","fa-check-circle"],["routerLink","/productsupport"],["alt","yes",1,"fas","fa-check-circle"],[2,"margin-top","5px"],["routerLink","/cloud"],["routerLink","/cloud","fragment","start"],["href","https://support.awesomeminer.com/support/solutions/articles/35000085912-notifications"],["href","https://support.awesomeminer.com/support/solutions/articles/35000086624-built-in-web-interface"],["href","https://support.awesomeminer.com/support/solutions/articles/35000085989-configure-privileged-api-access-for-antminer"],["id","A3","href","https://support.awesomeminer.com/support/solutions/articles/35000086015-gpu-overclocking"],["id","A1","href","https://support.awesomeminer.com/support/solutions/articles/35000085916-awesome-miner-http-api"],["id","A5","href","https://support.awesomeminer.com/support/solutions/articles/35000086022-performance-history"],["id","A2","href","https://support.awesomeminer.com/support/solutions/articles/35000086027-security-and-multi-user-access-control"],[2,"text-align","center","padding-left","12px","padding-right","12px"],["id","lblUltimatePrice"],[2,"width","100%","margin-top","10px","margin-bottom","10px"],["id","cmbUltimateCount",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],["href","https://sites.fastspring.com/intellibreeze/instant/awesomeminerstandardedition?member=new&sessionOption=new","role","button",1,"btn","btn-success","btn-block"],["href","https://sites.fastspring.com/intellibreeze/instant/awesomeminerprofessionaledition?member=new&sessionOption=new","role","button",1,"btn","btn-success","btn-block"],["href","https://sites.fastspring.com/intellibreeze/instant/awesomeminerpremiumedition?member=new&sessionOption=new","role","button",1,"btn","btn-success","btn-block"],["href","https://sites.fastspring.com/intellibreeze/instant/awesomeminerenterpriseedition?member=new&sessionOption=new","role","button",1,"btn","btn-success","btn-block"],["id","btnBuyUltimate","role","button",1,"btn","btn-success"],["routerLink","/upgrade","role","button",1,"btn","btn-success","ngMainButton"],["routerLink","/contact",3,"queryParams"],[1,"table","table-striped","table-responsive",2,"max-width","400px"],[2,"width","200px"],[1,"form-group","row",2,"margin-top","10px"],[1,"col-md-3"],[1,"col-form-label","font-weight-bold",2,"text-align","left"],[1,"col-md-2"],["required","","id","minercount",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],["disabled","",3,"ngValue"],["class","col-md-3",4,"ngIf"],["routerLink","/recoverlicense"],[3,"ngValue"],["id","price",1,"col-form-label","font-weight-bold",2,"text-align","left"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Buy Awesome Miner"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," The Awesome Miner license is a "),xs(6,"b"),Ws(7,"one time cost and it will never expire"),Ts(),Ws(8,". Access to the latest software versions are always available for free. "),Ts(),Ts(),xs(9,"table",2),xs(10,"thead"),xs(11,"tr"),Ps(12,"th",3),xs(13,"th",4),Ws(14,"Free edition"),Ts(),xs(15,"th",5),Ws(16,"Standard edition"),Ts(),xs(17,"th",5),Ws(18,"Professional edition"),Ts(),xs(19,"th",5),Ws(20,"Premium edition"),Ts(),xs(21,"th",5),Ws(22,"Enterprise edition"),Ts(),xs(23,"th",6),Ws(24,"Ultimate edition"),Ps(25,"br"),Ws(26,"100 - 900"),Ts(),Ts(),Ts(),xs(27,"tbody"),xs(28,"tr"),xs(29,"td"),xs(30,"b"),Ws(31,"Mining monitoring and management"),Ts(),Ps(32,"br"),xs(33,"small"),Ws(34," Awesome Miner makes mining of Bitcoin, Litecoin, Ethereum and other crypto currencies easy with many of the features are included in all editions. "),Ts(),Ts(),xs(35,"td",7),Ps(36,"i",8),Ts(),xs(37,"td",7),Ps(38,"i",8),Ts(),xs(39,"td",7),Ps(40,"i",8),Ts(),xs(41,"td",7),Ps(42,"i",8),Ts(),xs(43,"td",7),Ps(44,"i",8),Ts(),xs(45,"td",7),Ps(46,"i",8),Ts(),Ts(),xs(47,"tr"),xs(48,"td"),xs(49,"b"),xs(50,"a",9),Ws(51,"Product Support via e-mail"),Ts(),Ts(),Ps(52,"br"),xs(53,"small"),Ws(54," An Awesome Miner license includes 365 days of e-mail based product support. In order to get product support after this period, sign up for either a Product Support subscription or a Cloud Services subscription. "),Ts(),Ts(),Ps(55,"td"),xs(56,"td",7),Ps(57,"i",10),xs(58,"div",11),xs(59,"small"),Ws(60,"365 days"),Ts(),Ts(),Ts(),xs(61,"td",7),Ps(62,"i",10),xs(63,"div",11),xs(64,"small"),Ws(65,"365 days"),Ts(),Ts(),Ts(),xs(66,"td",7),Ps(67,"i",10),xs(68,"div",11),xs(69,"small"),Ws(70,"365 days"),Ts(),Ts(),Ts(),xs(71,"td",7),Ps(72,"i",10),xs(73,"div",11),xs(74,"small"),Ws(75,"365 days"),Ts(),Ts(),Ts(),xs(76,"td",7),Ps(77,"i",10),xs(78,"div",11),xs(79,"small"),Ws(80,"365 days"),Ts(),Ts(),Ts(),Ts(),xs(81,"tr"),xs(82,"td"),xs(83,"b"),xs(84,"a",12),Ws(85,"Cloud Services"),Ts(),Ts(),Ps(86,"br"),xs(87,"small"),Ws(88," Optional: Sign up for a 30 day free period of Cloud Services. Enables monitoring of mining operations via the cloud based web interface. Extends the e-mail based product support. "),Ts(),Ts(),Ps(89,"td"),xs(90,"td",7),Ps(91,"i",10),xs(92,"div",11),xs(93,"small"),Ws(94,"30 days after "),xs(95,"a",13),Ws(96,"signing up"),Ts(),Ts(),Ts(),Ts(),xs(97,"td",7),Ps(98,"i",10),xs(99,"div",11),xs(100,"small"),Ws(101,"30 days after "),xs(102,"a",13),Ws(103,"signing up"),Ts(),Ts(),Ts(),Ts(),xs(104,"td",7),Ps(105,"i",10),xs(106,"div",11),xs(107,"small"),Ws(108,"30 days after "),xs(109,"a",13),Ws(110,"signing up"),Ts(),Ts(),Ts(),Ts(),xs(111,"td",7),Ps(112,"i",10),xs(113,"div",11),xs(114,"small"),Ws(115,"30 days after "),xs(116,"a",13),Ws(117,"signing up"),Ts(),Ts(),Ts(),Ts(),xs(118,"td",7),Ps(119,"i",10),xs(120,"div",11),xs(121,"small"),Ws(122,"30 days after "),xs(123,"a",13),Ps(124,"br"),Ws(125,"signing up"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(126,"tr"),xs(127,"td"),xs(128,"b"),xs(129,"a",14),Ws(130,"Notifications"),Ts(),Ts(),Ps(131,"br"),xs(132,"small"),Ws(133," Receive e-mail and desktop notifications for any problems or low performance in the mining operations. "),Ts(),Ts(),Ps(134,"td"),xs(135,"td",7),Ps(136,"i",10),Ts(),xs(137,"td",7),Ps(138,"i",10),Ts(),xs(139,"td",7),Ps(140,"i",10),Ts(),xs(141,"td",7),Ps(142,"i",10),Ts(),xs(143,"td",7),Ps(144,"i",10),Ts(),Ts(),xs(145,"tr"),xs(146,"td"),xs(147,"b"),xs(148,"a",15),Ws(149,"Built-in Web"),Ts(),Ts(),Ps(150,"br"),xs(151,"small"),Ws(152," Monitor the miners and perform the most common mining operations from any computer or mobile device. "),Ts(),Ts(),Ps(153,"td"),Ps(154,"td"),xs(155,"td",7),Ps(156,"i",10),Ts(),xs(157,"td",7),Ps(158,"i",10),Ts(),xs(159,"td",7),Ps(160,"i",10),Ts(),xs(161,"td",7),Ps(162,"i",10),Ts(),Ts(),xs(163,"tr"),xs(164,"td"),xs(165,"b"),xs(166,"a",16),Ws(167,"Antminer and SSH management"),Ts(),Ts(),Ps(168,"br"),xs(169,"small"),Ws(170," Automatic configuration of privileged API access and configure default pools. Automate mining operations by sending SSH commands. "),Ts(),Ts(),Ps(171,"td"),Ps(172,"td"),xs(173,"td",7),Ps(174,"i",10),Ts(),xs(175,"td",7),Ps(176,"i",10),Ts(),xs(177,"td",7),Ps(178,"i",10),Ts(),xs(179,"td",7),Ps(180,"i",10),Ts(),Ts(),xs(181,"tr"),xs(182,"td"),xs(183,"b"),xs(184,"a",17),Ws(185,"Large scale GPU overclocking"),Ts(),Ts(),Ps(186,"br"),xs(187,"small"),Ws(188," Native GPU overclocking, including core and memory speed, voltage, fan and more. "),Ts(),Ts(),Ps(189,"td"),Ps(190,"td"),Ps(191,"td"),xs(192,"td",7),Ps(193,"i",10),Ts(),xs(194,"td",7),Ps(195,"i",10),Ts(),xs(196,"td",7),Ps(197,"i",10),Ts(),Ts(),xs(198,"tr"),xs(199,"td"),xs(200,"b"),xs(201,"a",18),Ws(202,"API and C# scripting"),Ts(),Ts(),Ps(203,"br"),xs(204,"small"),Ws(205," Use the HTTP API to monitor and perform operations via external applications. Develop C# scripts to customize even more. "),Ts(),Ts(),Ps(206,"td"),Ps(207,"td"),Ps(208,"td"),xs(209,"td",7),Ps(210,"i",10),Ts(),xs(211,"td",7),Ps(212,"i",10),Ts(),xs(213,"td",7),Ps(214,"i",10),Ts(),Ts(),xs(215,"tr"),xs(216,"td"),xs(217,"b"),xs(218,"a",19),Ws(219,"Mining history"),Ts(),Ts(),Ps(220,"br"),xs(221,"small"),Ws(222," Save long-term performance statistics, generate charts and export CSV-data to Excel for even more powerful data processing and visualization. "),Ts(),Ts(),Ps(223,"td"),Ps(224,"td"),Ps(225,"td"),xs(226,"td",7),Ps(227,"i",10),Ts(),xs(228,"td",7),Ps(229,"i",10),Ts(),xs(230,"td",7),Ps(231,"i",10),Ts(),Ts(),xs(232,"tr"),xs(233,"td"),xs(234,"b"),xs(235,"a",20),Ws(236,"Security and multi-user access control"),Ts(),Ts(),Ps(237,"br"),xs(238,"small"),Ws(239," The security feature can be used to define access control and permissions for each group of users. "),Ts(),Ts(),Ps(240,"td"),Ps(241,"td"),Ps(242,"td"),Ps(243,"td"),xs(244,"td",7),Ps(245,"i",10),Ts(),xs(246,"td",7),Ps(247,"i",10),Ts(),Ts(),xs(248,"tr"),xs(249,"td"),xs(250,"b"),Ws(251,"Maximum number of miners"),Ts(),Ps(252,"br"),xs(253,"small"),Ws(254,"A limitation of how many mining processes (e.g. Cgminer, Sgminer) that can be prepared and monitored."),Ps(255,"br"),Ts(),Ts(),xs(256,"td",7),xs(257,"h4"),Ws(258,"2"),Ts(),Ts(),xs(259,"td",7),xs(260,"h4"),Ws(261,"4"),Ts(),Ts(),xs(262,"td",7),xs(263,"h4"),Ws(264,"10"),Ts(),Ts(),xs(265,"td",7),xs(266,"h4"),Ws(267,"20"),Ts(),Ts(),xs(268,"td",7),xs(269,"h4"),Ws(270,"40"),Ts(),Ts(),xs(271,"td",7),xs(272,"h4"),Ws(273,"100 - 900"),Ts(),Ts(),Ts(),xs(274,"tr"),xs(275,"td"),xs(276,"b"),Ws(277,"Price"),Ts(),Ps(278,"br"),xs(279,"small"),Ws(280,"A one time cost, including free upgrades to the latest software version."),Ps(281,"br"),Ws(282," VAT will be added for customers in EU and other markets where required. "),Ps(283,"br"),Ts(),Ts(),xs(284,"td",7),xs(285,"h4"),xs(286,"b"),Ws(287,"Free"),Ts(),Ts(),Ts(),xs(288,"td",7),xs(289,"h4"),xs(290,"b"),Ws(291,"$35"),Ts(),Ts(),Ts(),xs(292,"td",7),xs(293,"h4"),xs(294,"b"),Ws(295,"$85"),Ts(),Ts(),Ts(),xs(296,"td",7),xs(297,"h4"),xs(298,"b"),Ws(299,"$170"),Ts(),Ts(),Ts(),xs(300,"td",7),xs(301,"h4"),xs(302,"b"),Ws(303,"$340"),Ts(),Ts(),Ts(),xs(304,"td",21),xs(305,"h4"),xs(306,"b"),Ws(307,"$"),xs(308,"span",22),Ws(309),Ts(),Ts(),Ts(),xs(310,"div",23),xs(311,"select",24),Us("ngModelChange",function(e){return t.selectedUltimatePrice=e}),Cs(312,ob,2,3,"option",25),Ts(),Ts(),Ts(),Ts(),xs(313,"tr"),xs(314,"td"),xs(315,"b"),Ws(316,"Buy using Credit card or PayPal"),Ts(),Ps(317,"br"),xs(318,"small"),Ws(319,"Pay with your credit card, PayPal account, Amazon account or Bank transfer using the FastSpring payment processor. "),Ts(),Ts(),Ps(320,"td",7),xs(321,"td",7),xs(322,"a",26),Ws(323,"Buy"),Ps(324,"br"),Ws(325,"Standard"),Ts(),Ts(),xs(326,"td",7),xs(327,"a",27),Ws(328,"Buy"),Ps(329,"br"),Ws(330,"Professional"),Ts(),Ts(),xs(331,"td",7),xs(332,"a",28),Ws(333,"Buy"),Ps(334,"br"),Ws(335,"Premium"),Ts(),Ts(),xs(336,"td",7),xs(337,"a",29),Ws(338,"Buy"),Ps(339,"br"),Ws(340,"Enterprise"),Ts(),Ts(),xs(341,"td",7),xs(342,"p"),xs(343,"a",30),Ws(344,"Buy"),Ps(345,"br"),Ws(346),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(347,"div",1),xs(348,"h3"),Ws(349,"Upgrade your edition"),Ts(),xs(350,"p"),Ws(351," You can upgrade to a higher edition of Awesome Miner, for example from Professional Edition to Premium Edition, and only pay for the price difference. If you already have a license and want to upgrade, please use the Upgrade button below to continue. "),Ts(),xs(352,"p"),xs(353,"a",31),Ws(354,"Upgrade"),Ts(),Ts(),xs(355,"h3"),Ws(356,"Optional subscriptions"),Ts(),xs(357,"p"),Ws(358," To access additional services, sign up for one of the following subscriptions: "),Ts(),xs(359,"ul"),xs(360,"li"),xs(361,"a",12),Ws(362,"Cloud Services"),Ts(),Ws(363," is a monthly or annual subscription and can be used to get cloud based features and extend the e-mail based product support."),Ts(),xs(364,"li"),xs(365,"a",9),Ws(366,"Product Support"),Ts(),Ws(367," is an annual subscription to extend the e-mail based product support."),Ts(),Ts(),xs(368,"h3"),Ws(369,"More than 900 miners?"),Ts(),xs(370,"div",1),xs(371,"p"),Ws(372," Awesome Miner can manage and monitor up to 200,000 ASIC miners and 25,000 GPU miners. To order a license for 1,000 miners or more, please "),xs(373,"a",32),Ws(374,"contact us"),Ts(),Ws(375," for more information. "),Ts(),xs(376,"table",33),xs(377,"thead"),xs(378,"tr"),xs(379,"th",34),Ws(380,"Number of miners"),Ts(),xs(381,"th",34),Ws(382,"Price"),Ts(),Ts(),Ts(),xs(383,"tbody"),xs(384,"tr"),xs(385,"td"),Ws(386,"First 300 miners"),Ts(),xs(387,"td"),Ws(388,"$1800 in total"),Ts(),Ts(),xs(389,"tr"),xs(390,"td"),Ws(391,"400 - 1000 miners"),Ts(),xs(392,"td"),Ws(393,"$500 per 100 miners"),Ts(),Ts(),xs(394,"tr"),xs(395,"td"),Ws(396,"After 1000 miners"),Ts(),xs(397,"td"),Ws(398,"$450 per 100 miners"),Ts(),Ts(),Ts(),Ts(),Ws(399," VAT will be added for customers in EU and other markets where required. "),xs(400,"h4"),Ws(401,"Calculate license cost for a large number of miners"),Ts(),xs(402,"div",35),xs(403,"div",36),xs(404,"label",37),Ws(405,"Number of miners:"),Ts(),Ts(),xs(406,"div",38),xs(407,"select",39),Us("ngModelChange",function(e){return t.selectedPrice=e}),xs(408,"option",40),Ws(409,"Select"),Ts(),Cs(410,sb,2,2,"option",25),Ts(),Ts(),Cs(411,ab,3,1,"div",41),Ts(),Ps(412,"p"),Ts(),xs(413,"h3"),Ws(414,"How to buy using Credit card, PayPal or Bank transfer"),Ts(),xs(415,"ol"),xs(416,"li"),Ws(417,"Click one of the green "),xs(418,"b"),Ws(419,"Buy"),Ts(),Ws(420," buttons above."),Ts(),xs(421,"li"),Ws(422,"Follow the payment process and make sure you enter your e-mail address correctly - this information will be used for the registration code you will receive later."),Ts(),xs(423,"li"),Ws(424,"When the payment is confirmed (typically within a few minutes), you will receive your registration code by e-mail. For Bank payments, it can take up to 1 - 3 business days before the payment is confirmed."),Ts(),xs(425,"li"),Ws(426,"By entering your e-mail address and registration code in Awesome Miner, you will get access to all the features of the edition you selected."),Ts(),Ts(),Ws(427," It is very important to enter a valid e-mail address during the registration. The registration code will be sent to this e-mail address. "),xs(428,"h3"),Ws(429,"Frequently Asked Questions"),Ts(),xs(430,"p"),xs(431,"b"),Ws(432,"Are there any yearly fees?"),Ts(),Ps(433,"br"),Ws(434," No, not for the Awesome Miner product itself. You only need to pay for Awesome Miner once, and you will always be able to install the latest version for free."),Ps(435,"br"),Ws(436," In order to get access to the additional Cloud Services and extend the e-mail based support after 365 days, a monthly or annual subscription is required. "),Ts(),xs(437,"p"),xs(438,"b"),Ws(439,"Can I get a time limited trial license?"),Ts(),Ps(440,"br"),Ws(441," Awesome Miner can be downloaded and used without a license, but in order to get access to all features and to run with a larger number of miners, please "),xs(442,"a",32),Ws(443,"contact us"),Ts(),Ws(444," and we will provide a time limited trial license. "),Ts(),xs(445,"p"),xs(446,"b"),Ws(447,"Can I pay with Bitcoin?"),Ts(),Ps(448,"br"),Ws(449," The Bitcoin payment support has been disabled. Bitcoin payments are planned to be supported again in the future. "),Ts(),xs(450,"p"),xs(451,"b"),Ws(452,"Where can I enter my EU VAT ID?"),Ts(),Ps(453,"br"),Ws(454," On the final order page, before the final order confirmation is made, companies can enter their valid EU VAT ID to prevent VAT from being added. "),Ts(),xs(455,"b"),Ws(456,"What should I do if I haven't received the registration code?"),Ts(),Ps(457,"br"),xs(458,"ol"),xs(459,"li"),Ws(460," Please check your spam folder to make sure the registration mail isn't there. "),Ts(),xs(461,"li"),Ws(462," Normally you should receive the registration mail within an hour. If you haven't received it after a couple of hours, please contact us. The exception is payments made using Bank transfer, where it can take up to 1 - 3 business days for the payment to be confirmed. "),Ts(),xs(463,"li"),Ws(464," If you mistyped your e-mail address during the registration, or entered an e-mail address that cannot receive mail, it will not be possible to receive the registration mail. If you haven't received it after a few hours, please contact us. "),Ts(),Ts(),xs(465,"p"),xs(466,"b"),Ws(467,"My registration code isn't working."),Ts(),Ps(468,"br"),Ws(469," It is very important to enter the registration details "),xs(470,"u"),Ws(471,"exactly"),Ts(),Ws(472," as specified in the registration mail. All registration codes that are sent out are valid. "),Ts(),xs(473,"p"),xs(474,"b"),Ws(475,"I have two computers, can I use the same registration code on both?"),Ts(),Ps(476,"br"),Ws(477," Yes, you can use the same registration code on up to four computers that belong to you if you monitor the same miners and don't exceed the number of miners your license if valid for. If you need to use the same license on more than four computers, please contact us first for approval. "),Ps(478,"br"),xs(479,"i"),Ws(480,"It's not allowed to share your registration code with other users and not allowed to publish the registration code for everyone to use. Registration codes being shared with many users or published on the Internet will be blocked without refund."),Ts(),Ts(),xs(481,"p"),xs(482,"b"),Ws(483,"How can I recover my lost registration code?"),Ts(),Ps(484,"br"),Ws(485," If you have ordered an Awesome Miner license earlier, you can recover the information by using the "),xs(486,"a",42),Ws(487,"form to recover a lost registration code"),Ts(),Ws(488,". "),Ts(),Ts(),Ts()),2&e&&(qr(309),Ys(null==t.selectedUltimatePrice?null:t.selectedUltimatePrice.price),qr(2),As("ngModel",t.selectedUltimatePrice),qr(1),As("ngForOf",t.ultimateMinerPrices),qr(31),vs("href","https://sites.fastspring.com/intellibreeze/instant/"+(null==t.selectedUltimatePrice?null:t.selectedUltimatePrice.link)+"?member=new&sessionOption=new",Qi),qr(3),Zs("Ultimate ",null==t.selectedUltimatePrice?null:t.selectedUltimatePrice.count,""),qr(27),As("queryParams",vl(11,lb)),qr(34),As("ngModel",t.selectedPrice),qr(1),As("ngValue",null),qr(2),As("ngForOf",t.lgMinerPrices),qr(1),As("ngIf",null!==t.selectedPrice),qr(31),As("queryParams",vl(12,lb)))},directives:[Km,qg,tg,Fg,Eu,Jg,Gg,Qg,Uu],styles:[""]}),e})(),ub=(()=>{class e{constructor(e){this._router=e,this.initTwitterWidget()}initTwitterWidget(){this.twitter=this._router.events.subscribe(e=>{e instanceof Th&&"undefined"!=typeof window&&(window.twttr=function(e,t,n){let i;const r=e.getElementsByTagName(t)[0],o=/^http:/.test(e.location.toString())?"http":"https",s=window.twttr||{};return e.getElementById(n)||(i=e.createElement(t),i.id=n,i.src=o+"://platform.twitter.com/widgets.js",r&&r.parentNode&&r.parentNode.insertBefore(i,r),s._e=[],s.ready=function(e){s._e.push(e)}),s}(document,"script","twitter-wjs"),window.twttr.ready()&&window.twttr.widgets.load())})}ngOnDestroy(){this.twitter.unsubscribe()}}return e.\u0275fac=function(t){return new(t||e)(_s(Qm))},e.\u0275cmp=ze({type:e,selectors:[["am-interact"]],decls:2,vars:0,consts:[["data-width","520","data-height","378","href","https://twitter.com/AwesomeMinerApp?ref_src=twsrc%5Etfw",1,"twitter-timeline"]],template:function(e,t){1&e&&(xs(0,"a",0),Ws(1,"Tweets by AwesomeMinerApp"),Ts())},styles:[""]}),e})(),db=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner - Manage and monitor mining operations"),this.metaTagService.updateTag({name:"description",content:"The leading solution to manage and monitor mining operations of any size up to 200,000 miners. ASIC, GPU and CPU support."})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-home-page"]],decls:387,vars:0,consts:[[1,"jumbotron"],[1,"container",2,"margin-bottom","0","padding","0"],[1,"text-center"],[1,"ngTopTitleLarge"],[1,"ngTopArea"],[1,"row"],[1,"col-xl-5","col-lg-5","col-md-12","pull-left"],[1,"ngTopTitle"],[1,"ngTopInfoNarrow"],[1,"ngMainButtonArea"],["routerLink","/download","role","button",1,"btn","btn-lg","btn-success","ngMainButton"],[1,"col-xl-7","col-lg-7","col-md-12"],[1,"shadow","p-1","mb-1","bg-white","rounded"],["src","img/awesome-miner.png","alt","mining monitoring software windows",1,"mx-auto","img-fluid"],[1,"clearfix"],[1,"container",2,"margin-top","20px","padding-left","0","padding-right","38px"],[1,"sectionContainer"],[1,"sectionTop"],["src","img/main/gpu-miner.png","alt","manage gpu mining",1,""],[1,"sectionTitle"],[1,"card-deck"],[1,"card","ngMainCard"],[1,"card-body","adjustedCardBody"],[1,"card-title","ngMainCardTitle"],[1,"card-text"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086015-gpu-overclocking"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085714-profit-switching-introduction"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086016-benchmark-algorithm-hashrates"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000104685-power-consumption-and-profitability"],["routerLink","/software-list"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086018-managed-software-add-and-customize-mining-software"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086025-add-a-new-algorithm"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086010-mining-pools"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086014-display-additional-gpu-information"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085713-remote-agent-control-mining-on-a-remote-computer"],[2,"border-top","2px solid #edeff2","margin-top","40px"],["src","img/main/asic-miner.png","alt","manage and monitor ASIC mining",1,""],["routerLink","/asic-hardware"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086088-profit-switching-for-asic-mining"],["routerLink","/antminerfirmware"],["routerLink","/firmware/antminer-s9"],["routerLink","/firmware/antminer-t9-plus"],["routerLink","/firmware/antminer-l3-plus"],["routerLink","/firmware/antminer-s17"],["routerLink","/firmware/antminer-s17-plus"],["routerLink","/firmware/antminer-t17"],["routerLink","/firmware/antminer-t17-plus"],["routerLink","/firmware/antminer-s19"],["routerLink","/firmware/antminer-t19"],["id","A4","href","https://support.awesomeminer.com/support/solutions/articles/35000085989-configure-privileged-api-access-for-antminer"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085907-rules-detect-mining-issues-and-automate-tasks"],[1,"ngMiddleSection"],[1,"container"],[1,"col-xl-6","col-lg-5","col-md-12","pull-left"],[1,"ngCloudTitle"],[1,"ngCloudInfo"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086624-built-in-web-interface"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086027-security-and-multi-user-access-control"],["routerLink","/cloud","role","button",1,"btn","btn-lg","btn-success","ngMainButton"],[1,"col-xl-6","col-lg-7","col-md-12"],["src","img/main/cloud-01.png","alt","mining monitoring via mobile",1,"mx-auto","img-fluid"],["src","img/main/mining-features.png","alt","monitor mining",1,""],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085912-notifications"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085916-awesome-miner-http-api"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000085970-awesome-miner-c-script-api"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086022-mining-history"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086028-organize-miners-with-groups"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086029-add-tags-to-miners"],["routerLink","/pools/2miners"],["routerLink","/pools/blockmasters"],["routerLink","/pools/coinfly"],["routerLink","/pools/ethashpool"],["routerLink","/pools/hashrefinery"],["routerLink","/pools/icemining"],["routerLink","/pools/miningdutch"],["routerLink","/pools/nanopool"],["routerLink","/pools/zergpool"],["routerLink","/pools/zpool"],["routerLink","/pool-list"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086012-managed-templates-switch-managed-miner-settings-quickly"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086031-wallet-balance"],["target","_blank","rel","noopener","href","https://support.awesomeminer.com/support/solutions/articles/35000086032-pool-balance"],["href","https://bitcointalk.org/index.php?topic=676942.0"],["href","https://twitter.com/AwesomeMinerApp"],["routerLink","/contact","role","button",1,"btn","btn-lg","btn-success","ngMainButton"],[1,"d-none","d-lg-block"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"div",2),xs(3,"h1",3),Ws(4,"Complete solution to manage and monitor mining operations"),Ts(),Ts(),xs(5,"div",4),xs(6,"div",5),xs(7,"div",6),xs(8,"h2",7),Ws(9,"Powerful for large scale mining"),Ts(),xs(10,"div",8),Ws(11," Scalable up to 200,000 ASIC miners and 25,000 GPU/CPU miners"),Ps(12,"br"),Ws(13," Feature rich and flexible to serve high demanding operations "),Ts(),xs(14,"h2",7),Ws(15,"Maximize profit - Minimize downtime"),Ts(),xs(16,"div",8),Ws(17," Profit switching based on real time revenue and power consumption"),Ps(18,"br"),Ws(19," Detection of mining issues with automatic recovery "),Ts(),xs(20,"h2",7),Ws(21,"Optimized Antminer firmware"),Ts(),xs(22,"div",8),Ws(23," 15% higher performance for Antminer S19 and 40% for Antminer S17"),Ps(24,"br"),Ws(25," Improved power efficiency and more features "),Ts(),xs(26,"h2",7),Ws(27,"Easy to get started"),Ts(),xs(28,"div",8),Ws(29," Start mining within a minute"),Ps(30,"br"),Ws(31," Automatic setup of all popular mining pools with just a click "),Ts(),xs(32,"div",9),xs(33,"a",10),Ws(34," Download Windows application "),Ts(),Ts(),Ts(),xs(35,"div",11),xs(36,"div",12),Ps(37,"img",13),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ps(38,"div",14),xs(39,"div",15),xs(40,"div",16),xs(41,"div",17),Ps(42,"img",18),xs(43,"h3",19),Ws(44,"GPU MINING"),Ts(),Ts(),xs(45,"div",20),xs(46,"div",21),xs(47,"div",22),xs(48,"h5",23),Ws(49,"Native overclocking"),Ts(),xs(50,"p",24),Ws(51," Use the "),xs(52,"a",25),Ws(53,"Native overclocking"),Ts(),Ws(54," to control the clock speed, voltage, power and fan properties of your GPU's. Awesome Miner provides the unique feature of performing overclocking operations for both AMD and nVidia GPU's without using any external applications. "),Ts(),xs(55,"p"),Ws(56," The overclocking can automatically be applied at a large scale across an entire mining farm based on the current mining algorithm. "),Ts(),Ts(),Ts(),xs(57,"div",21),xs(58,"div",22),xs(59,"h5",23),Ws(60,"Profit switching"),Ts(),xs(61,"p",24),Ws(62," The "),xs(63,"a",26),Ws(64,"Profit switching feature"),Ts(),Ws(65," will optimize the mining for maximum profitability based on statistics from both standard mining pools and multi-coin pools. Access all popular mining pools with just a click to get started with the profit based mining right away. "),Ts(),xs(66,"p"),Ws(67," Use the "),xs(68,"a",27),Ws(69,"benchmark"),Ts(),Ws(70," to let Awesome Miner test multiple mining algorithms and mining software and measure the hashrate and power usage for each of them to optimize the profit switching decisions. "),Ts(),Ts(),Ts(),Ts(),xs(71,"div",20),xs(72,"div",21),xs(73,"div",22),xs(74,"h5",23),Ws(75,"Power consumption"),Ts(),xs(76,"p",24),Ws(77," The current "),xs(78,"a",28),Ws(79,"Power consumption"),Ts(),Ws(80," is displayed for both AMD and nVidia GPU's, independent of which mining software being used. The mining profit is calculated and displayed in real time based on the current power consumption, hashrate and the current mining pool. "),Ts(),Ts(),Ts(),xs(81,"div",21),xs(82,"div",22),xs(83,"h5",23),Ws(84,"Any crypto currency, Any software"),Ts(),xs(85,"p",24),Ws(86," Includes support for "),xs(87,"a",29),Ws(88,"over 50 of the most popular mining software"),Ts(),Ws(89,". Several hundred crypto currencies are included with statistics and revenue information. Full flexibility to add and deploy any custom "),xs(90,"a",30),Ws(91,"mining software"),Ts(),Ws(92,", "),xs(93,"a",31),Ws(94,"algorithm"),Ts(),Ws(95,", crypto currency and "),xs(96,"a",32),Ws(97,"mining pool"),Ts(),Ws(98,". "),Ts(),Ts(),Ts(),Ts(),xs(99,"div",20),xs(100,"div",21),xs(101,"div",22),xs(102,"h5",23),Ws(103,"GPU monitoring"),Ts(),xs(104,"p",24),xs(105,"a",33),Ws(106,"Display and monitor GPU properties"),Ts(),Ws(107," including clock speed, fan speed, power consumption and temperature. Define actions to take in case a GPU is failing or running too warm. "),Ts(),Ts(),Ts(),xs(108,"div",21),xs(109,"div",22),xs(110,"h5",23),Ws(111,"Windows and Linux"),Ts(),xs(112,"p",24),Ws(113," Manage and monitor GPU miners running on either Windows or Linux. "),xs(114,"a",34),Ws(115,"Awesome Miner Remote Agent"),Ts(),Ws(116," supports both platforms."),Ts(),Ts(),Ts(),Ts(),Ts(),Ps(117,"div",35),xs(118,"div",16),xs(119,"div",17),Ps(120,"img",36),xs(121,"h3",19),Ws(122,"ASIC MINING"),Ts(),Ts(),xs(123,"div",20),xs(124,"div",21),xs(125,"div",22),xs(126,"h5",23),Ws(127,"ASIC support"),Ts(),xs(128,"p",24),Ws(129," Manage and monitor "),xs(130,"a",37),Ws(131,"all popular ASIC devices"),Ts(),Ws(132," without installing any software on the device. Use "),xs(133,"a",38),Ws(134,"profit switching on ASIC miners"),Ts(),Ws(135," to prioritize mining on the most profitable pool. "),Ts(),xs(136,"p"),Ws(137," Supported ASIC miners includes, but are not limited to: Bitmain Antminer, Baikal, Canaan Avalon, DragonMint, Hyperbit, iBeLink, Innosilicon, Obelisk and Whatsminer. "),Ts(),Ts(),Ts(),xs(138,"div",21),xs(139,"div",22),xs(140,"h5",23),Ws(141,"Optimized Antminer firmware"),Ts(),xs(142,"p",24),Ws(143," Use the "),xs(144,"a",39),Ws(145,"optimized Antminer firmware"),Ts(),Ws(146," to get significant hashrate improvements and more features. The firmware supports display of power usage, LED flash, sleep mode, antivirus scan and multiple predefined hashrate modes. All these features are integrated in Awesome Miner. Supports Antminer "),xs(147,"a",40),Ws(148,"S9, S9i, S9j"),Ts(),Ws(149,", "),xs(150,"a",41),Ws(151,"T9+"),Ts(),Ws(152,", "),xs(153,"a",42),Ws(154,"L3+, L3++"),Ts(),Ws(155,", "),xs(156,"a",43),Ws(157,"S17, S17 Pro"),Ts(),Ws(158,", "),xs(159,"a",44),Ws(160,"S17+"),Ts(),Ws(161,", "),xs(162,"a",45),Ws(163,"T17"),Ts(),Ws(164,", "),xs(165,"a",46),Ws(166,"T17+"),Ts(),Ws(167,", "),xs(168,"a",47),Ws(169,"S19, S19 Pro, S19j, S19j Pro"),Ts(),Ws(170,", "),xs(171,"a",48),Ws(172,"T19"),Ts(),Ws(173,". "),Ts(),xs(174,"p"),Ws(175," A hashrate increase of 10% can be expected for Antminer S9, 40% for Antminer S17 and 15% for Antminer S19. The power efficiency is improved by tuning of each individual ASIC chip. "),Ts(),xs(176,"p"),Ws(177," For specific editions of the Antminer firmware, Awesome Miner is completely free of charge with all features and for any number of miners. "),Ts(),Ts(),Ts(),Ts(),xs(178,"div",20),xs(179,"div",21),xs(180,"div",22),xs(181,"h5",23),Ws(182,"Bitmain Antminer"),Ts(),xs(183,"p",24),Ws(184," Bitmain Antminer is a popular ASIC miner and all Antminer models are fully supported, including features for automatic configuration of "),xs(185,"a",49),Ws(186,"Privileged API access"),Ts(),Ws(187,", firmware upgrades and configuration of default pools. "),Ts(),Ts(),Ts(),xs(188,"div",21),xs(189,"div",22),xs(190,"h5",23),Ws(191,"Automation and SSH"),Ts(),xs(192,"p",24),xs(193,"a",50),Ws(194,"Automate the mining operations"),Ts(),Ws(195," by defining triggers and macros where the ASIC miner can be instructed to perform operations like changing mining pool or rebooting the ASIC miner. Any SSH command can be sent to an ASIC miner, for example to force a reboot or shudown. "),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(196,"div",51),xs(197,"div",52),xs(198,"div",5),xs(199,"div",53),xs(200,"h2",54),Ws(201,"Web interface"),Ts(),xs(202,"div",55),Ws(203," Awesome Miner includes a "),xs(204,"a",56),Ws(205,"built-in web interface"),Ts(),Ws(206," accessible from any computer, tablet or smart phone. "),Ts(),xs(207,"h2",54),Ws(208,"Multi-user access"),Ts(),xs(209,"div",55),xs(210,"a",57),Ws(211,"Define accounts"),Ts(),Ws(212," for multiple users to sign in to the web interface."),Ps(213,"br"),Ws(214," Assign permissions and specific miner access for each user account. "),Ts(),xs(215,"h2",54),Ws(216,"Cloud Services"),Ts(),xs(217,"div",55),Ws(218," Cloud Services provides a web based interface to Awesome Miner"),Ps(219,"br"),Ws(220," Manage and monitor your mining operations from any device from any location"),Ps(221,"br"),Ws(222," Includes Telegram app notifications for mobile devices. "),Ts(),xs(223,"div",9),xs(224,"a",58),Ws(225," More about Cloud Services "),Ts(),Ts(),Ts(),xs(226,"div",59),Ps(227,"img",60),Ts(),Ts(),Ts(),Ts(),Ps(228,"div",14),xs(229,"div",15),xs(230,"div",16),xs(231,"div",17),Ps(232,"img",61),xs(233,"h3",19),Ws(234,"FEATURES"),Ts(),Ts(),xs(235,"div",20),xs(236,"div",21),xs(237,"div",22),xs(238,"h5",23),Ws(239,"Notifications and Recovery"),Ts(),xs(240,"p",24),Ws(241," Use the predefined "),xs(242,"a",50),Ws(243,"rules"),Ts(),Ws(244," or define custom rules to take full control of the mining operations. Detection of high temperatures, slow mining progress, hanging miners and disconnected miners. Automatic restart of miners, with fully customizable triggers and actions. Define custom rules to automate tasks and setup schedules. "),Ts(),xs(245,"p",24),xs(246,"a",62),Ws(247,"Notifications"),Ts(),Ws(248," are displayed in the user interface and can also be sent by e-mail or web hooks. With a Cloud Services subscription also as Telegram App notifications and SMS messages. "),Ts(),Ts(),Ts(),xs(249,"div",21),xs(250,"div",22),xs(251,"h5",23),Ws(252,"API"),Ts(),xs(253,"p",24),Ws(254," Use the "),xs(255,"a",63),Ws(256,"HTTP API"),Ts(),Ws(257," to interact with Awesome Miner from external applications and get access to monitoring information about the miners. Use the API to provision and control the mining via external applications. "),Ts(),xs(258,"p",24),Ws(259," Use the powerful built-in "),xs(260,"a",64),Ws(261,"C# script engine"),Ts(),Ws(262," to create customized triggers and actions. Develop custom C# scripts for monitoring and performing mining and pool operations. "),Ts(),Ts(),Ts(),Ts(),xs(263,"div",20),xs(264,"div",21),xs(265,"div",22),xs(266,"h5",23),Ws(267,"Dashboard & Mining history"),Ts(),xs(268,"p",24),Ws(269," The dashboard gives an overview of all running miners and their total performance, revenue, profit and power consumption. "),Ts(),xs(270,"p",24),Ws(271," View long-term "),xs(272,"a",65),Ws(273,"mining history"),Ts(),Ws(274,", generate charts and export CSV-data to Excel for even more powerful data processing and visualization. "),Ts(),Ts(),Ts(),xs(275,"div",21),xs(276,"div",22),xs(277,"h5",23),Ws(278,"Organize miners"),Ts(),xs(279,"p",24),Ws(280," Organize your miners using "),xs(281,"a",66),Ws(282,"miner groups"),Ts(),Ws(283," to make management of larger number of miners easier. Visualize with heat maps to easier find miners with high temperature or low performance. "),Ts(),xs(284,"p",24),xs(285,"a",67),Ws(286,"Define and assign tags"),Ts(),Ws(287," to miners to filter and make it easier to identify properties of a miner. "),Ts(),Ts(),Ts(),Ts(),xs(288,"div",20),xs(289,"div",21),xs(290,"div",22),xs(291,"h5",23),Ws(292,"One click pool setup"),Ts(),xs(293,"p",24),Ws(294," Easy setup of popular mining pools without having to read page after page with setup instructions. "),Ts(),xs(295,"p"),Ws(296," Get started with "),xs(297,"a",68),Ws(298,"2miners"),Ts(),Ws(299,", "),xs(300,"a",69),Ws(301,"BlockMasters"),Ts(),Ws(302,", "),xs(303,"a",70),Ws(304,"CoinFly"),Ts(),Ws(305,", "),xs(306,"a",71),Ws(307,"Ethashpool"),Ts(),Ws(308,", "),xs(309,"a",72),Ws(310,"Hash Refinery"),Ts(),Ws(311,", "),xs(312,"a",73),Ws(313,"IceMining"),Ts(),Ws(314,", "),xs(315,"a",74),Ws(316,"Mining Dutch"),Ts(),Ws(317,", "),xs(318,"a",75),Ws(319,"Nanopool"),Ts(),Ws(320,", "),xs(321,"a",76),Ws(322,"Zergpool"),Ts(),Ws(323,", "),xs(324,"a",77),Ws(325,"Zpool"),Ts(),Ws(326,", or "),xs(327,"a",78),Ws(328,"any of the other pools"),Ts(),Ws(329,". "),Ts(),Ts(),Ts(),xs(330,"div",21),xs(331,"div",22),xs(332,"h5",23),Ws(333,"Secure On-premise solution"),Ts(),xs(334,"p",24),Ws(335," Awesome Miner runs on your infrastructure and on your network. Your important mining operations will not depend on any external services. "),Ts(),xs(336,"p"),Ws(337," The software is digitally signed and has built enough trust to automatically be accepted by the Microsoft SmartScreen filter. "),Ts(),Ts(),Ts(),Ts(),xs(338,"div",20),xs(339,"div",21),xs(340,"div",22),xs(341,"h5",23),Ws(342,"Templates"),Ts(),xs(343,"p",24),Ws(344," Use "),xs(345,"a",79),Ws(346,"templates"),Ts(),Ws(347," to apply a predefined configuration to one or many miners in a single operation. "),Ts(),Ts(),Ts(),xs(348,"div",21),xs(349,"div",22),xs(350,"h5",23),Ws(351,"Balance monitoring"),Ts(),xs(352,"p",24),Ws(353," Monitor your assets using the "),xs(354,"a",80),Ws(355,"Coin wallet balance"),Ts(),Ws(356," feature and the "),xs(357,"a",81),Ws(358,"Pool balance"),Ts(),Ws(359," feature for the most popular mining pools."),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(360,"div",51),xs(361,"div",52),xs(362,"div",5),xs(363,"div",53),xs(364,"h2",54),Ws(365,"Large community"),Ts(),xs(366,"div",55),xs(367,"p"),Ws(368," Awesome Miner is a well known solution in the mining industry and has a large and active user community, making it possible to discuss and share ideas with many experienced users. "),Ts(),xs(369,"p"),Ws(370," Join the discussions on the "),xs(371,"a",82),Ws(372,"Bitcoin Talk forum"),Ts(),Ps(373,"br"),Ws(374," Follow us on Twitter "),xs(375,"a",83),Ws(376,"@AwesomeMinerApp"),Ts(),Ts(),Ts(),xs(377,"h2",54),Ws(378,"Questions?"),Ts(),xs(379,"div",55),Ws(380," We are happy to answer any questions you have about the ordering process, software features and how we can provide solutions to your mining management requirements. "),Ts(),xs(381,"div",9),xs(382,"a",84),Ws(383,"Contact us"),Ts(),Ts(),Ts(),xs(384,"div",59),xs(385,"div",85),Ps(386,"am-interact"),Ts(),Ts(),Ts(),Ts(),Ts())},directives:[Km,ub],styles:[""]}),e})(),hb=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner Cloud Services"),this.metaTagService.updateTag({name:"description",content:"Manage and monitor your mining operations from any device from any location"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-cloud-page"]],decls:59,vars:0,consts:[[1,"jumbotron"],[1,"container",2,"margin-bottom","0","padding","0"],[1,"ngTopArea"],[1,"row"],[1,"col-xl-6","col-lg-5","col-md-12","pull-left"],[1,"ngTopTitle"],[1,"ngTopInfo"],[1,"ngMainButtonArea"],["href","https://cloud.awesomeminer.com/","role","button",1,"btn","btn-lg","btn-success","ngMainButton"],[1,"col-xl-6","col-lg-7","col-md-12",2,"padding-left","50px"],["src","img/main/cloud-01.png","alt","mining monitoring via mobile phone",1,"mx-auto","img-fluid"],[1,"clearfix"],[1,"container"],[1,"container",2,"margin-top","20px","padding-left","0","padding-right","38px"],["name","start"],[1,"col-lg-9","col-md-12","pull-left"],[1,"header"],[1,"largeBlue",2,"margin-top","18px"],["routerLink","/signup"],[1,"largeBlue"],["href","https://cloud.awesomeminer.com/Account/Register"],["id","A26","href","https://support.awesomeminer.com/support/solutions/articles/35000085992-awesome-miner-with-cloud-services"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"div",2),xs(3,"div",3),xs(4,"div",4),xs(5,"h2",5),Ws(6,"Awesome Miner Cloud Services"),Ts(),xs(7,"div",6),Ws(8," Cloud Services provides a web based interface to Awesome Miner"),Ps(9,"br"),Ws(10," Manage and monitor your mining operations from any device from any location "),Ts(),xs(11,"h2",5),Ws(12,"Multi-user access"),Ts(),xs(13,"div",6),Ws(14," Define accounts for multiple users to sign in to the web interface"),Ps(15,"br"),Ws(16," Assign permissions and specific miner access for each user account "),Ts(),xs(17,"h2",5),Ws(18,"Notifications"),Ts(),xs(19,"div",6),Ws(20," Improves the notifications by adding Telegram app notifications and SMS messages"),Ps(21,"br"),Ws(22," Receive notifications in case of network failures "),Ts(),xs(23,"div",7),xs(24,"a",8),Ws(25," Go to sign in page "),Ts(),Ts(),Ts(),xs(26,"div",9),Ps(27,"img",10),Ts(),Ts(),Ts(),Ts(),Ts(),Ps(28,"div",11),xs(29,"div",12),xs(30,"div",13),Ps(31,"a",14),xs(32,"div",3),xs(33,"div",15),xs(34,"h2",16),Ws(35,"Getting started"),Ts(),xs(36,"p"),Ws(37," Follow these easy steps to get started with Awesome Miner Cloud Services "),Ts(),xs(38,"div",17),Ws(39,"1. Sign up for a subscription"),Ts(),xs(40,"p"),Ws(41," Cloud Services is included with the "),xs(42,"a",18),Ws(43,"Awesome Miner subscription"),Ts(),Ws(44,". "),Ts(),xs(45,"div",19),Ws(46,"2. Create an account"),Ts(),xs(47,"p"),Ws(48," When the subscription has been activated, you will receive an e-mail with instructions to "),xs(49,"a",20),Ws(50,"create a Cloud Services account"),Ts(),Ws(51," where you also define a password. "),Ts(),xs(52,"div",19),Ws(53,"3. Enable in Awesome Miner"),Ts(),xs(54,"p"),Ws(55," Click the Cloud Services button in the status bar of Awesome Miner and enable the services by entering the password you defined in the previous step. Awesome Miner will now be able to push monitoring information to the cloud and send SMS notifications, depending on your configuration. See "),xs(56,"a",21),Ws(57,"Configure Awesome Miner to use Cloud Services"),Ts(),Ws(58," for detailed instructions. "),Ts(),Ts(),Ts(),Ts(),Ts())},directives:[Km],styles:[""]}),e})();var pb=function(e){return e[e.None=0]="None",e[e.Monthly=1]="Monthly",e[e.Yearly=2]="Yearly",e}({}),mb=function(e){return e[e.Cloud=0]="Cloud",e[e.Support=1]="Support",e[e.Product=2]="Product",e}({});class fb{static isStringValid(e,t){return!(null==e||e.length{this.headers=new Map,e.split("\n").forEach(e=>{const t=e.indexOf(":");if(t>0){const n=e.slice(0,t),i=n.toLowerCase(),r=e.slice(t+1).trim();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(r):this.headers.set(i,[r])}})}:()=>{this.headers=new Map,Object.keys(e).forEach(t=>{let n=e[t];const i=t.toLowerCase();"string"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(i,n),this.maybeSetNormalizedName(t,i))})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,t){return this.clone({name:e,value:t,op:"a"})}set(e,t){return this.clone({name:e,value:t,op:"s"})}delete(e,t){return this.clone({name:e,value:t,op:"d"})}maybeSetNormalizedName(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}init(){this.lazyInit&&(this.lazyInit instanceof vb?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(t=>{this.headers.set(t,e.headers.get(t)),this.normalizedNames.set(t,e.normalizedNames.get(t))})}clone(e){const t=new vb;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof vb?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([e]),t}applyUpdate(e){const t=e.name.toLowerCase();switch(e.op){case"a":case"s":let n=e.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(e.name,t);const i=("a"===e.op?this.headers.get(t):void 0)||[];i.push(...n),this.headers.set(t,i);break;case"d":const r=e.value;if(r){let e=this.headers.get(t);if(!e)return;e=e.filter(e=>-1===r.indexOf(e)),0===e.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,e)}else this.headers.delete(t),this.normalizedNames.delete(t)}}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>e(this.normalizedNames.get(t),this.headers.get(t)))}}class yb{encodeKey(e){return Cb(e)}encodeValue(e){return Cb(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}function Cb(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}class Sb{constructor(e={}){if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new yb,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(e,t){const n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(e=>{const i=e.indexOf("="),[r,o]=-1==i?[t.decodeKey(e),""]:[t.decodeKey(e.slice(0,i)),t.decodeValue(e.slice(i+1))],s=n.get(r)||[];s.push(o),n.set(r,s)}),n}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(t=>{const n=e.fromObject[t];this.map.set(t,Array.isArray(n)?n:[n])})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const t=this.map.get(e);return t?t[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,t){return this.clone({param:e,value:t,op:"a"})}appendAll(e){const t=[];return Object.keys(e).forEach(n=>{const i=e[n];Array.isArray(i)?i.forEach(e=>{t.push({param:n,value:e,op:"a"})}):t.push({param:n,value:i,op:"a"})}),this.clone(t)}set(e,t){return this.clone({param:e,value:t,op:"s"})}delete(e,t){return this.clone({param:e,value:t,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const t=this.encoder.encodeKey(e);return this.map.get(e).map(e=>t+"="+this.encoder.encodeValue(e)).join("&")}).filter(e=>""!==e).join("&")}clone(e){const t=new Sb({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(e),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const t=("a"===e.op?this.map.get(e.param):void 0)||[];t.push(e.value),this.map.set(e.param,t);break;case"d":if(void 0===e.value){this.map.delete(e.param);break}{let t=this.map.get(e.param)||[];const n=t.indexOf(e.value);-1!==n&&t.splice(n,1),t.length>0?this.map.set(e.param,t):this.map.delete(e.param)}}}),this.cloneFrom=this.updates=null)}}function _b(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer}function Ab(e){return"undefined"!=typeof Blob&&e instanceof Blob}function kb(e){return"undefined"!=typeof FormData&&e instanceof FormData}class xb{constructor(e,t,n,i){let r;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase(),function(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||i?(this.body=void 0!==n?n:null,r=i):r=n,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.params&&(this.params=r.params)),this.headers||(this.headers=new vb),this.params){const e=this.params.toString();if(0===e.length)this.urlWithParams=t;else{const n=t.indexOf("?");this.urlWithParams=t+(-1===n?"?":nt.set(n,e.setHeaders[n]),a)),e.setParams&&(l=Object.keys(e.setParams).reduce((t,n)=>t.set(n,e.setParams[n]),l)),new xb(t,n,r,{params:l,headers:a,reportProgress:s,responseType:i,withCredentials:o})}}var Tb=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}({});class Pb{constructor(e,t=200,n="OK"){this.headers=e.headers||new vb,this.status=void 0!==e.status?e.status:t,this.statusText=e.statusText||n,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}class Mb extends Pb{constructor(e={}){super(e),this.type=Tb.ResponseHeader}clone(e={}){return new Mb({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class Ib extends Pb{constructor(e={}){super(e),this.type=Tb.Response,this.body=void 0!==e.body?e.body:null}clone(e={}){return new Ib({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class Ob extends Pb{constructor(e){super(e,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${e.url||"(unknown url)"}`:`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}}function Eb(e,t){return{body:t,headers:e.headers,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let Fb=(()=>{class e{constructor(e){this.handler=e}request(e,t,n={}){let i;if(e instanceof xb)i=e;else{let r,o;r=n.headers instanceof vb?n.headers:new vb(n.headers),n.params&&(o=n.params instanceof Sb?n.params:new Sb({fromObject:n.params})),i=new xb(e,t,void 0!==n.body?n.body:null,{headers:r,params:o,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}const r=Ed(i).pipe(ah(e=>this.handler.handle(e)));if(e instanceof xb||"events"===n.observe)return r;const o=r.pipe(th(e=>e instanceof Ib));switch(n.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return o.pipe(x(e=>{if(null!==e.body&&!(e.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return e.body}));case"blob":return o.pipe(x(e=>{if(null!==e.body&&!(e.body instanceof Blob))throw new Error("Response is not a Blob.");return e.body}));case"text":return o.pipe(x(e=>{if(null!==e.body&&"string"!=typeof e.body)throw new Error("Response is not a string.");return e.body}));case"json":default:return o.pipe(x(e=>e.body))}case"response":return o;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(e,t={}){return this.request("DELETE",e,t)}get(e,t={}){return this.request("GET",e,t)}head(e,t={}){return this.request("HEAD",e,t)}jsonp(e,t){return this.request("JSONP",e,{params:(new Sb).append(t,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,t={}){return this.request("OPTIONS",e,t)}patch(e,t,n={}){return this.request("PATCH",e,Eb(n,t))}post(e,t,n={}){return this.request("POST",e,Eb(n,t))}put(e,t,n={}){return this.request("PUT",e,Eb(n,t))}}return e.\u0275fac=function(t){return new(t||e)(si(bb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();class Ub{constructor(e,t){this.next=e,this.interceptor=t}handle(e){return this.interceptor.intercept(e,this.next)}}const Lb=new Bn("HTTP_INTERCEPTORS");let Db=(()=>{class e{intercept(e,t){return t.handle(e)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const Rb=/^\)\]\}',?\n/;class Nb{}let Vb=(()=>{class e{constructor(){}build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),jb=(()=>{class e{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new w(t=>{const n=this.xhrFactory.build();if(n.open(e.method,e.urlWithParams),e.withCredentials&&(n.withCredentials=!0),e.headers.forEach((e,t)=>n.setRequestHeader(e,t.join(","))),e.headers.has("Accept")||n.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const t=e.detectContentTypeHeader();null!==t&&n.setRequestHeader("Content-Type",t)}if(e.responseType){const t=e.responseType.toLowerCase();n.responseType="json"!==t?t:"text"}const i=e.serializeBody();let r=null;const o=()=>{if(null!==r)return r;const t=1223===n.status?204:n.status,i=n.statusText||"OK",o=new vb(n.getAllResponseHeaders()),s=function(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(n)||e.url;return r=new Mb({headers:o,status:t,statusText:i,url:s}),r},s=()=>{let{headers:i,status:r,statusText:s,url:a}=o(),l=null;204!==r&&(l=void 0===n.response?n.responseText:n.response),0===r&&(r=l?200:0);let c=r>=200&&r<300;if("json"===e.responseType&&"string"==typeof l){const e=l;l=l.replace(Rb,"");try{l=""!==l?JSON.parse(l):null}catch(u){l=e,c&&(c=!1,l={error:u,text:l})}}c?(t.next(new Ib({body:l,headers:i,status:r,statusText:s,url:a||void 0})),t.complete()):t.error(new Ob({error:l,headers:i,status:r,statusText:s,url:a||void 0}))},a=e=>{const{url:i}=o(),r=new Ob({error:e,status:n.status||0,statusText:n.statusText||"Unknown Error",url:i||void 0});t.error(r)};let l=!1;const c=i=>{l||(t.next(o()),l=!0);let r={type:Tb.DownloadProgress,loaded:i.loaded};i.lengthComputable&&(r.total=i.total),"text"===e.responseType&&n.responseText&&(r.partialText=n.responseText),t.next(r)},u=e=>{let n={type:Tb.UploadProgress,loaded:e.loaded};e.lengthComputable&&(n.total=e.total),t.next(n)};return n.addEventListener("load",s),n.addEventListener("error",a),n.addEventListener("timeout",a),n.addEventListener("abort",a),e.reportProgress&&(n.addEventListener("progress",c),null!==i&&n.upload&&n.upload.addEventListener("progress",u)),n.send(i),t.next({type:Tb.Sent}),()=>{n.removeEventListener("error",a),n.removeEventListener("abort",a),n.removeEventListener("load",s),n.removeEventListener("timeout",a),e.reportProgress&&(n.removeEventListener("progress",c),null!==i&&n.upload&&n.upload.removeEventListener("progress",u)),n.readyState!==n.DONE&&n.abort()}})}}return e.\u0275fac=function(t){return new(t||e)(si(Nb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})();const Hb=new Bn("XSRF_COOKIE_NAME"),zb=new Bn("XSRF_HEADER_NAME");class Bb{}let $b=(()=>{class e{constructor(e,t,n){this.doc=e,this.platform=t,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=Mu(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return e.\u0275fac=function(t){return new(t||e)(si(Oc),si(Nl),si(Hb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),qb=(()=>{class e{constructor(e,t){this.tokenService=e,this.headerName=t}intercept(e,t){const n=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t.handle(e);const i=this.tokenService.getToken();return null===i||e.headers.has(this.headerName)||(e=e.clone({headers:e.headers.set(this.headerName,i)})),t.handle(e)}}return e.\u0275fac=function(t){return new(t||e)(si(Bb),si(zb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),Gb=(()=>{class e{constructor(e,t){this.backend=e,this.injector=t,this.chain=null}handle(e){if(null===this.chain){const e=this.injector.get(Lb,[]);this.chain=e.reduceRight((e,t)=>new Ub(e,t),this.backend)}return this.chain.handle(e)}}return e.\u0275fac=function(t){return new(t||e)(si(wb),si(is))},e.\u0275prov=ue({token:e,factory:e.\u0275fac}),e})(),Wb=(()=>{class e{static disable(){return{ngModule:e,providers:[{provide:qb,useClass:Db}]}}static withOptions(t={}){return{ngModule:e,providers:[t.cookieName?{provide:Hb,useValue:t.cookieName}:[],t.headerName?{provide:zb,useValue:t.headerName}:[]]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[qb,{provide:Lb,useExisting:qb,multi:!0},{provide:Bb,useClass:$b},{provide:Hb,useValue:"XSRF-TOKEN"},{provide:zb,useValue:"X-XSRF-TOKEN"}]}),e})(),Yb=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[Fb,{provide:bb,useClass:Gb},jb,{provide:wb,useExisting:jb},Vb,{provide:Nb,useExisting:Vb}],imports:[[Wb.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),e})(),Zb=(()=>{class e{constructor(e){this.http=e,this.LicenseUpgradeOptionUrl=gb.apiPath+"/prod/LicenseUpgradeOption",this.CloudSubscriptionUrl=gb.apiPath+"/prod/CloudSubscription",this.RecoverLicenseUrl=gb.apiPath+"/prod/RecoverLicense"}getLicenseUpgradeOption(e,t){return this.http.get(this.LicenseUpgradeOptionUrl+"?email="+e+"&code="+t).pipe(x(e=>(null!=e.licenseUpgrades&&null!=e.currentCloud&&e.licenseUpgrades.forEach(t=>{null!=t.cloud&&(t.cloud.license=e.currentCloud.accountType==mb.Support?"Product Support "+t.cloud.license:"Cloud Services "+t.cloud.license)}),e)))}getCloudSubscriptionOption(e,t){return this.http.get(this.CloudSubscriptionUrl+"?email="+e+"&code="+t).pipe(x(e=>(null!=e.licenseUpgrades&&e.licenseUpgrades.forEach(e=>{e.cloud.license="Cloud Services "+e.cloud.license}),e)))}recoverLicense(e){return this.http.post(this.RecoverLicenseUrl+"?email="+e,null,{responseType:"text"})}updateCloudSubscription(e,t,n){return this.http.put(this.CloudSubscriptionUrl,{email:e,code:t,productLink:n})}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),Qb=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-spinner"]],decls:1,vars:0,consts:[[1,"spinner","fa","fa-spinner","fa-spin"]],template:function(e,t){1&e&&Ps(0,"i",0)},styles:[".spinner[_ngcontent-%COMP%]{vertical-align:center;margin-left:10px;font-size:1.2rem}"]}),e})();function Kb(e,t){1&e&&(xs(0,"div",18),Ws(1,"You must agree with the terms above to continue"),Ts())}function Jb(e,t){1&e&&Ps(0,"am-spinner")}function Xb(e,t){1&e&&(xs(0,"div",18),Ws(1,"The provided license information is not valid"),Ts())}function ew(e,t){1&e&&(xs(0,"div",18),Ws(1,"You already have an active Product Support subscription."),Ts())}function tw(e,t){1&e&&(xs(0,"div",18),Ws(1,"You already have an active Cloud Services subscription."),Ts())}function nw(e,t){1&e&&(xs(0,"div",18),Ws(1,"To upgrade an existing subscription, please go to the "),xs(2,"a",19),Ws(3,"subscription upgrade page"),Ts(),Ws(4,"."),Ts())}function iw(e,t){1&e&&(xs(0,"div",18),Ws(1,"Cloud Services is included in your current Product Subscription. To upgrade an existing subscription, please go to the "),xs(2,"a",20),Ws(3,"Awesome Miner upgrade page"),Ts(),Ws(4,"."),Ts())}function rw(e,t){if(1&e&&(xs(0,"div",18),Ws(1,"To view information about your current subscription, please see your "),xs(2,"a",21),Ws(3,"subscription information page"),Ts(),Ws(4,"."),Ts()),2&e){const e=Rs();qr(2),As("href",e.subscriptionUrl,Qi)}}let ow=(()=>{class e{constructor(e,t,n,i,r,o){this.route=e,this.router=t,this.formBuilder=n,this.licenseService=i,this.titleService=r,this.metaTagService=o,this.licenseUpgradeOption=null,this.inProgress=!1,this.subscriptionUrl=null}ngOnInit(){this.titleService.setTitle("Awesome Miner Cloud Services"),this.metaTagService.updateTag({name:"description",content:"Buy Awesome Miner Cloud Services subscription"}),this.route.queryParams.subscribe(e=>{this.edition=e.edition,fb.isStringValid(this.edition,5)||(console.log("No edition in Url"),this.router.navigate(["/cloud"]))}),this.upgradeForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]],code:["",[Uf.required,Uf.minLength(10)]],chkAgree:[!1,Uf.pattern("true")]})}get f(){return this.upgradeForm.controls}validateClick(){let e=this.upgradeForm.value.email;this.inProgress=!0,this.subscriptionUrl=null,this.licenseService.getCloudSubscriptionOption(this.upgradeForm.value.email,this.upgradeForm.value.code).subscribe(t=>{this.inProgress=!1,null==t?this.upgradeForm.setErrors({LicenseNotFound:!0}):null!=t.currentProduct?(this.licenseUpgradeOption=t,this.upgradeForm.setErrors({ProductSubscriptionFound:!0})):null!=t.currentCloud?(this.upgradeForm.setErrors(t.currentCloud.accountType==mb.Support?{SupportFound:!0}:{LicenseFound:!0}),this.licenseUpgradeOption=t,void 0!==t.currentCloud.subscriptionUrl&&(this.subscriptionUrl=t.currentCloud.subscriptionUrl)):window.location.href="https://sites.fastspring.com/intellibreeze/instant/"+this.edition+"?member=new&sessionOption=new&tags=le&contact_fname=%20&contact_email="+e},e=>{this.inProgress=!1,this.upgradeForm.setErrors(404==e.status?{LicenseNotFound:!0}:{InternalError:!0}),console.log("Failed to send request",e)})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Qm),_s(rb),_s(Zb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-cloud-confirm"]],decls:60,vars:10,consts:[[1,"container"],[1,"imgSection"],[3,"formGroup"],[1,"form-check",2,"padding-bottom","10px"],[1,"form-check-label"],["type","checkbox","id","chkAgree","formControlName","chkAgree",1,"form-check-input"],["routerLink","/recoverlicense"],[1,"form-group","row",2,"margin-top","30px"],["for","email",1,"col-md-3","col-form-label","font-weight-bold"],[1,"col-md-9"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"form-group","row"],["for","txtCode",1,"col-md-3","col-form-label","font-weight-bold"],["type","text","id","awesomeCode","name","awesomeCode","formControlName","code",1,"form-control"],[1,"offset-md-3","col-md-9"],["style","color:red",4,"ngIf"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],[2,"color","red"],["routerLink","/cloudupgrade"],["routerLink","/upgrade"],[3,"href"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Awesome Miner Cloud Services subscription"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," Please review and accept the terms below to continue: "),Ts(),xs(6,"ul"),xs(7,"li"),Ws(8,"Awesome Miner Cloud Services is an optional extension to Awesome Miner. The license for Awesome Miner is a one time license cost, while Awesome Miner Cloud Services is a subscription service billed either annually or monthly. The first 30 days of the Cloud Services subscription are free. "),Ts(),xs(9,"li"),Ws(10,"In order to use the Cloud Services, you must have a license for Awesome Miner. It's not possible to use the Cloud Services without a paid license for Awesome Miner. "),Ts(),xs(11,"li"),Ws(12,"The subscription can be cancelled at any time during the first 30 days without any charges. After 30 days, the subscription will be billed annually or monthly. The subscription can still be cancelled at any time, resulting in no more renewals. No refunds are given for any remaining time, but the Cloud Service can still be used for the period of time that was already paid for. "),Ts(),xs(13,"li"),Ws(14,"The notification services are only intended for sending SMS messages to you and your team. It's not allowed to send SMS messages to other people or services that are unrelated to the mining operations. "),Ts(),xs(15,"li"),Ws(16," The SMS quota is restored the 1st each month. Unused SMS quota from previous month will not be transferred. "),Ts(),xs(17,"li"),Ws(18," The user of the Cloud Services has the full responsibility of securing the account and protecting it with a strong password. "),Ts(),Ts(),xs(19,"form",2),xs(20,"div",3),xs(21,"label",4),Ps(22,"input",5),Ws(23," I agree with the terms above "),Ts(),Ts(),xs(24,"div"),Ws(25," To continue, you need to enter your existing license information. You need to provide your "),xs(26,"b"),Ws(27,"E-mail address"),Ts(),Ws(28," and "),xs(29,"b"),Ws(30,"Registration code"),Ts(),Ws(31,". This information was provided via e-mail when you signed up for Awesome Miner but can also be recovered using the "),xs(32,"a",6),Ws(33,"form to recover a lost registration code"),Ts(),Ws(34,". "),Ts(),xs(35,"div",7),xs(36,"label",8),Ws(37,"E-mail address:"),Ts(),xs(38,"div",9),Ps(39,"input",10),Ts(),Ts(),xs(40,"div",11),xs(41,"label",12),Ws(42,"Registration code:"),Ts(),xs(43,"div",9),Ps(44,"input",13),Ts(),Ts(),xs(45,"div",11),xs(46,"div",14),Cs(47,Kb,2,0,"div",15),Ts(),Ts(),xs(48,"div",11),xs(49,"div",14),xs(50,"button",16),Us("click",function(){return t.validateClick()}),Ws(51,"Continue"),Cs(52,Jb,1,0,"am-spinner",17),Ts(),Ts(),Ts(),xs(53,"div"),Cs(54,Xb,2,0,"div",15),Cs(55,ew,2,0,"div",15),Cs(56,tw,2,0,"div",15),Cs(57,nw,5,0,"div",15),Cs(58,iw,5,0,"div",15),Cs(59,rw,5,1,"div",15),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(19),As("formGroup",t.upgradeForm),qr(28),As("ngIf",t.f.chkAgree.invalid&&t.f.email.valid&&t.f.code.valid),qr(3),As("disabled",t.upgradeForm.invalid||t.inProgress),qr(2),As("ngIf",t.inProgress),qr(2),As("ngIf",t.upgradeForm.hasError("LicenseNotFound")),qr(1),As("ngIf",t.upgradeForm.hasError("SupportFound")),qr(1),As("ngIf",t.upgradeForm.hasError("LicenseFound")),qr(1),As("ngIf",t.upgradeForm.hasError("LicenseFound")||t.upgradeForm.hasError("SupportFound")),qr(1),As("ngIf",t.upgradeForm.hasError("ProductSubscriptionFound")),qr(1),As("ngIf",null!==t.subscriptionUrl))},directives:[Ug,ng,jg,kf,tg,zg,Km,Pf,Uu,Qb],styles:[""]}),e})();function sw(e,t){if(1&e&&(xs(0,"span"),Ws(1),Ts()),2&e){const e=Rs();qr(1),Zs(" (",e.minerCount," miners)")}}let aw=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-license-edition"]],inputs:{license:"license",minerCount:"minerCount"},decls:3,vars:2,consts:[[4,"ngIf"]],template:function(e,t){1&e&&(xs(0,"span"),Ws(1),Cs(2,sw,2,1,"span",0),Ts()),2&e&&(qr(1),Zs(" ",t.license,""),qr(1),As("ngIf",t.minerCount<100))},directives:[Uu],styles:[""]}),e})(),lw=(()=>{class e{constructor(){}ngOnInit(){}get subscriptionType(){return this.subscriptionTypeValue==pb.Monthly?" / month, billed monthly":this.subscriptionTypeValue==pb.Yearly?" / month, billed annually":this.subscriptionTypeValue==pb.None?"":" / year"}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-license-price"]],inputs:{price:"price",subscriptionTypeValue:["subscriptionType","subscriptionTypeValue"]},decls:4,vars:2,consts:[[1,"font-weight-bold"]],template:function(e,t){1&e&&(xs(0,"span",0),Ws(1),Ts(),xs(2,"span"),Ws(3),Ts()),2&e&&(qr(1),Zs("Price: $",t.price,""),qr(2),Ys(t.subscriptionType))},styles:[""]}),e})();function cw(e,t){1&e&&Ps(0,"am-spinner")}let uw=(()=>{class e{constructor(){this.confirm=new Ol}ngOnInit(){}confirmClick(e){this.confirm.emit(e)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-subscription-option"]],inputs:{licenseInfo:["licenseOption","licenseInfo"],subscriptionType:"subscriptionType",disabled:"disabled",inProgress:"inProgress"},outputs:{confirm:"confirm"},decls:10,vars:6,consts:[[1,"card","selected","h-100"],["form","ngForm"],[1,"card-header","ngMainCardTitle","text-center"],[3,"license","minerCount"],[1,"card-body","text-center"],[3,"price","subscriptionType"],[1,"card-footer","bg-transparent","border-transparent","text-center"],["role","button",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"]],template:function(e,t){1&e&&(xs(0,"form",0,1),xs(2,"div",2),Ps(3,"am-license-edition",3),Ts(),xs(4,"div",4),Ps(5,"am-license-price",5),Ts(),xs(6,"div",6),xs(7,"button",7),Us("click",function(){return t.confirmClick(t.licenseInfo.productLink)}),Ws(8,"Confirm upgrade"),Cs(9,cw,1,0,"am-spinner",8),Ts(),Ts(),Ts()),2&e&&(qr(3),As("license",t.licenseInfo.license)("minerCount",t.licenseInfo.minerCount),qr(2),As("price",t.licenseInfo.price)("subscriptionType",t.subscriptionType),qr(2),As("disabled",t.disabled),qr(2),As("ngIf",t.inProgress))},directives:[Ug,ng,Ig,aw,lw,Uu,Qb],styles:["",""]}),e})();function dw(e,t){1&e&&Ps(0,"am-spinner")}function hw(e,t){1&e&&(xs(0,"div",17),Ws(1,"Failed to get license information"),Ts())}function pw(e,t){1&e&&(xs(0,"div",17),Ws(1,"The provided license information is not valid"),Ts())}function mw(e,t){1&e&&(xs(0,"div",17),Ws(1,"No Cloud Service subscription found. Please goto "),xs(2,"a",18),Ws(3,"Cloud Services"),Ts(),Ws(4," to subscribe"),Ts())}const fw=function(){return{topic:"sales"}};function gw(e,t){1&e&&(xs(0,"div",17),Ws(1,"To upgrade your Ultimate Edition license, please "),xs(2,"a",19),Ws(3,"contact us"),Ts(),Ws(4,"."),Ts()),2&e&&(qr(2),As("queryParams",vl(1,fw)))}function bw(e,t){1&e&&(xs(0,"div",17),Ws(1,"Cloud Services is included in your current Product Subscription. To upgrade an existing subscription, please go to the "),xs(2,"a",20),Ws(3,"Awesome Miner upgrade page"),Ts(),Ws(4,"."),Ts())}function ww(e,t){if(1&e){const e=Os();xs(0,"div",4),xs(1,"p"),Ws(2," This page is only intended for existing customers of Awesome Miner Cloud Services that want to upgrade to a the next subscription level with support for more miners. By upgrading you will pay for the new subscription level instead of the current subscription. "),Ts(),xs(3,"p"),Ws(4," To continue, you need to enter your existing Awesome Miner license information. You need to provide your "),xs(5,"b"),Ws(6,"E-mail address"),Ts(),Ws(7," and "),xs(8,"b"),Ws(9,"Registration code"),Ts(),Ws(10," exactly as specified in the Options dialog of Awesome Miner, Registration section. In this dialog, you need to click the View/Modify button to be able to copy your current Registration code and paste it below. "),Ts(),xs(11,"p"),Ws(12," On the next page you will be able to review the available upgrades and prices. "),Ts(),xs(13,"form",5),xs(14,"div",6),xs(15,"label",7),Ws(16,"E-mail address:"),Ts(),xs(17,"div",8),Ps(18,"input",9),Ts(),Ts(),xs(19,"div",10),xs(20,"label",11),Ws(21,"Registration code:"),Ts(),xs(22,"div",8),Ps(23,"input",12),Ts(),Ts(),xs(24,"div",10),xs(25,"div",13),xs(26,"button",14),Us("click",function(){return Et(e),Rs().validateClick()}),Ws(27,"Continue"),Cs(28,dw,1,0,"am-spinner",15),Ts(),Ts(),Ts(),xs(29,"div"),Cs(30,hw,2,0,"div",16),Cs(31,pw,2,0,"div",16),Cs(32,mw,5,0,"div",16),Cs(33,gw,5,2,"div",16),Cs(34,bw,5,0,"div",16),Ts(),Ts(),Ts()}if(2&e){const e=Rs();qr(13),As("formGroup",e.upgradeForm),qr(13),As("disabled",e.upgradeForm.invalid||e.inProgress),qr(2),As("ngIf",e.inProgress),qr(2),As("ngIf",e.upgradeForm.hasError("InternalError")),qr(1),As("ngIf",e.upgradeForm.hasError("LicenseNotFound")),qr(1),As("ngIf",e.upgradeForm.hasError("CloudNotFound")),qr(1),As("ngIf",e.upgradeForm.hasError("UltimateEdition")),qr(1),As("ngIf",e.upgradeForm.hasError("ProductSubscriptionFound"))}}function vw(e,t){if(1&e&&(xs(0,"div"),Ws(1," Your current subscription: "),xs(2,"b"),Ws(3,"Cloud Services "),Ps(4,"am-license-edition",26),Ts(),Ws(5," - "),Ps(6,"am-license-price",27),Ts()),2&e){const e=Rs(2);qr(4),As("license",e.licenseUpgradeOption.currentCloud.license)("minerCount",e.licenseUpgradeOption.currentCloud.minerCount),qr(2),As("price",e.licenseUpgradeOption.currentCloud.price)("subscriptionType",e.licenseUpgradeOption.currentCloud.subscriptionType)}}function yw(e,t){if(1&e&&(xs(0,"div"),Ws(1," Your current subscription: "),xs(2,"b"),Ws(3,"Product Support "),Ps(4,"am-license-edition",26),Ts(),Ws(5," - "),Ps(6,"am-license-price",28),Ts()),2&e){const e=Rs(2);qr(4),As("license",e.licenseUpgradeOption.currentCloud.license)("minerCount",e.licenseUpgradeOption.currentCloud.minerCount),qr(2),As("price",e.licenseUpgradeOption.currentCloud.price)}}function Cw(e,t){if(1&e){const e=Os();xs(0,"div",29),Ps(1,"input",30,31),xs(3,"am-subscription-option",32),Us("confirm",function(t){Et(e);const n=Ss(2);return Rs(2).confirmClick(t,n)}),Ts(),Ts()}if(2&e){const e=t.$implicit,n=Ss(2),i=Rs(2);qr(3),As("licenseOption",e.cloud)("subscriptionType",i.licenseUpgradeOption.currentCloud.subscriptionType)("disabled",i.disabled)("inProgress",n.value)}}function Sw(e,t){if(1&e&&(xs(0,"div",21),Cs(1,vw,7,4,"div",15),Cs(2,yw,7,3,"div",15),xs(3,"div",22),Cs(4,Cw,4,4,"div",23),Ts(),xs(5,"div",24),xs(6,"div",25),Ws(7," VAT will be added for customers in EU and other markets where required. If you have any questions or want to upgrade to another edition, please "),xs(8,"a",19),Ws(9,"contact us"),Ts(),Ws(10,". "),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(1),As("ngIf",1!=(null==e.licenseUpgradeOption.currentCloud?null:e.licenseUpgradeOption.currentCloud.accountType)),qr(1),As("ngIf",1==(null==e.licenseUpgradeOption.currentCloud?null:e.licenseUpgradeOption.currentCloud.accountType)),qr(2),As("ngForOf",e.licenseUpgradeOption.licenseUpgrades),qr(4),As("queryParams",vl(4,fw))}}function _w(e,t){1&e&&(xs(0,"span"),Ws(1,"The subscription upgrade was successful and can be used right away. A refund will automatically be given for any remaining days on the previous subscription that was already paid for."),Ts())}function Aw(e,t){1&e&&(xs(0,"span",17),Ws(1,"Failed to upgrade the subscription."),Ts())}function kw(e,t){if(1&e&&(xs(0,"div",33),xs(1,"p"),Cs(2,_w,2,0,"span",15),Cs(3,Aw,2,0,"span",16),Ts(),xs(4,"p"),Ws(5," If you have any questions, please "),xs(6,"a",19),Ws(7,"contact us"),Ts(),Ws(8,". "),Ts(),Ts()),2&e){const e=Rs();qr(2),As("ngIf",e.upgradeCompleted),qr(1),As("ngIf",!e.upgradeCompleted),qr(3),As("queryParams",vl(3,fw))}}let xw=(()=>{class e{constructor(e,t,n,i){this.formBuilder=e,this.licenseService=t,this.titleService=n,this.metaTagService=i,this.licenseUpgradeOption=null,this.inProgress=!1,this.disabled=!1,this.upgradeCompleted=null}ngOnInit(){this.titleService.setTitle("Upgrade Awesome Miner Cloud Services"),this.metaTagService.updateTag({name:"description",content:"Upgrade your Awesome Miner Cloud Services subscription"}),this.upgradeForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]],code:["",[Uf.required,Uf.minLength(10)]]})}get f(){return this.upgradeForm.controls}validateClick(){this.inProgress=!0,this.licenseService.getCloudSubscriptionOption(this.upgradeForm.value.email,this.upgradeForm.value.code).subscribe(e=>{this.inProgress=!1,null==e.licenseUpgrades||0==e.licenseUpgrades.length?this.upgradeForm.setErrors(null!=e.currentProduct?{ProductSubscriptionFound:!0}:null==e.currentCloud?{CloudNotFound:!0}:{UltimateEdition:!0}):this.licenseUpgradeOption=e},e=>{this.inProgress=!1,this.disabled=!1,this.upgradeForm.setErrors(404==e.status?{LicenseNotFound:!0}:{InternalError:!0}),console.log("Failed to get CloudSubscription",e)})}confirmClick(e,t){let n=this.upgradeForm.value.email,i=this.upgradeForm.value.code;fb.isStringValid(n,5)&&fb.isStringValid(i,5)&&fb.isStringValid(e,5)?(this.disabled=!0,this.upgradeCompleted=null,t.value=!0,this.licenseService.updateCloudSubscription(n,i,e).subscribe(e=>{t.value=!1,this.disabled=!1,this.upgradeCompleted=!0},e=>{t.value=!1,this.disabled=!1,this.upgradeCompleted=!1,console.log("Failed to upgrade CloudSubscription",e)})):console.log("Cannot update CloudSubscription - missing valid params")}}return e.\u0275fac=function(t){return new(t||e)(_s(rb),_s(Zb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-cloud-upgrade"]],decls:6,vars:3,consts:[[1,"container"],["id","step1","class","imgSection",4,"ngIf"],["id","step2",4,"ngIf"],["id","step3","class","imgSection",4,"ngIf"],["id","step1",1,"imgSection"],[3,"formGroup"],[1,"form-group","row",2,"margin-top","30px"],["for","email",1,"col-md-3","col-form-label","font-weight-bold"],[1,"col-md-9"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"form-group","row"],["for","code",1,"col-md-3","col-form-label","font-weight-bold"],["type","text","id","awesomeCode","name","awesomeCode","formControlName","code",1,"form-control"],[1,"offset-md-3","col-md-9"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],["style","color:red",4,"ngIf"],[2,"color","red"],["routerLink","/cloud"],["routerLink","/contact",3,"queryParams"],["routerLink","/upgrade"],["id","step2"],[1,"row","colSeparatorTop"],["class","col-xl-6 colSeparator",4,"ngFor","ngForOf"],[1,"row"],[1,"col-xl-6"],[3,"license","minerCount"],[3,"price","subscriptionType"],[3,"price"],[1,"col-xl-6","colSeparator"],["type","hidden"],["inProgressField",""],[3,"licenseOption","subscriptionType","disabled","inProgress","confirm"],["id","step3",1,"imgSection"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Upgrade Awesome Miner Cloud Services subscription"),Ts(),Cs(3,ww,35,8,"div",1),Cs(4,Sw,11,5,"div",2),Cs(5,kw,9,4,"div",3),Ts()),2&e&&(qr(3),As("ngIf",null==t.licenseUpgradeOption),qr(1),As("ngIf",null!=t.licenseUpgradeOption&&null===t.upgradeCompleted),qr(1),As("ngIf",null!==t.upgradeCompleted))},directives:[Uu,Ug,ng,jg,Pf,tg,zg,Qb,Km,Eu,aw,lw,uw],styles:[""]}),e})(),Tw=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner Privacy Policy"),this.metaTagService.updateTag({name:"description",content:"How Awesome Miner respects and protects your privacy"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-privacy-policy-page"]],decls:13,vars:0,consts:[[1,"container"],["href","https://www.google.com/analytics/learn/privacy.html"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Privacy Policy"),Ts(),xs(3,"p"),Ws(4," IntelliBreeze Software AB respects and protects your privacy and will never share any information about you, your passwords or your usage patterns. All passwords entered in the software are stored encrypted on your local PC. "),Ts(),xs(5,"h4"),Ws(6,"Cookies"),Ts(),xs(7,"p"),Ws(8," This web site uses Google Analytics for visitor statistics. Google Analytics uses cookies. "),xs(9,"a",1),Ws(10,"Read the Google Analytics Privacy Policy for more details."),Ts(),Ts(),xs(11,"p"),Ws(12," The cookies are not used to collect information about the user. "),Ts(),Ts())},styles:[""]}),e})(),Pw=(()=>{class e{constructor(e){this.http=e,this.ReleaseInfoUrl=gb.apiPath+"/cachedprod/ReleaseInfo"}getReleaseInfo(){return this.http.get(this.ReleaseInfoUrl)}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();class Mw extends d{constructor(e,t){super()}schedule(e,t=0){return this}}class Iw extends Mw{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const n=this.id,i=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(i,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(i,this.id,t),this}requestAsyncId(e,t,n=0){return setInterval(e.flush.bind(e,this),n)}recycleAsyncId(e,t,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let n,i=!1;try{this.work(e)}catch(r){i=!0,n=!!r&&r||new Error(r)}if(i)return this.unsubscribe(),n}_unsubscribe(){const e=this.id,t=this.scheduler,n=t.actions,i=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==i&&n.splice(i,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}class Ow extends Iw{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}schedule(e,t=0){return t>0?super.schedule(e,t):(this.delay=t,this.state=e,this.scheduler.flush(this),this)}execute(e,t){return t>0||this.closed?super.execute(e,t):this._execute(e,t)}requestAsyncId(e,t,n=0){return null!==n&&n>0||null===n&&this.delay>0?super.requestAsyncId(e,t,n):e.flush(this)}}let Ew=(()=>{class e{constructor(t,n=e.now){this.SchedulerAction=t,this.now=n}schedule(e,t=0,n){return new this.SchedulerAction(this,e).schedule(n,t)}}return e.now=()=>Date.now(),e})();class Fw extends Ew{constructor(e,t=Ew.now){super(e,()=>Fw.delegate&&Fw.delegate!==this?Fw.delegate.now():t()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(e,t=0,n){return Fw.delegate&&Fw.delegate!==this?Fw.delegate.schedule(e,t,n):super.schedule(e,t,n)}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}}class Uw extends Fw{}const Lw=new Uw(Ow);let Dw=(()=>{class e{constructor(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}observe(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}}do(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}}accept(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)}toObservable(){switch(this.kind){case"N":return Ed(this.value);case"E":return e=this.error,new w(t=>t.error(e));case"C":return Bd()}var e;throw new Error("unexpected notification kind value")}static createNext(t){return void 0!==t?new e("N",t):e.undefinedValueNotification}static createError(t){return new e("E",void 0,t)}static createComplete(){return e.completeNotification}}return e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e})();class Rw extends m{constructor(e,t,n=0){super(e),this.scheduler=t,this.delay=n}static dispatch(e){const{notification:t,destination:n}=e;t.observe(n),this.unsubscribe()}scheduleMessage(e){this.destination.add(this.scheduler.schedule(Rw.dispatch,this.delay,new Nw(e,this.destination)))}_next(e){this.scheduleMessage(Dw.createNext(e))}_error(e){this.scheduleMessage(Dw.createError(e)),this.unsubscribe()}_complete(){this.scheduleMessage(Dw.createComplete()),this.unsubscribe()}}class Nw{constructor(e,t){this.notification=e,this.destination=t}}class Vw extends _{constructor(e=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,n){super(),this.scheduler=n,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=e<1?1:e,this._windowTime=t<1?1:t,t===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(e){if(!this.isStopped){const t=this._events;t.push(e),t.length>this._bufferSize&&t.shift()}super.next(e)}nextTimeWindow(e){this.isStopped||(this._events.push(new jw(this._getNow(),e)),this._trimBufferThenGetEvents()),super.next(e)}_subscribe(e){const t=this._infiniteTimeWindow,n=t?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,r=n.length;let o;if(this.closed)throw new y;if(this.isStopped||this.hasError?o=d.EMPTY:(this.observers.push(e),o=new C(this,e)),i&&e.add(e=new Rw(e,i)),t)for(let s=0;st&&(o=Math.max(o,r-t)),o>0&&i.splice(0,o),i}}class jw{constructor(e,t){this.time=e,this.value=t}}const Hw=new Fw(Iw);class zw{constructor(e,t){this.delay=e,this.scheduler=t}call(e,t){return t.subscribe(new Bw(e,this.delay,this.scheduler))}}class Bw extends m{constructor(e,t,n){super(e),this.delay=t,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}static dispatch(e){const t=e.source,n=t.queue,i=e.scheduler,r=e.destination;for(;n.length>0&&n[0].time-i.now()<=0;)n.shift().notification.observe(r);if(n.length>0){const t=Math.max(0,n[0].time-i.now());this.schedule(e,t)}else this.unsubscribe(),t.active=!1}_schedule(e){this.active=!0,this.destination.add(e.schedule(Bw.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))}scheduleNotification(e){if(!0===this.errored)return;const t=this.scheduler,n=new $w(t.now()+this.delay,e);this.queue.push(n),!1===this.active&&this._schedule(t)}_next(e){this.scheduleNotification(Dw.createNext(e))}_error(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()}_complete(){this.scheduleNotification(Dw.createComplete()),this.unsubscribe()}}class $w{constructor(e,t){this.time=e,this.notification=t}}class qw{constructor(){this.pageTracking={autoTrackVirtualPages:!0,basePath:"",excludedRoutes:[],clearIds:!1,clearHash:!1,clearQueryParams:!1,idsRegExp:/^\d+$|^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/},this.developerMode=!1,this.ga={},this.appInsights={},this.gtm={},this.gst={}}}const Gw=new Bn("ANGULARTICS2");class Ww{trackLocation(e){return new Fd({url:"/"})}prepareExternalUrl(e){return e}}let Yw=(()=>{class e{constructor(e,t){this.tracker=e,this.pageTrack=new Vw(10),this.eventTrack=new Vw(10),this.exceptionTrack=new Vw(10),this.setAlias=new Vw(10),this.setUsername=new Vw(10),this.setUserProperties=new Vw(10),this.setUserPropertiesOnce=new Vw(10),this.setSuperProperties=new Vw(10),this.setSuperPropertiesOnce=new Vw(10),this.userTimings=new Vw(10);const n=new qw;this.settings=Object.assign(Object.assign({},n),t.settings),this.settings.pageTracking=Object.assign(Object.assign({},n.pageTracking),t.settings.pageTracking),this.tracker.trackLocation(this.settings).subscribe(e=>this.trackUrlChange(e.url))}filterDeveloperMode(){return th((e,t)=>!this.settings.developerMode)}trackUrlChange(e){if(this.settings.pageTracking.autoTrackVirtualPages&&!this.matchesExcludedRoute(e)){const t=this.clearUrl(e);let n;n=this.settings.pageTracking.basePath.length?this.settings.pageTracking.basePath+t:this.tracker.prepareExternalUrl(t),this.pageTrack.next({path:n})}}matchesExcludedRoute(e){for(const t of this.settings.pageTracking.excludedRoutes)if(t instanceof RegExp&&t.test(e)||-1!==e.indexOf(t))return!0;return!1}clearUrl(e){return this.settings.pageTracking.clearIds||this.settings.pageTracking.clearQueryParams||this.settings.pageTracking.clearHash?e.split("/").map(e=>this.settings.pageTracking.clearQueryParams?e.split("?")[0]:e).map(e=>this.settings.pageTracking.clearHash?e.split("#")[0]:e).filter(e=>!this.settings.pageTracking.clearIds||!e.match(this.settings.pageTracking.idsRegExp)).join("/"):e}}return e.\u0275fac=function(t){return new(t||e)(si(Ww),si(Gw))},e.\u0275prov=ue({factory:function(){return new e(si(Ww),si(Gw))},token:e,providedIn:"root"}),e})(),Zw=(()=>{class e{constructor(e,t){this.router=e,this.location=t}trackLocation(e){return this.router.events.pipe(th(e=>e instanceof Th),th(()=>!e.developerMode),x(e=>({url:e.urlAfterRedirects})),function(e,t=Hw){var n;const i=(n=e)instanceof Date&&!isNaN(+n)?+e-t.now():Math.abs(e);return e=>e.lift(new zw(i,t))}(0))}prepareExternalUrl(e){return this.location.prepareExternalUrl(e)}}return e.\u0275fac=function(t){return new(t||e)(si(Qm),si(Gc))},e.\u0275prov=ue({factory:function(){return new e(si(Qm),si(Gc))},token:e,providedIn:"root"}),e})(),Qw=(()=>{class e{constructor(e,t,n){this.elRef=e,this.angulartics2=t,this.renderer=n,this.angularticsProperties={}}ngAfterContentInit(){this.renderer.listen(this.elRef.nativeElement,this.angulartics2On||"click",e=>this.eventTrack(e))}eventTrack(e){const t=this.angularticsAction,n=Object.assign(Object.assign({},this.angularticsProperties),{eventType:e.type});this.angularticsCategory&&(n.category=this.angularticsCategory),this.angularticsLabel&&(n.label=this.angularticsLabel),this.angularticsValue&&(n.value=this.angularticsValue),this.angulartics2.eventTrack.next({action:t,properties:n})}}return e.\u0275fac=function(t){return new(t||e)(_s(_a),_s(Yw),_s(ka))},e.\u0275dir=Ye({type:e,selectors:[["","angulartics2On",""]],inputs:{angularticsProperties:"angularticsProperties",angulartics2On:"angulartics2On",angularticsAction:"angularticsAction",angularticsCategory:"angularticsCategory",angularticsLabel:"angularticsLabel",angularticsValue:"angularticsValue"}}),e})(),Kw=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({}),e})(),Jw=(()=>{class e{static forRoot(t={}){return{ngModule:e,providers:[{provide:Gw,useValue:{settings:t}},{provide:Ww,useClass:Zw},Yw]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[Kw]]}),e})();function Xw(e,t){1&e&&(xs(0,"div",26),Ws(1,' This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. '),Ts())}let ev=(()=>{class e{constructor(e,t,n){this.titleService=t,this.metaTagService=n,this.showTerms=!1,e.getReleaseInfo().subscribe(e=>{this.releaseInfo=e})}ngOnInit(){this.titleService.setTitle("Download Awesome Miner"),this.metaTagService.updateTag({name:"description",content:"Download the Awesome Miner Windows application to manage and monitor your mining operations"})}alterTermsAndConditions(){this.showTerms=!this.showTerms}}return e.\u0275fac=function(t){return new(t||e)(_s(Pw),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-download-page"]],decls:112,vars:13,consts:[[1,"container"],[1,"headerTitle"],[1,"featureList"],["href","https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-web-installer"],["download","","href","https://aka.ms/vs/16/release/vc_redist.x64.exe"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow","downloadSection"],[1,"columnIcon"],["src","/img/windows40.png","alt","Awesome Miner Installer",1,"featureIcon","downloadIcon"],[1,"columnFill"],["download","","href","/download/setup/AwesomeMiner.msi","angulartics2On","click","angularticsAction","DownloadClick","angularticsCategory","AwesomeMiner","angularticsLabel","Windows"],[1,"downloadName"],[1,"small","versionSection"],["href","https://www.awesomeminer.com/download/setup/releaseinfo.txt"],["src","/img/windows40.png","alt","Awesome Miner Remote Agent Installer",1,"featureIcon","downloadIcon"],["download","","href","/download/setup/AwesomeMinerRemoteService.msi","angulartics2On","click","angularticsAction","DownloadClick","angularticsCategory","RemoteAgent","angularticsLabel","Windows"],["href","https://support.awesomeminer.com/support/solutions/articles/35000086210-remote-agent-for-linux"],["href","https://support.awesomeminer.com/support/solutions/articles/35000186444-environment-setup-connect-to-asic-miners-on-a-remote-location"],["href","https://support.awesomeminer.com/support/solutions/articles/35000190878-environment-setup-remote-proxy-for-linux"],["src","/img/linux40.png","alt","Awesome Miner Remote Agent for Linux",1,"featureIcon","downloadIcon"],["download","","href","/download/setup/awesomeminer-remoteagent.tar.xz","angulartics2On","click","angularticsAction","DownloadClick","angularticsCategory","RemoteAgent","angularticsLabel","Linux"],["src","/img/linux40.png","alt","Awesome Miner Remote Agent for Linux ARM",1,"featureIcon","downloadIcon"],["download","","href","/download/setup/awesomeminer-remoteagent-arm.tar.xz","angulartics2On","click","angularticsAction","DownloadClick","angularticsCategory","RemoteAgent","angularticsLabel","LinuxARM"],["routerLink","/antminerfirmware"],[2,"margin-top","40px"],["href","javascript:void(0)",3,"click"],["class","small","style","color:gray;max-width:600px",4,"ngIf"],[1,"small",2,"color","gray","max-width","600px"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div"),xs(2,"h3",1),Ws(3,"Windows downloads"),Ts(),xs(4,"h4"),Ws(5,"Requirements"),Ts(),xs(6,"ul",2),xs(7,"li"),xs(8,"span"),Ws(9," Supports 32-bit and 64-bit editions of Windows 7, Windows 8, Windows 10 and Windows 11 "),Ts(),Ts(),xs(10,"li"),xs(11,"span"),Ws(12," Requires Microsoft .NET Framework 4.7.2 or later (already included in Windows 10 since April 2018 and Windows 11) "),xs(13,"ul"),xs(14,"li"),xs(15,"a",3),Ws(16,"Download .NET Framework 4.8 from Microsoft"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(17,"li"),xs(18,"span"),Ws(19," GPU and CPU mining software requires a 64-bit edition of Windows and the following packages to be installed on all GPU mining computers: "),xs(20,"ul"),xs(21,"li"),xs(22,"a",4),Ws(23,"Redistributable Packages for Visual Studio 2015 - 2019 from Microsoft"),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(24,"div",5),xs(25,"div",6),Ps(26,"img",7),Ts(),xs(27,"div",8),xs(28,"a",9),xs(29,"h4",10),Ws(30," Awesome Miner Installer "),Ts(),Ts(),Ws(31," Awesome Miner is a Windows application for management and monitoring of ASIC, GPU and CPU miners. "),xs(32,"div",11),Ws(33),xs(34,"a",12),Ws(35,"Version change log"),Ts(),Ts(),Ts(),Ts(),xs(36,"div",5),xs(37,"div",6),Ps(38,"img",13),Ts(),xs(39,"div",8),xs(40,"a",14),xs(41,"h4",10),Ws(42," Awesome Miner Remote Agent Installer "),Ts(),Ts(),Ws(43," Remote Agent is used for GPU and CPU mining on remote computers or as a Remote Proxy for ASIC miners. "),xs(44,"div",11),Ws(45),Ts(),Ts(),Ts(),Ts(),xs(46,"div"),xs(47,"h3",1),Ws(48,"Linux downloads"),Ts(),xs(49,"h4"),Ws(50,"GPU or CPU mining"),Ts(),xs(51,"ul",2),xs(52,"li"),xs(53,"span"),Ws(54,"Requires: Linux x64 (e.g. Ubuntu 64-bit)"),Ts(),Ts(),xs(55,"li"),xs(56,"span"),Ws(57,"Requires: GPU drivers installed"),Ts(),Ts(),xs(58,"li"),xs(59,"span"),Ws(60,"Documentation: "),xs(61,"a",15),Ws(62,"Remote Agent for Linux"),Ts(),Ts(),Ts(),Ts(),xs(63,"h4"),Ws(64,"ASIC mining via Remote Proxy"),Ts(),xs(65,"ul",2),xs(66,"li"),xs(67,"span"),Ws(68,"Requires: Linux x64 (e.g. Ubuntu 64-bit) or Raspberry Pi (Raspberry Pi OS, for ARM)"),Ts(),Ts(),xs(69,"li"),xs(70,"span"),Ws(71,"Documentation: "),xs(72,"a",16),Ws(73,"Connect to ASIC miners on a remote location"),Ts(),Ts(),Ts(),xs(74,"li"),xs(75,"span"),Ws(76,"Documentation: "),xs(77,"a",17),Ws(78,"Remote Proxy for Linux"),Ts(),Ts(),Ts(),Ts(),xs(79,"div",5),xs(80,"div",6),Ps(81,"img",18),Ts(),xs(82,"div",8),xs(83,"a",19),xs(84,"h4",10),Ws(85," Awesome Miner Remote Agent for Linux x64 "),Ts(),Ts(),Ws(86," Remote Agent is used for GPU and CPU mining on Linux computers or as a Remote Proxy for ASIC miners. "),xs(87,"div",11),Ws(88),Ts(),Ts(),Ts(),xs(89,"div",5),xs(90,"div",6),Ps(91,"img",20),Ts(),xs(92,"div",8),xs(93,"a",21),xs(94,"h4",10),Ws(95," Awesome Miner Remote Agent for Raspberry-Pi (ARM) "),Ts(),Ts(),Ws(96," Remote Agent is used with the Remote Proxy feature on Raspberry-Pi for ASIC miners on a remote location. "),xs(97,"div",11),Ws(98),Ts(),Ts(),Ts(),Ts(),xs(99,"div"),xs(100,"h3",1),Ws(101,"Antminer Firmware downloads"),Ts(),xs(102,"div"),Ws(103," Use the optimized "),xs(104,"a",22),Ws(105,"Awesome Miner Antminer firmware"),Ts(),Ws(106," to get significant hashrate improvements and more features. "),Ts(),Ts(),xs(107,"div",23),xs(108,"a",24),Us("click",function(){return t.alterTermsAndConditions()}),xs(109,"h5"),Ws(110,"Terms and conditions"),Ts(),Ts(),Cs(111,Xw,2,0,"div",25),Ts(),Ts()),2&e&&(qr(33),Ks(" Version: ",null==t.releaseInfo?null:t.releaseInfo.version,", Released: ",null==t.releaseInfo?null:t.releaseInfo.releaseDate,", Size: ",null==t.releaseInfo?null:t.releaseInfo.awesomeMinerFileSize,". "),qr(12),Ks(" Version: ",null==t.releaseInfo?null:t.releaseInfo.version,", Released: ",null==t.releaseInfo?null:t.releaseInfo.releaseDate,", Size: ",null==t.releaseInfo?null:t.releaseInfo.remoteAgentFileSize," "),qr(43),Ks(" Version: ",null==t.releaseInfo?null:t.releaseInfo.version,", Released: ",null==t.releaseInfo?null:t.releaseInfo.releaseDate,", Size: ",null==t.releaseInfo?null:t.releaseInfo.remoteAgentLinuxFileSize," "),qr(10),Ks(" Version: ",null==t.releaseInfo?null:t.releaseInfo.version,", Released: ",null==t.releaseInfo?null:t.releaseInfo.releaseDate,", Size: ",null==t.releaseInfo?null:t.releaseInfo.remoteAgentLinuxArmFileSize," "),qr(13),As("ngIf",t.showTerms))},directives:[Qw,Km,Uu],styles:[".downloadSection[_ngcontent-%COMP%]{max-width:790px;margin-top:30px}.columnIcon[_ngcontent-%COMP%]{float:left}.columnFill[_ngcontent-%COMP%], .columnIcon[_ngcontent-%COMP%]{display:table}.downloadName[_ngcontent-%COMP%]{margin-bottom:5px;margin-top:0}.downloadFeatures[_ngcontent-%COMP%]{margin-top:3px;margin-left:0;margin-bottom:0}.downloadIcon[_ngcontent-%COMP%]{margin-bottom:50px;width:40px}.featureItem[_ngcontent-%COMP%]{padding-bottom:1px}.versionSection[_ngcontent-%COMP%]{color:grey;margin-top:4px;margin-bottom:0}"]}),e})(),tv=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner Affiliate Program"),this.metaTagService.updateTag({name:"description",content:"Join the Affiliate Program to earn a commission when you refer new customers to Awesome Miner"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-affiliate-page"]],decls:49,vars:0,consts:[[1,"container"],[1,"imgSection"],["routerLink","/help/affiliate/register"],["routerLink","/help/affiliate/promotionlink"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Affiliate Program for Awesome Miner"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," By joining the Awesome Miner Affiliate Program, you can earn a commission when you refer new customers to Awesome Miner. A commission will be paid for each new sale. "),Ts(),xs(6,"ul"),xs(7,"li"),Ws(8,"Affiliates are paid through our partner Impact Radius."),Ts(),xs(9,"li"),Ws(10,"Impact Radius handles all promoting tracking."),Ts(),xs(11,"li"),Ws(12,"Payouts can be made via electronic funds transfer or PayPal."),Ts(),xs(13,"li"),Ws(14,"All commission for sales in a given month are locked for the remaining days of the month and for one additional month."),Ts(),xs(15,"li"),Ws(16,"The commission is paid to the affiliate after the locking period."),Ts(),Ts(),Ts(),xs(17,"h3"),Ws(18,"Commission Terms for Awesome Miner"),Ts(),xs(19,"div"),xs(20,"ul"),xs(21,"li"),xs(22,"b"),Ws(23,"10% commission for an Awesome Miner Subscription"),Ts(),Ts(),xs(24,"li"),Ws(25,"Commissions are based on Net Sales, after transaction costs and refunds"),Ts(),xs(26,"li"),Ws(27,"Referrals are only considered for credit if a sale is made within 30 days from using the referral link"),Ts(),xs(28,"li"),Ws(29,"Commissions are payed for the first 400 days of a subscription"),Ts(),xs(30,"li"),Ws(31,"It's not allowed to sign up as an affiliate in order to only to get a subscription for yourself"),Ts(),xs(32,"li"),Ws(33,"It's not allowed to promote Awesome Miner in an unethical way or in a way that could harm the good reputation of Awesome Miner"),Ts(),xs(34,"li"),Ws(35,"We reserve the rights to terminate any affiliate account that doesn't comply with the terms and conditions above"),Ts(),Ts(),xs(36,"p"),Ws(37," The purpose of the affiliate program is to bring new customers to Awesome Miner, which is the reason why a commission is only given on the initial license sale. Any existing customers that sign up for Cloud Services or upgrade their existing license will not result in any commission. "),Ts(),Ts(),xs(38,"h3"),Ws(39,"Get started with affiliate program"),Ts(),xs(40,"p"),xs(41,"a",2),Ws(42,"Register for Awesome Miner affiliate program"),Ts(),Ws(43," to get started. "),Ts(),xs(44,"p"),Ws(45," After registering, "),xs(46,"a",3),Ws(47,"add a promotion link"),Ts(),Ws(48," on your webpage. "),Ts(),Ts())},directives:[Km],styles:[""]}),e})();class nv{static addStoreFrontLibrary(e){if("undefined"!=typeof window){window.storefrontCallback=e;let t=document.getElementById("fsc-api");if(null!=t)return;t=document.createElement("script"),t.setAttribute("id","fsc-api"),t.setAttribute("src","https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.8.3/fastspring-builder.min.js"),t.setAttribute("data-storefront",gb.production?"awesomeminer.onfastspring.com/popup-awesomeminer":"awesomeminer.test.onfastspring.com/popup-awesomeminer"),t.setAttribute("data-popup-closed","storefrontCallback"),document.head.appendChild(t)}}static removeStoreFrontCallback(){"undefined"!=typeof window&&(window.storefrontCallback=void 0)}}function iv(e,t){return n=>n.parent&&e()?t(n):null}n("kiQV");const rv="https://5aozpdg9s2.execute-api.us-east-1.amazonaws.com",ov=n("mjNN");let sv=(()=>{class e{constructor(e){this.http=e,this.subscriptionPrice=null,this.minMinerCount=1,this.minMinerCountMonthly=2,this.maxMinerCount=2e4,this.maxCalcMinerCount=1e5,this.allFeatures=[{name:"All features included"},{name:"Cloud Services"},{name:"Product support via e-mail"},{name:"ASIC mining"},{name:"GPU mining"},{name:"CPU mining"}],this.subscriptionFeatures=[{name:"All features included"},{name:"Cloud Services"},{name:"Product support via e-mail"},{name:"ASIC mining (2.8% mining fee)"},{name:"GPU mining",avail:!1},{name:"CPU mining",avail:!1}],this.freeFeatures=[{name:"All features included",avail:!1},{name:"Cloud Services",avail:!1},{name:"Product support via e-mail",avail:!1},{name:"ASIC mining"},{name:"GPU mining"},{name:"CPU mining"}],this.minerMessageMapping={"=0":"# miners","=1":"# miner",other:"# miners"},this.CheckProductSubscriptionUrl=rv+"/prod/CheckProduct",this.UpdateProductSubscriptionUrl=rv+"/prod/ProductUpgrade",this.ProductSubscriptionUrl=rv+"/prod/ProductSubscription",this.subscriptionPrice=this.getPricing().subscription}calculatePrice(e,t,n=0){if(null==this.subscriptionPrice||e<1)return 0;let i=this.getDiscount(e,n);return this.roundToTwo(t?e*this.subscriptionPrice.pricePerMonth*i:e*this.subscriptionPrice.pricePerYear/12*i)}calculateYearlyPrice(e,t,n=0){if(null==this.subscriptionPrice||e<1)return 0;let i=this.getDiscount(e,n);return this.roundToTwo(t?12*e*this.subscriptionPrice.pricePerMonth*i:e*this.subscriptionPrice.pricePerYear*i)}getDiscount(e,t){let n=1,i=this.getVolumeDiscount(e);return i>0&&(n=(100-i)/100),t>0&&(n=n*(100-t)/100),n}getVolumeDiscount(e){if(null!=this.subscriptionPrice&&null!=this.subscriptionPrice.discounts&&this.subscriptionPrice.discounts.length>0)for(let t=this.subscriptionPrice.discounts.length-1;t>=0;t--)if(e>=this.subscriptionPrice.discounts[t].units&&this.subscriptionPrice.discounts[t].percent>0&&this.subscriptionPrice.discounts[t].percent<100)return this.subscriptionPrice.discounts[t].percent;return 0}roundToTwo(e){return+(Math.round(e+="e+2")+"e-2")}checkProductSubscription(e){return this.http.get(this.CheckProductSubscriptionUrl+"?email="+e)}getPricing(){return ov}updateProductSubscription(e,t,n,i,r){let o={email:e,code:t,count:n,coupon:r};return null!=i&&(o.subscriptionType=i),this.http.post(this.UpdateProductSubscriptionUrl,o)}createProductSubscription(e){return this.http.post(this.ProductSubscriptionUrl,{email:e})}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),av=(()=>{class e{constructor(e){this.http=e,this.CheckCouponUrl=rv+"/prod/Coupon",this.affiliateCouponMonthly=null,this.affiliateCouponYearly=null,this.couponDiscountPercent=0}get couponMonthly(){return this.affiliateCouponMonthly}get couponYearly(){return this.affiliateCouponYearly}get couponDiscount(){return this.couponDiscountPercent}getCouponDiscount(e){return this.http.get(this.CheckCouponUrl+"?coupon="+e)}getCoupon(e){let t={percent:0,minCount:0,maxCount:0};return fb.isStringValid(e,5)?this.getCouponDiscount(e).pipe(x(t=>{let n=e.split("-");if(null!==n&&n.length>=4){let e=parseInt(n[2],10);if(e>0&&(t.minCount=e),5==n.length){let e=parseInt(n[3],10);e>=t.minCount&&(t.maxCount=e)}}return t}),rh(e=>(console.log("Failed to get coupon"),Ed(t)))):Ed(t)}setCoupons(e,t,n){this.affiliateCouponMonthly=e,this.affiliateCouponYearly=t,this.couponDiscountPercent=n.percent}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const lv=function(e){return{"text-line-through":e}};function cv(e,t){if(1&e){const e=Os();xs(0,"div",9),xs(1,"label",10),xs(2,"input",11),Us("change",function(){Et(e);const t=Rs();return t.isChecked=!t.isChecked}),Ts(),Ws(3," Upgrade the subscription to "),xs(4,"b"),Ps(5,"am-license-edition",3),Ts(),Ps(6,"br"),Ps(7,"am-license-price",12),Ts(),Ts()}if(2&e){const e=Rs();qr(1),As("ngClass",yl(7,lv,!e.isChecked)),qr(1),As("checked",e.isChecked)("disabled",1==e.accountType),qr(3),As("license",e.licenseOption.cloud.license)("minerCount",e.licenseOption.cloud.minerCount),qr(2),As("price",e.licenseOption.cloud.price)("subscriptionType",e.subscriptionType)}}function uv(e,t){if(1&e){const e=Os();xs(0,"button",13),Us("click",function(){Et(e);const t=Rs();return t.navigateToShopClick(t.licenseOption.license.productLink,t.isChecked?t.licenseOption.cloud.productLink:null)}),Ws(1,"Upgrade"),Ts()}}function dv(e,t){if(1&e){const e=Os();xs(0,"button",13),Us("click",function(){Et(e);const t=Rs();return t.navigateToShopClick(t.licenseOption.license.productLink,null)}),Ws(1,"Upgrade"),Ts()}}let hv=(()=>{class e{constructor(){this.navigateToShop=new Ol,this.isChecked=!0}ngOnInit(){}navigateToShopClick(e,t){this.navigateToShop.emit({productLink:e,subscriptionLink:t})}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-license-option"]],inputs:{licenseOption:"licenseOption",subscriptionType:"subscriptionType",accountType:"accountType"},outputs:{navigateToShop:"navigateToShop"},decls:12,vars:6,consts:[[1,"card","selected","h-100"],["form","ngForm"],[1,"card-header","ngMainCardTitle","text-center"],[3,"license","minerCount"],[1,"card-body"],[1,"font-weight-bold"],["class","form-check",4,"ngIf"],[1,"card-footer","bg-transparent","border-transparent","text-center"],["class","btn btn-success ngMainButton","role","button",3,"click",4,"ngIf"],[1,"form-check"],[1,"form-check-label",3,"ngClass"],["type","checkbox","name","checkSubscription",1,"form-check-input",3,"checked","disabled","change"],[3,"price","subscriptionType"],["role","button",1,"btn","btn-success","ngMainButton",3,"click"]],template:function(e,t){1&e&&(xs(0,"form",0,1),xs(2,"div",2),Ps(3,"am-license-edition",3),Ts(),xs(4,"div",4),xs(5,"span",5),Ws(6),Ts(),Ws(7," (one time cost) "),Cs(8,cv,8,9,"div",6),Ts(),xs(9,"div",7),Cs(10,uv,2,0,"button",8),Cs(11,dv,2,0,"button",8),Ts(),Ts()),2&e&&(qr(3),As("license",t.licenseOption.license.license)("minerCount",t.licenseOption.license.minerCount),qr(3),Zs("License price: $",t.licenseOption.license.price,""),qr(2),As("ngIf",t.licenseOption.cloud),qr(2),As("ngIf",t.licenseOption.cloud),qr(1),As("ngIf",null==t.licenseOption.cloud))},directives:[Ug,ng,Ig,aw,Uu,Iu,lw],styles:[""]}),e})();function pv(e,t){if(1&e&&(xs(0,"span"),xs(1,"span",2),Ws(2),Ts(),xs(3,"span"),Ws(4),Ts(),Ts()),2&e){const e=Rs();qr(2),Qs("",e.minerCount," miners - Price: $",e.price,""),qr(2),Ys(e.subscriptionType)}}function mv(e,t){1&e&&(xs(0,"span",2),Ws(1,"Firmware subscription"),Ts())}let fv=(()=>{class e{constructor(){this.enumSubscriptionType=pb}ngOnInit(){}get subscriptionType(){return this.subscriptionTypeValue==pb.Monthly?" / month":this.subscriptionTypeValue==pb.Yearly?" / year":""}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-subscription-edition"]],inputs:{subscriptionTypeValue:["subscriptionType","subscriptionTypeValue"],minerCount:"minerCount",price:"price"},decls:2,vars:2,consts:[[4,"ngIf"],["class","font-weight-bold",4,"ngIf"],[1,"font-weight-bold"]],template:function(e,t){1&e&&(Cs(0,pv,5,3,"span",0),Cs(1,mv,2,0,"span",1)),2&e&&(As("ngIf",t.subscriptionTypeValue!==t.enumSubscriptionType.None),qr(1),As("ngIf",t.subscriptionTypeValue===t.enumSubscriptionType.None))},directives:[Uu],styles:[""]}),e})();function gv(e,t){if(1&e&&(xs(0,"div",6),xs(1,"h5",7),Ws(2),Ts(),xs(3,"p",8),function(e,t=0,n){const i=It(),r=Ot(),o=to(r,Je+e,16,null,n||null);null===o.projection&&(o.projection=t),Rt(),64!=(64&o.flags)&&function(e,t,n){Ir(t[11],0,t,n,br(e,n,t),Sr(n.parent||t[6],n,t))}(r,i,o)}(4),Ts(),Ts()),2&e){const e=Rs();qr(2),Ys(e.price)}}function bv(e,t){if(1&e&&(xs(0,"div",6),xs(1,"p",8),Ws(2),Ts(),Ts()),2&e){const e=Rs();qr(2),Ys(e.altText)}}const wv=function(e){return{unavail:e}};function vv(e,t){if(1&e&&(xs(0,"li",9),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngClass",yl(2,wv,0==e.avail)),qr(1),Ys(e.name)}}const yv=function(e){return{selected:e}},Cv=["*"];let Sv=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-edition-card"]],inputs:{isSelected:"isSelected",editionTitle:"editionTitle",price:"price",features:"features",altText:"altText"},ngContentSelectors:Cv,decls:11,vars:7,consts:[[1,"card","h-100",3,"ngClass"],[1,"card-header","ngMainCardTitle","text-center"],[1,"card-body","d-flex","flex-column"],["class","h-100",4,"ngIf"],[1,"ul-checkboxes"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"h-100"],[1,"card-title","price-title","text-center"],[1,"card-text","text-center"],[3,"ngClass"]],template:function(e,t){1&e&&(function(e){const t=It()[16][6];if(!t.projection){const e=t.projection=Zn(1,null),n=e.slice();let i=t.child;for(;null!==i;){const t=0;null!==t&&(n[t]?n[t].projectionNext=i:e[t]=i,n[t]=i),i=i.next}}}(),xs(0,"div",0),xs(1,"div",1),Ws(2),Ts(),xs(3,"div",2),Cs(4,gv,5,1,"div",3),Cs(5,bv,3,1,"div",3),xs(6,"div"),xs(7,"div"),Ps(8,"hr"),Ts(),xs(9,"ul",4),Cs(10,vv,2,4,"li",5),Ts(),Ts(),Ts(),Ts()),2&e&&(As("ngClass",yl(5,yv,t.isSelected)),qr(2),Ys(t.editionTitle),qr(2),As("ngIf",!t.altText),qr(1),As("ngIf",t.altText),qr(5),As("ngForOf",t.features))},directives:[Iu,Uu,Eu],styles:['@charset "UTF-8";.price-title[_ngcontent-%COMP%]{font-size:35px}.ul-checkboxes[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0 0 0 1.3em}.ul-checkboxes[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:"\uf058";font-family:Font Awesome\\ 5 Free;font-weight:900;font-size:1.5em;vertical-align:middle;color:#4da6ff;display:inline-block;width:1.3em;margin-left:-1.3em}.ul-checkboxes[_ngcontent-%COMP%] .unavail[_ngcontent-%COMP%]:before{content:"\uf057"!important;color:#d35d6a!important}']}),e})();function _v(e,t){if(1&e&&(xs(0,"tr",7),xs(1,"td"),Ws(2),Ts(),xs(3,"td"),Ws(4),Ts(),Ts()),2&e){const e=t.$implicit;qr(2),Zs("",e.units,"+"),qr(2),Zs("",e.percent,"%")}}function Av(e,t){if(1&e&&(xs(0,"div",1),xs(1,"label",2),Ws(2,"Discounts:"),Ts(),xs(3,"table",3),xs(4,"thead"),xs(5,"tr"),xs(6,"th",4),Ws(7,"Number\xa0of\xa0miners"),Ts(),xs(8,"th",5),Ws(9,"Discount"),Ts(),Ts(),Ts(),xs(10,"tbody"),Cs(11,_v,5,2,"tr",6),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(11),As("ngForOf",null==e.subscriptionService.subscriptionPrice?null:e.subscriptionService.subscriptionPrice.discounts)}}let kv=(()=>{class e{constructor(e){this.subscriptionService=e}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)(_s(sv))},e.\u0275cmp=ze({type:e,selectors:[["am-product-subscription-discount"]],decls:1,vars:1,consts:[["class","form-group row",4,"ngIf"],[1,"form-group","row"],[1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"col-lg-6","col-md-8","table","table-striped","table-responsive"],["scope","col"],["scope","col","width","100%"],["scope","row",4,"ngFor","ngForOf"],["scope","row"]],template:function(e,t){1&e&&Cs(0,Av,12,1,"div",0),2&e&&As("ngIf",(null==t.subscriptionService.subscriptionPrice||null==t.subscriptionService.subscriptionPrice.discounts?null:t.subscriptionService.subscriptionPrice.discounts.length)>0)},directives:[Uu,Eu],styles:[""]}),e})();function xv(e,t){1&e&&Ps(0,"am-spinner")}function Tv(e,t){1&e&&(xs(0,"div",19),Ws(1,"Failed to get license information"),Ts())}function Pv(e,t){1&e&&(xs(0,"div",19),Ws(1,"Failed to upgrade license"),Ts())}function Mv(e,t){1&e&&(xs(0,"div",19),Ws(1,"The provided license information is not valid"),Ts())}function Iv(e,t){1&e&&(xs(0,"div",19),Ws(1,"To upgrade your Ultimate Edition license, please "),xs(2,"a",20),Ws(3,"contact us"),Ts(),Ws(4,"."),Ts())}function Ov(e,t){if(1&e){const e=Os();xs(0,"div",5),xs(1,"p"),Ws(2," This page is only intended for existing customers that want to either change the number of miners for a subscription or upgrade an existing license. "),Ts(),xs(3,"p"),Ws(4," To continue, you need to enter your existing license information. You need to provide your "),xs(5,"b"),Ws(6,"E-mail address"),Ts(),Ws(7," and "),xs(8,"b"),Ws(9,"Registration code"),Ts(),Ws(10,". This information was provided via e-mail when you signed up for Awesome Miner but can also be recovered using the "),xs(11,"a",6),Ws(12,"form to recover a lost registration code"),Ts(),Ws(13,". "),Ts(),xs(14,"p"),Ws(15," On the next page you will be able to review the available upgrades and prices. "),Ts(),xs(16,"form",7),xs(17,"div",8),xs(18,"label",9),Ws(19,"E-mail address:"),Ts(),xs(20,"div",10),Ps(21,"input",11),Ts(),Ts(),xs(22,"div",12),xs(23,"label",13),Ws(24,"Registration code:"),Ts(),xs(25,"div",10),Ps(26,"input",14),Ts(),Ts(),xs(27,"div",12),xs(28,"div",15),xs(29,"button",16),Us("click",function(){return Et(e),Rs().validateClick()}),Ws(30,"Continue"),Cs(31,xv,1,0,"am-spinner",17),Ts(),Ts(),Ts(),xs(32,"div"),Cs(33,Tv,2,0,"div",18),Cs(34,Pv,2,0,"div",18),Cs(35,Mv,2,0,"div",18),Cs(36,Iv,5,0,"div",18),Ts(),Ts(),Ts()}if(2&e){const e=Rs();qr(16),As("formGroup",e.upgradeForm),qr(13),As("disabled",e.upgradeForm.invalid||e.inProgress),qr(2),As("ngIf",e.inProgress),qr(2),As("ngIf",e.upgradeForm.hasError("InternalError")),qr(1),As("ngIf",e.upgradeForm.hasError("LicenseUpgradeError")),qr(1),As("ngIf",e.upgradeForm.hasError("LicenseNotFound")),qr(1),As("ngIf",e.upgradeForm.hasError("UltimateEdition"))}}function Ev(e,t){if(1&e&&(xs(0,"div"),Ws(1," Your current subscription: "),xs(2,"b"),Ws(3,"Cloud Services "),Ps(4,"am-license-edition",22),Ts(),Ws(5," - "),Ps(6,"am-license-price",28),Ts()),2&e){const e=Rs(3);qr(4),As("license",e.licenseUpgradeOption.currentCloud.license)("minerCount",e.licenseUpgradeOption.currentCloud.minerCount),qr(2),As("price",e.licenseUpgradeOption.currentCloud.price)("subscriptionType",e.licenseUpgradeOption.currentCloud.subscriptionType)}}function Fv(e,t){if(1&e&&(xs(0,"div"),Ws(1," Your current subscription: "),xs(2,"b"),Ws(3,"Product Support "),Ps(4,"am-license-edition",22),Ts(),Ws(5," - "),Ps(6,"am-license-price",29),Ts()),2&e){const e=Rs(3);qr(4),As("license",e.licenseUpgradeOption.currentCloud.license)("minerCount",e.licenseUpgradeOption.currentCloud.minerCount),qr(2),As("price",e.licenseUpgradeOption.currentCloud.price)}}function Uv(e,t){if(1&e&&(xs(0,"div"),Cs(1,Ev,7,4,"div",17),Cs(2,Fv,7,3,"div",17),Ts()),2&e){const e=Rs(2);qr(1),As("ngIf",1!=(null==e.licenseUpgradeOption.currentCloud?null:e.licenseUpgradeOption.currentCloud.accountType)),qr(1),As("ngIf",1==(null==e.licenseUpgradeOption.currentCloud?null:e.licenseUpgradeOption.currentCloud.accountType))}}function Lv(e,t){if(1&e){const e=Os();xs(0,"div",30),xs(1,"am-license-option",31),Us("navigateToShop",function(t){return Et(e),Rs(2).navigateToShopClick(t)}),Ts(),Ts()}if(2&e){const e=t.$implicit,n=Rs(2);qr(1),As("licenseOption",e)("subscriptionType",1==(null==n.licenseUpgradeOption.currentCloud?null:n.licenseUpgradeOption.currentCloud.accountType)||null==n.licenseUpgradeOption.currentCloud?null:n.licenseUpgradeOption.currentCloud.subscriptionType)("accountType",null==n.licenseUpgradeOption.currentCloud?null:n.licenseUpgradeOption.currentCloud.accountType)}}const Dv=function(){return{topic:"sales"}};function Rv(e,t){if(1&e&&(xs(0,"div",21),xs(1,"div"),Ws(2," Your current license: "),xs(3,"b"),Ps(4,"am-license-edition",22),Ts(),Ts(),Cs(5,Uv,3,2,"div",17),xs(6,"div",23),Cs(7,Lv,2,3,"div",24),Ts(),xs(8,"div",25),xs(9,"div",26),Ws(10," VAT will be added for customers in EU and other markets where required. If you have any questions or want to upgrade to another edition, please "),xs(11,"a",27),Ws(12,"contact us"),Ts(),Ws(13,". "),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(4),As("license",e.licenseUpgradeOption.currentLicense.license)("minerCount",e.licenseUpgradeOption.currentLicense.minerCount),qr(1),As("ngIf",null!=e.licenseUpgradeOption.currentCloud),qr(2),As("ngForOf",e.licenseUpgradeOption.licenseUpgrades),qr(4),As("queryParams",vl(5,Dv))}}function Nv(e,t){if(1&e&&(xs(0,"div"),Ws(1," Promotional discount: "),xs(2,"b"),Ws(3),Ts(),Ws(4,". "),Ts()),2&e){const e=Rs(2);qr(3),Zs("",e.licenseUpgradeOption.currentProduct.discountPercent,"%")}}function Vv(e,t){if(1&e&&(xs(0,"span"),Ws(1," for "),Ps(2,"am-product-subscription-edition",35),Ts()),2&e){const e=Rs(3);qr(2),As("minerCount",e.licenseUpgradeOption.currentProduct.nextPeriodMinerCount)("price",e.nextProductSubscriptionPrice)("subscriptionType",e.licenseUpgradeOption.currentProduct.subscriptionType)}}function jv(e,t){if(1&e&&(xs(0,"div"),Ws(1," Next full subscription payment: "),xs(2,"b"),Ws(3),kl(4,"date"),Ts(),Cs(5,Vv,3,3,"span",17),Ts()),2&e){const e=Rs(2);qr(3),Ys(Tl(4,2,e.licenseUpgradeOption.currentProduct.nextPeriodDate,"yyyy-MM-dd")),qr(2),As("ngIf",e.nextProductSubscriptionPrice>0)}}function Hv(e,t){if(1&e&&(xs(0,"div"),Ws(1," Subscription end date: "),xs(2,"b"),Ws(3),kl(4,"date"),Ts(),Ws(5,". After this date the license is no longer valid. "),Ts()),2&e){const e=Rs(2);qr(3),Ys(Tl(4,1,e.licenseUpgradeOption.currentProduct.endDate,"yyyy-MM-dd"))}}function zv(e,t){if(1&e){const e=Os();xs(0,"div",37),xs(1,"am-edition-card",46),Us("click",function(){Et(e);const t=Rs(2);return t.setSubscriptionType(t.enumSubscriptionType.Monthly)}),Ws(2),kl(3,"i18nPlural"),Ps(4,"br"),Ws(5,"\xa0"),Ts(),Ts()}if(2&e){const e=Rs(2);qr(1),As("price","$"+e.monthlyPrice)("features",e.subscriptionService.allFeatures)("isSelected",e.subscriptionType==e.enumSubscriptionType.Monthly)("altText",e.fs.minerCount.valuee.maxMinerCount),qr(1),As("ngIf",e.fs.minerCount.value0),qr(1),As("ngIf",e.licenseUpgradeOption.currentProduct.nextPeriodDate),qr(1),As("ngIf",e.licenseUpgradeOption.currentProduct.endDate),qr(2),As("formGroup",e.subscriptionForm),qr(4),As("ngIf",e.showMonthly),qr(2),As("price","$"+e.yearlyTotalPrice)("features",e.subscriptionService.allFeatures)("isSelected",e.subscriptionType==e.enumSubscriptionType.Yearly)("altText",e.fs.minerCount.valuee.licenseUpgradeOption.currentProduct.minerCount),qr(1),As("ngIf",e.subscriptionForm.value.minerCounte.licenseUpgradeOption.currentProduct.minerCount),qr(1),As("ngIf",e.subscriptionForm.value.minerCount0),qr(3),As("ngIf",!e.licenseUpgradeOption.currentProduct.endDate&&e.subscriptionForm.value.minerCount>e.licenseUpgradeOption.currentProduct.minerCount),qr(1),As("ngIf",!e.licenseUpgradeOption.currentProduct.endDate&&e.subscriptionForm.value.minerCount=e.licenseUpgradeOption.currentProduct.minerCount),qr(1),As("ngIf",e.currentSubscriptionType!=e.enumSubscriptionType.None&&e.subscriptionForm.value.minerCount{class e{constructor(e,t,n,i,r,o,s,a,l,c){this.route=e,this.router=t,this.formBuilder=n,this.licenseService=i,this.subscriptionService=r,this.couponService=o,this.changeDetectorRef=s,this.ngZone=a,this.titleService=l,this.metaTagService=c,this.enumSubscriptionType=pb,this.licenseUpgradeOption=null,this.couponDiscountPercent=0,this.minMinerCountCoupon=0,this.inProgress=!1,this.formCompleted=null,this.fastspringCompleted=null,this.currentDate=Date.now(),this.maxMinerCount=this.subscriptionService.maxMinerCount}get minMinerCount(){return this.minMinerCountCoupon>0?this.minMinerCountCoupon:this.subscriptionType==pb.Yearly?this.subscriptionService.minMinerCount:this.subscriptionService.minMinerCountMonthly}get today(){return this.currentDate}ngOnInit(){this.titleService.setTitle("Upgrade Awesome Miner license"),this.metaTagService.updateTag({name:"description",content:"Upgrade your Awesome Miner license"}),nv.addStoreFrontLibrary(e=>this.storeFrontCallback(e));var e=this.route.snapshot.queryParams.email,t=this.route.snapshot.queryParams.code;this.upgradeForm=this.formBuilder.group({email:[e,[Uf.required,Uf.email]],code:[t,[Uf.required,Uf.minLength(10)]]}),this.subscriptionForm=this.formBuilder.group({minerCount:[0,[Uf.required,Uf.max(this.subscriptionService.maxMinerCount),iv(()=>this.subscriptionType==pb.Yearly,Uf.min(this.subscriptionService.minMinerCount)),iv(()=>this.subscriptionType!=pb.Yearly,Uf.min(this.subscriptionService.minMinerCountMonthly))]]}),this.fs.minerCount.valueChanges.subscribe(e=>{this.updatePrice()}),this.updatePriceCoupon(),(e||t)&&(this.router.navigate([],{queryParams:{email:null,code:null},queryParamsHandling:"merge"}),e&&t&&this.validateClick())}ngOnDestroy(){nv.removeStoreFrontCallback()}storeFrontCallback(e){if(null!=e){console.log("Fastspring order completed: ",e),this.fastspringCompleted=e,this.formCompleted=!0;try{this.ngZone.run(()=>{this.changeDetectorRef.detectChanges()})}catch(t){console.log("Failed to trigger detectChanges",t)}}}updatePrice(){this.fs.minerCount.value>this.subscriptionService.maxCalcMinerCount?this.fs.minerCount.setValue(this.subscriptionService.maxCalcMinerCount):(this.monthlyPrice=this.subscriptionService.calculatePrice(this.fs.minerCount.value,!0,this.couponDiscountPercent),this.yearlyPrice=this.subscriptionService.calculatePrice(this.fs.minerCount.value,!1,this.couponDiscountPercent),this.yearlyTotalPrice=this.subscriptionService.calculateYearlyPrice(this.fs.minerCount.value,!1,this.couponDiscountPercent),this.volumeDiscountPercent=this.subscriptionService.getVolumeDiscount(this.fs.minerCount.value))}updatePriceCoupon(){this.couponDiscountPercent=0,this.minMinerCountCoupon=0,this.maxMinerCount=this.subscriptionService.maxMinerCount;let e=this.route.snapshot.queryParams.coupon;this.inProgress=!0,this.couponService.getCoupon(e).subscribe(t=>{this.routeCoupon=e,this.couponDiscountPercent=t.percent,t.minCount>0&&(this.minMinerCountCoupon=t.minCount),t.maxCount>0&&(this.maxMinerCount=t.maxCount),(t.minCount>0||t.maxCount>0)&&this.updateMinerCountValidators(this.minMinerCount,this.maxMinerCount),this.inProgress=!1,this.updatePrice()})}updateMinerCountValidators(e,t){this.subscriptionForm.controls.minerCount.setValidators([Uf.required,Uf.min(e),Uf.max(t)])}get f(){return this.upgradeForm.controls}get fs(){return this.subscriptionForm.controls}validateClick(){this.inProgress=!0,this.currentSubscriptionPrice=0,this.currentSubscriptionType=null,this.nextProductSubscriptionPrice=0,this.showMonthly=!0,this.subscriptionType=null,this.licenseService.getLicenseUpgradeOption(this.upgradeForm.value.email,this.upgradeForm.value.code).subscribe(e=>{if(this.inProgress=!1,this.licenseUpgradeOption=e,null==e);else if(null!=e.currentProduct){let t=this.licenseUpgradeOption.currentProduct.minerCount;this.currentSubscriptionType=this.licenseUpgradeOption.currentProduct.subscriptionType,this.subscriptionType=this.currentSubscriptionType,this.licenseUpgradeOption.currentProduct.discountPercent>0&&this.couponDiscountPercent<=0&&(this.couponDiscountPercent=this.licenseUpgradeOption.currentProduct.discountPercent),this.currentSubscriptionType==pb.Monthly?(this.currentSubscriptionPrice=this.subscriptionService.calculatePrice(this.licenseUpgradeOption.currentProduct.minerCount,!0,this.licenseUpgradeOption.currentProduct.discountPercent),e.currentProduct.nextPeriodMinerCount>0&&e.currentProduct.nextPeriodMinerCount!=this.licenseUpgradeOption.currentProduct.minerCount&&(this.nextProductSubscriptionPrice=this.subscriptionService.calculatePrice(e.currentProduct.nextPeriodMinerCount,!0))):this.currentSubscriptionType==pb.Yearly?(this.showMonthly=!1,this.currentSubscriptionPrice=this.subscriptionService.calculateYearlyPrice(this.licenseUpgradeOption.currentProduct.minerCount,!1,this.licenseUpgradeOption.currentProduct.discountPercent),e.currentProduct.nextPeriodMinerCount>0&&e.currentProduct.nextPeriodMinerCount!=this.licenseUpgradeOption.currentProduct.minerCount&&(this.nextProductSubscriptionPrice=this.subscriptionService.calculateYearlyPrice(e.currentProduct.nextPeriodMinerCount,!1))):(this.subscriptionType=pb.Monthly,t=this.subscriptionService.minMinerCount,this.subscriptionForm.markAsDirty()),this.fs.minerCount.setValue(t)}else null!=e.licenseUpgrades&&0!=e.licenseUpgrades.length||this.upgradeForm.setErrors({UltimateEdition:!0})},e=>{this.inProgress=!1,this.licenseUpgradeOption=null,this.upgradeForm.setErrors(404==e.status?{LicenseNotFound:!0}:{InternalError:!0}),console.log("Failed to send request",e)})}navigateToShopClick(e){let t=this.upgradeForm.value.email;if(!fb.isStringValid(t,5)||!fb.isStringValid(e.productLink,5))return void this.upgradeForm.setErrors({InternalError:!0});let n="le";null!=e.subscriptionLink&&(n+=",upgradeCloud_"+e.subscriptionLink),window.location.href="https://sites.fastspring.com/intellibreeze/instant/"+e.productLink+"?member=new&sessionOption=new&tags="+n+"&contact_fname=%20&contact_email="+t}upgradeProductSubscriptionClick(){this.formCompleted=null;let e=this.upgradeForm.value.email;fb.isStringValid(e,5)?this.currentSubscriptionType==pb.None?(console.log("UpgradeCheckout to: ",this.subscriptionForm.value.minerCount,this.subscriptionType),this.showCheckoutClick(e,this.upgradeForm.value.code)):(console.log("Upgrade to: ",this.subscriptionForm.value.minerCount,this.subscriptionType),this.updateProductSubscription()):this.upgradeForm.setErrors({InternalError:!0})}setSubscriptionType(e){e!=this.subscriptionType&&(this.subscriptionType=e,this.subscriptionForm.markAsDirty(),this.fs.minerCount.updateValueAndValidity())}updateProductSubscription(){let e=this.subscriptionType==pb.Yearly&&this.licenseUpgradeOption.currentProduct.subscriptionType==pb.Monthly?"year":null;this.inProgress=!0,this.subscriptionService.updateProductSubscription(this.upgradeForm.value.email,this.upgradeForm.value.code,this.subscriptionForm.value.minerCount,e,this.couponDiscountPercent>0?this.routeCoupon:null).subscribe(e=>{this.inProgress=!1,this.formCompleted=!0},e=>{this.inProgress=!1,null!=e.error&&"coupons"==e.error.error&&(this.couponDiscountPercent=-1,this.upgradeForm.setErrors({InvalidCoupon:!0})),this.upgradeForm.setErrors(null!=e.error&&"no_payment_method"==e.error.error?{NoPaymentMethod:!0}:404==e.status?{SubscriptionNotFound:!0}:{SubscriptionUpgradeError:!0}),console.log("Failed to send request",e)})}showCheckoutClick(e,t){fastspring.builder.push({reset:!0,products:[{path:this.subscriptionType==pb.Yearly?"awesome-miner-subscription-year":"awesome-miner-subscription",quantity:this.subscriptionForm.value.minerCount}],paymentContact:{email:e},tags:{email:e,licenseCode:t},checkout:!0})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Qm),_s(rb),_s(Zb),_s(sv),_s(av),_s(Ya),_s(Xl),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-license-upgrade"]],decls:7,vars:4,consts:[[1,"container"],["id","step1","class","imgSection",4,"ngIf"],["id","step2","visible","false",4,"ngIf"],["id","stepProduct2","visible","false",4,"ngIf"],["id","stepProduct3","class","imgSection",4,"ngIf"],["id","step1",1,"imgSection"],["routerLink","/recoverlicense"],[3,"formGroup"],[1,"form-group","row",2,"margin-top","30px"],["for","email",1,"col-md-3","col-form-label","font-weight-bold"],[1,"col-md-9"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"form-group","row"],["for","code",1,"col-md-3","col-form-label","font-weight-bold"],["type","text","id","awesomeCode","name","awesomeCode","formControlName","code",1,"form-control"],[1,"offset-md-3","col-md-9"],["type","submit","id","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],["style","color:red",4,"ngIf"],[2,"color","red"],["routerLink","/contact"],["id","step2","visible","false"],[3,"license","minerCount"],[1,"row","colSeparatorTop"],["class","col-xl-6 colSeparator",4,"ngFor","ngForOf"],[1,"row"],[1,"col"],["routerLink","/contact",3,"queryParams"],[3,"price","subscriptionType"],[3,"price"],[1,"col-xl-6","colSeparator"],[3,"licenseOption","subscriptionType","accountType","navigateToShop"],["id","stepProduct2","visible","false"],["for","minerCount",1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"col-lg-10","col-md-8","form-text"],[3,"minerCount","price","subscriptionType"],["class","col-md-4 col-12 colSeparator",4,"ngIf"],[1,"col-md-4","col-12","colSeparator"],["editionTitle","Yearly",1,"card-hover",3,"price","features","isSelected","altText","click"],[1,"col-lg-2","col-md-4"],["type","number","name","minerCount","id","minerCount","formControlName","minerCount",1,"form-control",3,"min","max"],[1,"col-lg-8","col-md-4","d-none","d-md-block",3,"ngClass"],[1,"col-12","d-md-none","col-form-label"],["class","form-group row",4,"ngIf"],[1,"offset-lg-2","col-lg-10","offset-md-4","col-md-8"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],["editionTitle","Monthly",1,"card-hover",3,"price","features","isSelected","altText","click"],["for","coupon",1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"d-inline","d-md-none"],[1,"col-lg-2","col-md-4","col-form-label","d-none","d-md-block","font-weight-bold"],["href","https://awesomeminer.onfastspring.com/account","target","_blank"],["id","stepProduct3",1,"imgSection"],["src","/img/subscription/update-license.png"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Upgrade Awesome Miner"),Ts(),Cs(3,Ov,37,7,"div",1),Cs(4,Rv,14,6,"div",2),Cs(5,dy,64,43,"div",3),Cs(6,py,14,3,"div",4),Ts()),2&e&&(qr(3),As("ngIf",null==t.licenseUpgradeOption),qr(1),As("ngIf",t.licenseUpgradeOption&&t.licenseUpgradeOption.currentLicense),qr(1),As("ngIf",t.licenseUpgradeOption&&t.licenseUpgradeOption.currentProduct&&null===t.formCompleted),qr(1),As("ngIf",t.formCompleted))},directives:[Uu,Km,Ug,ng,jg,Pf,tg,zg,Qb,aw,Eu,lw,hv,fv,Sv,Dg,Iu,kv],pipes:[ju,Nu],styles:[""]}),e})();function fy(e,t){1&e&&Ps(0,"am-spinner")}function gy(e,t){if(1&e&&(xs(0,"div",14),Ws(1),Ts()),2&e){const e=Rs(2);qr(1),Ys(e.error)}}function by(e,t){if(1&e){const e=Os();xs(0,"div",3),xs(1,"p"),Ws(2," This page is only intended for customers with a valid Awesome Miner license. The form below can be used to recover a lost registration code for the software. "),Ts(),xs(3,"p"),Ws(4," Enter the e-mail address you used to order your Awesome Miner license. If valid, you will receive an e-mail message with your registration code. "),Ts(),xs(5,"form",4),xs(6,"div",5),xs(7,"label",6),Ws(8,"E-mail address:"),Ts(),xs(9,"div",7),Ps(10,"input",8),Ts(),Ts(),xs(11,"div",9),xs(12,"div",10),xs(13,"button",11),Us("click",function(){return Et(e),Rs().validateClick()}),Ws(14,"Send request"),Cs(15,fy,1,0,"am-spinner",12),Ts(),Ts(),Ts(),xs(16,"div"),Cs(17,gy,2,1,"div",13),Ts(),Ts(),Ts()}if(2&e){const e=Rs();qr(5),As("formGroup",e.recoverForm),qr(8),As("disabled",e.recoverForm.invalid||e.inProgress),qr(2),As("ngIf",e.inProgress),qr(2),As("ngIf",e.error)}}function wy(e,t){if(1&e){const e=Os();xs(0,"div",15),xs(1,"p"),Ws(2," If the provided e-mail address has a valid license, this information has been sent in an e-mail message. "),Ts(),xs(3,"p"),Ws(4," If you didn't receive any message and you are unsure about which e-mail address you used when ordering Awesome Miner, you can "),xs(5,"a",16),Us("click",function(){return Et(e),Rs().resetForm()}),Ws(6,"try the recover process again with another e-mail address"),Ts(),Ws(7,". "),Ts(),Ts()}}let vy=(()=>{class e{constructor(e,t,n,i){this.formBuilder=e,this.licenseService=t,this.titleService=n,this.metaTagService=i,this.inProgress=!1,this.sentRequest=!1,this.error=null}ngOnInit(){this.titleService.setTitle("Recover Awesome Miner license"),this.metaTagService.updateTag({name:"description",content:"Recover your Awesome Miner license"}),this.recoverForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]]})}get f(){return this.recoverForm.controls}validateClick(){this.inProgress=!0,this.licenseService.recoverLicense(this.recoverForm.value.email).subscribe(e=>{this.inProgress=!1,this.sentRequest=!0},e=>{console.log("Failed to send request",e),this.inProgress=!1,this.error="Failed to send request"})}resetForm(){this.sentRequest=!1,this.error=null,this.f.email.setValue("")}}return e.\u0275fac=function(t){return new(t||e)(_s(rb),_s(Zb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-recover-license"]],decls:5,vars:2,consts:[[1,"container"],["id","step1","class","imgSection",4,"ngIf"],["id","step2","visible","false","class","imgSection",4,"ngIf"],["id","step1",1,"imgSection"],[3,"formGroup"],[1,"form-group","row",2,"margin-top","30px"],["for","txtMail",1,"col-md-3","col-form-label","font-weight-bold"],[1,"col-md-9"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"form-group","row"],[1,"offset-md-3","col-md-9"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],["style","color:red",4,"ngIf"],[2,"color","red"],["id","step2","visible","false",1,"imgSection"],["href","javascript:void(0)",3,"click"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Recover a lost registration code (license)"),Ts(),Cs(3,by,18,4,"div",1),Cs(4,wy,8,0,"div",2),Ts()),2&e&&(qr(3),As("ngIf",!t.sentRequest),qr(1),As("ngIf",t.sentRequest))},directives:[Uu,Ug,ng,jg,Pf,tg,zg,Qb],styles:[""]}),e})(),yy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-screenshot-page"]],decls:43,vars:0,consts:[[1,"container"],[1,"imgSection"],["src","/img/awesome-02.png","alt","Awesome Miner main window with Bitcoin and Litecoin mining using Antminer S9",1,"mx-auto","img-fluid"],["src","/img/antminer_l3plus.png","alt","Awesome Miner main window with Antminer L3+",1,"mx-auto","img-fluid"],["src","/img/awesome-03.png","alt","dashboard with Bitcoin and Litecoin mining",1,"mx-auto","img-fluid"],["id","Img1","src","/img/awesome-04.png","alt","statistics dashboard",1,"mx-auto","img-fluid"],[2,"margin-top","35px"],["src","/img/coins-01.png","alt","Crypto currency coins",1,"mx-auto","img-fluid"],["src","/img/wizard/wizard-select-external.png","alt","Miner wizard",1,"mx-auto","img-fluid"],["src","/img/awesome-web02.png","alt","Web statistics",1,"mx-auto","img-fluid"],["src","/img/awesome-web01.png","alt","Web statistics",1,"mx-auto","img-fluid"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div"),xs(2,"h3"),Ws(3,"Main window"),Ts(),xs(4,"div",1),Ws(5," The miners view shows the running mining processes together with their progress and statistics. "),Ts(),Ps(6,"img",2),xs(7,"p"),Ps(8,"br"),Ts(),Ps(9,"img",3),Ts(),xs(10,"div"),xs(11,"h3"),Ws(12,"Dashboard - Graph mode"),Ts(),xs(13,"div",1),Ws(14," The graph mode display statistics for all miners. "),Ts(),Ps(15,"img",4),Ts(),xs(16,"div"),xs(17,"h3"),Ws(18,"Dashboard - Table mode"),Ts(),xs(19,"div",1),Ws(20," The table mode displays summary of the running miners together with the Bitcoin exchange rate and current revenues. "),Ts(),Ps(21,"img",5),Ts(),xs(22,"div",6),xs(23,"h3"),Ws(24,"Coin statistics"),Ts(),xs(25,"div",1),Ws(26," In addition to the popular Bitcoin and Litecoin, coin statistics are available for a large amount of different coins. "),Ts(),Ps(27,"img",7),Ts(),xs(28,"div",6),xs(29,"h3"),Ws(30,"Add miner wizard"),Ts(),xs(31,"div",1),Ws(32," Awesome Miner provides a wizard feature to make the creation of miners easier. "),Ts(),Ps(33,"img",8),Ts(),xs(34,"div",6),xs(35,"h3"),Ws(36,"Web statistics - including mobile support"),Ts(),xs(37,"div",1),Ws(38," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smart phone. "),Ts(),xs(39,"p"),Ps(40,"img",9),Ts(),xs(41,"p"),Ps(42,"img",10),Ts(),Ts(),Ts())},styles:[""]}),e})();function Cy(e,t){1&e&&(xs(0,"div",19),Ws(1,"You must agree with the terms above to continue"),Ts())}function Sy(e,t){1&e&&Ps(0,"am-spinner")}function _y(e,t){1&e&&(xs(0,"div",19),Ws(1,"The provided license information is not valid"),Ts())}function Ay(e,t){1&e&&(xs(0,"div",19),Ws(1,"You already have an active Product Support subscription."),Ts())}function ky(e,t){1&e&&(xs(0,"div",19),Ws(1,"Product support is included in your current Cloud Services subscription."),Ts())}function xy(e,t){1&e&&(xs(0,"div",19),Ws(1,"To upgrade an existing subscription, please go to the "),xs(2,"a",20),Ws(3,"subscription upgrade page"),Ts(),Ws(4,"."),Ts())}function Ty(e,t){1&e&&(xs(0,"div",19),Ws(1,"Product support is included in your current Product Subscription. To upgrade an existing subscription, please go to the "),xs(2,"a",21),Ws(3,"Awesome Miner upgrade page"),Ts(),Ws(4,"."),Ts())}function Py(e,t){if(1&e&&(xs(0,"div",19),Ws(1,"To view information about your current subscription, please see your "),xs(2,"a",22),Ws(3,"subscription information page"),Ts(),Ws(4,"."),Ts()),2&e){const e=Rs();qr(2),As("href",e.subscriptionUrl,Qi)}}let My=(()=>{class e{constructor(e,t,n,i){this.formBuilder=e,this.licenseService=t,this.titleService=n,this.metaTagService=i,this.licenseUpgradeOption=null,this.inProgress=!1,this.subscriptionUrl=null}ngOnInit(){this.titleService.setTitle("Awesome Miner Product Support"),this.metaTagService.updateTag({name:"description",content:"Extend Awesome Miner product support via e-mail"}),this.upgradeForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]],code:["",[Uf.required,Uf.minLength(10)]],chkAgree:[!1,Uf.pattern("true")]})}get f(){return this.upgradeForm.controls}validateClick(){let e=this.upgradeForm.value.email;this.inProgress=!0,this.subscriptionUrl=null,this.licenseService.getCloudSubscriptionOption(this.upgradeForm.value.email,this.upgradeForm.value.code).subscribe(t=>{if(this.inProgress=!1,null==t)this.upgradeForm.setErrors({LicenseNotFound:!0});else if(null!=t.currentProduct)this.licenseUpgradeOption=t,this.upgradeForm.setErrors({ProductSubscriptionFound:!0});else if(null!=t.currentCloud)this.licenseUpgradeOption=t,this.upgradeForm.setErrors(t.currentCloud.accountType==mb.Support?{SupportFound:!0}:{LicenseFound:!0}),void 0!==t.currentCloud.subscriptionUrl&&(this.subscriptionUrl=t.currentCloud.subscriptionUrl);else if(null!=t.optionalSupport){let n=t.optionalSupport.productLink;null!=n?window.location.href="https://sites.fastspring.com/intellibreeze/instant/"+n+"?member=new&sessionOption=new&contact_fname=%20&tags=le&contact_email="+e:this.upgradeForm.setErrors({LicenseNotFound:!0})}else this.upgradeForm.setErrors({LicenseNotFound:!0})},e=>{this.inProgress=!1,this.upgradeForm.setErrors(404==e.status?{LicenseNotFound:!0}:{InternalError:!0}),console.log("Failed to send request",e)})}}return e.\u0275fac=function(t){return new(t||e)(_s(rb),_s(Zb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-support-confirm"]],decls:57,vars:10,consts:[[1,"container"],[1,"imgSection"],["routerLink","/cloud"],[3,"formGroup"],[1,"form-check",2,"padding-bottom","10px"],[1,"form-check-label"],["type","checkbox","id","chkAgree","formControlName","chkAgree",1,"form-check-input"],["routerLink","/recoverlicense"],[1,"form-group","row",2,"margin-top","30px"],["for","email",1,"col-md-3","col-form-label","font-weight-bold"],[1,"col-md-9"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"form-group","row"],["for","txtCode",1,"col-md-3","col-form-label","font-weight-bold"],["type","text","id","awesomeCode","name","awesomeCode","formControlName","code",1,"form-control"],[1,"offset-md-3","col-md-9"],["style","color:red",4,"ngIf"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],[2,"color","red"],["routerLink","/cloudupgrade"],["routerLink","/upgrade"],[3,"href"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Awesome Miner Product Support subscription"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," Please review and accept the terms below to continue: "),Ts(),xs(6,"ul"),xs(7,"li"),Ws(8,"Awesome Miner Product Support is an optional subscription for Awesome Miner. The license for Awesome Miner is a one time license cost, while Awesome Miner Product Support is a subscription service billed annually. "),Ts(),xs(9,"li"),Ws(10,"An Awesome Miner license includes 365 days of e-mail based product support. Upgrading an Awesome Miner license to a higher edition will ensure a minimum of 30 days product support. In order to get product support after this period, sign up for either a Product Support subscription or a "),xs(11,"a",2),Ws(12,"Cloud Services"),Ts(),Ws(13," subscription. "),Ts(),xs(14,"li"),Ws(15,"The Product Support subscription will be billed annually. The subscription can be cancelled at any time, resulting in no more renewals. No refunds are given for the remaining time, but product support via e-mail will be given for the period of time that has already been paid for. "),Ts(),Ts(),xs(16,"form",3),xs(17,"div",4),xs(18,"label",5),Ps(19,"input",6),Ws(20," I agree with the terms above "),Ts(),Ts(),xs(21,"div"),Ws(22," To continue, you need to enter your existing license information. You need to provide your "),xs(23,"b"),Ws(24,"E-mail address"),Ts(),Ws(25," and "),xs(26,"b"),Ws(27,"Registration code"),Ts(),Ws(28,". This information was provided via e-mail when you signed up for Awesome Miner but can also be recovered using the "),xs(29,"a",7),Ws(30,"form to recover a lost registration code"),Ts(),Ws(31,". "),Ts(),xs(32,"div",8),xs(33,"label",9),Ws(34,"E-mail address:"),Ts(),xs(35,"div",10),Ps(36,"input",11),Ts(),Ts(),xs(37,"div",12),xs(38,"label",13),Ws(39,"Registration code:"),Ts(),xs(40,"div",10),Ps(41,"input",14),Ts(),Ts(),xs(42,"div",12),xs(43,"div",15),Cs(44,Cy,2,0,"div",16),Ts(),Ts(),xs(45,"div",12),xs(46,"div",15),xs(47,"button",17),Us("click",function(){return t.validateClick()}),Ws(48,"Continue"),Cs(49,Sy,1,0,"am-spinner",18),Ts(),Ts(),Ts(),xs(50,"div"),Cs(51,_y,2,0,"div",16),Cs(52,Ay,2,0,"div",16),Cs(53,ky,2,0,"div",16),Cs(54,xy,5,0,"div",16),Cs(55,Ty,5,0,"div",16),Cs(56,Py,5,1,"div",16),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(16),As("formGroup",t.upgradeForm),qr(28),As("ngIf",t.f.chkAgree.invalid&&t.f.email.valid&&t.f.code.valid),qr(3),As("disabled",t.upgradeForm.invalid||t.inProgress),qr(2),As("ngIf",t.inProgress),qr(2),As("ngIf",t.upgradeForm.hasError("LicenseNotFound")),qr(1),As("ngIf",t.upgradeForm.hasError("SupportFound")),qr(1),As("ngIf",t.upgradeForm.hasError("LicenseFound")),qr(1),As("ngIf",t.upgradeForm.hasError("LicenseFound")||t.upgradeForm.hasError("SupportFound")),qr(1),As("ngIf",t.upgradeForm.hasError("ProductSubscriptionFound")),qr(1),As("ngIf",null!==t.subscriptionUrl&&(t.upgradeForm.hasError("SupportFound")||t.upgradeForm.hasError("LicenseFound"))))},directives:[Km,Ug,ng,jg,kf,tg,zg,Pf,Uu,Qb],styles:[""]}),e})();function Iy(e,t){if(1&e&&(xs(0,"option",13),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Ys(e.count)}}let Oy=(()=>{class e{constructor(e,t,n){this.titleService=t,this.metaTagService=n,this.lgSupportPrices=[],this.selectedSupportPrice=null,this.lgSupportPrices=e.lgSupportPrices,this.selectedSupportPrice=e.lgSupportPrices[0]}ngOnInit(){this.titleService.setTitle("Awesome Miner Product Support"),this.metaTagService.updateTag({name:"description",content:"Extend Awesome Miner product support via e-mail"})}}return e.\u0275fac=function(t){return new(t||e)(_s(yf),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-product-support-page"]],decls:54,vars:3,consts:[[1,"container"],[1,"imgSection"],[1,"blueBulletList"],[2,"padding-bottom","7px"],["routerLink","/cloud"],[1,"form-row"],[1,"col-3"],[1,"col-form-label","font-weight-bold"],[1,"col-2"],["id","minercountSupport","name","minercountSupport",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],["routerLink","/supportconfirm","role","button",1,"btn","btn-lg","btn-success","ngMainButton"],["routerLink","/contact","role","button",1,"btn","btn-lg","btn-success","ngMainButton",2,"margin-left","10px"],[3,"ngValue"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Awesome Miner Product Support"),Ts(),xs(3,"div",1),xs(4,"h4"),Ws(5,"What we provide"),Ts(),xs(6,"p"),Ws(7," We provide e-mail based product support for Awesome Miner where we answer any questions related to the product, how to order, how to get started and how to resolve any issues. "),Ts(),xs(8,"h4"),Ws(9,"What's included?"),Ts(),xs(10,"ul",2),xs(11,"li",3),xs(12,"span"),Ws(13," An Awesome Miner license includes 365 days of e-mail based product support "),Ts(),Ts(),xs(14,"li",3),xs(15,"span"),Ws(16," Upgrading an Awesome Miner license to a higher edition will ensure a minimum of 30 days of product support. "),Ts(),Ts(),Ts(),xs(17,"h4"),Ws(18,"How to get continued product support?"),Ts(),xs(19,"p"),Ws(20," In order to get product support after the included period of time, sign up for either a Product Support subscription below or a "),xs(21,"a",4),Ws(22," Cloud Services subscription"),Ts(),Ws(23,". "),Ts(),xs(24,"ul",2),xs(25,"li",3),xs(26,"span"),Ws(27," A Product Support subscription is only required after 365 days from purchasing the original Awesome Miner license "),Ts(),Ts(),xs(28,"li",3),xs(29,"span"),Ws(30," A Product Support subscription is not required if you already have a Cloud Services subscription, as product support is included as a part of Cloud Services "),Ts(),Ts(),Ts(),xs(31,"h4"),Ws(32,"Pricing information"),Ts(),xs(33,"form"),xs(34,"div",5),xs(35,"div",6),xs(36,"label",7),Ws(37,"Select number of miners:"),Ts(),Ts(),xs(38,"div",8),xs(39,"select",9),Us("ngModelChange",function(e){return t.selectedSupportPrice=e}),Cs(40,Iy,2,2,"option",10),Ts(),Ts(),xs(41,"div",8),xs(42,"label",7),Ws(43),Ts(),Ts(),Ts(),Ts(),Ps(44,"br"),xs(45,"p"),Ws(46," VAT will be added for customers in EU and other markets where required. "),Ts(),xs(47,"p"),Ws(48," To order a subscription for 1,000 miners or more, please contact us for more information. "),Ts(),xs(49,"p"),xs(50,"a",11),Ws(51,"Sign up"),Ts(),xs(52,"a",12),Ws(53,"Contact us"),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(39),As("ngModel",t.selectedSupportPrice),qr(1),As("ngForOf",t.lgSupportPrices),qr(3),Zs("$",null==t.selectedSupportPrice?null:t.selectedSupportPrice.price," / year"))},directives:[Km,Ug,ng,Ig,qg,tg,Fg,Eu,Gg,Qg],styles:[""]}),e})(),Ey=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-about-intelli-breeze"]],decls:13,vars:0,consts:[["href","https://twitter.com/AwesomeMinerApp"],["routerLink","/contact","role","button",1,"btn","btn-lg","btn-success","ngMainButton"]],template:function(e,t){1&e&&(xs(0,"div"),xs(1,"p"),xs(2,"b"),Ws(3,"About IntelliBreeze Software AB"),Ts(),Ps(4,"br"),Ws(5," IntelliBreeze Software AB (former IntelliBreeze Software) is a Swedish software company founded in 2012. "),Ts(),xs(6,"p"),Ws(7," Follow us on Twitter "),xs(8,"a",0),Ws(9,"@AwesomeMinerApp"),Ts(),Ts(),xs(10,"p"),xs(11,"a",1),Ws(12,"Contact us"),Ts(),Ts(),Ts())},directives:[Km],styles:[""]}),e})(),Fy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement100"]],decls:39,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 1.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, July 29, 2014 - "),Ts(),Ws(7,"IntelliBreeze Software is delighted to announce its latest product "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Litecoin and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," The purpose of Awesome Miner is to make mining easier and bring powerful features to manage popular mining software like Cgminer and Sgminer. Awesome Miner can manage all configuration to make the mining easy, no matter if powerful standalone ASIC's or multiple GPU's across several computers are used. A wide range of mining algorithms are supported, including the popular SHA-256, SHA-3, Scrypt, Scrypt Adaptive N, X11, X13, X15 and Nist5. "),Ts(),xs(14,"p"),xs(15,"b"),Ws(16,"Next generation pool switching: Awesome Profit Switching"),Ts(),Ps(17,"br"),Ws(18," Awesome Miner introduces the next generation of profit switching multi-algorithm pool mining, Awesome Profit Switching. By using both real-time coin profitability statistics to switch between single-coin pools and also using real-time statistics from popular auto-switching multi-pools, Awesome Miner can automatically switch between mining a specific coin or mine on the currently most profitable auto-switching multi-pool. "),Ts(),xs(19,"p"),Ws(20," Awesome Profit Switching makes it possible to get higher profits than any of the auto-switching multi-pools alone, by automatically switching between multiple algorithms and multiple multi-pools. "),Ts(),xs(21,"p"),xs(22,"b"),Ws(23,"Full mobile support"),Ts(),Ps(24,"br"),Ws(25," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smart phone. The web interface gives an overview of all miners, detailed information about selected miners and provides access to all mining operations. "),Ts(),xs(26,"p"),xs(27,"b"),Ws(28,"Powerful features"),Ts(),Ps(29,"br"),Ws(30," Awesome Miner provides coin statistics, desktop notifications, e-mail notifications and several monitoring features to detect non-working devices, devices with high temperature or miners that for any reason doesn't perform as they should. Miners, even if running on remote computers, can automatically be restarted when a problem is detected. "),Ts(),xs(31,"p"),Ws(32," Use the powerful built-in C# script engine to create customized triggers and actions. An easy to use API is available to enable monitoring and control of all miners. "),Ts(),xs(33,"p"),xs(34,"b"),Ws(35,"Free and Paid versions"),Ts(),Ps(36,"br"),Ws(37," The majority of all functionality is included in the Free version, including support for the Awesome Profit Switching. The Free version is intended for hobby miners with a maximum of 2 mining computers or ASIC's. The Paid versions include more advanced features and support large mining farms. "),Ts(),Ps(38,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Uy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement110"]],decls:50,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 1.1"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, August 31, 2014 - "),Ts(),Ws(7,"IntelliBreeze Software is delighted to announce its latest version of the product "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Litecoin and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," The purpose of Awesome Miner is to make mining easier and bring powerful features to manage popular mining software like Cgminer and Sgminer. Awesome Miner can manage all configuration to make the mining easy, no matter if powerful standalone ASIC's or multiple GPU's across several computers are used. A wide range of mining algorithms are supported, including the popular SHA-256, SHA-3, Scrypt, Scrypt Adaptive N, X11, X13, X15 and Nist5. "),Ts(),xs(14,"p"),xs(15,"b"),Ws(16,"Version 1.1"),Ts(),Ws(17," adds support for nVidia CUDA mining software, ccMiner. This is a feature requested by the nVidia mining community, and brings the powerful centralized management features of Awesome Miner to those using nVidia GPU's. "),Ts(),xs(18,"p"),Ws(19," The new version also improves the management performance of Awesome Miner, and allows up to "),xs(20,"b"),Ws(21,"200 miners"),Ts(),Ws(22," to be managed and monitored - everything from a centralized view. "),Ts(),xs(23,"p"),Ws(24," The screenshot below shows the mining with nVidia CUDA using ccMiner, together with other GPU and ASIC miners. "),Ts(),xs(25,"p"),xs(26,"b"),Ws(27,"Next generation pool switching: Awesome Profit Switching"),Ts(),Ps(28,"br"),Ws(29," Awesome Miner is the first software to use the next generation of profit switching multi-algorithm pool mining, Awesome Profit Switching. By using both real-time coin profitability statistics to switch between single-coin pools and also using real-time statistics from popular auto-switching multi-pools, Awesome Miner can automatically switch between mining a specific coin or mine on the currently most profitable auto-switching multi-pool. "),Ts(),xs(30,"p"),Ws(31," Awesome Profit Switching makes it possible to get higher profits than any of the auto-switching multi-pools alone, by automatically switching between multiple algorithms and multiple multi-pools. The latest version includes support for the nVidia CUDA based ccMiner. "),Ts(),xs(32,"p"),xs(33,"b"),Ws(34,"Full mobile support"),Ts(),Ps(35,"br"),Ws(36," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smart phone. The web interface gives an overview of all miners, detailed information about selected miners and provides access to all mining operations. "),Ts(),xs(37,"p"),xs(38,"b"),Ws(39,"Powerful features"),Ts(),Ps(40,"br"),Ws(41," Awesome Miner provides coin statistics, desktop notifications, e-mail notifications and several monitoring features to detect non-working devices, devices with high temperature or miners that for any reason doesn't perform as they should. Miners, even if running on remote computers, can automatically be restarted when a problem is detected. "),Ts(),xs(42,"p"),Ws(43," Use the powerful built-in C# script engine to create customized triggers and actions. An easy to use API is available to enable monitoring and control of all miners. "),Ts(),xs(44,"p"),xs(45,"b"),Ws(46,"Free and Paid versions"),Ts(),Ps(47,"br"),Ws(48," The majority of all functionality is included in the Free version, including support for the Awesome Profit Switching. The Free version is intended for hobby miners with a maximum of 2 mining computers or ASIC's. The Paid versions include more advanced features and support large mining farms. "),Ts(),Ps(49,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Ly=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement150"]],decls:43,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 1.5"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, January 27, 2016 - "),Ts(),Ws(7,"IntelliBreeze Software AB is delighted to announce its latest version of the product "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Litecoin and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," The purpose of Awesome Miner is to make mining easier and bring powerful features to manage popular mining software like Cgminer and Sgminer. Awesome Miner can manage all configuration to make the mining easy, no matter if powerful standalone ASIC's or multiple GPU's across several computers are used. A wide range of mining algorithms are supported, including the popular SHA-256, Scrypt and X11. "),Ts(),xs(14,"p"),xs(15,"b"),Ws(16,"Version 1.5"),Ts(),Ws(17," increases the performance for the large mining farms, and the application can now manage and monitor up to 5000 miners - everything from a single user interface. "),Ts(),xs(18,"p"),xs(19,"b"),Ws(20,"Next generation pool switching: Awesome Profit Switching"),Ts(),Ps(21,"br"),Ws(22," Awesome Miner is the first software to use the next generation of profit switching multi-algorithm pool mining, Awesome Profit Switching. By using both real-time coin profitability statistics to switch between single-coin pools and also using real-time statistics from popular auto-switching multi-pools, Awesome Miner can automatically switch between mining a specific coin or mine on the currently most profitable auto-switching multi-pool. "),Ts(),xs(23,"p"),Ws(24," Awesome Profit Switching makes it possible to get higher profits than any of the auto-switching multi-pools alone, by automatically switching between multiple algorithms and multiple multi-pools. The latest version includes support for the nVidia CUDA based ccMiner. "),Ts(),xs(25,"p"),xs(26,"b"),Ws(27,"Full mobile support"),Ts(),Ps(28,"br"),Ws(29," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smart phone. The web interface gives an overview of all miners, detailed information about selected miners and provides access to all mining operations. "),Ts(),xs(30,"p"),xs(31,"b"),Ws(32,"Powerful features"),Ts(),Ps(33,"br"),Ws(34," Awesome Miner provides coin statistics, desktop notifications, e-mail notifications and several monitoring features to detect non-working devices, devices with high temperature or miners that for any reason doesn't perform as they should. Miners, even if running on remote computers, can automatically be restarted when a problem is detected. "),Ts(),xs(35,"p"),Ws(36," Use the powerful built-in C# script engine to create customized triggers and actions. An easy to use API is available to enable monitoring and control of all miners. Miners can also be controlled via SSH. "),Ts(),xs(37,"p"),xs(38,"b"),Ws(39,"Free and Paid versions"),Ts(),Ps(40,"br"),Ws(41," The majority of all functionality is included in the Free version, including support for the Awesome Profit Switching. The Free version is intended for hobby miners with support for a maximum of 2 mining computers or ASIC's. The Paid versions include more advanced features and support large mining farms. "),Ts(),Ps(42,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Dy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement200"]],decls:36,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 2.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, October 1, 2016 - "),Ts(),Ws(7,"IntelliBreeze Software AB is delighted to announce its latest version of the product "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Ethereum and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," The purpose of Awesome Miner is to make mining easier and bring powerful management features to both small scale and large scale mining operations. Awesome Miner can manage up to 5000 miners from a single user interface. "),Ts(),xs(14,"p"),xs(15,"b"),Ws(16,"Version 2.0"),Ts(),Ws(17," improves management of larger mining operations and adds more options for integration with external applications. The new security features make management possible in multi-user environments and the new API and scripting features makes integration and further customization possible. "),Ts(),xs(18,"p"),xs(19,"b"),Ws(20,"Powerful features"),Ts(),Ps(21,"br"),Ws(22," Awesome Miner provides coin statistics, desktop notifications, e-mail notifications and several monitoring features to detect non-working devices, devices with high temperature or miners that for any reason doesn't perform as they should. Miners, even if running on remote computers, can automatically be restarted when a problem is detected. "),Ts(),xs(23,"p"),Ws(24," Awesome Miner also features long term statistics and data export to Excel, SSH management, Antminer features including scheduled frequency changes and customizable monitoring and recovery rules. "),Ts(),xs(25,"p"),xs(26,"b"),Ws(27,"Full mobile support"),Ts(),Ps(28,"br"),Ws(29," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smart phone. The web interface gives an overview of all miners, detailed information about selected miners and provides access to all mining operations. "),Ts(),xs(30,"p"),xs(31,"b"),Ws(32,"Free and Paid versions"),Ts(),Ps(33,"br"),Ws(34," The majority of all functionality is included in the Free version, including support for the Awesome Profit Switching. The Free version is intended for small scale mining with support for a maximum of 2 mining computers or ASIC's. The Paid versions include more advanced features and supports very large mining farms. "),Ts(),Ps(35,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Ry=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement300"]],decls:34,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 3.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Bitcoin Press Release:"),Ts(),xs(7,"i"),Ws(8,"IntelliBreeze Software, a leading cryptocurrency mining software developer announces the release of its latest mining software, Awesome Miner 3.0 for Windows machines."),Ts(),Ts(),xs(9,"p"),xs(10,"b"),Ws(11,"May 25, 2017, Stockholm, Sweden - "),Ts(),Ws(12,"IntelliBreeze Software AB is delighted to announce the release of its "),xs(13,"b"),xs(14,"a",2),Ws(15,"Awesome Miner 3.0"),Ts(),Ts(),Ws(16,", a Windows application for managing and monitoring the mining of Bitcoin, Ethereum, and other cryptocurrencies. Awesome Miner 3.0 makes large and small-scale mining operations much easier to manage, through its custom interface and management software design. Awesome Miner 3.0 can manage up to 5000 miners from a single user interface. "),Ts(),xs(17,"p"),Ws(18," Awesome Miner 3.0 improves upon the previous version\u2019s capabilities to manage larger mining operations. The latest version includes a new Profitability Switcher that can optimize profitability for the mining operation, irrespective of whether it involves a single miner or an entire mining farm. The software adds value to the mining operations by increasing its efficiency and productivity so that everyone involved benefit equally. "),Ts(),xs(19,"p"),Ws(20," With the increased popularity of GPU mining, Awesome Miner 3.0 can also perform large scale GPU overclocking and configuration on remote miners. Together with monitoring of GPU temperatures, fan speed, and load, Awesome Miner can streamline a mining operation of any size. Awesome Miner 3.0 also provides coin statistics, desktop notifications, email notifications and several monitoring features for detecting non-working devices. "),Ts(),xs(21,"p"),Ws(22," Devices operating at high temperatures or underperforming miners, even if running on remote computers can be automatically restarted when a problem is detected. Awesome Miner also provides long-term statistics, supports data export to Excel, SSH management, Antminer features and customizable monitoring and recovery rules. "),Ts(),xs(23,"p"),Ws(24," Awesome Miner has a built-in web frontend that can be accessed from any computer, tablet or smartphone. The web interface gives an overview of all miners; detailed information about selected miners and provides access to all mining operations. "),Ts(),xs(25,"p"),Ws(26," The free version of Awesome Miner 3.0 includes most of the software functionalities, including support for the Awesome Profit Switching. The free version is intended for small-scale mining consisting of up to two miners. The paid versions feature more powerful features and support very large mining operations. "),Ts(),xs(27,"p"),Ws(28," With Pool Management, users can switch and manage mining pools efficiently, track the status of each pool and define coin to see profitability. Awesome Miner monitors the status and temperature of GPU, FPGA and ASIC devices. It also supports GPU clocking and fan adjustments. "),Ts(),xs(29,"p"),Ws(30," Users can use a powerful built-in script engine to create customized triggers and actions. If they prefer, they can even run custom scripts for monitoring, mining, pool operations and profitability switching. The latest version of Awesome Miner 3.0 also supports multi-user access for better management "),Ts(),xs(31,"p"),Ws(32,' Awesome Miner 3.0 follows a "one size fits all" approach by supporting an extensive range of mining engines. It supports 11 mining engines including Cgminer, Bfgminer, Sgminer and several Claymore miners. Similarly, the software can be used for mining cryptocurrencies based on all popular algorithms. A total of 26 algorithms are supported, including SHA-256, Scrypt, X11, Ethereum and ZCash. '),Ts(),Ps(33,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Ny=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement400"]],decls:32,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 4.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, September 7, 2017 - "),Ts(),Ws(7,"IntelliBreeze Software AB is delighted to announce the release of "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner 4.0"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Ethereum and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," Awesome Miner brings powerful management features to both small scale and large scale mining operations. Awesome Miner can manage up to 5000 miners from a single user interface and supports both ASIC and GPU mining. "),Ts(),xs(14,"p"),Ws(15," Awesome Miner Cloud Services is introduced together with Awesome Miner 4.0. Cloud Services is an optional subscription service that adds additional features to Awesome Miner. The main feature is the Awesome Miner web interface hosted in the cloud. All monitoring statistics are pushed to the cloud by Awesome Miner where you can manage and monitor the mining operations at any time and from any computer, smart phone or tablet. "),Ts(),xs(16,"p"),Ws(17," In addition to the existing desktop and e-mail notifications, the Cloud Services subscription also adds support for SMS notifications. "),Ts(),xs(18,"p"),Ws(19," The success of Awesome Miner has always been the on premise deployment where all parts of the software are running within your network and you are in full control of the mining operations without dependencies on any external services. The Cloud Services is an optional extension and will not change this success path. "),Ts(),xs(20,"p"),Ws(21," With the increased popularity of GPU mining, Awesome Miner can perform large scale GPU overclocking and configuration on remote miners. An entire mining farm can be overclocked in a single operation. "),Ts(),xs(22,"p"),Ws(23," Devices operating at high temperatures or underperforming miners, even if running on remote computers, can be automatically restarted when a problem is detected. Awesome Miner also provides long-term statistics, supports data export to Excel, SSH management, Antminer features, coin statistics, automation and customizable monitoring and recovery rules. "),Ts(),xs(24,"p"),Ws(25," Profitability switching is fully supported to maximize the profits of the mining operations and Awesome Miner 4.0 can also benchmark the algorithms to fine tune the profitability switcher. "),Ts(),xs(26,"p"),xs(27,"b"),Ws(28,"Free and Paid versions"),Ts(),Ps(29,"br"),Ws(30," The Free version is intended for small scale mining with support for a maximum of 2 mining computers or ASIC's. The Paid versions include more powerful features and can manage very large mining operations. "),Ts(),Ps(31,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Vy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement500"]],decls:30,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 5.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, May 8th, 2018 - "),Ts(),Ws(7,"IntelliBreeze Software AB is delighted to announce the release of "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner 5.0"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Ethereum and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," Awesome Miner brings powerful management features to both small scale and large scale mining operations. Awesome Miner can manage up to 10,000 miners from a single user interface and supports both ASIC and GPU mining. "),Ts(),xs(14,"p"),Ws(15," Version 5.0 includes support for a number of new ASIC mining devices, including the popular Antminer B3 and X3. More ASIC miners are also supported with temperature display in addition to the mining related information. "),Ts(),xs(16,"p"),Ws(17," The GPU mining software support has also been extended to include more of the popular mining software. A new feature in version 5.0 is also to allow easy allocation of specific GPU's to a mining software instance, making it possible to share the hashrate between multiple software and algorithms. "),Ts(),xs(18,"p"),Ws(19," With the increased popularity of GPU mining, Awesome Miner can perform large scale GPU overclocking and configuration on remote miners. An entire mining farm can be overclocked in a single operation. "),Ts(),xs(20,"p"),Ws(21," Devices operating at high temperatures or underperforming miners, even if running on remote computers, can be automatically restarted when a problem is detected. Awesome Miner also provides long-term statistics, supports data export to Excel, SSH management, Antminer features, coin statistics, automation and customizable monitoring and recovery rules. "),Ts(),xs(22,"p"),Ws(23," Profitability switching is fully supported to maximize the profits of the mining operations and Awesome Miner 5.0 can also benchmark the algorithms to fine tune the profitability switcher. "),Ts(),xs(24,"p"),xs(25,"b"),Ws(26,"Free and Paid versions"),Ts(),Ps(27,"br"),Ws(28," The Free version is intended for small scale mining with support for a maximum of 2 mining computers or ASIC's. The Paid versions include more powerful features and can manage very large mining operations. "),Ts(),Ps(29,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),jy=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-product-announcement600"]],decls:28,vars:0,consts:[[1,"container"],[1,"imgSection",2,"max-width","640px"],["href","http://www.awesomeminer.com/"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Product Announcement: Awesome Miner 6.0"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),Ws(6,"Stockholm, November 28th, 2018 - "),Ts(),Ws(7,"IntelliBreeze Software AB is delighted to announce the release of "),xs(8,"b"),xs(9,"a",2),Ws(10,"Awesome Miner 6.0"),Ts(),Ts(),Ws(11,", a Windows application for managing and monitoring mining of Bitcoin, Ethereum and other crypto currencies. "),Ts(),xs(12,"p"),Ws(13," Awesome Miner brings powerful management features to both small scale and large scale mining operations. Awesome Miner can manage up to 200,000 ASIC miners and 25,000 GPU miners from a single user interface. "),Ts(),xs(14,"p"),Ws(15," Version 6.0 supports very large scale mining operations with the support for up to 200,000 ASIC miner. The software has been optimized to perform well at these number of miners. "),Ts(),xs(16,"p"),Ws(17," Version 6.0 is also introducing a new Mining History feature to give easy access to information about recent mining activities including mining properties like software, coins and pools. "),Ts(),xs(18,"p"),Ws(19," Devices operating at high temperatures or underperforming miners, even if running on remote computers, can be automatically restarted when a problem is detected. Awesome Miner also provides long-term statistics, supports data export to Excel, SSH management, Antminer features, coin statistics, large scale GPU overclocking, automation and customizable monitoring and recovery rules. "),Ts(),xs(20,"p"),Ws(21," Profitability switching is fully supported to maximize the profits of the mining operations and Awesome Miner 6.0 can also benchmark the algorithms to fine tune the profitability switcher. "),Ts(),xs(22,"p"),xs(23,"b"),Ws(24,"Free and Paid versions"),Ts(),Ps(25,"br"),Ws(26," The Free version is intended for small scale mining with support for a maximum of 2 mining computers or ASIC's. The Paid versions include more powerful features and can manage very large mining operations. "),Ts(),Ps(27,"am-about-intelli-breeze"),Ts(),Ts())},directives:[Ey],encapsulation:2}),e})(),Hy=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner affiliate program"),this.metaTagService.updateTag({name:"description",content:"Join Awesome Miner affiliate program and start earning commission from advertisement"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-affiliate-register"]],decls:222,vars:0,consts:[[1,"container"],["target","_blank","href","https://app.impact.com/advertiser-applycampaign-info/AUTO-ASSIGNED-PREFIX-intellibreeze-168824859-1506026227957-3561709306074457305.brand?lang=en&c=-OYxAxKUX9Yaxp0k6yAQnqnztp0MDqeu"],[1,"imgSection"],[1,"featureStep"],["type","a"],["id","Img1","src","/img/affiliate/step1.png"],["id","Img2","src","/img/affiliate/step2.png"],["id","Img2_2","src","/img/affiliate/step2_2.png"],["id","Img3","src","/img/affiliate/step3.png"],["id","Img4","src","/img/affiliate/step4.png"],["id","Img5_2","src","/img/affiliate/step5_2.png"],["id","Img6","src","/img/affiliate/step6.png"],["id","Img5","src","/img/affiliate/payment.png"],["routerLink","/help/affiliate/promotionlink"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Register for Awesome Miner affiliate program"),Ts(),xs(3,"p"),Ws(4," Affiliate tracking and payment transactions are handled by our partner Impact Radius. To be able to promote Awesome Miner and become our partner, you need to complete a registration form with Impact Radius. Once the application has been approved, you will be able to promote Awesome Miner and get commissions for promoted purchases of Awesome Miner licenses. The registration process will create an account at our partner Impact Radius that can be used to sign in, view reports and commission status. "),Ts(),xs(5,"p"),xs(6,"a",1),Ws(7,"Register as an affiliate (new window)"),Ts(),Ws(8," and follow the instructions below. "),Ts(),xs(9,"h3"),Ws(10,"Fill in registration form"),Ts(),xs(11,"div",2),xs(12,"ol",3),xs(13,"li"),Ws(14,"Account information "),xs(15,"ol",4),xs(16,"li"),Ws(17,"Fill in your contact information and language/currency preferences"),Ts(),xs(18,"li"),Ws(19,"Click "),xs(20,"b"),Ws(21,"Continue"),Ts(),Ts(),Ts(),Ps(22,"img",5),Ts(),xs(23,"li"),Ws(24,"Media Partner information "),xs(25,"ol",4),xs(26,"li"),Ws(27,"Fill in a short "),xs(28,"b"),Ws(29,"Description"),Ts(),Ws(30," about your business or marketing capabilities. For example, tell us what your blog is about."),Ts(),xs(31,"li"),Ws(32,"Select most suitable "),xs(33,"b"),Ws(34,"Primary Promotional method"),Ts(),Ws(35," for your business"),Ts(),xs(36,"li"),Ws(37,"Optionally select "),xs(38,"b"),Ws(39,"Secondary Promotional method(s)"),Ts(),Ws(40," in the checkboxes"),Ts(),xs(41,"li"),Ws(42,"Optionally select one or more countries under "),xs(43,"b"),Ws(44,"Promoting Country"),Ts(),Ws(45," or click the "),xs(46,"b"),Ws(47,"trash bin icon"),Ts(),Ws(48," to remove the entry to indicate world wide coverage"),Ts(),xs(49,"li"),Ws(50,"Scroll down and continue with next step"),Ts(),Ts(),Ps(51,"img",6),Ts(),xs(52,"li"),Ws(53,"Media Properties (Optional) "),xs(54,"ol",4),xs(55,"li"),Ws(56,"Add at one or more media channel where marketing takes place in "),xs(57,"b"),Ws(58,"Property Type"),Ts(),Ts(),xs(59,"li"),Ws(60,"Type any "),xs(61,"b"),Ws(62,"Property Name"),Ts(),Ws(63," for the channel"),Ts(),xs(64,"li"),Ws(65,"Type your "),xs(66,"b"),Ws(67,"URL"),Ts(),Ws(68," for the media channel"),Ts(),xs(69,"li"),Ws(70,"Type a short "),xs(71,"b"),Ws(72,"Description"),Ts(),Ws(73," how you will promote Awesome Miner."),Ts(),xs(74,"li"),Ws(75,"Optionally add more media properties where marketing will take place"),Ts(),xs(76,"li"),Ws(77,"Click "),xs(78,"b"),Ws(79,"Continue"),Ts(),Ts(),Ts(),Ps(80,"img",7),Ts(),xs(81,"li"),Ws(82,"Account Administrator information "),xs(83,"ol",4),xs(84,"li"),Ws(85,"Provide a new or existion account with Impact Radius system."),Ts(),xs(86,"li"),Ws(87,"Make sure to remember the credentials"),Ts(),xs(88,"li"),Ws(89,"Click "),xs(90,"b"),Ws(91,"Continue"),Ts(),Ts(),Ts(),Ps(92,"img",8),Ts(),xs(93,"li"),Ws(94," Enter Tax information "),xs(95,"ol",4),xs(96,"li"),Ws(97,"For organizations registered for indirect tax: "),xs(98,"ol"),xs(99,"li"),Ws(100,"Check "),xs(101,"b"),Ws(102,"Yes, I am registered for indirect tax"),Ts(),Ws(103," checkbox"),Ts(),xs(104,"li"),Ws(105,"Fill in country where tax will be paid"),Ts(),xs(106,"li"),Ws(107,"Fill in tax number identification"),Ts(),xs(108,"li"),Ws(109,"Choose most appropriate "),xs(110,"b"),Ws(111,"Organization Type"),Ts(),Ts(),Ts(),Ts(),xs(112,"li"),Ws(113,"For individuals or organization not registerd for indirect tax: "),xs(114,"ol"),xs(115,"li"),Ws(116,"Leave "),xs(117,"b"),Ws(118,"Yes, I am registered for indirect tax"),Ts(),Ws(119," unchecked"),Ts(),xs(120,"li"),Ws(121,"Choose most appropriate "),xs(122,"b"),Ws(123,"Organization Type"),Ts(),Ws(124,". Choose "),xs(125,"b"),Ws(126,"Individual/Sole Proprietor"),Ts(),Ws(127," for individuals"),Ts(),Ts(),Ts(),xs(128,"li"),Ws(129,"Click "),xs(130,"b"),Ws(131,"Continue"),Ts(),Ts(),Ts(),Ps(132,"img",9),Ts(),xs(133,"li"),Ws(134," Review and Accept the Commersial terms "),xs(135,"ol",4),xs(136,"li"),Ws(137,"Read through the commersial terms and agreements"),Ts(),xs(138,"li"),Ws(139,"At the bottom of the page fill in visible captcha letters in "),xs(140,"b"),Ws(141,"Type characters shown"),Ts(),Ws(142," textbox"),Ts(),xs(143,"li"),Ws(144,"Click "),xs(145,"b"),Ws(146,"I read and agree to terms and submit application"),Ts(),Ws(147," to accept the terms and submit the application"),Ts(),Ts(),Ps(148,"img",10),Ts(),xs(149,"li"),Ws(150,"Verify your account "),xs(151,"ol",4),xs(152,"li"),Ws(153,"After successful completion a confirmation page will be shown similar to the image below"),Ts(),xs(154,"li"),Ws(155,"An account verification message will be sent to the e-mail address you entered in the form. Please click "),xs(156,"b"),Ws(157,"Verify E-mail Address"),Ts(),Ws(158," in this message to activate your account."),Ts(),xs(159,"li"),Ws(160,"A confirmation page with a link: "),xs(161,"b"),Ws(162,"Click here to login to your Awesome Miner Account"),Ts(),Ws(163," should be shown. Click on the link to goto login page"),Ts(),xs(164,"li"),Ws(165,"We recommend that you bookmark the login page so it's easily accessible"),Ts(),Ts(),Ps(166,"img",11),Ts(),Ts(),Ts(),xs(167,"h3"),Ws(168,"Choose Payment Method"),Ts(),xs(169,"div",2),xs(170,"ol",3),xs(171,"li"),Ws(172,"Login to Impact Radius (the page bookmarked in last step) "),xs(173,"ol",4),xs(174,"li"),Ws(175,"Click "),xs(176,"b"),Ws(177,"Finance/Withdrawal Settings"),Ts(),Ws(178," in the menu"),Ts(),xs(179,"li"),Ws(180,"Choose "),xs(181,"b"),Ws(182,"Payment Method"),Ts(),Ts(),xs(183,"li"),Ws(184,"For "),xs(185,"b"),Ws(186,"Electronic Funds Transfer"),Ts(),Ws(187,", normal bank transfer: "),xs(188,"ol",4),xs(189,"li"),xs(190,"b"),Ws(191,"IBAN"),Ts(),Ws(192," number of your bank account. IBAN number is comprised of a maximum of 27 alphanumeric characters within Europe and a maximum of 34 outside of Europe, starting with 2 characters identifying country"),Ts(),xs(193,"li"),xs(194,"b"),Ws(195,"Swift Code"),Ts(),Ws(196,"(BIC is another common term) 8 characters that identifies your bank"),Ts(),Ts(),Ts(),xs(197,"li"),Ws(198,"For "),xs(199,"b"),Ws(200,"Paypal"),Ts(),Ws(201,": "),xs(202,"ol",4),xs(203,"li"),Ws(204,"Enter your email associated with your Paypal account"),Ts(),Ts(),Ts(),xs(205,"li"),Ws(206,"Click "),xs(207,"b"),Ws(208,"Save"),Ts(),Ws(209," when finished"),Ts(),Ts(),Ps(210,"img",12),Ts(),Ts(),Ts(),xs(211,"h3"),Ws(212,"Add a promotion link"),Ts(),xs(213,"p"),Ws(214," Application approval may take up to two working days. Once approved an email notification will be sent which says: "),xs(215,"b"),Ws(216,"Advertiser Accepted IO"),Ts(),Ts(),xs(217,"p"),Ws(218," After approval, "),xs(219,"a",13),Ws(220,"add a promotion link"),Ts(),Ws(221," on your webpage. "),Ts(),Ts())},directives:[Km],encapsulation:2}),e})(),zy=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner affiliate program"),this.metaTagService.updateTag({name:"description",content:"Join Awesome Miner affiliate program and start earning commission from advertisement"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-affiliate-promition-link"]],decls:50,vars:0,consts:[[1,"container"],[1,"imgSection"],["href","#"],["src","//a.impactradius-go.com/display-ad/7372-466683","alt","","width","728","height","90"],[1,"featureStep"],["target","_blank","href","https://app.impact.com/bla/AUTO-ASSIGNED-PREFIX-intellibreeze-168824859-1506026227957-3561709306074457305/login.user"],["type","a"],["id","Img1","src","/img/affiliate/ads.png"],["id","Img2","src","/img/affiliate/ad-code.png"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Use advertisement links and banners on your webpage"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5,"To promote Awesome Miner on a webpage there are a couple of advertisement options to choose from:"),Ts(),xs(6,"ul"),xs(7,"li"),Ws(8,"Text Link - This ad displays a simple text link. "),xs(9,"b"),Ws(10,"Example: "),Ts(),xs(11,"div"),xs(12,"a",2),Ws(13,"Awesome Miner"),Ts(),Ts(),Ts(),xs(14,"li"),Ws(15,"Banner - This ad displays a clickable banner image. There are banners available in various sizes. You can use more than one banner. "),xs(16,"b"),Ws(17,"Example: "),Ts(),xs(18,"div"),xs(19,"a",2),Ps(20,"img",3),Ts(),Ts(),Ts(),Ts(),Ts(),xs(21,"h3"),Ws(22,"Add an advertisement on a webpage"),Ts(),xs(23,"div",1),xs(24,"ol",4),xs(25,"li"),Ws(26,"Sign in to your registered "),xs(27,"a",5),Ws(28,"affiliate page"),Ts(),Ts(),xs(29,"li"),Ws(30,"Click "),xs(31,"b"),Ws(32,"Ads/Search Ads"),Ts(),xs(33,"ol",6),xs(34,"li"),Ws(35,"Find the most suitable ad in the list."),Ts(),xs(36,"li"),Ws(37,"Click "),xs(38,"b"),Ws(39,"Get code"),Ts(),Ws(40," button for the ad you want to use"),Ts(),Ts(),Ps(41,"img",7),Ts(),xs(42,"li"),Ws(43,"Click "),xs(44,"b"),Ws(45,"Copy to clipboard"),Ts(),Ws(46," button to copy html for the ad to your clipboard. The html is automatically generated and contains code to display the ad content as well as a tracking link assoiciated with your unique affiliate account. "),Ps(47,"img",8),Ts(),xs(48,"li"),Ws(49,"Paste the html code in the clipboard to your webpage html file(s)"),Ts(),Ts(),Ts(),Ts())},encapsulation:2}),e})();const By=function(){return{topic:"sales"}};let $y=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner branding"),this.metaTagService.updateTag({name:"description",content:"Brand Awesome Miner with your product/compant name and logo"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-branding"]],decls:238,vars:2,consts:[[1,"container"],[1,"table","table-striped","table-responsive",2,"max-width","800px"],[2,"width","450px"],[2,"width","200px"],[1,"imgSection"],["alt","branded mining software setup","src","/img/branding/brand-01.png",1,"mx-auto","img-fluid"],["alt","branded mining software setup","src","/img/branding/brand-02.png",1,"mx-auto","img-fluid"],["alt","branded mining software setup","src","/img/branding/brand-03.png",1,"mx-auto","img-fluid"],["alt","branded mining software setup","src","/img/branding/brand-04.png",1,"mx-auto","img-fluid"],["alt","branded mining software setup","src","/img/branding/brand-05.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-10.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-11.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-20.png",1,"mx-auto","img-fluid"],[1,"table","table-striped","table-responsive",2,"max-width","700px"],[2,"width","300px"],[2,"width","400px"],[1,"table","table-striped","table-responsive",2,"max-width","850px","overflow-y","hidden"],[2,"width","320px"],[2,"width","520px"],["alt","branded mining software","src","/img/branding/brand-128x128.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-install-welcome.jpg",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-64x64.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-342x64.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-48x48.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-install-banner.jpg",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-32x32.png",1,"mx-auto","img-fluid"],["alt","branded mining software","src","/img/branding/brand-16x16.png",1,"mx-auto","img-fluid"],["routerLink","/contact",3,"queryParams"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Branding of Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Awesome Miner, Awesome Miner Remote Agent, the built-in web interface and Cloud Services web interface can be branded with your product/company name and logo. "),Ts(),xs(5,"p"),Ws(6," The branded version of the software consists of two MSI files, like the standard distribution of Awesome Miner. The brands are integrated to the release process of Awesome Miner, where a new version of Awesome Miner also results in new versions of the brands. The end-user will be able to upgrade the branded software like the standard Awesome Miner software. "),Ts(),xs(7,"h3"),Ws(8,"Pricing"),Ts(),xs(9,"p"),Ws(10," The branding feature has an initial one time cost and will also require an active subscription for the number of miners being used. The release of new software versions for the brand will continue for as long as there is an active subscription. "),Ts(),xs(11,"p"),Ws(12," Please note that no Awesome Miner licenses are included in the branding package. In order to use the branded software with more features than the Free Edition, a license for Awesome Miner must be purchased as well. "),Ts(),xs(13,"table",1),xs(14,"thead"),xs(15,"tr"),xs(16,"th",2),Ws(17,"Item"),Ts(),xs(18,"th",3),Ws(19,"Price"),Ts(),Ts(),Ts(),xs(20,"tbody"),xs(21,"tr"),xs(22,"td"),Ws(23,"Branding of Awesome Miner, Remote Agent and local web interface"),Ts(),xs(24,"td"),Ws(25,"$800 one time"),Ts(),Ts(),xs(26,"tr"),xs(27,"td"),Ws(28,"Branding of Cloud based web interface incl. custom sub domain name (e.g. starminer.awesomeminer.com)"),Ts(),xs(29,"td"),Ws(30,"$800 one time"),Ts(),Ts(),Ts(),Ts(),xs(31,"h3"),Ws(32,"Example of branding"),Ts(),xs(33,"h4"),Ws(34,"Installation process"),Ts(),xs(35,"div",4),Ps(36,"img",5),Ts(),xs(37,"div",4),Ps(38,"img",6),Ts(),xs(39,"div",4),Ps(40,"img",7),Ts(),xs(41,"h4"),Ws(42,"Start menu"),Ts(),xs(43,"div",4),Ps(44,"img",8),Ts(),xs(45,"h4"),Ws(46,"Uninstall"),Ts(),xs(47,"div",4),Ps(48,"img",9),Ts(),xs(49,"h4"),Ws(50,"Awesome Miner"),Ts(),xs(51,"div",4),Ps(52,"img",10),Ts(),xs(53,"h4"),Ws(54,"Remote Agent"),Ts(),xs(55,"div",4),Ps(56,"img",11),Ts(),xs(57,"h4"),Ws(58,"Web interface"),Ts(),xs(59,"div",4),Ps(60,"img",12),Ts(),xs(61,"h4"),Ws(62,"What is branded"),Ts(),xs(63,"table",13),xs(64,"thead"),xs(65,"tr"),xs(66,"th",14),Ws(67,"Item"),Ts(),xs(68,"th",15),Ws(69,"Example"),Ts(),Ts(),Ts(),xs(70,"tbody"),xs(71,"tr"),xs(72,"td"),Ws(73,"All product names and images"),Ts(),xs(74,"td"),Ws(75," Star Miner and logo displayed during installation, in Programs & Features, in the user inteface of the main application, Remote Agent application and the web interface. "),Ts(),Ts(),xs(76,"tr"),xs(77,"td"),Ws(78,"Start menu item"),Ts(),xs(79,"td"),Ws(80,"Star Miner"),Ts(),Ts(),xs(81,"tr"),xs(82,"td"),Ws(83,"Installation folders"),Ts(),xs(84,"td"),Ws(85,"C:\\Program Files (x86)\\Star Miner"),Ps(86,"br"),Ws(87," C:\\Program Files (x86)\\Star Miner Remote Service "),Ts(),Ts(),xs(88,"tr"),xs(89,"td"),Ws(90,"Configuration and log folders"),Ts(),xs(91,"td"),Ws(92,"C:\\Users\\WinUser\\AppData\\Local\\Star Miner\\"),Ps(93,"br"),Ws(94," C:\\Users\\WinUser\\AppData\\Roaming\\Star Miner\\ "),Ts(),Ts(),xs(95,"tr"),xs(96,"td"),Ws(97,"Installation files"),Ts(),xs(98,"td"),Ws(99,"StarMiner.msi"),Ps(100,"br"),Ws(101," StarMinerRemoteService.msi"),Ts(),Ts(),xs(102,"tr"),xs(103,"td"),Ws(104,"Main application exe-files"),Ts(),xs(105,"td"),Ws(106,"StarMiner.exe"),Ps(107,"br"),Ws(108," StarMiner.RemoteAgent.exe"),Ts(),Ts(),Ts(),Ts(),xs(109,"h4"),Ws(110,"What is "),xs(111,"u"),Ws(112,"not"),Ts(),Ws(113," branded"),Ts(),xs(114,"table",13),xs(115,"thead"),xs(116,"tr"),xs(117,"th",14),Ws(118,"Item"),Ts(),xs(119,"th",15),Ws(120,"Example"),Ts(),Ts(),Ts(),xs(121,"tbody"),xs(122,"tr"),xs(123,"td"),Ws(124,"File names other than main exe-files"),Ts(),xs(125,"td"),Ws(126,"AwesomeMiner.Service.Core.dll (these files are not visible for the end users unless looking at the file system) "),Ts(),Ts(),xs(127,"tr"),xs(128,"td"),Ws(129,"Windows Service names"),Ts(),xs(130,"td"),Ws(131,"IntelliBreeze Software Maintenance Service"),Ps(132,"br"),Ws(133," (Not visible for the end users unless looking in Services list in Windows) "),Ts(),Ts(),xs(134,"tr"),xs(135,"td"),Ws(136,"Digital signature"),Ts(),xs(137,"td"),Ws(138,"IntelliBreeze Software AB (signed with certificate for security - not brandable)"),Ts(),Ts(),Ts(),Ts(),xs(139,"h3"),Ws(140,"Required images"),Ts(),xs(141,"p"),Ws(142," In order to setup a new brand, product name, company name and branded images must be provided. All images below must be provided in PNG format for the transparent areas to work. The exception is the installer graphics that can be provided in JPEG format as well. "),Ts(),xs(143,"p"),Ws(144," Windows requires the application icon to be available in the sizes 16x16, 32x32, 48x48. For this reason, the logo must be provided in all these sizes as indicated below. "),Ts(),xs(145,"table",16),xs(146,"thead"),xs(147,"tr"),xs(148,"th",17),Ws(149,"Item"),Ts(),xs(150,"th",18),Ws(151,"Example"),Ts(),Ts(),Ts(),xs(152,"tbody"),xs(153,"tr"),xs(154,"td"),xs(155,"b"),Ws(156,"Image 128x128:"),Ts(),Ws(157," Application logo "),Ts(),xs(158,"td"),xs(159,"p"),Ps(160,"img",19),Ts(),Ts(),Ts(),xs(161,"tr"),xs(162,"td"),xs(163,"b"),Ws(164,"Image 493x312:"),Ts(),Ws(165," Installer graphics (optional, will use logo above if not provided) "),Ts(),xs(166,"td"),xs(167,"p"),Ps(168,"img",20),Ts(),Ts(),Ts(),xs(169,"tr"),xs(170,"td"),xs(171,"b"),Ws(172,"Image 64x64:"),Ts(),Ws(173," Web interface logo "),Ts(),xs(174,"td"),xs(175,"p"),Ps(176,"img",21),Ts(),Ts(),Ts(),xs(177,"tr"),xs(178,"td"),xs(179,"b"),Ws(180,"Image 342x64:"),Ts(),Ws(181," Web interface (optional, will use logo above if not provided) "),Ts(),xs(182,"td"),xs(183,"p"),Ps(184,"img",22),Ts(),Ts(),Ts(),xs(185,"tr"),xs(186,"td"),xs(187,"b"),Ws(188,"Image 48x48:"),Ts(),Ws(189," Application icon "),Ts(),xs(190,"td"),xs(191,"p"),Ps(192,"img",23),Ts(),Ts(),Ts(),xs(193,"tr"),xs(194,"td"),xs(195,"b"),Ws(196,"Image 493x58:"),Ts(),Ws(197," Installer graphics (optional, will use logo above if not provided) "),Ts(),xs(198,"td"),xs(199,"p"),Ps(200,"img",24),Ts(),Ts(),Ts(),xs(201,"tr"),xs(202,"td"),xs(203,"b"),Ws(204,"Image 32x32:"),Ts(),Ws(205," Application icon"),Ts(),xs(206,"td"),xs(207,"p"),Ps(208,"img",25),Ts(),Ts(),Ts(),xs(209,"tr"),xs(210,"td"),xs(211,"b"),Ws(212,"Image 16x16:"),Ts(),Ws(213," Application icon"),Ts(),xs(214,"td"),xs(215,"p"),Ps(216,"img",26),Ts(),Ts(),Ts(),Ts(),Ts(),xs(217,"h3"),Ws(218,"Branding process:"),Ts(),xs(219,"ol"),xs(220,"li"),Ws(221,"Please "),xs(222,"a",27),Ws(223,"contact us"),Ts(),Ws(224," to initiate a discussion about the branding"),Ts(),xs(225,"li"),Ws(226,"Prepare and provide the following: "),xs(227,"ul"),xs(228,"li"),Ws(229,"The required images to be used for the brand. "),Ts(),xs(230,"li"),Ws(231,'Name of the brand, for example "Star Miner"'),Ts(),xs(232,"li"),Ws(233,'Name of the company, for example "The Star Company"'),Ts(),Ts(),Ts(),xs(234,"li"),Ws(235,"A first preview of the brand is implemented and provided."),Ts(),xs(236,"li"),Ws(237,"Once the branding has been approved, an invoice for the branding work will be sent"),Ts(),Ts(),Ts()),2&e&&(qr(222),As("queryParams",vl(1,By)))},directives:[Km],encapsulation:2}),e})();const qy=function(){return{topic:"sales"}};let Gy=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner custom development"),this.metaTagService.updateTag({name:"description",content:"Awesome Miner custom development"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-custom-development"]],decls:33,vars:2,consts:[[1,"container"],[1,"imgSection"],["routerLink","/contact",3,"queryParams"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Custom development"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," In case there are specific software requirements or features that is important for your mining operations, we offer custom development services. By paying for the development of a feature, the development will be prioritized and the feature will be implemented as soon as possible. "),Ts(),xs(6,"p"),Ws(7," Terms and conditions: "),Ts(),xs(8,"ul"),xs(9,"li"),Ws(10," No exclusive rights to the feature: The new implementation will be owned by IntelliBreeze Software AB. IntelliBreeze Software AB can decide to make the implementation available for all users of the Awesome Miner software. "),Ts(),xs(11,"li"),Ws(12," Agreed requirements and solution: Before the development of the feature can start and before any time or pricing information can be given, there must be an agreement of the requirements and the solution to be implemented. "),Ts(),xs(13,"li"),Ws(14," Pricing: $200 per hour. VAT will be added on markets where required. The pricing includes the time for development, testing and any minor adjustments to the implementation based on feedback. For any additional requirements or features not initially agreed on, a new price must be agreed on. "),Ts(),Ts(),xs(15,"p"),Ws(16,"Custom development process:"),Ts(),xs(17,"ol"),xs(18,"li"),Ws(19,"Please "),xs(20,"a",2),Ws(21,"contact us"),Ts(),Ws(22," to initiate a discussion about the new feature"),Ts(),xs(23,"li"),Ws(24,"Discussions and agreements on the requirements for the new feature and the solution to be implemented"),Ts(),xs(25,"li"),Ws(26,"A time or price indication is given based on the required implementation effort. An indication when the development will be finished is also given."),Ts(),xs(27,"li"),Ws(28,"Once agreed on the requirements and time/pricing, the development can start"),Ts(),xs(29,"li"),Ws(30,"When the development has completed, the feature is made available for testing and feedback"),Ts(),xs(31,"li"),Ws(32,"When the feature has been approved, an invoice for the development work will be sent"),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(20),As("queryParams",vl(1,qy)))},directives:[Km],encapsulation:2}),e})(),Wy=(()=>{class e{constructor(){this.appVersion=gb.appVersion,this.production=gb.production}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-version-page"]],decls:7,vars:2,consts:[[1,"container"],[1,"imgSection"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div"),xs(2,"h3"),Ws(3),Ts(),xs(4,"div",1),xs(5,"div"),Ws(6),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(3),Zs("Version ",t.appVersion,""),qr(3),Zs("Production: ",t.production,""))},encapsulation:2}),e})(),Yy=(()=>{class e{constructor(e){this.http=e,this.PoolInfoUrl=gb.apiPath+"/prod/PoolRepository"}getLinkInfo(e){return this.http.get(this.PoolInfoUrl+"?provider="+encodeURIComponent(e))}getPoolList(){return this.http.get(this.PoolInfoUrl+"?all=1")}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function Zy(e,t){1&e&&(xs(0,"span"),Ps(1,"br"),Ts())}function Qy(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2),Ts(),xs(3,"p"),Ws(4),Ts(),xs(5,"div",3),xs(6,"div",4),xs(7,"div",5),Ws(8,"1"),Ts(),xs(9,"div",6),xs(10,"h4",7),xs(11,"a",8),Ws(12,"Download and install Awesome Miner"),Ts(),Ts(),xs(13,"p"),Ws(14," If you already have Awesome Miner installed, please continue to the next step. "),Ts(),Ts(),Ts(),xs(15,"div",4),xs(16,"div",5),Ws(17,"2"),Ts(),xs(18,"div",6),xs(19,"h4",7),xs(20,"a",9),Ws(21),Ts(),Ts(),xs(22,"p"),Ws(23," The first time you click on these kind of links, your web browser may ask if you want to open it in Awesome Miner "),Ts(),Ts(),Ts(),xs(24,"div",4),xs(25,"div",5),Ws(26,"3"),Ts(),xs(27,"div",6),xs(28,"h4",7),Ws(29),Ts(),xs(30,"p"),Ws(31),Cs(32,Zy,2,0,"span",1),Ws(33," If you don't have any profit switching miners configured already, Awesome Miner will create one for you. "),Ts(),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(2),Zs("",e.selectedProfit.displayName," with Awesome Miner"),qr(2),Zs(" Follow these three easy steps to setup ",e.selectedProfit.displayName," with the Awesome Miner profit switcher. You will be mining in a minute even if you never used Awesome Miner before. "),qr(16),As("href",e.sanitize("awesomeminer://pools/profitswitching/"+e.selectedProfit.name),Qi),qr(1),Zs("Click on this link to activate ",e.selectedProfit.displayName," in Awesome Miner"),qr(8),Ys(e.selectedProfit.step3Title),qr(2),Zs(" ",e.selectedProfit.step3Text," "),qr(1),As("ngIf",e.selectedProfit.step3Text&&e.selectedProfit.step3Text.length>0)}}function Ky(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2),Ts(),xs(3,"p"),Ws(4),Ts(),Ts()),2&e){const e=Rs(2);qr(2),Zs("",e.selectedStandard.displayName," with Awesome Miner"),qr(2),Zs(" Follow these three easy steps to add ",e.selectedStandard.displayName," to Awesome Miner. You will be mining in a minute even if you never used Awesome Miner before. ")}}function Jy(e,t){if(1&e&&(xs(0,"h4"),Ws(1),Ts()),2&e){const e=Rs(2);qr(1),Zs("",e.selectedStandard.displayName," also supports mining of specific coins. Follow the instructions below if you want to add them to Awesome Miner.")}}function Xy(e,t){1&e&&(xs(0,"span"),Ps(1,"br"),Ts())}function eC(e,t){if(1&e&&(xs(0,"div"),Cs(1,Ky,5,2,"div",1),Cs(2,Jy,2,1,"h4",1),xs(3,"div",3),xs(4,"div",4),xs(5,"div",5),Ws(6,"1"),Ts(),xs(7,"div",6),xs(8,"h4",7),xs(9,"a",8),Ws(10,"Download and install Awesome Miner"),Ts(),Ts(),xs(11,"p"),Ws(12," If you already have Awesome Miner installed, please continue to the next step. "),Ts(),Ts(),Ts(),xs(13,"div",4),xs(14,"div",5),Ws(15,"2"),Ts(),xs(16,"div",6),xs(17,"h4",7),xs(18,"a",9),Ws(19),Ts(),Ts(),xs(20,"p"),Ws(21," The first time you click on these kind of links, your web browser may ask if you want to open it in Awesome Miner "),Ts(),Ts(),Ts(),xs(22,"div",4),xs(23,"div",5),Ws(24,"3"),Ts(),xs(25,"div",6),xs(26,"h4",7),Ws(27),Ts(),xs(28,"p"),Ws(29),Cs(30,Xy,2,0,"span",1),Ws(31," Awesome Miner will also ask if you want to automatically setup a miner for this pool. "),Ts(),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(1),As("ngIf",!e.selectedProfit),qr(1),As("ngIf",e.selectedProfit),qr(16),As("href",e.sanitize("awesomeminer://pools/add/"+e.selectedStandard.name),Qi),qr(1),Zs("Click on this link to add ",e.selectedStandard.displayName," in Awesome Miner"),qr(8),Ys(e.selectedStandard.step3Title),qr(2),Zs(" ",e.selectedStandard.step3Text," "),qr(1),As("ngIf",e.selectedStandard.step3Text&&e.selectedStandard.step3Text.length>0)}}function tC(e,t){if(1&e&&(xs(0,"p"),Ws(1),xs(2,"a",10),Ws(3),Ts(),Ws(4,". "),Ts()),2&e){const e=Rs();qr(1),Qs(" You are now ready to start mining on ",e.selectedProfit.displayName,"! For more information about ",e.selectedProfit.displayName,", see the "),qr(1),As("href",e.sanitize(e.selectedProfit.website),Qi),qr(1),Zs("",e.selectedProfit.displayName," web site")}}function nC(e,t){if(1&e&&(xs(0,"p"),Ws(1),xs(2,"a",10),Ws(3),Ts(),Ws(4,". "),Ts()),2&e){const e=Rs();qr(1),Qs(" You are now ready to start mining on ",e.selectedStandard.displayName,"! For more information about ",e.selectedStandard.displayName,", see the "),qr(1),As("href",e.sanitize(e.selectedStandard.website),Qi),qr(1),Zs("",e.selectedStandard.displayName," web site")}}function iC(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining with Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Unable to find information about the specified pool "),Ts(),Ts())}let rC=(()=>{class e{constructor(e,t,n,i,r,o,s){this.sanitizer=e,this.titleService=n,this.metaTagService=i,this.platformId=r,this.transferState=o,this.poolInfoService=s,this.loadFailed=!1,this.selectedProfit=void 0,this.selectedStandard=void 0,this.metaTitle="Setup mining pools with Awesome Miner",this.metaDescription="Easy mining pool setup with Awesome Miner",t.params.subscribe(e=>{if(e)if(this.selectedPool=e.pool,this.selectedPool){let e;this.selectedPool=this.selectedPool.trim();const t="poolinfo-"+this.selectedPool;this.transferState.hasKey(t)?(e=this.transferState.get(t,null),this.transferState.remove(t),this.renderInfo(e)):this.poolInfoService.getLinkInfo(this.selectedPool).subscribe(n=>{e=n,this.renderInfo(e),Bu(this.platformId)&&this.transferState.set(t,e)},()=>{console.log("Failed to load link details"),this.loadFailed=!0})}else this.loadFailed=!0;else this.loadFailed=!0})}sanitize(e){return this.sanitizer.bypassSecurityTrustUrl(e)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}renderInfo(e){this.selectedStandard=e.standardPools,this.selectedProfit=e.profitPools,this.selectedProfit&&(console.log("Found profit pool: "+this.selectedPool),this.metaTitle=this.selectedProfit.displayName+" with Awesome Miner",this.metaDescription="Start mining on "+this.selectedProfit.displayName+" using Awesome Miner"),this.selectedStandard&&(console.log("Found standard pool: "+this.selectedPool),this.metaTitle=this.selectedStandard.displayName+" with Awesome Miner",this.metaDescription="Start mining on "+this.selectedStandard.displayName+" using Awesome Miner"),this.loadFailed=!this.selectedProfit&&!this.selectedStandard,this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(vd),_s(Ip),_s(Pd),_s(kd),_s(Nl),_s(Md),_s(Yy))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:6,vars:5,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"media","ngMediaExtraSpace"],[1,"ngCircle"],[1,"media-body"],[1,"ngBlueHeader","ngBlueHeaderMedia"],["routerLink","/download"],[3,"href"],["target","_blank","rel","noopener noreferrer",3,"href"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,Qy,34,7,"div",1),Cs(2,eC,32,7,"div",1),Cs(3,tC,5,4,"p",1),Cs(4,nC,5,4,"p",1),Cs(5,iC,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.selectedProfit),qr(1),As("ngIf",t.selectedStandard),qr(1),As("ngIf",t.selectedProfit),qr(1),As("ngIf",t.selectedStandard&&!t.selectedProfit),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,Km],encapsulation:2}),e})(),oC=(()=>{class e{constructor(e){this.http=e,this.LinkInfoUrl=gb.apiPath+"/prod/PoolLink"}getLinkInfo(e){return this.http.get(this.LinkInfoUrl+"?params="+encodeURIComponent(e))}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function sC(e,t){1&e&&(xs(0,"div",3),Ws(1," Please wait. Loading link details... "),Ts())}function aC(e,t){1&e&&(xs(0,"div",3),Ws(1," Failed to load link details "),Ts())}function lC(e,t){if(1&e&&(xs(0,"span"),Ws(1," Add '"),xs(2,"b"),Ws(3),Ts(),Ws(4,"' to Awesome Miner "),Ts()),2&e){const e=Rs(2);qr(3),Ys(null==e.linkInfo?null:e.linkInfo.description)}}function cC(e,t){1&e&&(xs(0,"span"),Ws(1," Add the following mining pool to Awesome Miner "),Ts())}function uC(e,t){1&e&&(xs(0,"span",5),Ws(1,"Mining software:"),Ts())}function dC(e,t){if(1&e&&(xs(0,"span"),xs(1,"b"),Ws(2),Ts(),Ts()),2&e){const e=Rs(2);qr(2),Ys(null==e.linkInfo?null:e.linkInfo.miningSoftware)}}function hC(e,t){if(1&e&&(xs(0,"div",3),Cs(1,lC,5,1,"span",4),Cs(2,cC,2,0,"span",4),xs(3,"table"),xs(4,"tr"),xs(5,"td"),xs(6,"span",5),Ws(7,"Coin:"),Ts(),Ts(),xs(8,"td"),xs(9,"b"),Ws(10),Ts(),Ts(),Ts(),xs(11,"tr"),xs(12,"td"),xs(13,"span",5),Ws(14,"Pool connection URL:"),Ts(),Ts(),xs(15,"td"),xs(16,"b"),Ws(17),Ts(),Ts(),Ts(),xs(18,"tr"),xs(19,"td"),Cs(20,uC,2,0,"span",6),Ts(),xs(21,"td"),Cs(22,dC,3,1,"span",4),Ts(),Ts(),Ts(),xs(23,"div",7),xs(24,"a",8),Ws(25," Add to Awesome Miner "),Ts(),Ts(),xs(26,"div",7),xs(27,"p"),Ws(28," If you don't have Awesome Miner installed already or using an older version, "),xs(29,"a",9),Ws(30,"please begin by downloading Awesome Miner."),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(1),As("ngIf",null==e.linkInfo?null:e.linkInfo.description),qr(1),As("ngIf",!(null!=e.linkInfo&&e.linkInfo.description)),qr(8),Ys(null==e.linkInfo?null:e.linkInfo.coin),qr(7),Ys(null==e.linkInfo?null:e.linkInfo.poolUrl),qr(3),As("ngIf",null==e.linkInfo?null:e.linkInfo.miningSoftware),qr(2),As("ngIf",null==e.linkInfo?null:e.linkInfo.miningSoftware),qr(2),As("href",e.sanitize(e.launchLink),Qi)}}let pC=(()=>{class e{constructor(e,t,n,i){this.sanitizer=e,this.titleService=t,this.metaTagService=n,this.loadFailed=!1;let r=window.location.pathname+window.location.search;console.log("Request info for: "+r),i.getLinkInfo(r).subscribe(e=>{this.linkInfo=e,this.launchLink=e.launchLink},()=>{console.log("Failed to load link details"),this.loadFailed=!0})}sanitize(e){return this.sanitizer.bypassSecurityTrustUrl(e)}ngOnInit(){this.titleService.setTitle("Awesome Miner - Open Link"),this.metaTagService.updateTag({name:"description",content:"Awesome Miner can automatically setup your mining using easy-to-use links"})}}return e.\u0275fac=function(t){return new(t||e)(_s(vd),_s(Pd),_s(kd),_s(oC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:6,vars:3,consts:[[1,"container","ngContainer"],[1,"ngPageHeader"],["style","margin-top: 20px; margin-bottom: 20px",4,"ngIf"],[2,"margin-top","20px","margin-bottom","20px"],[4,"ngIf"],[2,"padding","0px 15px 6px 0px"],["style","padding: 0px 15px 6px 0px",4,"ngIf"],[2,"margin-top","20px"],["role","button",1,"btn","btn-lg","btn-success","ngMainButton",3,"href"],["target","_blank","rel","noopener noreferrer","href","/download"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3",1),Ws(2,"Thanks for using Awesome Miner"),Ts(),Cs(3,sC,2,0,"div",2),Cs(4,aC,2,0,"div",2),Cs(5,hC,31,7,"div",2),Ts()),2&e&&(qr(3),As("ngIf",!t.linkInfo&&!t.loadFailed),qr(1),As("ngIf",t.loadFailed),qr(1),As("ngIf",t.linkInfo))},directives:[Uu],encapsulation:2}),e})(),mC=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Awesome Miner images"),this.metaTagService.updateTag({name:"description",content:"Awesome Miner images and banners"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-resources"]],decls:151,vars:0,consts:[[1,"container"],[1,"table","table-striped","table-responsive",2,"max-width","1140px"],[2,"width","200px"],[2,"width","900px"],["alt","awesome miner small banner","src","/img/banners/awesome-miner-300x50.png",1,"mx-auto","img-fluid"],["alt","awesome miner small banner","src","/img/banners/awesome-miner-300x50-nobg.png",1,"mx-auto","img-fluid"],["alt","awesome miner logo","src","/img/banners/awesome-miner-logo-48x48.png",1,"mx-auto","img-fluid"],["alt","awesome miner logo","src","/img/banners/awesome-miner-white-border-48x48.png",1,"mx-auto","img-fluid"],["alt","awesome miner logo","src","/img/banners/awesome-miner-logo-64x64.png",1,"mx-auto","img-fluid"],["alt","awesome miner logo","src","/img/banners/awesome-miner-white-border-64x64.png",1,"mx-auto","img-fluid"],["alt","awesome miner logo","src","/img/banners/awesome-miner-logo-512x512.png",1,"mx-auto","img-fluid",2,"width","128px","height","128px"],["alt","awesome miner logo","src","/img/banners/awesome-miner-white-border-512x512.png",1,"mx-auto","img-fluid",2,"width","128px","height","128px"],["alt","awesome miner main banner","src","/img/banners/awesome-miner-728x90.png",1,"mx-auto","img-fluid"],["alt","awesome miner banner","src","/img/banners/awesome-miner-300x600.png",1,"mx-auto","img-fluid"],["alt","awesome miner banner","src","/img/banners/awesome-miner-300x250.png",1,"mx-auto","img-fluid"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Image resources for Awesome Miner"),Ts(),xs(3,"p"),Ws(4," The images below can be used to link to the Awesome Miner web site. "),Ts(),xs(5,"table",1),xs(6,"thead"),xs(7,"tr"),xs(8,"th",2),Ws(9,"Description"),Ts(),xs(10,"th",3),Ws(11,"Image"),Ts(),Ts(),Ts(),xs(12,"tbody"),xs(13,"tr"),xs(14,"td"),xs(15,"b"),Ws(16,"Banner 300x50"),Ts(),Ts(),xs(17,"td"),xs(18,"p"),Ws(19," HTML markup for banner:"),Ps(20,"br"),xs(21,"code"),Ws(22,''),Ts(),Ts(),xs(23,"p"),Ps(24,"img",4),Ts(),Ts(),Ts(),xs(25,"tr"),xs(26,"td"),xs(27,"b"),Ws(28,"Banner 300x50"),Ts(),Ws(29," white text without background "),Ts(),xs(30,"td"),xs(31,"p"),Ws(32," HTML markup for banner:"),Ps(33,"br"),xs(34,"code"),Ws(35,''),Ts(),Ts(),xs(36,"p"),Ps(37,"img",5),Ts(),Ts(),Ts(),xs(38,"tr"),xs(39,"td"),xs(40,"b"),Ws(41,"Logo 48x48"),Ts(),Ts(),xs(42,"td"),xs(43,"p"),Ws(44," HTML markup for banner:"),Ps(45,"br"),xs(46,"code"),Ws(47,''),Ts(),Ts(),xs(48,"p"),Ps(49,"img",6),Ts(),Ts(),Ts(),xs(50,"tr"),xs(51,"td"),xs(52,"b"),Ws(53,"Logo 48x48"),Ts(),Ws(54," with white border "),Ts(),xs(55,"td"),xs(56,"p"),Ws(57," HTML markup for banner:"),Ps(58,"br"),xs(59,"code"),Ws(60,''),Ts(),Ts(),xs(61,"p"),Ps(62,"img",7),Ts(),Ts(),Ts(),xs(63,"tr"),xs(64,"td"),xs(65,"b"),Ws(66,"Logo 64x64"),Ts(),Ts(),xs(67,"td"),xs(68,"p"),Ws(69," HTML markup for banner:"),Ps(70,"br"),xs(71,"code"),Ws(72,''),Ts(),Ts(),xs(73,"p"),Ps(74,"img",8),Ts(),Ts(),Ts(),xs(75,"tr"),xs(76,"td"),xs(77,"b"),Ws(78,"Logo 64x64"),Ts(),Ws(79," with white border "),Ts(),xs(80,"td"),xs(81,"p"),Ws(82," HTML markup for banner:"),Ps(83,"br"),xs(84,"code"),Ws(85,''),Ts(),Ts(),xs(86,"p"),Ps(87,"img",9),Ts(),Ts(),Ts(),xs(88,"tr"),xs(89,"td"),xs(90,"b"),Ws(91,"Logo 512x512"),Ts(),Ts(),xs(92,"td"),xs(93,"p"),Ws(94," HTML markup for banner:"),Ps(95,"br"),xs(96,"code"),Ws(97,''),Ts(),Ts(),xs(98,"p"),Ps(99,"img",10),Ts(),Ws(100," (Preview size reduced) "),Ts(),Ts(),xs(101,"tr"),xs(102,"td"),xs(103,"b"),Ws(104,"Logo 512x512"),Ts(),Ws(105," with white border "),Ts(),xs(106,"td"),xs(107,"p"),Ws(108," HTML markup for banner:"),Ps(109,"br"),xs(110,"code"),Ws(111,''),Ts(),Ts(),xs(112,"p"),Ps(113,"img",11),Ts(),Ws(114," (Preview size reduced) "),Ts(),Ts(),xs(115,"tr"),xs(116,"td"),xs(117,"b"),Ws(118,"Banner 728x90"),Ts(),Ts(),xs(119,"td"),xs(120,"p"),Ws(121," HTML markup for banner:"),Ps(122,"br"),xs(123,"code"),Ws(124,''),Ts(),Ts(),xs(125,"p"),Ps(126,"img",12),Ts(),Ts(),Ts(),xs(127,"tr"),xs(128,"td"),xs(129,"b"),Ws(130,"Banner 300x600"),Ts(),Ts(),xs(131,"td"),xs(132,"p"),Ws(133," HTML markup for banner:"),Ps(134,"br"),xs(135,"code"),Ws(136,''),Ts(),Ts(),xs(137,"p"),Ps(138,"img",13),Ts(),Ts(),Ts(),xs(139,"tr"),xs(140,"td"),xs(141,"b"),Ws(142,"Banner 300x250"),Ts(),Ts(),xs(143,"td"),xs(144,"p"),Ws(145," HTML markup for banner:"),Ps(146,"br"),xs(147,"code"),Ws(148,''),Ts(),Ts(),xs(149,"p"),Ps(150,"img",14),Ts(),Ts(),Ts(),Ts(),Ts(),Ts())},styles:["tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#ececec}"]}),e})();function fC(e,t=Hw){return n=>n.lift(new gC(e,t))}class gC{constructor(e,t){this.dueTime=e,this.scheduler=t}call(e,t){return t.subscribe(new bC(e,this.dueTime,this.scheduler))}}class bC extends m{constructor(e,t,n){super(e),this.dueTime=t,this.scheduler=n,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(wC,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:e}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}}clearDebounce(){const e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)}}function wC(e){e.debouncedNext()}function vC(e,t){return n=>n.lift(new yC(e,t))}class yC{constructor(e,t){this.compare=e,this.keySelector=t}call(e,t){return t.subscribe(new CC(e,this.compare,this.keySelector))}}class CC extends m{constructor(e,t,n){super(e),this.keySelector=n,this.hasKey=!1,"function"==typeof t&&(this.compare=t)}compare(e,t){return e===t}_next(e){let t;try{const{keySelector:n}=this;t=n?n(e):e}catch(i){return this.destination.error(i)}let n=!1;if(this.hasKey)try{const{compare:e}=this;n=e(this.key,t)}catch(i){return this.destination.error(i)}else this.hasKey=!0;n||(this.key=t,this.destination.next(e))}}var SC=function(e){return e[e.Open=2]="Open",e[e.Pending=3]="Pending",e[e.Resolved=4]="Resolved",e[e.Closed=5]="Closed",e}({}),_C=function(e){return e[e.Low=1]="Low",e[e.Medium=2]="Medium",e[e.High=3]="High",e[e.Urgent=4]="Urgent",e}({}),AC=function(e){return e[e.Email=1]="Email",e[e.Portal=2]="Portal",e[e.Phone=3]="Phone",e[e.Chat=7]="Chat",e[e.Mobihelp=8]="Mobihelp",e[e.Feedback_Widget=9]="Feedback_Widget",e[e.Outbound_Email=10]="Outbound_Email",e}({});let kC=(()=>{class e{constructor(e){this.http=e,this.apiSearchUrl="https://iau8r04dp3.execute-api.us-east-1.amazonaws.com/prod/freshdesk/solutions/search"}searchSolution(e,t){const n={params:(new Sb).append("term",e).append("max_matches",t.toString())};return this.http.get(this.apiSearchUrl,n)}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),xC=(()=>{class e{constructor(e){this.http=e,this.apiTicketUrl="https://iau8r04dp3.execute-api.us-east-1.amazonaws.com/prod/freshdesk/tickets",this.apiHasSupportUrl="https://5aozpdg9s2.execute-api.us-east-1.amazonaws.com/prod/CheckSupport"}createTicket(e,t){if(null==t||0==t.length)return this.http.post(this.apiTicketUrl,e);const n=new FormData;n.append("type",e.type),n.append("priority",e.priority.toString()),n.append("status",e.status.toString()),n.append("source",e.source.toString()),n.append("email",e.email),n.append("subject",e.subject),n.append("description",e.description);for(let i=0;i{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-solution-article"]],inputs:{article:"article"},decls:5,vars:3,consts:[[1,"article-h"],["target","_blank",3,"href"],[3,"innerHTML"],[1,"article-text",3,"innerHTML"]],template:function(e,t){1&e&&(xs(0,"div"),xs(1,"div",0),xs(2,"a",1),Ps(3,"span",2),Ts(),Ts(),Ps(4,"div",3),Ts()),2&e&&(qr(2),As("href","http://support.awesomeminer.com"+t.article.url,Qi),qr(1),As("innerHTML",t.article.title,Zi),qr(1),As("innerHTML",t.article.desc,Zi))},styles:[".match{background-color:#fdfdb5}.article-h{font-weight:700;font-size:1rem}.article-text{font-size:.8125rem}"],encapsulation:2}),e})();function PC(e,t){if(1&e&&(xs(0,"div",1),xs(1,"div",2),xs(2,"div",3),Ws(3,"Thank you for contacting us!"),Ts(),xs(4,"div"),Ws(5),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(5),Zs("We will reply to: ",e.ticketReplyEmail,"")}}function MC(e,t){if(1&e&&(xs(0,"option",30),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Ys(e)}}function IC(e,t){1&e&&(xs(0,"div",31),xs(1,"div"),Ws(2,"Popular guides:"),Ts(),xs(3,"ul",32),xs(4,"li"),xs(5,"a",33),Ws(6,"Getting started with GPU mining"),Ts(),Ts(),xs(7,"li"),xs(8,"a",34),Ws(9,"Troubleshooting GPU mining"),Ts(),Ts(),xs(10,"li"),xs(11,"a",35),Ws(12,"Getting started with ASIC mining"),Ts(),Ts(),xs(13,"li"),xs(14,"a",36),Ws(15,"Troubleshooting ASIC mining"),Ts(),Ts(),Ts(),xs(16,"div"),Ws(17,"Please note that product support is only intended for questions related to Awesome Miner, not for general questions about mining."),Ts(),Ts())}function OC(e,t){if(1&e&&(xs(0,"div",37),xs(1,"p"),Ws(2," No active "),xs(3,"a",38),Ws(4,"product support"),Ts(),Ws(5),Ts(),xs(6,"p"),Ws(7," For users of the Free Edition, product support is only given if there is an intent to upgrade to one of the paid editions. "),Ts(),xs(8,"p"),Ws(9," If you have a product license via another e-mail address or want more information about your current product support status, please enter your license details below. By providing an e-mail address with active product support, your request will be given higher priority. "),Ts(),Ts()),2&e){const e=Rs(2);qr(5),Zs(" available for ",e.f.ticketEmail.value,". ")}}const EC=function(e,t){return{"is-valid":e,"is-invalid":t}};function FC(e,t){if(1&e&&(xs(0,"div",13),xs(1,"label",19),Ws(2,"License e-mail:"),Ps(3,"br"),xs(4,"small"),Ws(5,"(optional)"),Ts(),Ts(),xs(6,"div",8),Ps(7,"input",39),xs(8,"div",16),Ws(9," Please enter a valid e-mail address "),Ts(),Ts(),Ts()),2&e){const e=Rs(2);qr(7),As("ngClass",Cl(1,EC,e.f.licenseEmail.valid,e.f.licenseEmail.invalid&&(e.f.licenseEmail.touched||e.f.licenseEmail.dirty)))}}function UC(e,t){if(1&e&&(xs(0,"div",37),xs(1,"p"),Ws(2),Ts(),Ts()),2&e){const e=Rs(3);qr(2),Zs(" ",e.expireInfo," ")}}function LC(e,t){if(1&e&&(xs(0,"div",13),xs(1,"label",19),Ws(2,"Registration code:"),Ps(3,"br"),xs(4,"small"),Ws(5,"(optional)"),Ts(),Ts(),xs(6,"div",8),Ps(7,"input",40),xs(8,"div",16),Ws(9," Please enter a valid license "),Ts(),Cs(10,UC,3,1,"div",17),Ts(),Ts()),2&e){const e=Rs(2);qr(7),As("ngClass",Cl(2,EC,e.f.licenseCode.valid,e.f.licenseCode.invalid&&(e.f.licenseCode.touched||e.f.licenseCode.dirty))),qr(3),As("ngIf",e.expireInfo)}}function DC(e,t){1&e&&Ps(0,"i",41)}function RC(e,t){1&e&&(xs(0,"div",13),xs(1,"div",42),Ws(2," Failed to send message. Please try again in a few minutes. "),Ts(),Ts())}function NC(e,t){1&e&&Ps(0,"am-spinner")}function VC(e,t){if(1&e&&(xs(0,"div"),Ps(1,"am-solution-article",46),Ps(2,"hr"),Ts()),2&e){const e=t.$implicit;qr(1),As("article",e)}}function jC(e,t){if(1&e&&(xs(0,"div",47),xs(1,"a",48),Ws(2,"Show all results"),Ts(),Ts()),2&e){const e=Rs(3);qr(1),As("href","https://support.awesomeminer.com/en/support/search/solutions?&term="+e.searchLastTerm,Qi)}}function HC(e,t){if(1&e&&(xs(0,"section",43),xs(1,"h3"),Ws(2,"Suggestions"),Ts(),Cs(3,VC,3,1,"div",44),Cs(4,jC,3,1,"div",45),Ts()),2&e){const e=Rs(2);qr(3),As("ngForOf",e.solutionArticles),qr(1),As("ngIf",(null==e.searchLastTerm?null:e.searchLastTerm.length)>0)}}function zC(e,t){if(1&e){const e=Os();xs(0,"div",1),xs(1,"div",4),xs(2,"form",5),xs(3,"h3"),Ws(4,"How can we help you?"),Ts(),xs(5,"div",6),xs(6,"label",7),Ws(7,"Topic:"),Ts(),xs(8,"div",8),xs(9,"select",9),xs(10,"option",10),Ws(11,"Select a topic..."),Ts(),Cs(12,MC,2,2,"option",11),Ts(),Cs(13,IC,18,0,"div",12),Ts(),Ts(),xs(14,"div",13),xs(15,"label",14),Ws(16,"Your e-mail:"),Ts(),xs(17,"div",8),Ps(18,"input",15),xs(19,"div",16),Ws(20," Please enter a valid e-mail address "),Ts(),Cs(21,OC,10,1,"div",17),Ts(),Ts(),Cs(22,FC,10,4,"div",18),Cs(23,LC,11,5,"div",18),xs(24,"div",13),xs(25,"label",19),Ws(26,"Subject:"),Ts(),xs(27,"div",8),Ps(28,"input",20),Cs(29,DC,1,0,"i",21),xs(30,"div",16),Ws(31," Please enter a subject "),Ts(),Ts(),Ts(),xs(32,"div",13),xs(33,"label",22),Ws(34,"Description:"),Ts(),xs(35,"div",8),xs(36,"textarea",23),Ws(37," "),Ts(),Ts(),Ts(),xs(38,"div",13),xs(39,"div",24),xs(40,"label",25),Ws(41),Ts(),xs(42,"input",26),Us("change",function(t){return Et(e),Rs().onFileChange(t.target)}),Ts(),Ts(),Ts(),Cs(43,RC,3,0,"div",18),xs(44,"div",13),xs(45,"div",24),xs(46,"button",27),Us("click",function(){return Et(e),Rs().onCreateTicketClick()}),Ws(47,"Send"),Cs(48,NC,1,0,"am-spinner",28),Ts(),Ts(),Ts(),Ts(),Cs(49,HC,5,2,"section",29),Ts(),Ts()}if(2&e){const e=Rs();qr(2),As("formGroup",e.contactForm),qr(7),As("ngClass",Cl(17,EC,e.f.ticketType.valid,e.f.ticketType.invalid&&(e.f.ticketType.touched||e.f.ticketType.dirty))),qr(1),As("ngValue",null),qr(2),As("ngForOf",e.ticketTypes),qr(1),As("ngIf",e.f.ticketType.value==e.ticketTypes[2]),qr(5),As("ngClass",Cl(20,EC,e.f.ticketEmail.valid,e.f.ticketEmail.invalid&&(e.f.ticketEmail.touched||e.f.ticketEmail.dirty))),qr(3),As("ngIf",e.getShowExtendedInfo()),qr(1),As("ngIf",e.getShowExtendedInfo()),qr(1),As("ngIf",e.getShowExtendedInfo()),qr(5),As("ngClass",Cl(23,EC,e.f.ticketSubject.valid,e.f.ticketSubject.invalid&&(e.f.ticketSubject.touched||e.f.ticketSubject.dirty))),qr(1),As("ngIf",e.searchInProgress),qr(7),As("ngClass",Cl(26,EC,e.f.ticketDescription.valid,e.f.ticketDescription.invalid&&(e.f.ticketDescription.touched||e.f.ticketDescription.dirty))),qr(5),Ys(e.fileChoose),qr(2),As("ngIf",e.formFailed),qr(3),As("disabled",e.formDisabled),qr(2),As("ngIf",e.formSubmitting),qr(1),As("ngIf",(null==e.solutionArticles?null:e.solutionArticles.length)>0)}}var BC=function(e){return e[e.PreSubmit=0]="PreSubmit",e[e.Submitting=1]="Submitting",e[e.Submit_OK=2]="Submit_OK",e[e.Submit_Fail=3]="Submit_Fail",e}({});let $C=(()=>{class e{constructor(e,t,n,i,r,o){this.activatedRoute=e,this.solutionService=t,this.ticketService=n,this.formBuilder=i,this.titleService=r,this.metaTagService=o,this.solutionArticles=null,this.ticketTypes=["I'm interested in Awesome Miner","Sales: Order process, payments, licenses","Technical support","Feature request"],this.inProgress=BC.PreSubmit,this.hasSupport=!0,this.expireInfo=null,this.searchInProgress=!1,this.ticketAttachments=null,this.fileChoose="Add attachements..."}ngOnInit(){this.titleService.setTitle("Awesome Miner Product Support"),this.metaTagService.updateTag({name:"description",content:"Contact Awesome Miner product support"}),this.contactForm=this.formBuilder.group({ticketEmail:["",[Uf.required,Uf.email]],licenseEmail:["",[Uf.email]],licenseCode:["",[Uf.minLength(17)]],ticketSubject:["",[Uf.required,Uf.minLength(3)]],ticketDescription:["",[Uf.required,Uf.minLength(10)]],ticketType:["",[Uf.required]]});let e=this.activatedRoute.snapshot.queryParamMap.get("topic"),t=null;"presales"==e?t=this.ticketTypes[0]:"sales"==e?t=this.ticketTypes[1]:"support"==e?t=this.ticketTypes[2]:"featurerequest"==e&&(t=this.ticketTypes[1]),this.f.ticketType.setValue(t),this.onChanges()}getShowExtendedInfo(){return this.isTicketTypeRestricted()&&(0==this.hasSupport||this.expireInfo)}canEditTicketMail(){return!this.isTicketTypeRestricted()||1!=this.hasSupport||null===this.expireInfo}get f(){return this.contactForm.controls}get formDisabled(){return this.contactForm.invalid||this.inProgress==BC.Submitting}get formSubmitted(){return this.inProgress==BC.Submit_OK}get formSubmitting(){return this.inProgress==BC.Submitting}get formFailed(){return this.inProgress==BC.Submit_Fail}onCreateTicketClick(){this.ticketReplyEmail=this.f.ticketEmail.value;let e=_C.Low;this.f.ticketType.value!=this.ticketTypes[0]&&this.f.ticketType.value!=this.ticketTypes[1]||(e=_C.High);let t={status:SC.Open,priority:e,source:AC.Portal,email:this.ticketReplyEmail,subject:this.f.ticketSubject.value,type:this.f.ticketType.value,description:this.f.ticketDescription.value.replace(/\r\n|\r|\n/g,"
")};this.inProgress=BC.Submitting,this.ticketService.createTicket(t,this.ticketAttachments).subscribe(e=>{this.inProgress=BC.Submit_OK},e=>{this.inProgress=BC.Submit_Fail,console.log("Failed to create Ticket",e)})}onFileChange(e){const t=e;this.ticketAttachments=t.files,this.fileChoose=Array.from(t.files).map(e=>e.name).join(", ")}onChanges(){this.f.ticketEmail.valueChanges.pipe(fC(500),vC()).subscribe(e=>{this.validateHasSupport()}),this.f.licenseEmail&&this.f.licenseEmail.valueChanges.pipe(fC(500),vC()).subscribe(e=>{this.validateHasSupport()}),this.f.licenseCode&&this.f.licenseCode.valueChanges.pipe(fC(500),vC()).subscribe(e=>{this.validateHasSupport()}),this.f.ticketType.valueChanges.subscribe(e=>{this.validateHasSupport()}),this.f.ticketSubject.valueChanges.pipe(fC(500),vC()).subscribe(e=>{this.searchSolution(e)})}searchSolution(e){null!=e&&0!=e.length&&(this.searchInProgress=!0,this.searchLastTerm=e,this.solutionService.searchSolution(e,5).subscribe(e=>{this.searchInProgress=!1,null!=e&&e.length>0&&(this.solutionArticles=e)},e=>{this.searchInProgress=!1,console.log("Failed to search solution",e)}))}isTicketTypeRestricted(){let e=this.f.ticketType.value;return e==this.ticketTypes[2]||e==this.ticketTypes[3]}validateHasSupport(){let e=this.f.ticketEmail.value,t=this.f.licenseEmail.value,n=this.f.licenseCode.value;this.isTicketTypeRestricted()?this.f.ticketEmail.invalid||((this.f.licenseEmail.invalid||this.f.licenseCode.invalid)&&(t=null,n=null),this.ticketService.hasSupport(e,t,n).subscribe(e=>{this.hasSupport=null!==e&&e.hasSupport,this.expireInfo=null!==e?e.expireInfo:null,this.hasSupport&&this.expireInfo&&(this.contactForm.controls.ticketEmail.disable(),this.contactForm.controls.licenseEmail.disable(),this.contactForm.controls.licenseCode.disable())},e=>{console.log("Failed to CheckSupport",e)})):this.hasSupport=!0}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(kC),_s(xC),_s(rb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-contact-form"]],decls:2,vars:2,consts:[["class","container",4,"ngIf"],[1,"container"],["role","alert",1,"alert","alert-success",2,"margin-top","36px"],[1,"h3","alert-heading"],[1,"row"],[1,"col-lg-7","col-md-12",3,"formGroup"],[1,"form-group","row",2,"margin-top","16px"],["for","ticketType",1,"col-md-3","col-xl-3","col-form-label","font-weight-bold"],[1,"col-md-9","col-xl-9"],["id","ticketType","required","","formControlName","ticketType",1,"form-control","form-control-sm",3,"ngClass"],["disabled","",3,"ngValue"],[3,"ngValue",4,"ngFor","ngForOf"],["class","form-text small",4,"ngIf"],[1,"form-group","row"],["for","ticketEmail",1,"col-md-3","col-xl-3","col-form-label","font-weight-bold"],["type","text","maxlength","200","autocomplete","off","id","ticketEmail","formControlName","ticketEmail",1,"form-control",3,"ngClass"],[1,"invalid-feedback"],["class","form-text",4,"ngIf"],["class","form-group row",4,"ngIf"],["for","ticketSubject",1,"col-md-3","col-xl-3","col-form-label","font-weight-bold"],["type","text","maxlength","100","autocomplete","off","id","ticketSubject","formControlName","ticketSubject",1,"form-control",3,"ngClass"],["class","fa fa-spinner fa-spin form-spinner",4,"ngIf"],["for","ticketDescription",1,"col-md-3","col-xl-3","col-form-label","font-weight-bold"],["id","ticketDescription","maxlength","30000","autocomplete","off","rows","8","formControlName","ticketDescription",1,"form-control",3,"ngClass"],[1,"offset-md-3","col-md-9","offset-xl-3","col-xl-9"],["for","importFile",1,"custom-file-label"],["type","file","id","importFile","multiple","",1,"form-control-file","custom-file-input",3,"change"],["type","button",1,"btn","btn-success","ngMainButton",2,"min-width","120px",3,"disabled","click"],[4,"ngIf"],["class","col-lg-5 col-md-12",4,"ngIf"],[3,"ngValue"],[1,"form-text","small"],[1,"form-list"],["target","_blank","href","https://support.awesomeminer.com/support/solutions/articles/35000086034-getting-started-with-gpu-mining"],["target","_blank","href","https://support.awesomeminer.com/support/solutions/articles/35000086019-troubleshooting-gpu-mining"],["target","_blank","href","https://support.awesomeminer.com/support/solutions/articles/35000086035-getting-started-with-asic-mining"],["target","_blank","href","https://support.awesomeminer.com/support/solutions/articles/35000094734-troubleshooting-antminer-and-asic-miners"],[1,"form-text"],["routerLink","/productsupport"],["type","text","maxlength","200","autocomplete","off","id","licenseEmail","formControlName","licenseEmail",1,"form-control",3,"ngClass"],["type","text","maxlength","200","autocomplete","off","id","licenseCode","formControlName","licenseCode",1,"form-control",3,"ngClass"],[1,"fa","fa-spinner","fa-spin","form-spinner"],[1,"offset-md-3","col-md-9","offset-xl-3","col-xl-9","form-error"],[1,"col-lg-5","col-md-12"],[4,"ngFor","ngForOf"],["class","all-results",4,"ngIf"],[3,"article"],[1,"all-results"],["target","_blank",3,"href"]],template:function(e,t){1&e&&(Cs(0,PC,6,1,"div",0),Cs(1,zC,50,29,"div",0)),2&e&&(As("ngIf",t.formSubmitted),qr(1),As("ngIf",!t.formSubmitted))},directives:[Uu,Ug,ng,jg,qg,Jg,tg,zg,Iu,Gg,Qg,Eu,Pf,eb,Km,Qb,TC],styles:[".all-results[_ngcontent-%COMP%]{font-weight:700;font-size:1.1rem}"]}),e})(),qC=(()=>{class e{constructor(e,t){this.platformId=e,this.transferState=t}init(e,t,n,i){let r;const o=e;this.transferState.hasKey(o)&&(r=this.transferState.get(o,null),this.transferState.remove(o),n(r)),t.subscribe(e=>{r=e,n(r),Bu(this.platformId)&&this.transferState.set(o,r)},()=>{console.log("Failed to process request for identifier: "+e),i()})}}return e.\u0275fac=function(t){return new(t||e)(si(Nl),si(Md))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();class GC{}class WC{static getAsicLinkName(e,t){return t=fb.replaceAll(t,"+","-plus"),t=fb.replaceAll(t," ","-"),(e=fb.replaceAll(e," ","-")).toLowerCase()+"/"+t.toLowerCase()}static compareAsicNameFromUrl(e,t){return e=e.toLowerCase(),t=fb.replaceAll(t.toLowerCase()," ","-"),(t=fb.replaceAll(t,"+","-plus"))===e}}let YC=(()=>{class e{constructor(e){this.http=e,this.SoftwareInfoUrl=gb.apiPath+"/prod/SoftwareRepository"}getSoftwareInfo(e){return this.http.get(this.SoftwareInfoUrl+"?software="+encodeURIComponent(e).toLowerCase())}getSoftwareList(){return this.http.get(this.SoftwareInfoUrl)}getHardwareList(){return this.http.get(this.SoftwareInfoUrl+"?hardware=list")}getAsicModel(e,t){return this.getHardwareList().pipe(x(n=>this.extractModel(n,e,t)))}extractModel(e,t,n){let i=new GC,r=e.hardware.find(e=>e.shortName.toLowerCase()===t);if(r){let e=r.miners.find(e=>!0===WC.compareAsicNameFromUrl(n,e.name));if(e)return i.displayName=r.fullName+" "+e.name,i.firmwareLink=e.firmwareLink,i.algorithmDetails=e.algorithmDetails,i.vendor=r,i}return null}getAlgorithmList(){return this.http.get(this.SoftwareInfoUrl+"?algorithm=list")}getAlgorithm(e){return this.http.get(this.SoftwareInfoUrl+"?algorithm="+encodeURIComponent(e).toLowerCase())}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),ZC=(()=>{class e{transform(e){let t="secondary";return"nVidia GPU"==e?t="success":"AMD GPU"==e?t="danger":"CPU"==e&&(t="primary"),t}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Ze({name:"deviceTypeStyle",type:e,pure:!0}),e})();function QC(e,t){if(1&e&&(xs(0,"span",9),kl(1,"deviceTypeStyle"),Ws(2),Ts()),2&e){const e=t.$implicit;Vs("ngClass","badge badge-",xl(1,2,e)," am-badge"),qr(2),Ys(e)}}function KC(e,t){1&e&&(xs(0,"span",10),Ws(1,"Windows"),Ts())}function JC(e,t){1&e&&(xs(0,"span",10),Ws(1,"Linux"),Ts())}function XC(e,t){if(1&e&&(xs(0,"span"),xs(1,"a",11),Ws(2),Ts(),Ts()),2&e){const e=t.$implicit;qr(1),Vs("routerLink","/algorithm/",e.linkName,""),qr(1),Zs(" ",e.displayName," ")}}function eS(e,t){if(1&e&&(xs(0,"td"),xs(1,"a",17),Ws(2),Ts(),Ts()),2&e){const e=Rs().$implicit,t=Rs().$implicit,n=Rs(3);qr(1),As("href",n.sanitize("awesomeminer://software/setup/"+n.selectedInfo.engineType+"?algorithm="+t.algorithm+"&onlineservice="+e.onlineServiceType),Qi),qr(1),Qs(" ",e.displayName," - ",t.displayName," ")}}function tS(e,t){if(1&e&&(xs(0,"td"),xs(1,"a",17),Ws(2),Ts(),Ts()),2&e){const e=Rs().$implicit,t=Rs().$implicit,n=Rs(3);qr(1),As("href",n.sanitize("awesomeminer://software/setup/"+n.selectedInfo.engineType+"?algorithm="+t.algorithm+"&coin="+e.coin+"&provider="+e.poolProvider),Qi),qr(1),Qs(" ",e.displayName," - ",e.coin," ")}}function nS(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),Ws(2),Ts(),Cs(3,eS,3,3,"td",1),Cs(4,tS,3,3,"td",1),Ts()),2&e){const e=t.$implicit,n=Rs().$implicit;qr(2),Zs(" ",n.displayName," "),qr(1),As("ngIf",null!=e.onlineServiceType),qr(1),As("ngIf",null!=e.poolProvider)}}function iS(e,t){if(1&e&&(Ps(0,"a",16),Cs(1,nS,5,3,"tr",8)),2&e){const e=t.$implicit;Ns("name",e.algorithm),qr(1),As("ngForOf",e.miningPools)}}function rS(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3"),Ws(2,"Mining pools"),Ts(),xs(3,"p"),Ws(4," Awesome Miner can be used with any mining pool. The list below includes the predefined pools to make it easier to get started with mining on the most popular pools. "),Ts(),xs(5,"p"),Ws(6),xs(7,"a",12),Ws(8,"download and install Awesome Miner"),Ts(),Ws(9," before you continue. "),Ts(),xs(10,"div",3),xs(11,"table",13),xs(12,"thead"),xs(13,"tr"),xs(14,"th",14),Ws(15,"Algorithm"),Ts(),xs(16,"th",14),Ws(17,"Pool (click to start mining)"),Ts(),Ts(),Ts(),xs(18,"tbody"),Cs(19,iS,2,2,"ng-template",15),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs(2);qr(6),Zs(" Start mining using ",e.selectedInfo.displayName," by clicking on one of the mining pools below. Please "),qr(13),As("ngForOf",e.selectedInfo.algorithms)}}function oS(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2),Ts(),xs(3,"div",3),xs(4,"table",4),xs(5,"tbody"),xs(6,"tr"),xs(7,"td",5),Ws(8,"Version"),Ts(),xs(9,"td"),Ws(10),Ts(),Ts(),xs(11,"tr"),xs(12,"td"),Ws(13,"Mining devices"),Ts(),xs(14,"td"),Cs(15,QC,3,4,"span",6),Ts(),Ts(),xs(16,"tr"),xs(17,"td"),Ws(18,"Platforms"),Ts(),xs(19,"td"),Cs(20,KC,2,0,"span",7),Cs(21,JC,2,0,"span",7),Ts(),Ts(),xs(22,"tr"),xs(23,"td"),Ws(24,"Algorithms"),Ts(),xs(25,"td"),Cs(26,XC,3,2,"span",8),Ts(),Ts(),Ts(),Ts(),Ts(),Cs(27,rS,20,2,"div",1),Ts()),2&e){const e=Rs();qr(2),Zs("",e.selectedInfo.displayName," with Awesome Miner"),qr(8),Qs(" ",e.selectedInfo.displayName," ",e.selectedInfo.windowsVersion," "),qr(5),As("ngForOf",e.selectedInfo.deviceList),qr(5),As("ngIf",e.selectedInfo.windowsVersion),qr(1),As("ngIf",e.selectedInfo.linuxVersion),qr(5),As("ngForOf",e.selectedInfo.algorithms),qr(1),As("ngIf",e.hasMiningPools)}}function sS(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining with Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Unable to find information about the specified mining software "),Ts(),Ts())}let aS=(()=>{class e{constructor(e,t,n,i,r,o){this.sanitizer=e,this.activatedRoute=t,this.titleService=n,this.metaTagService=i,this.softwareInfoService=o,this.loadFailed=!1,this.hasMiningPools=!1,this.metaTitle="Setup mining software with Awesome Miner",this.metaDescription="Easy mining software setup with Awesome Miner",t.params.subscribe(e=>{e?(this.selectedSoftware=e.software,this.selectedSoftware?(this.selectedSoftware=this.selectedSoftware.trim(),r.init("softwareinfo-"+this.selectedSoftware,this.softwareInfoService.getSoftwareInfo(this.selectedSoftware),e=>{this.selectedInfo=e,this.loadFailed=!this.selectedInfo,this.selectedInfo&&(console.log("Found software: "+this.selectedSoftware),this.selectedInfo.algorithms.forEach(e=>{e.miningPools&&e.miningPools.length>0&&(this.hasMiningPools=!0)}),this.metaTitle=this.selectedInfo.displayName+" with Awesome Miner",this.metaDescription="Start mining with "+this.selectedInfo.displayName+" using Awesome Miner"),this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})},()=>this.loadFailed=!0)):this.loadFailed=!0):this.loadFailed=!0})}sanitize(e){return this.sanitizer.bypassSecurityTrustUrl(e)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}hasPools(e){return e&&e.miningPools.length>0}}return e.\u0275fac=function(t){return new(t||e)(_s(vd),_s(Ip),_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","am-table"],[2,"min-width","120px"],[3,"ngClass",4,"ngFor","ngForOf"],["ngClass","badge badge-primary am-badge",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"ngClass"],["ngClass","badge badge-primary am-badge"],[1,"badge","badge-primary","am-badge",3,"routerLink"],["routerLink","/download"],[1,"table","table-hover","am-table"],["scope","col"],["ngFor","",3,"ngForOf"],[3,"name"],[3,"href"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,oS,28,8,"div",1),Cs(2,sS,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.selectedInfo),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,Eu,Iu,Km],pipes:[ZC],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})(),lS=(()=>{class e{constructor(e){this.http=e,this.SystemOverviewUrl=gb.apiPath+"/cachedprod/SystemOverview"}getSystemOverview(){return this.http.get(this.SystemOverviewUrl)}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function cS(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),xs(2,"a",16),Ws(3),Ts(),Ts(),xs(4,"td"),Ws(5),Ts(),xs(6,"td"),Ws(7),Ts(),xs(8,"td"),Ws(9),Ts(),Ts()),2&e){const e=t.$implicit,n=Rs(2);qr(2),Ns("href",null==e?null:e.url,Qi),As("angularticsLabel",e.hardware),qr(1),Zs("Awesome Miner firmware for ",null==e?null:e.name,""),qr(2),Ys(null==e?null:e.version),qr(2),Zs("",null==e?null:e.miningFee,"%"),qr(2),Ys(n.getFirmwareLicenseInfo(null==e?null:e.firmwareLicense))}}function uS(e,t){if(1&e&&(xs(0,"div"),xs(1,"table",11),xs(2,"thead"),xs(3,"tr"),xs(4,"th",12),Ws(5,"Download firmware ("),xs(6,"u"),Ws(7,"not"),Ts(),Ws(8," for SD-card)"),Ts(),xs(9,"th",13),Ws(10,"Version"),Ts(),xs(11,"th",13),Ws(12,"Mining fee"),Ts(),xs(13,"th",14),Ws(14,"Firmware includes license"),Ts(),Ts(),Ts(),xs(15,"tbody"),Cs(16,cS,10,6,"tr",15),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(16),As("ngForOf",e.systemOverview.asicFirmware.releaseList)}}function dS(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),xs(2,"a",16),Ws(3),Ts(),Ts(),xs(4,"td"),Ws(5),Ts(),xs(6,"td"),Ws(7),Ts(),xs(8,"td"),Ws(9),Ts(),Ts()),2&e){const e=Rs().$implicit,t=Rs(2);qr(2),Ns("href",null==e?null:e.imageUrl,Qi),As("angularticsLabel",e.hardware),qr(1),Zs("SD card image for ",null==e?null:e.name,""),qr(2),Ys(null==e?null:e.version),qr(2),Zs("",null==e?null:e.miningFee,"%"),qr(2),Ys(t.getFirmwareLicenseInfo(null==e?null:e.firmwareLicense))}}function hS(e,t){1&e&&Cs(0,dS,10,6,"tr",3),2&e&&As("ngIf",t.$implicit.imageUrl)}function pS(e,t){if(1&e&&(xs(0,"div"),xs(1,"table",11),xs(2,"thead"),xs(3,"tr"),xs(4,"th",12),Ws(5,"Download SD card image"),Ts(),xs(6,"th",13),Ws(7,"Version"),Ts(),xs(8,"th",13),Ws(9,"Mining fee"),Ts(),xs(10,"th",14),Ws(11,"Firmware includes license"),Ts(),Ts(),Ts(),xs(12,"tbody"),Cs(13,hS,1,1,"ng-template",17),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(13),As("ngForOf",e.systemOverview.asicFirmware.releaseList)}}let mS=(()=>{class e{constructor(e,t,n){this.titleService=e,this.metaTagService=t,n.getSystemOverview().subscribe(e=>{this.systemOverview=e})}ngOnInit(){this.titleService.setTitle("Awesome Miner Firmware for Antminer"),this.metaTagService.updateTag({name:"description",content:"Custom firmware for Antminer to increase efficiency and improve functionality"})}getFirmwareLicenseInfo(e){return e?"Yes - doesn't consume any Awesome Miner license":"No - Consumes an Awesome Miner license"}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd),_s(lS))},e.\u0275cmp=ze({type:e,selectors:[["am-firmware-page"]],decls:197,vars:2,consts:[[1,"container"],[1,"imgSection"],["routerLink","/contact"],[4,"ngIf"],["name","sd"],["href","https://support.awesomeminer.com/support/solutions/articles/35000189959-awesome-miner-antminer-s19-firmware"],["href","https://support.awesomeminer.com/support/solutions/articles/35000145544-awesome-miner-antminer-firmware-installation"],["href","https://support.awesomeminer.com/support/solutions/articles/35000141095-awesome-miner-antminer-firmware-configuration"],["href","https://support.awesomeminer.com/support/solutions/articles/35000146269-awesome-miner-antminer-s9-dual-mode"],["href","https://www.awesomeminer.com/download/setup/FirmwareReleaseNotes.txt"],["href","https://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache"],[1,"table","table-striped","table-responsive",2,"max-width","960px"],[2,"width","380px"],[2,"width","100px"],[2,"width","360px"],[4,"ngFor","ngForOf"],["download","","angulartics2On","click","angularticsAction","DownloadClick","angularticsCategory","Firmware",3,"href","angularticsLabel"],["ngFor","",3,"ngForOf"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Awesome Miner Antminer Firmware"),Ts(),xs(3,"div",1),xs(4,"p"),Ws(5," We are proud to present our custom Antminer Firmware. The custom firmware improves the hashrate performance, increases the power efficiency and provides more features. "),Ts(),xs(6,"h4"),Ws(7,"Supported ASIC miners"),Ts(),xs(8,"ul"),xs(9,"li"),Ws(10,"Antminer S9, S9i, S9j"),Ts(),xs(11,"li"),Ws(12,"Antminer S9 dual mode"),Ts(),xs(13,"li"),Ws(14,"Antminer T9+"),Ts(),xs(15,"li"),Ws(16,"Antminer L3+, L3++"),Ts(),xs(17,"li"),Ws(18,"Antminer S17, S17 Pro"),Ts(),xs(19,"li"),Ws(20,"Antminer S17+"),Ts(),xs(21,"li"),Ws(22,"Antminer T17"),Ts(),xs(23,"li"),Ws(24,"Antminer T17+"),Ts(),xs(25,"li"),Ws(26,"Antminer S19, S19 Pro"),Ts(),xs(27,"li"),Ws(28,"Antminer S19j, S19j Pro"),Ts(),xs(29,"li"),Ws(30,"Antminer T19"),Ts(),Ts(),xs(31,"h4"),Ws(32,"Planned to be supported in the future"),Ts(),xs(33,"ul"),xs(34,"li"),Ws(35,"Innosilicon T2, T3"),Ts(),xs(36,"li"),Ws(37,"Whatsminer M20-series and M30-series"),Ts(),Ts(),Ts(),xs(38,"h4"),Ws(39,"Feature highlight"),Ts(),xs(40,"div"),xs(41,"ul"),xs(42,"li"),Ws(43,"Improved hashrate performance - on average an increase of 10%+ can be expected for Antminer S9 and 40%+ for Antminer S17"),Ts(),xs(44,"li"),Ws(45,"Improved power efficiency by tuning of each individual ASIC chip"),Ts(),xs(46,"li"),Ws(47,"Both overclocking and underclocking are supported"),Ts(),xs(48,"li"),Ws(49,"Easy to use - select a target hashrate and the firmware will take care of all details"),Ts(),xs(50,"li"),Ws(51,"Flexible by allowing manual tuning and many configuration settings"),Ts(),xs(52,"li"),Ws(53,"Antivirus to prevent and recover from virus attacks"),Ts(),xs(54,"li"),Ws(55,"Very low power usage (25W) in case the Internet connection is lost - compared to the Bitmain firmware consuming maximum power"),Ts(),xs(56,"li"),Ws(57,"Immersion cooling support"),Ts(),Ts(),Ts(),xs(58,"h4"),Ws(59,"Awesome Miner integration"),Ts(),xs(60,"div"),xs(61,"ul"),xs(62,"li"),Ws(63,"Install and upgrade firmware via Awesome Miner"),Ts(),xs(64,"li"),Ws(65,"Display of current power usage"),Ts(),xs(66,"li"),Ws(67,"Display of ASIC chip performance and details"),Ts(),xs(68,"li"),Ws(69,"Find the physical miner by initiating a LED flash"),Ts(),xs(70,"li"),Ws(71,"Put the Antminer in sleep mode where it will consume very little power"),Ts(),xs(72,"li"),Ws(73,"Antivirus scan"),Ts(),xs(74,"li"),Ws(75,"Change mining profile to allow overclocking and underclocking via Awesome Miner"),Ts(),xs(76,"li"),Ws(77,"Enable AsicBoost via the mining profile configuration in Awesome Miner"),Ts(),xs(78,"li"),Ws(79,"Backup and restore of firmware configuration settings"),Ts(),xs(80,"li"),Ws(81,"All Antminer features in Awesome Miner are available to use with the Awesome Miner Antminer Firmware"),Ts(),xs(82,"li"),Ws(83,"All operations can be performed on a large number of miners at once"),Ts(),xs(84,"li"),Ws(85,"No Awesome Miner licenses required for miners running firmware versions with a 2.8% mining fee"),Ts(),Ts(),Ts(),xs(86,"h4"),Ws(87,"Mining fee"),Ts(),xs(88,"div"),xs(89,"ul"),xs(90,"li"),Ws(91,"The firmware has a mining fee of either 1.8% or 2.8% (in the past we listed this as 2% and 3% to simplify, but the actual average fee was lower)"),Ts(),xs(92,"li"),Ws(93,"The mining fee is based on a parallel mining concept to avoid any interruptions to the normal mining"),Ts(),xs(94,"li"),Ws(95,"The firmware with a 2.8% mining fee includes an Awesome Miner license and doesn't consume any of the licenses available in Awesome Miner. This makes it possible to run Awesome Miner and Cloud Services without paying anything for the license as long as the firmware with a 2.8% mining fee is being used."),Ts(),Ts(),Ts(),xs(96,"h4"),Ws(97,"Download and install"),Ts(),xs(98,"p"),Ws(99," It's recommended to install the firmware via Awesome Miner. Awesome Miner can install the Awesome Miner firmware on compatible Antminers, including Antminers with disabled SSH access and firmware signature validation enabled. The only exceptions are: "),Ts(),xs(100,"ul"),xs(101,"li"),Ws(102,"Antminer L3+ running Bitmain firmware from July 2019 - requires SD-card to install"),Ts(),xs(103,"li"),Ws(104,"Antminer S17/T17 running Bitmain firmware from December 2019 - requires SD-card to install"),Ts(),xs(105,"li"),Ws(106,"Antminer S17+/T17+ - requires SD-card to install"),Ts(),xs(107,"li"),Ws(108,"Antminer S19/T19 - the firmware must always run directly from the SD-card"),Ts(),Ts(),xs(109,"p"),Ws(110," To install the firmware via Awesome Miner, go to the toolbar: Tools -> ASIC Tools -> Update firmware. The firmware can be selected from a list and Awesome Miner will automatically download and install the firmware on all selected miners. "),Ts(),xs(111,"h4"),Ws(112,"Important steps after the installation"),Ts(),xs(113,"ul"),xs(114,"li"),Ws(115,"It's important to select a Mining Profile (the hashrate level you want), otherwise there will not be any significant hashrate improvements. The mining profile can either be set via Awesome Miner or the Antminer web interface. "),xs(116,"ul"),xs(117,"li"),Ws(118,"Awesome Miner: Go to the toolbar: Tools -> ASIC Tools -> Firmware mining profile"),Ts(),xs(119,"li"),Ws(120,"Antminer web interface: Go to Miner Configuration -> Mining profiles"),Ts(),Ts(),Ts(),xs(121,"li"),Ws(122,"After selecting a Mining Profile, the miner will restart itself a number of times over the next few hours. This is expected and part of the optimization process."),Ts(),Ts(),xs(123,"p"),Ws(124," Please "),xs(125,"a",2),Ws(126,"contact us"),Ts(),Ws(127," for any questions about the installation. "),Ts(),Cs(128,uS,17,1,"div",3),Ps(129,"a",4),xs(130,"h4"),Ws(131,"SD card images"),Ts(),xs(132,"p"),xs(133,"b"),Ws(134,"Antminer S19/T19:"),Ts(),Ws(135,' The firmware must run directly from the SD card and cannot be installed on the Antminer. For S19J and S19J Pro it\'s important to identify the control board type ("bb" for BeagleBone). Learn more in the '),xs(136,"a",5),Ws(137,"Antminer S19 firmware guide"),Ts(),Ts(),xs(138,"p"),xs(139,"b"),Ws(140,"Other Antminers:"),Ts(),Ws(141," For Antminers where it isn't possible to install the firmware due to the Bitmain signature validation it's possible to flash the firmware to the Antminer using an SD-card. For detailed instructions, "),xs(142,"a",6),Ws(143,"see the documentation for installing Awesome Miner Antminer firmware"),Ts(),Ws(144,". "),Ts(),Cs(145,pS,14,1,"div",3),xs(146,"h4"),Ws(147,"Documentation"),Ts(),xs(148,"div"),xs(149,"ul"),xs(150,"li"),xs(151,"a",6),Ws(152,"Antminer firmware - Installation"),Ts(),Ts(),xs(153,"li"),xs(154,"a",7),Ws(155,"Antminer firmware - Configuration"),Ts(),Ts(),xs(156,"li"),xs(157,"a",8),Ws(158,"Antminer S9 Dual mode"),Ts(),Ts(),xs(159,"li"),xs(160,"a",5),Ws(161,"Antminer S19 firmware"),Ts(),Ts(),xs(162,"li"),xs(163,"a",9),Ws(164,"Firmware version change log"),Ts(),Ts(),Ts(),Ts(),xs(165,"h4"),Ws(166,"FAQ"),Ts(),xs(167,"div"),xs(168,"p"),xs(169,"b"),Ws(170,"After the firmware upgrade, why isn't the Antminer web interface isn't working correctly?"),Ts(),Ts(),xs(171,"p"),Ws(172,"Please hold down the Ctrl key and press the Reload button in the web browser or use the key combination Ctrl+F5. This will clear any cache of the old firmware user interface and resolve the problem. For more information see the "),xs(173,"a",10),Ws(174,"Wikipedia guide about fully reloading a web page"),Ts(),Ws(175,". "),Ts(),Ts(),xs(176,"div"),xs(177,"p"),xs(178,"b"),Ws(179,"Why is the miner restarting itself?"),Ts(),Ts(),xs(180,"p"),Ws(181," If the Mining Profile is configured for Full Reboot, the miner can reboot it self in order to better tune or correct poor performing mining chips. It's expected that a miner will reboot a few times when using the firmware for the first time. "),Ts(),Ts(),xs(182,"div"),xs(183,"p"),xs(184,"b"),Ws(185,"What is the mining fee?"),Ts(),Ts(),xs(186,"p"),Ws(187," The firmware has a built-in mining fee to support the development of the firmware. The goal of the firmware is to provide significantly better hashrate performance, more features and improved Awesome Miner integration, making the mining fee very affordable. "),Ts(),xs(188,"p"),Ws(189," The mining fee is either 1.8% or 2.8% depending on firmware. Example: With a total hashrate of 15TH/s and 1.8% mining fee, no more than 0.27TH/s will be used for the mining fee. "),Ts(),xs(190,"p"),Ws(191," The mining fee consist of two pools named DevFee that are running mining in parallel. These two pools are working with a very low difficulty level, resulting in a high number of accepted shares. A high number of shares doesn't indicate that the DevFee pools are taking all hashrate - it's a result of the low difficulty level for each of the shares. "),Ts(),Ts(),xs(192,"p"),Ws(193," Please "),xs(194,"a",2),Ws(195,"contact us"),Ts(),Ws(196," for additional information about the firmware. "),Ts(),Ts()),2&e&&(qr(128),As("ngIf",t.systemOverview),qr(17),As("ngIf",t.systemOverview))},directives:[Km,Uu,Eu,Qw],encapsulation:2}),e})();function fS(e,t){if(1&e&&(xs(0,"span",31),Ws(1),Ts()),2&e){const e=Rs(2);qr(1),Zs("$",e.monthlyPrice," / month")}}function gS(e,t){if(1&e&&(xs(0,"span",31),Ws(1),Ts()),2&e){const e=Rs(2);qr(1),Zs("$",e.yearlyTotalPrice," / year")}}function bS(e,t){if(1&e&&(xs(0,"span"),Ws(1),Ts()),2&e){const e=Rs(2);qr(1),Zs(" (includes volume discount: ",e.volumeDiscountPercent,"%)")}}const wS=function(){return{topic:"sales"}};function vS(e,t){1&e&&(xs(0,"div",32),Ws(1,"Please "),xs(2,"a",29),Ws(3,"contact us"),Ts(),Ws(4," to place an order for this number of miners"),Ts()),2&e&&(qr(2),As("queryParams",vl(1,wS)))}function yS(e,t){if(1&e&&(xs(0,"div",32),Ws(1),kl(2,"i18nPlural"),Ts()),2&e){const e=Rs(3);qr(1),Zs("Please select a minimum of ",Tl(2,1,e.minMinerCount,e.subscriptionService.minerMessageMapping),"")}}function CS(e,t){if(1&e&&(xs(0,"div",20),xs(1,"div",24),Cs(2,vS,5,2,"div",26),Cs(3,yS,3,4,"div",26),Ts(),Ts()),2&e){const e=Rs(2);qr(2),As("ngIf",e.fs.minerCount.value>e.subscriptionService.maxMinerCount),qr(1),As("ngIf",e.fs.minerCount.value0),qr(6),As("ngIf",e.fs.email.invalid&&e.fs.email.touched),qr(3),As("disabled",e.subscriptionForm.invalid||e.inProgress),qr(1),As("ngIf",e.subscriptionType!=e.enumSubscriptionType.None),qr(1),As("ngIf",e.subscriptionType==e.enumSubscriptionType.None),qr(1),As("ngIf",e.inProgress),qr(3),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionFound")),qr(1),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionCheckError")),qr(1),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionError")),qr(34),As("queryParams",vl(42,wS)),qr(8),As("queryParams",vl(43,wS))}}function ES(e,t){if(1&e&&(xs(0,"h4"),Ws(1,"Order reference: "),xs(2,"b"),Ws(3),Ts(),Ts()),2&e){const e=Rs(2);qr(3),Ys(e.fastspringCompleted.reference)}}function FS(e,t){if(1&e&&(xs(0,"div",36),Cs(1,ES,4,1,"h4",18),xs(2,"p"),Ws(3," Thank you for signing up for an Awesome Miner subscription! "),Ts(),xs(4,"p"),Ws(5," You will receive your registration code by e-mail within a few minutes. If you didn't receive this e-mail message, please check your spam folder. "),Ts(),xs(6,"p"),Ws(7," If you have any questions, please "),xs(8,"a",29),Ws(9,"contact us"),Ts(),Ws(10,". "),Ts(),Ts()),2&e){const e=Rs();qr(1),As("ngIf",null!=e.fastspringCompleted),qr(7),As("queryParams",vl(2,wS))}}let US=(()=>{class e{constructor(e,t,n,i,r,o,s,a,l){this.route=e,this.router=t,this.subscriptionService=n,this.couponService=i,this.formBuilder=r,this.changeDetectorRef=o,this.ngZone=s,this.titleService=a,this.metaTagService=l,this.enumSubscriptionType=pb,this.fastspringCompleted=null,this.subscriptionType=pb.Monthly}get couponDiscountPercent(){return this.couponService.couponDiscount}get minMinerCount(){return this.subscriptionType==pb.Yearly?this.subscriptionService.minMinerCount:this.subscriptionService.minMinerCountMonthly}ngOnInit(){this.titleService.setTitle("Awesome Miner subscription"),this.metaTagService.updateTag({name:"description",content:"Buy Awesome Miner product subscription"}),nv.addStoreFrontLibrary(e=>this.storeFrontCallback(e)),this.subscriptionForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]],minerCount:[this.subscriptionService.minMinerCountMonthly,[Uf.required,Uf.max(this.subscriptionService.maxMinerCount),iv(()=>this.subscriptionType==pb.Yearly,Uf.min(this.subscriptionService.minMinerCount)),iv(()=>this.subscriptionType!=pb.Yearly,Uf.min(this.subscriptionService.minMinerCountMonthly))]]}),this.fs.minerCount.valueChanges.subscribe(e=>{this.updatePrice()}),this.updatePrice();let e=this.route.snapshot.queryParams["coupon-m"],t=this.route.snapshot.queryParams["coupon-y"];e&&e.length>0&&(this.couponService.getCoupon(e).subscribe(n=>{this.couponService.setCoupons(e,t,n),this.updatePrice()}),this.router.navigate([this.route.routeConfig.path],{queryParams:{}}))}ngOnDestroy(){nv.removeStoreFrontCallback()}storeFrontCallback(e){if(null!=e){console.log("Fastspring order completed: ",e),this.fastspringCompleted=e,this.formCompleted=!0;try{this.ngZone.run(()=>{this.changeDetectorRef.detectChanges()})}catch(t){console.log("Failed to trigger detectChanges",t)}}}updatePrice(){this.fs.minerCount.value>this.subscriptionService.maxCalcMinerCount?this.fs.minerCount.setValue(this.subscriptionService.maxCalcMinerCount):(this.monthlyPrice=this.subscriptionService.calculatePrice(this.fs.minerCount.value,!0,this.couponDiscountPercent),this.yearlyPrice=this.subscriptionService.calculatePrice(this.fs.minerCount.value,!1,this.couponDiscountPercent),this.yearlyTotalPrice=this.subscriptionService.calculateYearlyPrice(this.fs.minerCount.value,!1,this.couponDiscountPercent),this.volumeDiscountPercent=this.subscriptionService.getVolumeDiscount(this.fs.minerCount.value))}get fs(){return this.subscriptionForm.controls}createProductSubscriptionClick(){let e=this.subscriptionForm.value.email;null==e||e.length<5?console.log("No email was specified"):this.subscriptionType==pb.None?this.createFreeProductSubscription(e):this.showCheckoutClick(e)}setSubscriptionType(e){this.subscriptionType=e,e==pb.None&&this.fs.minerCount.invalid&&this.fs.minerCount.setValue(this.subscriptionService.minMinerCountMonthly),this.fs.minerCount.updateValueAndValidity()}showCheckoutClick(e){this.inProgress=!0,this.subscriptionService.checkProductSubscription(e).subscribe(t=>{this.inProgress=!1,null==t||t.hasSubscription?this.subscriptionForm.setErrors({ProductSubscriptionFound:!0}):fastspring.builder.push({reset:!0,products:[{path:this.subscriptionType==pb.Yearly?"awesome-miner-subscription-year":"awesome-miner-subscription",quantity:this.subscriptionForm.value.minerCount}],coupon:this.subscriptionType==pb.Yearly?this.couponService.couponYearly:this.couponService.couponMonthly,paymentContact:{email:e},tags:{email:e},checkout:!0})},e=>{this.inProgress=!1,this.subscriptionForm.setErrors({ProductSubscriptionCheckError:!0}),console.log("Failed to send request",e)})}createFreeProductSubscription(e){this.inProgress=!0,this.subscriptionService.createProductSubscription(e).subscribe(e=>{this.inProgress=!1,this.formCompleted=!0},e=>{this.inProgress=!1,this.subscriptionForm.setErrors(302==e.status?{ProductSubscriptionFound:!0}:{ProductSubscriptionError:!0}),console.log("Failed to send ProductSubscription request",e)})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Qm),_s(sv),_s(av),_s(rb),_s(Ya),_s(Xl),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-subscription-confirm"]],decls:5,vars:2,consts:[[1,"container"],[1,"headerTitle"],["id","step1",4,"ngIf"],["id","step2",4,"ngIf"],["id","step1"],[3,"formGroup"],[1,"row"],[1,"col-xl-3","col-md-6","col-12","colSeparator"],["editionTitle","Monthly",1,"card-hover",3,"price","features","isSelected","altText","click"],["editionTitle","Yearly",1,"card-hover",3,"price","features","isSelected","altText","click"],["editionTitle","Antminer Firmware","price","2.8%",1,"card-hover",3,"features","isSelected","click"],["editionTitle","Without signing up","price","Free",1,"card-disabled",3,"features"],[1,"form-group","row",3,"ngClass"],["for","minerCount",1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"col-lg-2","col-md-4"],["type","number","name","minerCount","id","minerCount","formControlName","minerCount",1,"form-control",3,"min","max"],[1,"col-md-8","col-form-label"],["class","font-weight-bold",4,"ngIf"],[4,"ngIf"],["class","form-group row",4,"ngIf"],[1,"form-group","row"],["for","email",1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"col-lg-6","col-md-8"],["type","text","id","email","name","email","formControlName","email",1,"form-control"],[1,"offset-lg-2","col-lg-10","offset-md-4","col-md-8"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],["style","color:red",4,"ngIf"],["routerLink","/upgrade","role","button",1,"btn","btn-success","ngMainButton"],["routerLink","/antminerfirmware"],["routerLink","/contact",3,"queryParams"],["routerLink","/recoverlicense"],[1,"font-weight-bold"],[2,"color","red"],["for","coupon",1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],[1,"col-lg-2","col-md-4","col-form-label","font-weight-bold"],["routerLink","/upgrade"],["id","step2"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3",1),Ws(2,"Awesome Miner subscription"),Ts(),Cs(3,OS,123,44,"div",2),Cs(4,FS,11,3,"div",3),Ts()),2&e&&(qr(3),As("ngIf",!t.formCompleted),qr(1),As("ngIf",t.formCompleted))},directives:[Uu,Ug,ng,jg,Sv,Iu,Dg,Pf,tg,zg,kv,Km,Qb],pipes:[ju],styles:[""]}),e})();function LS(e,t){if(1&e&&(xs(0,"option",37),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Qs("",e.count," miners\xa0\xa0\xa0\xa0($",e.priceAnnual,")\xa0\xa0")}}function DS(e,t){if(1&e&&(xs(0,"option",37),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Qs("",e.count," miners\xa0\xa0\xa0\xa0($",e.priceMonthly,")\xa0\xa0")}}function RS(e,t){if(1&e&&(xs(0,"option",37),Ws(1),Ts()),2&e){const e=t.$implicit;As("ngValue",e),qr(1),Ys(e.count)}}function NS(e,t){if(1&e&&(xs(0,"div",38),xs(1,"label",39),Ws(2),Ps(3,"br"),Ws(4),Ts(),Ts()),2&e){const e=Rs();qr(2),Zs("Price billed annually: $",null==e.selectedCloudPrice?null:e.selectedCloudPrice.priceAnnual," / month"),qr(2),Zs("Price billed monthly: $",null==e.selectedCloudPrice?null:e.selectedCloudPrice.priceMonthly," / month")}}const VS=function(){return{edition:"professionalsubscription"}},jS=function(){return{edition:"premiumsubscription"}},HS=function(){return{edition:"enterprisesubscription"}},zS=function(e){return{edition:e}},BS=function(){return{edition:"professionalsubscription_m"}},$S=function(){return{edition:"premiumsubscription_m"}},qS=function(){return{edition:"enterprisesubscription_m"}},GS=function(){return{topic:"sales"}};let WS=(()=>{class e{constructor(e,t,n){this.titleService=t,this.metaTagService=n,this.lgCloudPrices=[],this.selectedCloudPrice=null,this.ultimateCloudPrices=[],this.selectedUltimateAnnualPrice=null,this.selectedUltimateMonthlyPrice=null,this.lgCloudPrices=e.lgCloudPrices,this.ultimateCloudPrices=e.ultimateCloudPrices,this.selectedUltimateAnnualPrice=this.ultimateCloudPrices[0],this.selectedUltimateMonthlyPrice=this.ultimateCloudPrices[0]}ngOnInit(){this.titleService.setTitle("Awesome Miner Cloud Services sign up"),this.metaTagService.updateTag({name:"description",content:"Sign up to Cloud Services"})}}return e.\u0275fac=function(t){return new(t||e)(_s(yf),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-buy-cloud-page"]],decls:328,vars:32,consts:[[1,"container"],["name","buy"],["routerLink","/signup"],[1,"table","table-striped","table-responsive",2,"max-width","1110px"],[2,"width","455px"],[2,"width","140px","text-align","center"],[2,"width","200px","text-align","center","min-width","200px"],[1,"featureCheck"],["alt","yes",1,"fas","fa-check-circle"],[2,"margin-top","5px"],[2,"text-align","center"],[1,"buyButtonArea"],[1,"buyButtonContainer"],[2,"margin-top","14px"],["routerLink","/cloudconfirm","role","button",1,"btn","btn-primary",3,"queryParams"],["id","lblUltimatePriceAnnual"],[2,"margin","0 auto","width","125px","margin-top","10px","margin-bottom","10px"],["id","cmbUltimateCountAnnual",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],["id","btnSubscribeUltimateAnnual","routerLink","/cloudconfirm","role","button",1,"btn","btn-primary",3,"queryParams"],[2,"padding-left","12px","padding-right","12px"],["id","lblUltimatePriceMonthly"],["id","cmbUltimateCountMonthly",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],["id","btnSubscribeUltimateMonthly","routerLink","/cloudconfirm","role","button",1,"btn","btn-primary",3,"queryParams"],["routerLink","/cloudupgrade","role","button",1,"btn","btn-primary","ngMainButton"],[1,"imgSection"],["routerLink","/contact",3,"queryParams"],[1,"table","table-striped","table-responsive",2,"max-width","850px"],[2,"width","250px"],[2,"width","300px"],[1,"form-group","row",2,"margin-top","10px"],[1,"col-md-3"],[1,"col-form-label","font-weight-bold"],[1,"col-md-2"],["id","minercount","required","",1,"form-control","form-control-sm",3,"ngModel","ngModelChange"],["disabled","",3,"ngValue"],["class","col-md-6","style","margin-top:-4px",4,"ngIf"],[3,"ngValue"],[1,"col-md-6",2,"margin-top","-4px"],["id","price",1,"font-weight-bold"]],template:function(e,t){1&e&&(xs(0,"div",0),Ps(1,"a",1),xs(2,"h3"),Ws(3,"Buy Cloud Services and Product Support subscription"),Ts(),xs(4,"p"),Ws(5," Cloud Services subscription is an optional service for users with a Awesome Miner license purchased as a one-time cost. Cloud Services is already included with the "),xs(6,"a",2),Ws(7,"Awesome Miner subscription"),Ts(),Ws(8,". "),Ts(),xs(9,"p"),Ws(10," A subscription can either be billed annually or per month. The option to be billed annually gives a lower cost per month compared to the option to be billed per month. All prices are listed per month for easier comparison. For the option to be billed annually, every payment will be for 12 months at a time. "),Ts(),xs(11,"table",3),xs(12,"thead"),xs(13,"tr"),Ps(14,"th",4),xs(15,"th",5),Ws(16,"Professional subscription"),Ts(),xs(17,"th",5),Ws(18,"Premium subscription"),Ts(),xs(19,"th",5),Ws(20,"Enterprise subscription"),Ts(),xs(21,"th",6),Ws(22,"Ultimate subscription"),Ps(23,"br"),Ws(24,"100 - 900"),Ts(),Ts(),Ts(),xs(25,"tbody"),xs(26,"tr"),xs(27,"td"),xs(28,"b"),Ws(29,"Free for 30 days"),Ts(),Ps(30,"br"),xs(31,"small"),Ws(32," All subscriptions, except Ultimate 400 and above, starts with a 30 day period for free. You can cancel the subscription at any time during the first 30 days to avoid any charges. "),Ts(),Ts(),xs(33,"td",7),Ps(34,"i",8),Ts(),xs(35,"td",7),Ps(36,"i",8),Ts(),xs(37,"td",7),Ps(38,"i",8),Ts(),xs(39,"td",7),Ps(40,"i",8),Ts(),Ts(),xs(41,"tr"),xs(42,"td"),xs(43,"b"),Ws(44,"Monitor and Manage via Cloud"),Ts(),Ps(45,"br"),xs(46,"small"),Ws(47," Manage and monitor your local mining operations via the web interface hosted in the cloud. "),Ts(),Ts(),xs(48,"td",7),Ps(49,"i",8),Ts(),xs(50,"td",7),Ps(51,"i",8),Ts(),xs(52,"td",7),Ps(53,"i",8),Ts(),xs(54,"td",7),Ps(55,"i",8),Ts(),Ts(),xs(56,"tr"),xs(57,"td"),xs(58,"b"),Ws(59,"Product support"),Ts(),Ps(60,"br"),xs(61,"small"),Ws(62," Customers with a subscription will be given product support for both Awesome Miner and the Cloud Services. "),Ts(),Ts(),xs(63,"td",7),Ps(64,"i",8),Ts(),xs(65,"td",7),Ps(66,"i",8),Ts(),xs(67,"td",7),Ps(68,"i",8),Ts(),xs(69,"td",7),Ps(70,"i",8),xs(71,"div",9),xs(72,"small"),Ws(73,"Prioritized support"),Ts(),Ts(),Ts(),Ts(),xs(74,"tr"),xs(75,"td"),xs(76,"b"),Ws(77,"Notify if the Awesome Miner application is unavailable"),Ts(),Ps(78,"br"),xs(79,"small"),Ws(80," Monitor the heartbeat of the Awesome Miner application to provide notifications for network or power failures. "),Ts(),Ts(),Ps(81,"td"),xs(82,"td",7),Ps(83,"i",8),Ts(),xs(84,"td",7),Ps(85,"i",8),Ts(),xs(86,"td",7),Ps(87,"i",8),Ts(),Ts(),xs(88,"tr"),xs(89,"td"),xs(90,"b"),Ws(91,"SMS notifications"),Ts(),Ps(92,"br"),xs(93,"small"),Ws(94," The specified number of SMS messages are included in the subscription. Telegram notifications are not limited. "),Ts(),Ts(),xs(95,"td",10),xs(96,"h4"),Ws(97,"10"),Ts(),Ws(98,"per month"),Ts(),xs(99,"td",10),xs(100,"h4"),Ws(101,"20"),Ts(),Ws(102,"per month"),Ts(),xs(103,"td",10),xs(104,"h4"),Ws(105,"40"),Ts(),Ws(106,"per month"),Ts(),xs(107,"td",10),xs(108,"h4"),Ws(109,"60"),Ts(),Ws(110,"per month"),Ts(),Ts(),xs(111,"tr"),xs(112,"td"),xs(113,"b"),Ws(114,"Additional user accounts"),Ts(),Ps(115,"br"),xs(116,"small"),Ws(117,"Create additional user accounts for web access and define which miners each account can access"),Ps(118,"br"),Ts(),Ts(),xs(119,"td",10),Ps(120,"h4"),Ts(),xs(121,"td",10),Ps(122,"h4"),Ts(),xs(123,"td",10),xs(124,"h4"),Ws(125,"2"),Ts(),Ts(),xs(126,"td",10),xs(127,"h4"),Ws(128,"5"),Ts(),xs(129,"h6"),Ws(130,"(For every 100 miners)"),Ts(),Ts(),Ts(),xs(131,"tr"),xs(132,"td"),xs(133,"b"),Ws(134,"Maxiumum number of miners"),Ts(),Ps(135,"br"),xs(136,"small"),Ws(137,"A limitation of how many miners that can be displayed."),Ps(138,"br"),Ts(),Ts(),xs(139,"td",10),xs(140,"h4"),Ws(141,"10"),Ts(),Ts(),xs(142,"td",10),xs(143,"h4"),Ws(144,"20"),Ts(),Ts(),xs(145,"td",10),xs(146,"h4"),Ws(147,"40"),Ts(),Ts(),xs(148,"td",10),xs(149,"h4"),Ws(150,"100 - 900"),Ts(),Ts(),Ts(),xs(151,"tr"),xs(152,"td"),xs(153,"b"),Ws(154,"Price - Billed annually"),Ts(),Ps(155,"br"),xs(156,"small"),xs(157,"b"),Ws(158,"Billed annually"),Ts(),Ws(159," for 12 months at a time."),Ps(160,"br"),Ws(161," VAT will be added for customers in EU and other markets where required. "),Ps(162,"br"),Ps(163,"br"),Ws(164," Pay with your credit card, PayPal account, Amazon account or Bank transfer using the FastSpring payment processor. "),Ts(),Ts(),xs(165,"td"),xs(166,"div",11),xs(167,"h4"),xs(168,"b"),Ws(169,"$4"),Ts(),Ts(),Ws(170,"per month "),xs(171,"div",12),xs(172,"div",13),xs(173,"a",14),Ws(174,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(175,"td"),xs(176,"div",11),xs(177,"h4"),xs(178,"b"),Ws(179,"$8"),Ts(),Ts(),Ws(180,"per month "),xs(181,"div",12),xs(182,"div",13),xs(183,"a",14),Ws(184,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(185,"td"),xs(186,"div",11),xs(187,"h4"),xs(188,"b"),Ws(189,"$16"),Ts(),Ts(),Ws(190,"per month "),xs(191,"div",12),xs(192,"div",13),xs(193,"a",14),Ws(194,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(195,"td"),xs(196,"div",11),xs(197,"h4"),xs(198,"b"),Ws(199,"$"),xs(200,"span",15),Ws(201),Ts(),Ts(),Ts(),Ws(202," per month "),xs(203,"div",16),xs(204,"select",17),Us("ngModelChange",function(e){return t.selectedUltimateAnnualPrice=e}),Cs(205,LS,2,3,"option",18),Ts(),Ts(),xs(206,"div",12),xs(207,"div",13),xs(208,"a",19),Ws(209),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(210,"tr"),xs(211,"td"),xs(212,"b"),Ws(213,"Price - Billed monthly"),Ts(),Ps(214,"br"),xs(215,"small"),xs(216,"b"),Ws(217,"Billed monthly"),Ts(),Ws(218," for 1 month at a time."),Ps(219,"br"),Ws(220," VAT will be added for customers in EU and other markets where required. "),Ps(221,"br"),Ps(222,"br"),Ws(223," Pay with your credit card, PayPal account, Amazon account or Bank transfer using the FastSpring payment processor. "),Ts(),Ts(),xs(224,"td"),xs(225,"div",11),xs(226,"h4"),xs(227,"b"),Ws(228,"$5"),Ts(),Ts(),Ws(229,"per month "),xs(230,"div",12),xs(231,"div",13),xs(232,"a",14),Ws(233,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(234,"td"),xs(235,"div",11),xs(236,"h4"),xs(237,"b"),Ws(238,"$10"),Ts(),Ts(),Ws(239,"per month "),xs(240,"div",12),xs(241,"div",13),xs(242,"a",14),Ws(243,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(244,"td"),xs(245,"div",11),xs(246,"h4"),xs(247,"b"),Ws(248,"$20"),Ts(),Ts(),Ws(249,"per month "),xs(250,"div",12),xs(251,"div",13),xs(252,"a",14),Ws(253,"Subscribe"),Ts(),Ts(),Ts(),Ts(),Ts(),xs(254,"td",20),xs(255,"div",11),xs(256,"h4"),xs(257,"b"),Ws(258,"$"),xs(259,"span",21),Ws(260),Ts(),Ts(),Ts(),Ws(261," per month "),xs(262,"div",16),xs(263,"select",22),Us("ngModelChange",function(e){return t.selectedUltimateMonthlyPrice=e}),Cs(264,DS,2,3,"option",18),Ts(),Ts(),xs(265,"div",12),xs(266,"div",13),xs(267,"a",23),Ws(268),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),xs(269,"h3"),Ws(270,"Upgrade your subscription"),Ts(),xs(271,"p"),Ws(272," You can upgrade your subscription to the next level with support for more miners, for example from Professional Subscription to Premium Subscription. Please use the Upgrade button below to continue. "),Ts(),xs(273,"p"),xs(274,"a",24),Ws(275,"Upgrade subscription"),Ts(),Ts(),xs(276,"h3"),Ws(277,"Cloud Services for more than 900 miners"),Ts(),xs(278,"div",25),xs(279,"p"),Ws(280," To order a subscription for 1,000 miners or more, please "),xs(281,"a",26),Ws(282,"contact us"),Ts(),Ws(283," for more information. "),Ts(),xs(284,"table",27),xs(285,"thead"),xs(286,"tr"),xs(287,"th",28),Ws(288,"Number of miners"),Ts(),xs(289,"th",29),Ws(290,"Price - Billed annually"),Ts(),xs(291,"th",29),Ws(292,"Price - Billed monthly"),Ts(),Ts(),Ts(),xs(293,"tbody"),xs(294,"tr"),xs(295,"td"),Ws(296,"First 300 miners"),Ts(),xs(297,"td"),Ws(298,"$100 / month in total"),Ts(),xs(299,"td"),Ws(300,"$120 / month in total"),Ts(),Ts(),xs(301,"tr"),xs(302,"td"),Ws(303,"400 - 1000 miners"),Ts(),xs(304,"td"),Ws(305,"$25 / month per 100 miners"),Ts(),xs(306,"td"),Ws(307,"$30 / month per 100 miners"),Ts(),Ts(),xs(308,"tr"),xs(309,"td"),Ws(310,"After 1000 miners"),Ts(),xs(311,"td"),Ws(312,"$20 / month per 100 miners"),Ts(),xs(313,"td"),Ws(314,"$25 / month per 100 miners"),Ts(),Ts(),Ts(),Ts(),Ws(315," VAT will be added for customers in EU and other markets where required. "),xs(316,"h4"),Ws(317,"Calculate Cloud Services subscription cost for a large number of miners"),Ts(),xs(318,"div",30),xs(319,"div",31),xs(320,"label",32),Ws(321,"Number of miners:"),Ts(),Ts(),xs(322,"div",33),xs(323,"select",34),Us("ngModelChange",function(e){return t.selectedCloudPrice=e}),xs(324,"option",35),Ws(325,"Select"),Ts(),Cs(326,RS,2,2,"option",18),Ts(),Ts(),Cs(327,NS,5,2,"div",36),Ts(),Ts(),Ts()),2&e&&(qr(173),As("queryParams",vl(21,VS)),qr(10),As("queryParams",vl(22,jS)),qr(10),As("queryParams",vl(23,HS)),qr(8),Ys(null==t.selectedUltimateAnnualPrice?null:t.selectedUltimateAnnualPrice.priceAnnual),qr(3),As("ngModel",t.selectedUltimateAnnualPrice),qr(1),As("ngForOf",t.ultimateCloudPrices),qr(3),As("queryParams",yl(24,zS,t.selectedUltimateAnnualPrice.linkAnnual)),qr(1),Zs("Subscribe Ultimate ",null==t.selectedUltimateAnnualPrice?null:t.selectedUltimateAnnualPrice.count,""),qr(23),As("queryParams",vl(26,BS)),qr(10),As("queryParams",vl(27,$S)),qr(10),As("queryParams",vl(28,qS)),qr(8),Ys(null==t.selectedUltimateMonthlyPrice?null:t.selectedUltimateMonthlyPrice.priceMonthly),qr(3),As("ngModel",t.selectedUltimateMonthlyPrice),qr(1),As("ngForOf",t.ultimateCloudPrices),qr(3),As("queryParams",yl(29,zS,t.selectedUltimateMonthlyPrice.linkMonthly)),qr(1),Zs("Subscribe Ultimate ",null==t.selectedUltimateMonthlyPrice?null:t.selectedUltimateMonthlyPrice.count,""),qr(13),As("queryParams",vl(31,GS)),qr(42),As("ngModel",t.selectedCloudPrice),qr(1),As("ngValue",null),qr(2),As("ngForOf",t.lgCloudPrices),qr(1),As("ngIf",null!==t.selectedCloudPrice))},directives:[Km,qg,tg,Fg,Eu,Jg,Gg,Qg,Uu],styles:[""]}),e})();function YS(e,t){if(1&e&&(xs(0,"span",10),kl(1,"deviceTypeStyle"),Ws(2),Ts()),2&e){const e=t.$implicit;Vs("ngClass","badge badge-",xl(1,2,e)," am-badge am-badge-min"),qr(2),Ys(e)}}function ZS(e,t){1&e&&(xs(0,"span",11),Ws(1,"Windows"),Ts())}function QS(e,t){1&e&&(xs(0,"span",11),Ws(1,"Linux"),Ts())}function KS(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),xs(2,"a",4),Ws(3),Ts(),Ts(),xs(4,"td"),Ws(5),Ts(),xs(6,"td"),Cs(7,YS,3,4,"span",5),Ts(),xs(8,"td",6),Cs(9,ZS,2,0,"span",7),Cs(10,QS,2,0,"span",7),Ts(),xs(11,"td",6),xs(12,"a",8),Ps(13,"i",9),Ts(),Ts(),Ts()),2&e){const e=t.$implicit;qr(2),Vs("routerLink","/software/",e.linkName,""),qr(1),Ys(e.displayName),qr(2),Zs(" ",e.windowsVersion," "),qr(2),As("ngForOf",e.deviceList),qr(2),As("ngIf",e.windowsVersion),qr(1),As("ngIf",e.linuxVersion),qr(2),Ns("href",e.supportUrl,Qi)}}let JS=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-software-table"]],inputs:{softwareList:"softwareList"},decls:15,vars:1,consts:[[1,"table","table-hover","am-table"],["scope","col"],["scope","col",1,"d-none","d-md-table-cell"],[4,"ngFor","ngForOf"],[3,"routerLink"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"d-none","d-md-table-cell"],["ngClass","badge badge-primary am-badge",4,"ngIf"],["target","_blank",3,"href"],["alt","Link",1,"fas","fa-sign-out-alt"],[3,"ngClass"],["ngClass","badge badge-primary am-badge"]],template:function(e,t){1&e&&(xs(0,"table",0),xs(1,"thead"),xs(2,"tr"),xs(3,"th",1),Ws(4,"Mining software"),Ts(),xs(5,"th",1),Ws(6,"Version"),Ts(),xs(7,"th",1),Ws(8,"Mining devices"),Ts(),xs(9,"th",2),Ws(10,"Platforms"),Ts(),xs(11,"th",2),Ws(12,"Support link"),Ts(),Ts(),Ts(),xs(13,"tbody"),Cs(14,KS,14,7,"tr",3),Ts(),Ts()),2&e&&(qr(14),As("ngForOf",t.softwareList))},directives:[Eu,Km,Uu,Iu],pipes:[ZC],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function XS(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining software supported by Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Awesome Miner can interact with the following mining software, where all copyrights and responsibilities belong to their respective owners. "),Ts(),xs(5,"div",3),Ps(6,"am-software-table",4),Ts(),Ts()),2&e){const e=Rs();qr(6),As("softwareList",e.softwareList.list)}}function e_(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining software supported by Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Failed to load list of mining software "),Ts(),Ts())}let t_=(()=>{class e{constructor(e,t,n,i){this.titleService=e,this.metaTagService=t,this.softwareInfoService=i,this.loadFailed=!1,this.metaTitle="Mining software supported by Awesome Miner",this.metaDescription="List of mining software for Awesome Miner",n.init("softwareinfo-list",this.softwareInfoService.getSoftwareList(),e=>{this.softwareList=e,this.loadFailed=!this.softwareList},()=>this.loadFailed=!0)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[3,"softwareList"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,XS,7,1,"div",1),Cs(2,e_,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.softwareList),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,JS],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function n_(e,t){1&e&&(Ms(0),Ps(1,"td"),Ps(2,"td",10),Is())}function i_(e,t){if(1&e&&(xs(0,"span",14),kl(1,"deviceTypeStyle"),Ws(2),Ts()),2&e){const e=t.$implicit;Vs("ngClass","badge badge-",xl(1,2,e)," am-badge am-badge-min"),qr(2),Ys(e)}}function r_(e,t){1&e&&(xs(0,"span",15),Ws(1,"Windows"),Ts())}function o_(e,t){1&e&&(xs(0,"span",15),Ws(1,"Linux"),Ts())}function s_(e,t){if(1&e&&(Ms(0),xs(1,"td"),xs(2,"a",9),Ws(3),Ts(),Ts(),xs(4,"td",11),Cs(5,i_,3,4,"span",12),Ts(),xs(6,"td",11),Cs(7,r_,2,0,"span",13),Cs(8,o_,2,0,"span",13),Ts(),Is()),2&e){const e=t.$implicit;qr(2),Vs("routerLink","/software/",e.linkName,""),qr(1),Ys(e.displayName),qr(2),As("ngForOf",e.deviceList),qr(2),As("ngIf",e.windowsVersion),qr(1),As("ngIf",e.linuxVersion)}}function a_(e,t){if(1&e&&(xs(0,"span",14),kl(1,"deviceTypeStyle"),Ws(2),Ts()),2&e){const e=t.$implicit;Vs("ngClass","badge badge-",xl(1,2,e)," am-badge am-badge-min"),qr(2),Ys(e)}}function l_(e,t){1&e&&(xs(0,"span",15),Ws(1,"Windows"),Ts())}function c_(e,t){1&e&&(xs(0,"span",15),Ws(1,"Linux"),Ts())}function u_(e,t){if(1&e&&(xs(0,"tr"),Ps(1,"td"),xs(2,"td"),xs(3,"a",9),Ws(4),Ts(),Ts(),xs(5,"td",11),Cs(6,a_,3,4,"span",12),Ts(),xs(7,"td",11),Cs(8,l_,2,0,"span",13),Cs(9,c_,2,0,"span",13),Ts(),Ts()),2&e){const e=t.$implicit;qr(3),Vs("routerLink","/software/",e.linkName,""),qr(1),Ys(e.displayName),qr(2),As("ngForOf",e.deviceList),qr(2),As("ngIf",e.windowsVersion),qr(1),As("ngIf",e.linuxVersion)}}function d_(e,t){if(1&e&&(Ms(0),xs(1,"tr",8),Ps(2,"td"),Ts(),xs(3,"tr"),xs(4,"td"),xs(5,"a",9),Ws(6),Ts(),Ts(),Cs(7,n_,3,0,"ng-container",1),Cs(8,s_,9,5,"ng-container",7),kl(9,"slice"),Ts(),Cs(10,u_,10,5,"tr",7),kl(11,"slice"),Is()),2&e){const e=t.$implicit;qr(5),Vs("routerLink","/algorithm/",e.linkName,""),qr(1),Ys(e.displayName),qr(1),As("ngIf",!e.softwareList.length),qr(1),As("ngForOf",function(e,t,n,i,r){const o=e+Je,s=It(),a=Ct(s,o);return Ml(s,Pl(s,o)?function(e,t,n,i,r,o,s,a){const l=t+n;return ws(e,l,r,o,s)?fs(e,l+3,a?i.call(a,r,o,s):i(r,o,s)):Sl(e,l+3)}(s,jt(),t,a.transform,n,i,r,a):a.transform(n,i,r))}(9,5,e.softwareList,0,1)),qr(2),As("ngForOf",Tl(11,9,e.softwareList,1))}}function h_(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Algorithms supported by Awesome Miner"),Ts(),xs(3,"div",3),xs(4,"table",4),xs(5,"thead"),xs(6,"tr"),xs(7,"th",5),Ws(8,"Algorithm"),Ts(),xs(9,"th",5),Ws(10,"Supported by mining software"),Ts(),xs(11,"th",6),Ws(12,"Mining devices"),Ts(),xs(13,"th",6),Ws(14,"Platforms"),Ts(),Ts(),Ts(),xs(15,"tbody"),Cs(16,d_,12,12,"ng-container",7),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(16),As("ngForOf",e.algorithmList.list)}}function p_(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Algorithms supported by Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Failed to load list of algorithms "),Ts(),Ts())}let m_=(()=>{class e{constructor(e,t,n,i){this.titleService=e,this.metaTagService=t,this.softwareInfoService=i,this.loadFailed=!1,this.metaTitle="Algorithms supported by Awesome Miner",this.metaDescription="List of algorithms for Awesome Miner",n.init("algorithm-list",this.softwareInfoService.getAlgorithmList(),e=>{this.algorithmList=e,this.loadFailed=!this.algorithmList},()=>this.loadFailed=!0)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","table-sm","table-hover","am-table"],["scope","col"],["scope","col",1,"d-none","d-md-table-cell"],[4,"ngFor","ngForOf"],[1,"am-row-empty"],[3,"routerLink"],["colspan","2",1,"d-none","d-md-table-cell"],[1,"d-none","d-md-table-cell"],[3,"ngClass",4,"ngFor","ngForOf"],["ngClass","badge badge-primary am-badge",4,"ngIf"],[3,"ngClass"],["ngClass","badge badge-primary am-badge"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,h_,17,1,"div",1),Cs(2,p_,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.algorithmList),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,Eu,Km,Iu],pipes:[Hu,ZC],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function f_(e,t){if(1&e&&(xs(0,"span"),xs(1,"a",2),Ws(2),Ts(),Ts()),2&e){const e=Rs().$implicit,t=Rs(2);qr(1),Vs("routerLink","/asic/",t.getModelLink(e),""),qr(1),Zs(" ",e.name," ")}}function g_(e,t){if(1&e&&(xs(0,"span"),Cs(1,f_,3,2,"span",0),Ts()),2&e){const e=t.$implicit;qr(1),As("ngIf",!0!==e.excludeFromListing)}}function b_(e,t){if(1&e&&(xs(0,"span"),Cs(1,g_,2,1,"span",1),Ts()),2&e){const e=Rs();qr(1),As("ngForOf",e.vendor.miners)}}let w_=(()=>{class e{constructor(){}ngOnInit(){}getModelLink(e){return WC.getAsicLinkName(this.vendor.shortName,e.name)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-asic-buttons"]],inputs:{vendor:"vendor"},decls:1,vars:1,consts:[[4,"ngIf"],[4,"ngFor","ngForOf"],[1,"badge","badge-primary","am-badge",3,"routerLink"]],template:function(e,t){1&e&&Cs(0,b_,2,1,"span",0),2&e&&As("ngIf",t.vendor)},directives:[Uu,Eu,Km],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function v_(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),Ws(2),Ts(),xs(3,"td"),Ps(4,"am-asic-buttons",10),Ts(),Ts()),2&e){const e=t.$implicit;qr(2),Zs(" ",e.fullName," "),qr(2),As("vendor",e)}}function y_(e,t){if(1&e&&(xs(0,"div",4),xs(1,"table",5),xs(2,"thead"),xs(3,"tr"),xs(4,"th",6),Ws(5,"ASIC"),Ts(),xs(6,"th",7),Ws(7,"Models"),Ts(),Ts(),Ts(),xs(8,"tbody"),Cs(9,v_,5,2,"tr",8),xs(10,"tr"),Ps(11,"td"),xs(12,"td"),xs(13,"a",9),Ws(14,"See complete list of all supported ASIC mining hardware"),Ts(),Ts(),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs(2);qr(9),As("ngForOf",e.selectedInfo.hardwareList)}}function C_(e,t){if(1&e&&(xs(0,"div",4),Ps(1,"am-software-table",11),Ts()),2&e){const e=Rs(2);qr(1),As("softwareList",e.selectedInfo.softwareList)}}function S_(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2),Ts(),xs(3,"p"),Ws(4),Ts(),Cs(5,y_,15,1,"div",3),Cs(6,C_,2,1,"div",3),Ts()),2&e){const e=Rs();qr(2),Zs("",e.selectedInfo.displayName," mining with Awesome Miner"),qr(2),Zs(" The mining algorithm ",e.selectedInfo.displayName," is supported by Awesome Miner. "),qr(1),As("ngIf",(null==e.selectedInfo.hardwareList?null:e.selectedInfo.hardwareList.length)>0),qr(1),As("ngIf",(null==e.selectedInfo.softwareList?null:e.selectedInfo.softwareList.length)>0)}}function __(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining with Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Unable to find information about the specified algorithm "),Ts(),Ts())}let A_=(()=>{class e{constructor(e,t,n,i,r){this.titleService=t,this.metaTagService=n,this.softwareInfoService=r,this.loadFailed=!1,this.metaTitle="Setup mining software with Awesome Miner",this.metaDescription="Easy mining software setup with Awesome Miner",e.params.subscribe(e=>{e?(this.selectedAlgorithm=e.algorithm,this.selectedAlgorithm?(this.selectedAlgorithm=this.selectedAlgorithm.trim(),i.init("algorithminfo-"+this.selectedAlgorithm,this.softwareInfoService.getAlgorithm(this.selectedAlgorithm),e=>{this.selectedInfo=e,this.loadFailed=!this.selectedInfo,this.selectedInfo&&(console.log("Found algorithm: "+this.selectedAlgorithm),this.metaTitle=this.selectedInfo.displayName+" with Awesome Miner",this.metaDescription="Start mining "+this.selectedInfo.displayName+" using Awesome Miner"),this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})},()=>this.loadFailed=!0)):this.loadFailed=!0):this.loadFailed=!0})}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],["class","shadow p-3 mb-5 bg-white rounded am-shadow",4,"ngIf"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","am-table"],["scope","col","width","200px"],["scope","col"],[4,"ngFor","ngForOf"],["routerLink","/asic-hardware"],[3,"vendor"],[3,"softwareList"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,S_,7,4,"div",1),Cs(2,__,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.selectedInfo),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,Eu,Km,w_,JS],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();class k_{constructor(){this.info={"antminer-l3-plus":{name:"Antminer L3+, L3++",performance1:"Increases Antminer L3+/L3++ performance by 10% or more",performance2:"Typical hashrate with overclocking 540 - 600 MH/s",performance3:"Possible hashrate with overclocking 625+ MH/s",antivirus:!1,asicBoost:!1},"antminer-s17":{name:"Antminer S17, S17 Pro",performance1:"Increases Antminer S17 performance by 40% or more",performance2:"Typical hashrate with overclocking 70 - 80 TH/s",performance3:"Possible hashrate with overclocking 85+ TH/s"},"antminer-s17-plus":{name:"Antminer S17+",performance1:"Increases Antminer S17+ performance by 25% or more",performance2:"Typical hashrate with overclocking 84 - 91 TH/s",performance3:"Possible hashrate with overclocking 91+ TH/s"},"antminer-s9":{name:"Antminer S9, S9i, S9j",performance1:"Increases Antminer S9 performance by 10% or more",performance2:"Typical hashrate with overclocking 14.7 - 16.0 TH/s",performance3:"Possible hashrate with overclocking 18+ TH/s with custom PSU"},"antminer-t17":{name:"Antminer T17",performance1:"Increases Antminer T17 performance by 30% or more",performance2:"Typical hashrate with overclocking 50 - 55 TH/s",performance3:"Possible hashrate with overclocking 57+ TH/s"},"antminer-t17-plus":{name:"Antminer T17+",performance1:"Increases Antminer T17+ performance by 15% or more",performance2:"Typical hashrate with overclocking 70 - 75 TH/s",performance3:"Possible hashrate with overclocking 75+ TH/s"},"antminer-t9-plus":{name:"Antminer T9+",performance1:"Increases Antminer T9+ performance by 10% or more",performance2:"Typical hashrate with overclocking 11.5 - 13.0 TH/s",performance3:"Possible hashrate with overclocking 13.5+ TH/s with custom PSU"},"antminer-s19":{name:"Antminer S19, S19 Pro, S19j, S19j Pro",performance1:"Increases Antminer performance by 15% or more",performance2:"First public version available",performance3:""},"antminer-t19":{name:"Antminer T19",performance1:"Increases Antminer performance by 15% or more",performance2:"First public version available",performance3:""}}}}function x_(e,t){1&e&&(xs(0,"div",7),xs(1,"div",8),xs(2,"div",9),Ps(3,"img",10),Ts(),Ts(),Ts())}function T_(e,t){1&e&&(xs(0,"span"),Ws(1,"(*)"),Ts())}function P_(e,t){1&e&&(xs(0,"span"),Ws(1,"AsicBoost for reduced power usage"),Ps(2,"br"),Ts())}function M_(e,t){if(1&e&&(xs(0,"div",7),xs(1,"div",11),xs(2,"h2",2),Ws(3,"Performance"),Ts(),xs(4,"div",12),Ws(5),Ps(6,"br"),Ws(7),Ps(8,"br"),Ws(9),Ts(),Ts(),xs(10,"div",11),xs(11,"h2",2),Ws(12,"Power efficiency"),Ts(),xs(13,"div",12),Ws(14," Improved power efficiency by tuning of each individual ASIC chip "),Cs(15,T_,2,0,"span",13),Ps(16,"br"),Cs(17,P_,3,0,"span",13),Ws(18," Underclocking available for highest possible power efficiency "),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(5),Zs(" ",e.displayHardware.performance1,""),qr(2),Zs(" ",e.displayHardware.performance2,""),qr(2),Zs(" ",e.displayHardware.performance3," "),qr(6),As("ngIf",!1===e.displayHardware.profileSupport),qr(2),As("ngIf",!1!==e.displayHardware.asicBoost)}}function I_(e,t){1&e&&(xs(0,"span"),Ws(1,"(*)"),Ts())}function O_(e,t){1&e&&(xs(0,"span"),Ws(1,"Antivirus scan"),Ps(2,"br"),Ts())}function E_(e,t){if(1&e&&(xs(0,"div",14),xs(1,"div",11),xs(2,"h2",2),Ws(3,"Feature highlight"),Ts(),xs(4,"div",12),Ws(5," Easy to use profiles for overclocking and underclocking "),Cs(6,I_,2,0,"span",13),Ps(7,"br"),Cs(8,O_,3,0,"span",13),Ws(9," Find a miner via LED flash"),Ps(10,"br"),Ws(11," Sleep mode to pause the mining and consume very little power"),Ps(12,"br"),Ws(13," Flexible by allowing manual tuning and many configuration settings"),Ps(14,"br"),Ws(15," Immersion cooling support "),Ts(),Ts(),xs(16,"div",11),xs(17,"h2",2),Ws(18,"Awesome Miner integration"),Ts(),xs(19,"div",12),Ws(20," Install and upgrade firmware via Awesome Miner"),Ps(21,"br"),Ws(22," Display of current power usage and ASIC chip performance"),Ps(23,"br"),Ws(24," The Antminer firmware features can be accessed via Awesome Miner"),Ps(25,"br"),Ws(26," Operations can be performed on a large number of miners at once"),Ps(27,"br"),Ws(28," Use Awesome Miner for free when running the firmware with a 2.8% mining fee "),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(6),As("ngIf",!1===e.displayHardware.profileSupport),qr(2),As("ngIf",!1!==e.displayHardware.antivirus)}}function F_(e,t){1&e&&(xs(0,"div",12),xs(1,"small"),Ws(2,"(*) These firmware features are still under development and will soon be available."),Ts(),Ts())}function U_(e,t){1&e&&(xs(0,"div",15),xs(1,"div",8),xs(2,"div",16),xs(3,"a",17),Ws(4," Learn more and download "),Ts(),Ts(),Ts(),Ts())}let L_=(()=>{class e{constructor(e,t,n){if(this.titleService=t,this.metaTagService=n,this.metaTitle="Optimized firmware for Antminer",this.metaDescription="Awesome Miner Antminer firmware for improved performance and power power efficiency",null!==e.snapshot.url&&e.snapshot.url.length>=2){let t=e.snapshot.url[1].path;if(t){t=t.toLowerCase().trim();let e=new k_;this.displayHardware=e.info[t],this.metaTitle="Optimized firmware for "+this.displayHardware.name,this.metaDescription="Awesome Miner "+this.displayHardware.name+" firmware for improved performance, power efficiency and more features"}}}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-firmware-display"]],decls:9,vars:6,consts:[[1,"jumbotron"],[1,"container",2,"margin-bottom","0","padding","0"],[1,"ngTopTitle"],["class","row","style","margin-top:40px",4,"ngIf"],["class","row",4,"ngIf"],["class","ngTopInfo",4,"ngIf"],["class","row","style","margin-bottom:40px",4,"ngIf"],[1,"row",2,"margin-top","40px"],[1,"col-xl-12","col-lg-12","col-md-12"],[1,"shadow","p-1","mb-1","bg-white","rounded",2,"max-width","1049px"],["src","img/awesome-firmware-01.png","alt","custom antminer firmware for Antminer S9 and Antminer S17",1,"mx-auto","img-fluid"],[1,"col-xl-6","col-lg-6","col-md-12"],[1,"ngTopInfo"],[4,"ngIf"],[1,"row"],[1,"row",2,"margin-bottom","40px"],[1,"ngMainButtonArea",2,"align-content","center"],["routerLink","/antminerfirmware","role","button",1,"btn","btn-lg","btn-success","ngMainButton"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"h1",2),Ws(3),Ts(),Cs(4,x_,4,0,"div",3),Cs(5,M_,19,5,"div",3),Cs(6,E_,29,2,"div",4),Cs(7,F_,3,0,"div",5),Cs(8,U_,5,0,"div",6),Ts(),Ts()),2&e&&(qr(3),Zs("Optimized firmware for ",t.displayHardware.name,""),qr(1),As("ngIf",t.displayHardware),qr(1),As("ngIf",t.displayHardware),qr(1),As("ngIf",t.displayHardware),qr(1),As("ngIf",!1===t.displayHardware.profileSupport),qr(1),As("ngIf",t.displayHardware))},directives:[Uu,Km],encapsulation:2}),e})(),D_=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:19,vars:0,consts:[[1,"jumbotron",2,"margin-top","0px","padding-top","10px"],[1,"container",2,"margin-bottom","0px","padding","0"],[1,"text-center"],[2,"border-color","white"],[2,"padding-top","25px"],[1,"ngTopTitle",2,"font-size","56px"],[2,"padding-top","35px"],[1,"shadow","p-1","mb-1","bg-white","rounded",2,"max-width","1049px","margin","0 auto"],["src","img/awesome-firmware-01.png","alt","custom antminer firmware for Antminer S9 and Antminer S17",1,"mx-auto","img-fluid"],[2,"padding-top","20px"],[1,"ngTopInfoNarrow",2,"font-size","32px","margin-bottom","0px","padding-bottom","0px"],[2,"padding-top","10px"],[2,"padding-top","15px"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"div",2),Ps(3,"hr",3),Ps(4,"div",4),xs(5,"h1",5),Ws(6,"Optimized firmware for Antminer S17"),Ts(),Ps(7,"div",6),xs(8,"div",7),Ps(9,"img",8),Ts(),Ps(10,"div",9),xs(11,"div",10),Ws(12," Typical hashrate with overclocking 70 - 80 TH/s "),Ps(13,"div",11),Ws(14," Use Awesome Miner for free when running the firmware "),Ts(),Ps(15,"div",12),Ps(16,"hr",3),xs(17,"small"),Ws(18,"(Recommended size: 1600x675)"),Ts(),Ts(),Ts(),Ts())},encapsulation:2}),e})(),R_=(()=>{class e{constructor(e,t){this.element=e,this.platformId=t}ngAfterViewInit(){"browser"===this.platformId&&this.attachDocumentationComponent()}attachDocumentationComponent(){const e=this.element.nativeElement.querySelector("#documentation-root");Redoc.init("/assets/apidoc.yaml",{hideDownloadButton:!0},e)}ngOnDestroy(){this.element.nativeElement.querySelector("#documentation-root").remove()}}return e.\u0275fac=function(t){return new(t||e)(_s(_a),_s(Nl))},e.\u0275cmp=ze({type:e,selectors:[["am-apidoc-page"]],decls:1,vars:0,consts:[["id","documentation-root",2,"left","0","width","100%","height","100%"]],template:function(e,t){1&e&&Ps(0,"div",0)},encapsulation:2}),e})();function N_(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),Ws(2),Ts(),xs(3,"td"),Ps(4,"am-asic-buttons",9),Ts(),Ts()),2&e){const e=t.$implicit;qr(2),Zs(" ",e.fullName," "),qr(2),As("vendor",e)}}function V_(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"ASIC mining hardware supported by Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Awesome Miner is compatible with all standard compliant ASIC miners which includes almost every popular ASIC miner on the market. Even if a specific ASIC model isn't listed below, it's still likely to work fine with Awesome Miner - especially if other models from the same vendor is supported. "),Ts(),xs(5,"p"),Ws(6," Please "),xs(7,"a",3),Ws(8,"contact us"),Ts(),Ws(9," if your ASIC miner isn't included in the list below. "),Ts(),xs(10,"div",4),xs(11,"table",5),xs(12,"thead"),xs(13,"tr"),xs(14,"th",6),Ws(15,"ASIC"),Ts(),xs(16,"th",7),Ws(17,"Models"),Ts(),Ts(),Ts(),xs(18,"tbody"),Cs(19,N_,5,2,"tr",8),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(19),As("ngForOf",e.hardwareRoot.hardware)}}function j_(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"ASIC mining hardware supported by Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Failed to load list of ASIC mining hardware "),Ts(),Ts())}let H_=(()=>{class e{constructor(e,t,n,i){this.titleService=e,this.metaTagService=t,this.softwareInfoService=i,this.loadFailed=!1,this.hardwareRoot=null,this.metaTitle="ASIC mining hardware supported by Awesome Miner",this.metaDescription="List of ASIC mining hardware for Awesome Miner",n.init("asicinfo-list",this.softwareInfoService.getHardwareList(),e=>{this.hardwareRoot=e},()=>this.loadFailed=!0)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],["routerLink","/contact"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","am-table"],["scope","col","width","200px"],["scope","col"],[4,"ngFor","ngForOf"],[3,"vendor"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,V_,20,1,"div",1),Cs(2,j_,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.hardwareRoot),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,Km,Eu,w_],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function z_(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),xs(2,"a",6),Ws(3),Ts(),Ts(),Ts()),2&e){const e=t.$implicit;qr(2),Vs("routerLink","/pools/",e.name,""),qr(1),Ys(e.displayName)}}function B_(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Predefined pools for Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Failed to load list of pools "),Ts(),Ts())}function $_(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Pools"),Ts(),xs(3,"p"),Ws(4," Awesome Miner can be used with any mining pool. The list below includes the predefined pools to make it easier to get started with mining on the most popular pools. "),Ts(),xs(5,"div",3),xs(6,"table",4),xs(7,"tbody"),Cs(8,z_,4,2,"tr",5),Ts(),Ts(),Ts(),Cs(9,B_,5,0,"div",1),Ts()),2&e){const e=Rs();qr(8),As("ngForOf",e.poolList.list),qr(1),As("ngIf",e.loadFailed)}}let q_=(()=>{class e{constructor(e,t,n,i){this.titleService=e,this.metaTagService=t,this.poolInfoService=i,this.loadFailed=!1,this.metaTitle="Predefined pools for Awesome Miner",this.metaDescription="List of predefined pools for Awesome Miner",n.init("algorithm-list",this.poolInfoService.getPoolList(),e=>{this.poolList=e,this.loadFailed=!this.poolList},()=>this.loadFailed=!0)}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd),_s(qC),_s(Yy))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:2,vars:1,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","table-hover","am-table"],[4,"ngFor","ngForOf"],[3,"routerLink"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,$_,10,2,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.poolList))},directives:[Uu,Eu,Km],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})();function G_(e,t){if(1&e&&(xs(0,"span"),xs(1,"a",9),Ws(2),Ts(),Ts()),2&e){const e=t.$implicit;qr(1),Vs("routerLink","/algorithm/",e.linkName,""),qr(1),Zs(" ",e.displayName," ")}}function W_(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),Ws(2,"Algorithms"),Ts(),xs(3,"td"),Cs(4,G_,3,2,"span",8),Ts(),Ts()),2&e){const e=Rs(2);qr(4),As("ngForOf",e.selectedInfo.algorithmDetails)}}function Y_(e,t){if(1&e&&(xs(0,"tr"),xs(1,"td"),Ws(2,"Optimized firmware"),Ts(),xs(3,"td"),Ws(4," This ASIC miner can perform better, run more efficient and get more features using our "),xs(5,"a",10),Ws(6),Ts(),Ws(7,". "),Ts(),Ts()),2&e){const e=Rs(2);qr(5),Vs("routerLink","/firmware/",e.selectedInfo.firmwareLink,""),qr(1),Zs("Optimized ",e.selectedInfo.displayName," firmware")}}function Z_(e,t){if(1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2),Ts(),xs(3,"div",3),xs(4,"table",4),xs(5,"tbody"),xs(6,"tr"),xs(7,"td",5),Ws(8,"Supported"),Ts(),xs(9,"td"),Ws(10),Ts(),Ts(),Cs(11,W_,5,1,"tr",1),Cs(12,Y_,8,2,"tr",1),xs(13,"tr"),xs(14,"td"),Ws(15),Ts(),xs(16,"td"),xs(17,"p"),Ps(18,"am-asic-buttons",6),Ts(),xs(19,"p"),xs(20,"a",7),Ws(21,"See complete list of all supported ASIC mining hardware"),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ts()),2&e){const e=Rs();qr(2),Ys(e.selectedInfo.displayName),qr(8),Zs(" ",e.selectedInfo.displayName," can be managed and monitored by Awesome Miner "),qr(1),As("ngIf",(null==e.selectedInfo.algorithmDetails?null:e.selectedInfo.algorithmDetails.length)>0),qr(1),As("ngIf",e.selectedInfo.firmwareLink),qr(3),Zs("",e.selectedInfo.vendor.fullName," miners"),qr(3),As("vendor",e.selectedInfo.vendor)}}function Q_(e,t){1&e&&(xs(0,"div"),xs(1,"h3",2),Ws(2,"Mining with Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Unable to find information about the specified ASIC miner "),Ts(),Ts())}let K_=(()=>{class e{constructor(e,t,n,i,r){this.titleService=t,this.metaTagService=n,this.softwareInfoService=r,this.loadFailed=!1,this.metaTitle="Setup mining software with Awesome Miner",this.metaDescription="Easy mining software setup with Awesome Miner",e.params.subscribe(e=>{e?(this.selectedVendor=e.vendor,this.selectedModel=e.model,this.selectedVendor&&this.selectedModel?(this.selectedVendor=this.selectedVendor.trim().toLowerCase(),this.selectedModel=this.selectedModel.trim().toLowerCase(),i.init("asicinfo-"+this.selectedVendor+this.selectedModel,this.softwareInfoService.getAsicModel(this.selectedVendor,this.selectedModel),e=>{this.selectedInfo=e,this.loadFailed=!this.selectedInfo,this.selectedInfo&&(console.log("Found ASIC: "+this.selectedVendor+" "+this.selectedModel),this.metaTitle=this.selectedInfo.displayName+" with Awesome Miner",this.metaDescription="Start mining "+this.selectedInfo.displayName+" using Awesome Miner"),this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})},()=>this.loadFailed=!0)):this.loadFailed=!0):this.loadFailed=!0})}ngOnInit(){this.titleService.setTitle(this.metaTitle),this.metaTagService.updateTag({name:"description",content:this.metaDescription})}}return e.\u0275fac=function(t){return new(t||e)(_s(Ip),_s(Pd),_s(kd),_s(qC),_s(YC))},e.\u0275cmp=ze({type:e,selectors:[["ng-component"]],decls:3,vars:2,consts:[[1,"container","ngContainer"],[4,"ngIf"],[1,"ngPageHeader"],[1,"shadow","p-3","mb-5","bg-white","rounded","am-shadow"],[1,"table","am-table"],[2,"min-width","210px","width","210px"],[3,"vendor"],["routerLink","/asic-hardware"],[4,"ngFor","ngForOf"],[1,"badge","badge-primary","am-badge",3,"routerLink"],[3,"routerLink"]],template:function(e,t){1&e&&(xs(0,"div",0),Cs(1,Z_,22,6,"div",1),Cs(2,Q_,5,0,"div",1),Ts()),2&e&&(qr(1),As("ngIf",t.selectedInfo),qr(1),As("ngIf",t.loadFailed))},directives:[Uu,w_,Km,Eu],styles:[".am-badge[_ngcontent-%COMP%]{font-size:90%;font-weight:400;margin-right:4px}.am-badge-min[_ngcontent-%COMP%]{min-width:80px}.am-table[_ngcontent-%COMP%]{margin-bottom:0}.am-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-top:none;padding-top:3px;border-bottom-width:1px}.am-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top:none}.am-table[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding-left:20px}.am-row-empty[_ngcontent-%COMP%]:hover{background-color:initial!important}.am-row-empty[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{height:20px}.am-shadow[_ngcontent-%COMP%]{margin:20px 0 0}"]}),e})(),J_=(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t,this.di=new k_}ngOnInit(){this.titleService.setTitle("Awesome Miner Firmware for Antminer"),this.metaTagService.updateTag({name:"description",content:"Custom firmware for Antminer to increase performance and efficiency"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-firmware-overview-page"]],decls:76,vars:7,consts:[[1,"jumbotron"],[1,"container",2,"margin-bottom","0","padding","0"],[1,"ngTopTitle"],[1,"row",2,"margin-top","40px"],[1,"col-xl-12","col-lg-12","col-md-12"],[1,"shadow","p-1","mb-1","bg-white","rounded",2,"max-width","1049px"],["src","img/awesome-firmware-01.png","alt","custom antminer firmware for Antminer S9 and Antminer S17",1,"mx-auto","img-fluid"],[1,"col-xl-6","col-lg-6","col-md-12"],[1,"ngTopInfo"],["routerLink","/firmware/antminer-s17",1,"whiteLink"],["routerLink","/firmware/antminer-s17-plus",1,"whiteLink"],["routerLink","/firmware/antminer-t17",1,"whiteLink"],["routerLink","/firmware/antminer-t17-plus",1,"whiteLink"],["routerLink","/firmware/antminer-s9",1,"whiteLink"],["routerLink","/firmware/antminer-l3-plus",1,"whiteLink"],["routerLink","/firmware/antminer-t9-plus",1,"whiteLink"],[1,"row"],[1,"row",2,"margin-bottom","40px"],[1,"ngMainButtonArea",2,"align-content","center"],["routerLink","/antminerfirmware","role","button",1,"btn","btn-lg","btn-success","ngMainButton"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"h1",2),Ws(3,"Optimized firmware for Antminer S17, S17 Pro, S17+, T17, T17+, S9, L3+ and T9+"),Ts(),xs(4,"div",3),xs(5,"div",4),xs(6,"div",5),Ps(7,"img",6),Ts(),Ts(),Ts(),xs(8,"div",3),xs(9,"div",7),xs(10,"h2",2),Ws(11,"Performance"),Ts(),xs(12,"div",8),xs(13,"a",9),Ws(14),Ts(),Ps(15,"br"),xs(16,"a",10),Ws(17),Ts(),Ps(18,"br"),xs(19,"a",11),Ws(20),Ts(),Ps(21,"br"),xs(22,"a",12),Ws(23),Ts(),Ps(24,"br"),xs(25,"a",13),Ws(26),Ts(),Ps(27,"br"),xs(28,"a",14),Ws(29),Ts(),Ps(30,"br"),xs(31,"a",15),Ws(32),Ts(),Ts(),Ts(),xs(33,"div",7),xs(34,"h2",2),Ws(35,"Power efficiency"),Ts(),xs(36,"div",8),Ws(37," Improved power efficiency by tuning of each individual ASIC chip"),Ps(38,"br"),Ws(39," AsicBoost for reduced power usage"),Ps(40,"br"),Ws(41," Underclocking available for highest possible power efficiency "),Ts(),Ts(),Ts(),xs(42,"div",16),xs(43,"div",7),xs(44,"h2",2),Ws(45,"Feature highlight"),Ts(),xs(46,"div",8),Ws(47," Easy to use profiles for overclocking and underclocking"),Ps(48,"br"),Ws(49," Antivirus scan"),Ps(50,"br"),Ws(51," Find a miner via LED flash"),Ps(52,"br"),Ws(53," Sleep mode to pause the mining and consume very little power"),Ps(54,"br"),Ws(55," Flexible by allowing manual tuning and many configuration settings"),Ps(56,"br"),Ws(57," Immersion cooling support "),Ts(),Ts(),xs(58,"div",7),xs(59,"h2",2),Ws(60,"Awesome Miner integration"),Ts(),xs(61,"div",8),Ws(62," Install and upgrade firmware via Awesome Miner"),Ps(63,"br"),Ws(64," Display of current power usage and ASIC chip performance"),Ps(65,"br"),Ws(66," The Antminer firmware features can be accessed via Awesome Miner"),Ps(67,"br"),Ws(68," Operations can be performed on a large number of miners at once"),Ps(69,"br"),Ws(70," Use Awesome Miner for free when running the firmware with a 2.8% mining fee "),Ts(),Ts(),Ts(),xs(71,"div",17),xs(72,"div",4),xs(73,"div",18),xs(74,"a",19),Ws(75," Learn more and download "),Ts(),Ts(),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(14),Ys(t.di.info["antminer-s17"].performance1),qr(3),Ys(t.di.info["antminer-s17-plus"].performance1),qr(3),Ys(t.di.info["antminer-t17"].performance1),qr(3),Ys(t.di.info["antminer-t17-plus"].performance1),qr(3),Ys(t.di.info["antminer-s9"].performance1),qr(3),Ys(t.di.info["antminer-l3-plus"].performance1),qr(3),Ys(t.di.info["antminer-t9-plus"].performance1))},directives:[Km],styles:[".whiteLink[_ngcontent-%COMP%]{color:#fff}a[_ngcontent-%COMP%]:hover{color:#fff!important}"]}),e})();function X_(e,t){1&e&&(xs(0,"div",15),xs(1,"div",22),xs(2,"div",24),Ws(3,"Please enter a valid e-mail address"),Ts(),Ts(),Ts())}function eA(e,t){1&e&&Ps(0,"am-spinner")}function tA(e,t){1&e&&(xs(0,"div",24),Ws(1,"You already have an active Awesome Miner subscription. To upgrade an existing subscription, please go to the "),xs(2,"a",25),Ws(3,"Awesome Miner upgrade page"),Ts(),Ws(4,"."),Ts())}function nA(e,t){1&e&&(xs(0,"div",24),Ws(1,"Failed to check existing subscription"),Ts())}function iA(e,t){1&e&&(xs(0,"div",24),Ws(1,"Failed to create subscription"),Ts())}function rA(e,t){if(1&e){const e=Os();xs(0,"div",13),xs(1,"div"),xs(2,"form",14),xs(3,"div",15),xs(4,"div",16),Ps(5,"input",17),Ts(),Ts(),Cs(6,X_,4,0,"div",18),xs(7,"div",15),xs(8,"div",19),xs(9,"button",20),Us("click",function(){return Et(e),Rs().createProductSubscriptionClick()}),xs(10,"span"),Ws(11,"Request license"),Ts(),Cs(12,eA,1,0,"am-spinner",21),Ts(),Ts(),Ts(),xs(13,"div",15),xs(14,"div",22),Cs(15,tA,5,0,"div",23),Cs(16,nA,2,0,"div",23),Cs(17,iA,2,0,"div",23),Ts(),Ts(),Ts(),Ts(),Ts()}if(2&e){const e=Rs();qr(2),As("formGroup",e.subscriptionForm),qr(4),As("ngIf",e.fs.email.invalid&&e.fs.email.touched),qr(3),As("disabled",e.subscriptionForm.invalid||e.inProgress),qr(3),As("ngIf",e.inProgress),qr(3),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionFound")),qr(1),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionCheckError")),qr(1),As("ngIf",e.subscriptionForm.hasError("ProductSubscriptionError"))}}function oA(e,t){1&e&&(xs(0,"div",26),xs(1,"p"),Ws(2,"Thank you for signing up! You will receive your registration code by e-mail within a few minutes."),Ts(),Ts())}let sA=(()=>{class e{constructor(e,t,n,i){this.subscriptionService=e,this.formBuilder=t,this.titleService=n,this.metaTagService=i,this.inProgress=!1,this.formCompleted=!1}ngOnInit(){this.titleService.setTitle("Soleniy Firmware"),this.metaTagService.updateTag({name:"description",content:"Soleniy Firmware"}),this.subscriptionForm=this.formBuilder.group({email:["",[Uf.required,Uf.email]]})}get fs(){return this.subscriptionForm.controls}createProductSubscriptionClick(){let e=this.subscriptionForm.value.email;null==e||e.length<5?console.log("No email was specified"):this.createFreeProductSubscription(e)}createFreeProductSubscription(e){this.inProgress=!0,this.subscriptionService.createProductSubscription(e).subscribe(e=>{this.inProgress=!1,this.formCompleted=!0},e=>{this.inProgress=!1,this.subscriptionForm.setErrors(302==e.status?{ProductSubscriptionFound:!0}:{ProductSubscriptionError:!0}),console.log("Failed to send ProductSubscription request",e)})}}return e.\u0275fac=function(t){return new(t||e)(_s(sv),_s(rb),_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-partners-soleniy"]],decls:41,vars:2,consts:[[1,"container"],[1,"headerTitleSmaller"],["href","https://www.awesomeminer.com/download/setup/AwesomeMiner.msi",1,"btn","btn-success","ngMainButton"],["id","step1",4,"ngIf"],["id","step2",4,"ngIf"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-S17-2.0.3-awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-S17%2B-2.0.3-awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-T17-2.0.3-awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-T17%2B-2.0.3-awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-L3%2B-vnish-3.8.8.awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-S9-xilinx-vnish-3.8.6-awesome_sersol.tar.gz"],["href","https://www.awesomeminer.com/download/firmware/soleniy/Antminer-T9%2B-xilinx-vnish-3.8.6-awesome_sersol.tar.gz"],["href","https://t.me/AwesomeminerRU"],["id","step1"],[3,"formGroup"],[1,"form-group","row"],[1,"col-lg-6","col-md-8"],["type","text","id","email","name","email","formControlName","email","placeholder","E-mail address",1,"form-control"],["class","form-group row",4,"ngIf"],[1,"col-lg-10","col-md-8"],["type","submit","ID","btnValidate",1,"btn","btn-success","ngMainButton",3,"disabled","click"],[4,"ngIf"],[1,"offset-lg-2","col-lg-10","offset-md-4","col-md-8"],["style","color:red",4,"ngIf"],[2,"color","red"],["routerLink","/upgrade"],["id","step2"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3",1),Ws(2,"1) Download Awesome Miner"),Ts(),xs(3,"p"),Ws(4," Use the link below to download and install Awesome Miner "),Ts(),xs(5,"a",2),Ws(6,"Download"),Ts(),xs(7,"h3",1),Ws(8,"2) Awesome Miner license for Antminer"),Ts(),Cs(9,rA,18,7,"div",3),Cs(10,oA,3,0,"div",4),xs(11,"h3",1),Ws(12,"3) Download Antminer firmware"),Ts(),xs(13,"ul"),xs(14,"li"),xs(15,"a",5),Ws(16,"Antminer S17 firmware"),Ts(),Ts(),xs(17,"li"),xs(18,"a",6),Ws(19,"Antminer S17+ firmware"),Ts(),Ts(),xs(20,"li"),xs(21,"a",7),Ws(22,"Antminer T17 firmware"),Ts(),Ts(),xs(23,"li"),xs(24,"a",8),Ws(25,"Antminer T17+ firmware"),Ts(),Ts(),xs(26,"li"),xs(27,"a",9),Ws(28,"Antminer L3+ firmware"),Ts(),Ts(),xs(29,"li"),xs(30,"a",10),Ws(31,"Antminer S9 firmware"),Ts(),Ts(),xs(32,"li"),xs(33,"a",11),Ws(34,"Antminer T9+ firmware"),Ts(),Ts(),Ts(),xs(35,"h3",1),Ws(36,"Links"),Ts(),xs(37,"ul"),xs(38,"li"),xs(39,"a",12),Ws(40,"Telegram group for Awesome Miner (Russian)"),Ts(),Ts(),Ts(),Ts()),2&e&&(qr(9),As("ngIf",!t.formCompleted),qr(1),As("ngIf",t.formCompleted))},directives:[Uu,Ug,ng,jg,Pf,tg,zg,Qb,Km],encapsulation:2}),e})();const aA=[{path:"",component:db},{path:"default.aspx",redirectTo:"/",pathMatch:"full"},{path:"home",redirectTo:"/",pathMatch:"full"},{path:"about",component:vf},{path:"about.aspx",redirectTo:"/about",pathMatch:"full"},{path:"api",component:R_},{path:"affiliate",component:tv},{path:"affiliate.aspx",redirectTo:"/affiliate",pathMatch:"full"},{path:"buy",redirectTo:"/signup",pathMatch:"full"},{path:"buy.aspx",redirectTo:"/signup",pathMatch:"full"},{path:"buylicense",component:cb},{path:"buycloud",component:WS},{path:"cloud",component:hb},{path:"cloud.aspx",redirectTo:"/cloud",pathMatch:"full"},{path:"cloudconfirm",component:ow},{path:"cloudconfirm.aspx",redirectTo:"/cloudconfirm",pathMatch:"full"},{path:"cloudupgrade",component:xw},{path:"cloudupgrade.aspx",redirectTo:"/cloudupgrade",pathMatch:"full"},{path:"contact",component:$C},{path:"antminerfirmware",component:mS},{path:"antminer-firmware",component:mS},{path:"productsupport",component:Oy},{path:"links",component:(()=>{class e{constructor(e,t){this.titleService=e,this.metaTagService=t}ngOnInit(){this.titleService.setTitle("Useful links for mining"),this.metaTagService.updateTag({name:"description",content:"Useful links for getting started with mining"})}}return e.\u0275fac=function(t){return new(t||e)(_s(Pd),_s(kd))},e.\u0275cmp=ze({type:e,selectors:[["am-links-page"]],decls:32,vars:0,consts:[[1,"container"],[1,"imgSection"],["href","https://www.investopedia.com/news/how-bitcoin-works/","rel","noreferrer noopener"],["href","https://www.coinmarketcap.com","rel","noreferrer noopener"],["href","https://www.whattomine.com","rel","noreferrer noopener"],["href","https://www.coincalculators.io","rel","noreferrer noopener"],["href","https://www.asicminervalue.com/","rel","noreferrer noopener"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"h3"),Ws(2,"Useful links for getting started with mining"),Ts(),xs(3,"div",1),xs(4,"p"),xs(5,"b"),xs(6,"a",2),Ws(7,"Bitcoin - by Investopedia"),Ts(),Ts(),Ps(8,"br"),Ws(9," How Bitcoin and Bitcoin mining works "),Ts(),xs(10,"p"),xs(11,"b"),xs(12,"a",3),Ws(13,"CoinMarketCap"),Ts(),Ts(),Ps(14,"br"),Ws(15," List of all popular coins, sorted by market capitalization "),Ts(),xs(16,"p"),xs(17,"b"),xs(18,"a",4),Ws(19,"WhatToMine"),Ts(),Ts(),Ws(20," and "),xs(21,"b"),xs(22,"a",5),Ws(23,"CoinCalculators"),Ts(),Ts(),Ps(24,"br"),Ws(25," Calculate the mining income based on your mining hardware. For GPU, CPU and ASIC mining. Lists popular coin for mining. "),Ts(),xs(26,"p"),xs(27,"b"),xs(28,"a",6),Ws(29,"ASIC Miner Value"),Ts(),Ts(),Ps(30,"br"),Ws(31," Great resource for shopping ASIC miners. Indicates the current mining income and also provides links to distributors selling ASIC hardware. "),Ts(),Ts(),Ts())},encapsulation:2}),e})()},{path:"signup",component:US},{path:"subscriptionconfirm",redirectTo:"/signup",pathMatch:"full"},{path:"supportconfirm",component:My},{path:"doc/productannouncement100",component:Fy},{path:"doc/productannouncement110",component:Uy},{path:"doc/productannouncement150",component:Ly},{path:"doc/productannouncement200",component:Dy},{path:"doc/productannouncement300",component:Ry},{path:"doc/productannouncement400",component:Ny},{path:"doc/productannouncement500",component:Vy},{path:"doc/productannouncement600",component:jy},{path:"doc/generateimage/:dummy",component:D_},{path:"download",component:ev},{path:"download.aspx",redirectTo:"/download",pathMatch:"full"},{path:"help/affiliate/register",component:Hy},{path:"help/affiliate/promotionlink",component:zy},{path:"help/branding",component:$y},{path:"help/customdevelopment",component:Gy},{path:"help/resources",component:mC},{path:"privacypolicy",component:Tw},{path:"privacypolicy.aspx",redirectTo:"/privacypolicy",pathMatch:"full"},{path:"recoverlicense",component:vy},{path:"recoverlicense.aspx",redirectTo:"/recoverlicense",pathMatch:"full"},{path:"screenshots",component:yy},{path:"screenshots.aspx",redirectTo:"/screenshots",pathMatch:"full"},{path:"upgrade",component:my},{path:"upgrade.aspx",redirectTo:"/upgrade",pathMatch:"full"},{path:"version",component:Wy},{path:"pool-list",component:q_},{path:"pools/:pool",component:rC},{path:"algorithm-list",component:m_},{path:"algorithm/:algorithm",component:A_},{path:"software-list",component:t_},{path:"software/:software",component:aS},{path:"asic-hardware",component:H_},{path:"asic/:vendor/:model",component:K_},{path:"open",children:[{path:"**",component:pC}]},{path:"firmware/overview",component:J_},{path:"firmware/:model",component:L_},{path:"soleniy/firmware",component:sA},{path:"**",redirectTo:"/",pathMatch:"full"}];let lA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[uf.forRoot(aA,{scrollPositionRestoration:"enabled",anchorScrolling:"enabled"})],uf]}),e})();class cA{constructor(){this.additionalAccountNames=[],this.userId=null,this.transport="",this.anonymizeIp=!1}}let uA=(()=>{class e{constructor(e){this.angulartics2=e,this.dimensionsAndMetrics=[];const t=new cA;this.angulartics2.settings.ga=Object.assign(Object.assign({},t),this.angulartics2.settings.ga),this.settings=this.angulartics2.settings.ga,this.angulartics2.setUsername.subscribe(e=>this.setUsername(e)),this.angulartics2.setUserProperties.subscribe(e=>this.setUserProperties(e))}startTracking(){this.angulartics2.pageTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe(e=>this.pageTrack(e.path)),this.angulartics2.eventTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe(e=>this.eventTrack(e.action,e.properties)),this.angulartics2.exceptionTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe(e=>this.exceptionTrack(e)),this.angulartics2.userTimings.pipe(this.angulartics2.filterDeveloperMode()).subscribe(e=>this.userTimings(e))}pageTrack(e){if("undefined"!=typeof _gaq&&_gaq){_gaq.push(["_trackPageview",e]);for(const t of this.angulartics2.settings.ga.additionalAccountNames)_gaq.push([t+"._trackPageview",e])}if("undefined"!=typeof ga&&ga){if(this.angulartics2.settings.ga.userId){ga("set","&uid",this.angulartics2.settings.ga.userId);for(const e of this.angulartics2.settings.ga.additionalAccountNames)ga(e+".set","&uid",this.angulartics2.settings.ga.userId)}if(this.angulartics2.settings.ga.anonymizeIp){ga("set","anonymizeIp",!0);for(const e of this.angulartics2.settings.ga.additionalAccountNames)ga(e+".set","anonymizeIp",!0)}ga("send","pageview",e);for(const t of this.angulartics2.settings.ga.additionalAccountNames)ga(t+".send","pageview",e)}}eventTrack(e,t){if(t&&t.category||((t=t||{}).category="Event"),t.value){const e=parseInt(t.value,10);t.value=isNaN(e)?0:e}if("undefined"!=typeof ga){const n=Object.assign({eventCategory:t.category,eventAction:e,eventLabel:t.label,eventValue:t.value,nonInteraction:t.noninteraction,page:t.page||location.hash.substring(1)||location.pathname,userId:this.angulartics2.settings.ga.userId,hitCallback:t.hitCallback},this.angulartics2.settings.ga.transport&&{transport:this.angulartics2.settings.ga.transport});this.setDimensionsAndMetrics(t),ga("send","event",n);for(const e of this.angulartics2.settings.ga.additionalAccountNames)ga(e+".send","event",n)}else"undefined"!=typeof _gaq&&_gaq.push(["_trackEvent",t.category,e,t.label,t.value,t.noninteraction])}exceptionTrack(e){void 0===e.fatal&&(console.log('No "fatal" provided, sending with fatal=true'),e.fatal=!0),e.exDescription=e.description;const t={exFatal:e.fatal,exDescription:e.description};ga("send","exception",t);for(const n of this.angulartics2.settings.ga.additionalAccountNames)ga(n+".send","exception",t)}userTimings(e){if(e&&e.timingCategory&&e.timingVar&&e.timingValue){if("undefined"!=typeof ga){ga("send","timing",e);for(const t of this.angulartics2.settings.ga.additionalAccountNames)ga(t+".send","timing",e)}}else console.error("Properties timingCategory, timingVar, and timingValue are required to be set.")}setUsername(e){this.angulartics2.settings.ga.userId=e,"undefined"!=typeof ga&&ga("set","userId",e)}setUserProperties(e){this.setDimensionsAndMetrics(e)}setDimensionsAndMetrics(e){"undefined"!=typeof ga&&(this.dimensionsAndMetrics.forEach(t=>{e.hasOwnProperty(t)||(ga("set",t,void 0),this.angulartics2.settings.ga.additionalAccountNames.forEach(e=>{ga(`${e}.set`,t,void 0)}))}),this.dimensionsAndMetrics=[],Object.keys(e).forEach(t=>{0!==t.lastIndexOf("dimension",0)&&0!==t.lastIndexOf("metric",0)||(ga("set",t,e[t]),this.angulartics2.settings.ga.additionalAccountNames.forEach(n=>{ga(`${n}.set`,t,e[t])}),this.dimensionsAndMetrics.push(t))}))}}return e.\u0275fac=function(t){return new(t||e)(si(Yw))},e.\u0275prov=ue({factory:function(){return new e(si(Yw))},token:e,providedIn:"root"}),e})(),dA=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-header"]],decls:29,vars:0,consts:[[1,"navbar","navbar-expand-md","navbar-light"],[1,"container"],["href","#",1,"navbar-brand","d-md-none"],[1,"d-none","d-lg-block"],["routerLink","/",1,"nav-link"],["src","/img/webtop.png"],[1,"d-none","d-md-block","d-lg-none"],["id","Img1","src","/img/logo64.png"],["type","button","data-toggle","collapse","data-target","#navbarNav","aria-controls","navbarNav","aria-expanded","false","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right"],[1,"navbar-toggler-icon"],["id","navbarNav",1,"collapse","navbar-collapse"],[1,"navbar-nav","ml-auto"],[1,"nav-item"],["routerLink","/download",1,"nav-link"],["routerLink","/signup",1,"nav-link"],["routerLink","/cloud",1,"nav-link"],["href","https://support.awesomeminer.com/support/solutions/",1,"nav-link"]],template:function(e,t){1&e&&(xs(0,"nav",0),xs(1,"div",1),xs(2,"a",2),Ws(3,"Awesome Miner"),Ts(),xs(4,"div",3),xs(5,"a",4),Ps(6,"img",5),Ts(),Ts(),xs(7,"div",6),xs(8,"a",4),Ps(9,"img",7),Ts(),Ts(),xs(10,"button",8),Ps(11,"span",9),Ts(),xs(12,"div",10),xs(13,"ul",11),xs(14,"li",12),xs(15,"a",4),Ws(16,"Home"),Ts(),Ts(),xs(17,"li",12),xs(18,"a",13),Ws(19,"Download"),Ts(),Ts(),xs(20,"li",12),xs(21,"a",14),Ws(22,"Sign up"),Ts(),Ts(),xs(23,"li",12),xs(24,"a",15),Ws(25,"Cloud Services"),Ts(),Ts(),xs(26,"li",12),xs(27,"a",16),Ws(28,"FAQ & Help"),Ts(),Ts(),Ts(),Ts(),Ts(),Ts())},directives:[Km],styles:[""],encapsulation:2}),e})(),hA=(()=>{class e{constructor(){}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=ze({type:e,selectors:[["am-footer"]],decls:77,vars:0,consts:[[1,"bottomPanel"],[1,"container"],[1,"row"],[1,"col-xl-2","col-lg-2","col-md-4","col-sm-4"],[1,"ngBottomTitle"],[1,"ngBottomList"],["routerLink","/"],["routerLink","/upgrade"],["routerLink","/cloud"],["routerLink","/antminerfirmware"],["routerLink","/affiliate"],["routerLink","help/branding"],["routerLink","help/customdevelopment"],["routerLink","/contact"],["href","https://support.awesomeminer.com/support/solutions/"],["routerLink","/api"],["routerLink","/help/resources"],["routerLink","/links"],["routerLink","/asic-hardware"],["routerLink","/software-list"],["routerLink","/pool-list"],["routerLink","/algorithm-list"],[1,"col-xl-2","col-lg-3","col-md-6","col-sm-6"],["routerLink","/about"],["routerLink","/privacypolicy"]],template:function(e,t){1&e&&(xs(0,"div",0),xs(1,"div",1),xs(2,"div",2),xs(3,"div",3),xs(4,"h4",4),Ws(5,"Products"),Ts(),xs(6,"ul",5),xs(7,"li"),xs(8,"a",6),Ws(9,"Awesome Miner"),Ts(),Ts(),xs(10,"li"),xs(11,"a",7),Ws(12,"Upgrade"),Ts(),Ts(),xs(13,"li"),xs(14,"a",8),Ws(15,"Cloud Services"),Ts(),Ts(),xs(16,"li"),xs(17,"a",9),Ws(18,"Antminer firmware"),Ts(),Ts(),Ts(),Ts(),xs(19,"div",3),xs(20,"h4",4),Ws(21,"Services"),Ts(),xs(22,"ul",5),xs(23,"li"),xs(24,"a",10),Ws(25,"Affiliate Program"),Ts(),Ts(),xs(26,"li"),xs(27,"a",11),Ws(28,"Branding"),Ts(),Ts(),xs(29,"li"),xs(30,"a",12),Ws(31,"Custom Development"),Ts(),Ts(),xs(32,"li"),xs(33,"a",13),Ws(34,"Contact us"),Ts(),Ts(),Ts(),Ts(),xs(35,"div",3),xs(36,"h4",4),Ws(37,"Resources"),Ts(),xs(38,"ul",5),xs(39,"li"),xs(40,"a",14),Ws(41,"FAQ & Documentation"),Ts(),Ts(),xs(42,"li"),xs(43,"a",15),Ws(44,"API documentation"),Ts(),Ts(),xs(45,"li"),xs(46,"a",16),Ws(47,"Banners"),Ts(),Ts(),xs(48,"li"),xs(49,"a",17),Ws(50,"Links"),Ts(),Ts(),Ts(),Ts(),xs(51,"div",3),xs(52,"h4",4),Ws(53,"Mining"),Ts(),xs(54,"ul",5),xs(55,"li"),xs(56,"a",18),Ws(57,"ASIC hardware"),Ts(),Ts(),xs(58,"li"),xs(59,"a",19),Ws(60,"Mining software"),Ts(),Ts(),xs(61,"li"),xs(62,"a",20),Ws(63,"Pools"),Ts(),Ts(),xs(64,"li"),xs(65,"a",21),Ws(66,"Algorithms"),Ts(),Ts(),Ts(),Ts(),xs(67,"div",22),xs(68,"h4",4),Ws(69,"Company"),Ts(),xs(70,"ul",5),xs(71,"li"),xs(72,"a",23),Ws(73,"IntelliBreeze Software AB"),Ts(),Ts(),xs(74,"li"),xs(75,"a",24),Ws(76,"Privacy policy"),Ts(),Ts(),Ts(),Ts(),Ts(),Ts(),Ts())},directives:[Km],styles:[".bottomPanel[_ngcontent-%COMP%]{margin-top:40px;padding-top:40px;padding-bottom:40px;background-color:#f6f8fa}.ngBottomTitle[_ngcontent-%COMP%]{margin-top:8px;margin-bottom:8px;font-size:1.1em;line-height:1.1em;color:#718dad;font-weight:600;text-transform:uppercase}.ngBottomList[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#718dad}.ngBottomList[_ngcontent-%COMP%]{padding-inline-start:0;padding:0;margin-block-end:8px}.ngBottomList[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{list-style:none;line-height:25px}"]}),e})(),pA=(()=>{class e{constructor(e){this.title="AwesomeMiner",e.startTracking()}}return e.\u0275fac=function(t){return new(t||e)(_s(uA))},e.\u0275cmp=ze({type:e,selectors:[["app-root"]],decls:5,vars:0,consts:[[1,"appContent"],[1,"appFooter"]],template:function(e,t){1&e&&(xs(0,"div",0),Ps(1,"am-header"),Ps(2,"router-outlet"),Ts(),xs(3,"footer",1),Ps(4,"am-footer"),Ts())},directives:[dA,Xm,hA],styles:[""]}),e})();const mA=[av,Zb,yf,Pw,oC,Yy,sv,lS,(()=>{class e{constructor(e){this.http=e,this.url=gb.apiPath+"/prod/SystemRepository?property="}getSystemRepo(e){return this.http.get(this.url+e)}getAsicHardware(){return this.getSystemRepo("Hardware")}getAsicModel(e,t){return this.getAsicHardware().pipe(x(n=>this.extractModel(n,e,t)))}extractModel(e,t,n){let i=new GC,r=e.hardware.find(e=>e.shortName.toLowerCase()===t);if(r){let e=r.miners.find(e=>!0===WC.compareAsicNameFromUrl(n,e.name));if(e)return i.displayName=r.fullName+" "+e.name,i.firmwareLink=e.firmwareLink,i.vendor=r,i}return null}}return e.\u0275fac=function(t){return new(t||e)(si(Fb))},e.\u0275prov=ue({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),qC];let fA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[...mA],imports:[[zu,Yb]]}),e})(),gA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[zu,uf]]}),e})(),bA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[zu,uf]]}),e})(),wA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[zu,uf]]}),e})(),vA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[zu,nb,ib,gA,uf]]}),e})(),yA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({imports:[[zu,nb,ib,uf,gA,Jw]]}),e})(),CA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e}),e.\u0275inj=de({providers:[xC,kC],imports:[[zu,Yb,nb,ib,uf,gA]]}),e})(),SA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=Ge({type:e,bootstrap:[pA]}),e.\u0275inj=de({providers:[],imports:[[_d.withServerTransition({appId:"serverApp"}),fA,gA,CA,bA,wA,vA,yA,lA,Jw.forRoot(),Od]]}),e})();gb.production&&function(){if(hc)throw new Error("Cannot enable prod mode after platform setup.");dc=!1}(),document.addEventListener("DOMContentLoaded",()=>{Cd().bootstrapModule(SA).catch(e=>console.error(e))})},zn8P:function(e,t){function n(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id="zn8P"}},[[0,0]]]);