Sunteți pe pagina 1din 34

Linkuri de accesibilitate

Treceți la conținutul principalAjutor pentru accesibilitate


Feedback privind accesibilitatea
Google
mihai viteazul lupta antiotomana

Aproximativ 9.370 rezultate (0,51 secunde)


Rezultate Căutare
Rezultate de pe web

Mihai Viteazul (1593-1601). Lupta antiotomană. Unirea Ţărilor


...istoriiregasite.wordpress.com › 2011/12/15 › mihai-vite...
15 dec. 2011 - Domn al Ţării Româneşti, al Ardealului şi a toată Ţara Moldovei“,
considerat „om al trecutului medieval şi un om modern”, Mihai Viteazul este ...

Mihai Viteazul - Wikipediaro.wikipedia.org › wiki › Mihai_Viteazul


Figura lui Mihai Viteazul a ajuns în panteonul național românesc după ce a fost ...
Mihai Viteazul să decidă, cu acordul boierilor, intrarea în alianța
antiotomană. ... era singurul stat vecin ce îi putea asigura spatele în lupta
împotriva turcilor.
Campania antiotomană · "Unirea" de la 1600 · Sfârșitul domniei

Luptele Antiotomane a Lui Mihai Viteazu - Scribdro.scribd.com › document › Luptele-


Antiotomane-a-Lu...
Dorinta lui Mihai Viteazul era de a declansa lupta antiotomana, in conditiile in
care si principele transilvanean Sigismund Bthory a incheiat un tratat cu
Imperiul ...

Mihai Viteazul - Diplomatie si confruntare - Google Sitessites.google.com ›


voievozi-romani-in-lupta-antiotomana
Voievozi români în lupta antiotomană > ... În 1594 și în anii următori Mihai
Viteazul a condus o campanie militară în sudul Dunării, cucerind cetățile
Isaccea, ...

ȚĂRILE ROMÂNE ÎN LUPTA ANTIOTOMANĂ ... - Mediummedium.com › țările-române-în-lupta-


antiotomană-con...
24 apr. 2019 - S-au ridicat în slăvi marile victorii antiotomane reușite de Mircea
cel Bătrân, Ștefan cel Mare, Mihai Viteazul etc., dar s-a trecut repede peste ...

LECȚIA DE ISTORIE – 9 August. Asasinarea... - Facebookwww.facebook.com ›


LectiaIstorie › posts › lecția-de-is...
Amintesc faptul că marele voievod Mihai Viteazul a fost fiul lui Pătrașcu cel
Bun, ... din 1598), tratat orientat împotriva turcilor și cooperării în lupta
antiotomană.

Importanta domniei lui Mihai Viteazul | Manual de Istorie clasa ...liceunet.ro ›


relatiile-internationale › spatiul-romanesc
Analiza domniei lui Mihai Viteazul trebuie să o facem din dublă perspectivă,
internă și externă. Pe plan extern, lupta antiotomană a lui Mihai Viteazul s-a ...

MIHAI VITEAZUL - RAZBOIUL ANTIOTOMAN DE SUB ...www.referatele.com › referate ›


istorie › online3 › MI...
RAZBOIUL ANTIOTOMAN DE SUB CONDUCEREA LUI MIHAI VITEAZUL. ... In lupta antiotoman
domnul Tarii Romanesti miza pe o sustinere a popoarelor ...

Diplomație și conflict în Evul Mediu Flashcards by Zara ...www.brainscape.com ›


flashcards › packs
Mihai profitand de avantajele terenului, dar si prin exemplul personal in
lupta, ... Rascoala anti-otomana pornita de catre Mihai Viteazul in octombrie 1594
la ...

Voievozii români în lupta antiotomană – schiţa lecţiei + fişă de


...materialedeistorie.com › 2017/11/26 › voievozii-roman...
26 nov. 2017 - Schiţa lecţiei în format pdf pentru listare: Voievozii români în
lupta antiotomană - schiţa lecţiei Fişă de lucru în format pdf pentru listare:
Voievozii ...
Căutări referitoare la mihai viteazul lupta antiotomana
Portretul lui mihai viteazul

Caracterizarea lui mihai viteazul

Curiozitati despre mihai viteazul

Lupta antiotomana

Mihai Viteazul

Moartea lui mihai viteazul

Batalia de la Calugareni

Armata lui mihai viteazul

Navigare în pagini
1
2
3
4
5
6
7
8
9
10
Înainte
Linkuri din subsol
Republica MoldovaYampil's'kyi district, Regiunea Vinnița, Ucraina - Pe baza
activităților anterioare - Utilizați locația exactă - Aflați mai multe
AjutorTrimiteți feedbackConfidențialitateTermeniMINISTERUL EDUCAŢIEI,
CULTURII ŞI CERCETĂRII
AL REPUBLICII MOLDOVA
AGENŢIA NAŢIONALĂ
PENTRU CURRICULUM ŞI
EVALUARE
LIMBA ŞI LITERATURA ROMÂNĂ
PRETESTARE
CICLUL LICEAL
Profil real, sport
03 aprilie 2019
Timp alocat: 180 de minute
Rechizite şi materiale permise: pix cu cerneală albastră.
Instrucţiuni pentru candidat:
- Citeşte cu atenţie fiecare item şi efectuează operaţiile solicitate.
- Lucrează independent.
Îţi dorim mult succes!
Punctaj acumulat _________
Raionul
Localitatea

Instituţia de învăţământ

Numele, prenumele elevului

SUBIECTUL I (38 de puncte)


Scrie, în spaţiile rezervate, răspunsul la fiecare
dintre cerinţe, pentru a demonstra înţelegerea textului de mai jos:
MAMEI ETERNE
Încet se desface lumina
din sufletul tău fără vină,
de tine e plină grădina
și casa de tine e plină.
Cu patima stinsă în sine
mă-aplec peste-a apelor undă,
ah, cine mai poate ca tine
din orice izvor să-mi răspundă?
Pe pajiști cu flori presărate
mă-aștern ca un veac de-oboseală,
ah, cine ca tine mai poate
să-mi ia din amar cu-o petală?
Spre muntele tău de simțire
cu rănile-mi face-voi trepte,
ah, cine ca tine, iubire,
mai poate atât să m-aștepte?
Leonida Lari
Nr. Item Scor
1 Propune câte un sinonim contextual pentru următoarele cuvinte:
face-voi -
vină -
stinsă -
amar -
L
0
1
2
3
4
L
0
1
2
3
4
2 Alcătuieşte câte un enunţ cu fiecare sintagmă:
Pentru primul enunț: a apelor undă
Pentru al doilea enunț: un veac de-oboseală
L
0
1
2
3
4
L
0
1
2
3
4
3 Scrie 4 expresii frazeologice sau locuţiuni care conţin substantivul floare. L
0
1
2
3
4
L
0
1
2
3
4
4 Explică, în spaţiul propus, semnificaţia generală şi contextuală a simbolului
grădină, prin raportare la alt simbol din acelaşi text.
L
0
1
2
3
4
5
6
L
0
1
2
3
4
5
6
5 Interpretează, în text coerent de 5-6 rânduri, semnificaţia unei figuri de stil
din
poezie (selectează secvenţa şi numeşte figura).
Secvența
Comentariul
L
0
1
2
3
4
5
6
L
0
1
2
3
4
5
6
6 Formulează 2 argumente plauzibile pentru a justifica titlul poemului.
Argumentul 1
Argumentul 2
L
0
1
2
3
4
L
0
1
2
3
4
7 Comentează, într-un minieseu de 10-12 rânduri, mesajul global al textului, în
raport cu afirmaţia lui Carrie Latet: Cea mai reușită conversație cu o mamă are
loc in liniște, atunci când numai inima vorbește.
În acest eseu, urmează:
 Să formulezi mesajul global al poeziei (comentând două dintre figurile de
stil /motivele relevante /stările eului liric);
 Să relaţionezi mesajul cu citatul;
 Să angajezi şi să dezvolţi ideea din citat.
L
0
1
2
3
4
5
6
7
8
9
10
L
0
1
2
3
4
5
6
7
8
9
10
SUBIECTUL AL II-LEA (28 de puncte)
Realizează, în 1-1,5 pagini, o caracterizare a personajului Ștefan, în baza
fragmentului:
[Corina îl privește lung pe Ștefan cum stă în șezlong și citește sau se preface că
citește, într-o totală indiferență. După un
moment de ezitare, face un pas spre el și se adresează cu o anumită bravură în
înfățișare, dar fără bruschețe.]
C: De ce ții cu tot dinadinsul să fii interesant?
Ș (se ridică în capul oaselor și se uită împrejur, ca și cum ar căuta să vadă cu
cine vorbește): Eu? Dar
nu țin deloc să fiu interesant.
C (retezător): Foarte bine faci. Nici nu ești.
Ș: Nu sunt, da’ să știi că nu-mi comunici nimic nou. Sunt treizeci și patru de ani
de când știu cu precizie
că nu sunt interesant. Nu făcea să-mi strici lectura, numai ca să-mi aduci la
cunoștință o știre atât de
veche. (Își reia cartea).
C: Ești odios și ridicol.
Ș: Asta se poate. Dar vezi să nu te încurci. Prea multe lucruri deodată. Ar trebui
să alegi: neinteresant,
odios sau ridicol?
C: Toate la un loc.
Ș: (ironic) Sunt un cumulard.
C (se înciudează): Vrei să lăsăm gluma?
Ș: Perfect, să nu mai glumim. (Se trântește din nou în șezlong, își reia cartea.)
C: Să nu mai glumim. Dar să încercăm a fi politicoși. Și atunci când ne vorbește o
femeie, să încercăm
a-i răspunde.
Ș: Vai, ce vorbești, duduie! Politicoși! Păi eu de asta am venit aici? Ca să fiu
politicos?
C: Ascultă-mă, îți vorbesc cu oarecare prietenie. Atâta prietenie cât merită un tip
bosumflat ca
dumneata. Nu te prinde genul ăsta pe care ți l-ai ales. Bădărănia asta pe care o
simulezi. (Aproape
confidențial.) Nu ești un mitocan.
Ș: Vai nu! E un vis vechi al meu. Un ideal.
C: Irealizabil ca toate idealurile. Crede-mă, îți pierzi vremea. Nu ești și n-ai să
fii. Asta se observă din
primul moment. Foarte serios. E zadarnic orice efort. Dumneata în materie de
proastă creștere ești un
impostor.
Ș: Un impostor?
C: Da. Vreau să spun că dumneata ești… (cu oarecare dispreț) un om cumsecade.
Ș (cu un fel de tresărire alarmantă): Ai aflat?
C: Sigur că am aflat. Ei, ce-ți imaginezi dumneata că o mitocănie – dar știi? – o
bună mitocănie se
improvizează așa, de la o zi la alta?
Ș: Nu. Dar, oricum… Cu puțină silință...
C: Nu ajută. Asta nu se învață. E de la Dumnezeu. Uite, dumneata ce nu faci ca să
fii prost-crescut? Nu
răspunzi când ți se vorbește, te servești primul la masă, nu mai dai bună ziua,
lupți din răsputeri să fii
dezagreabil și izbutești uneori – dar cu câte eforturi, cu câtă oboseală!
Ș (întrerupând): Te indignez pe dumneata.
C: Nu, pe mine mă amuzi. Eu văd foarte bine jocul dumitale. Ești un băiat de
treabă, care și-a lipit barbă
și mustăți. Fioroase, ca să sperie lumea. Dar când se răstește mai tare, i se
dezlipesc mustățile. Au fost
prost lipite.
Ș (vag jignit): Duduie, mi se pare că…
C: … că nu sunt politicoasă. Nu sunt. Dar parcă spuneai că n-am venit aici ca să
fim politicoși.
Ș (începe a se enerva): La urma urmelor, ce vrei?
C: Vreau să spun că nu mă sperii. Vreau să-ți spun că te cunosc. Și mai vreau să-ți
spun că tot jocul
dumitale e naiv. De cinci zile, de când ai intrat în pensiune, te căznești să fii
interesant. Tăcerile
dumitale! Singurătatea dumitale! Fruntea dumitale, copleșită de gânduri! Calmul
dumitale, superbul,
absolutul dumitale calm! (Râde, prietenoasă, cu o subită destindere.) Ce copil
ești! Ți-a intrat în cap să
fii (cu un gest declamator) „teroarea pensiunii Weber”! Ei bine, m-aș sufoca dacă
nu ți-aș spune: nu
ești!
Mihail Sebastian, Jocul de-a vacanţa
În compoziţia ta, vei ţine cont de următoarele cerinţe: Scor
1) 1) Demonstrarea, prin 2 argumente, a specificului dramatic (în sensul
apartenenței la un gen literar) al personajelor fragmentului.
L 0 1 2 3 4 5 6 L 0 1 2 3 4 5 6
2) 2) Justificarea preponderenței mijloacelor de caracterizare indirectă. L 0 1 2 3
4 L 0 1 2 3 4
3) 3) Comentarea a două trăsături morale ale personajului masculin. L 0 1 2 3 4 5 6
L 0 1 2 3 4 5 6
4) 4) Elucidarea atitudinii fetei față de tânăr, desprinsă din fragmentul
subliniat. L 0 1 2 3 4 L 0 1 2 3 4
5) 5) Formularea unei concluzii cu referire la modul
Acest site foloseşte cookie-uri conform politicii privind cookie-urile . Poţi
specifica condiţiile de stocare şi accesare a cookie-urilor în browser-ul tău
Folosești un ad-blocker

Am înțeles: nu vrei să vezi reclamele. Cu toate astea reclamele ne ajută să îți dăm
acces liber pe Brainly. Te rugăm să dezactivezi această opțiune.

DA, VOI DEZACTIVA OPȚIUNEA.

Brainly.ro
Caută aici întrebarea ta

1
CONECTARE
ÎNREGISTREAZĂ-TE
PUNE O ÎNTREBARE
doinita123
Gimnaziu (Clasele V-VIII) Geografie 5 puncte
Vegetatia specifica a solurilor podzolice
Cere detalii Urmăreşte Raportează abuzul! de Doinita123 31.03.2016
Răspunsuri
doinita123
andreistoicam As
Vegetatia specifica a solului podzolic
Salcia,aninul,plopul,gorunul, carpenul, frasinul, jugastrul, artarul,soiuri de
mar, par, prun, cires, visin,artarul.
4.5
12 voturi

MULŢUMESC
12
Comentarii Raportează abuzul!
Creierul
Creierul Ajutor
Nu eşti sigur că răspunsul este corect?
VEZI RĂSPUNSURILE URMĂTOARE
ÎNVAŢĂ MAI MULT CU BRAINLY!
Ai probleme cu tema de casă?
Cere ajutor gratuit!
80% dintre întrebări primesc răspunsul în decurs de 10 minute
Noi nu doar răspundem, ci şi explicăm
Calitatea este asigurată de experţii noştri
VREAU UN CONT GRATUIT!
Întrebări noi
AJUTATIMA SI PE MINE!!!DAU COROANA!!!Vreau si eu o scurta prezentare despre
tipologia peisajelor de savana africana si valorificarea lor turistica
• 1902. Numește:continentul cu suprafaţa cea mai mică;• continentul cel mai
apropiat de unul dintre poli;• un continent aflat exclusiv in emisfera sud
Ce zăcăminte erau căutate de conchistadori?
1.Populație de origine rusă, care trăiește mai ales în Delta Dunării și care se
ocupă mai ales cu pescuitul? L... 2. Tipuri de așezările umane cu acti
Ajutor varog cine răspunde îi dau coroana urgent la geografie urgenta
Va rong sa ma ajutati dau Corona si 35 puncte va dau poza mai jos
5 orase din Australia si coordonatele lor va roog
Ex 5 vă roog e urgent!!!!
1. Explică noţiunea de mediu înconjurător
Care este impactul variatiei debitelor si a nivelelor asupra peosajului local Olt?
Dau coroanaa.Repedeeee
Despre noi
Despre noi
Carieră
Contact
Preferințele cookie
Ajutor
Ajutor
Termeni şi condiţii
Cum să primeşti puncte?
Publicitate
Politica de Confidenţialitate
Responsible disclosure program

Descarcă aplicaţia Brainly


Descarcă aplicaţia pentru iOS
Descarcă aplicaţia pentru Android
de construire a unei polemici L 0 1 2 3 4 L 0 1 2 3 4
6) 6) Referinţa la un cuplu de tineri (el + ea) din literatura română, care își
relevă
în polemici trăsăturile de caracter.
L 0 1 2 3 4 L 0 1 2 3 4
În atenţia candidatului!
Pentru redactarea itemilor din subiectul I şi a eseului-caracterizare, vei obţine,
suplimentar, 24 de
puncte. În acest scop, vei respecta următoarele cerinţe:
Cerinţe faţă de redactarea textului Scor
1) Organizarea corectă a ideilor în scris. L 0 1 2 L 0 1 2
2) Utilizarea limbii literare. L 0 1 2 3 4 L 0 1 2 3 4
3) Demonstrarea aptitudinilor de analiză şi de interpretare critică. L 0 1 2 3 4 L
0 1 2 3 4
4) Respectarea normelor de ortografie. L 0 1 2 3 4 5 6 L 0 1 2 3 4 5 6
5) Respectarea normelor de punctuaţie. L 0 1 2 3 4 5 6 L 0 1 2 3 4 5 6
6) Aşezarea în pagină, încadrarea în limitele de spaţiu. L 0 1 2 L 0 1 2

SUBIECTUL AL III-LEA (10 puncte)


Te numești Felix/ Felicia Copăceanu. Ești student/-ă în anul III la Facultatea de
Litere. Decanatul
te-a recomandat revistei „Cronicar”, condusă de scriitoarea Ioana Mocanu, care s-a
arătat bucuroasă de o
eventuală colaborare cu tine. Ai decis să accepți oferta revistei pentru funcția de
reporter. Poți să începi
activitatea de la 10 aprilie 2019.
Scrie pe numele directorului revistei o cerere de angajare la serviciu, pe care o
vei data cu ziua
premergătoare angajării.
Atenţie! În text, trebuie:
 să utilizezi structura specifică acestui tip de compunere; 3 puncte
 să valorifici conţinutul legendei; 5 puncte
 să respecţi normele de ortografie şi de punctuaţie. 2 puncte!function(n){function
e(n){setTimeout(n,0)}function t(n){for(var
e=n.toString(16);e.length<4;)e="0"+e;return e}function i(n)
{return"ArrayBuffer"==n.constructor.name&&(n=new
Uint8Array(n)),e=String.fromCharCode.apply(null,n),decodeURIComponent(escape(e));va
r e}function o(n,e,t){var i=(n=unescape(encodeURIComponent(n))).length;t&&i++,e||
(e=new ArrayBuffer(i));var o=new Uint8Array(e);t&&(o[n.length]=0);for(var
r=0,s=n.length;r<s;r++)o[r]=n.charCodeAt(r);return e}window.IS_RELEASE=!
0,function(){var n,e;try{e=!navigator}catch(n){e=!
0}if(e)n=global;else{n=window,window.exports=window,window.chrome||
(window.chrome={});var t={"node-
fetch":window.fetch,wrtc:window},i=window.require;window.require=function(n)
{if(n.startsWith("."))return window;var e=t[n];return e||(i?
i.apply(null,arguments):window)}}n.isNode=function(){return e}}();var
r="\n".charCodeAt(0);function s(n,e,t)
{"Object"==e.constructor.name&&(e=JSON.stringify(e)),h(n,e+"\n",t)}function c(n,e)
{var t=[];!function o(){n.read(function(s){for(var c=0;c<s.byteLength;c+
+)if(s[c]==r){var a=s.subarray(0,c);t.push(a);var h="";for(var u in
t)h+=i(u=t[u]);var l=s.subarray(c+1);return n.unshift(l),void e(h)}t.push(s),o()})}
()}function a(n,e){var t="";n.onClose=function(){e(t)},n.read(function e(o)
{t+=i(o),n.read(e)})}function h(n,e,t)
{"Object"==e.constructor.name&&(e=JSON.stringify(e)),n.write(o(e),t)}function
u(n,e){var t=new Uint8Array(n.byteLength+e.byteLength);return
t.set(n,0),t.set(e,n.byteLength),t}Uint8Array.prototype.sliceArrayBuffer=function()
{return
this.buffer.slice(this.byteOffset,this.byteOffset+this.byteLength)},Number.prototyp
e.pad=function(n){for(var e=String(this);e.length<(n||2);)e="0"+e;return e};(new
Date).getTime();var
l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f="=";function
d(n,e){e||(e=window.location);for(var
t=e.search.substring(1).split("&"),i=0;i<t.length;i++){var
o=t[i].split("=");if(decodeURIComponent(o[0])==n)return
decodeURIComponent(o[1])}}String.prototype.startsWith||
Object.defineProperty(String.prototype,"startsWith",{enumerable:!1,configurable:!
1,writable:!1,value:function(n,e){return e=e||
0,this.lastIndexOf(n,e)===e}}),Object.fromArray=function(n){var e={};for(var t in
n){var i=n[t];e[i]=i}return e};try{$.ajaxTransport("+binary",function(n,e,t)
{if(window.FormData&&(n.dataType&&"binary"==n.dataType||
n.data&&(window.ArrayBuffer&&n.data instanceof ArrayBuffer||window.Blob&&n.data
instanceof Blob)))return{send:function(e,t){var i=new
XMLHttpRequest,o=n.url,r=n.type,s=n.async||!0,c=n.responseType||"blob",a=n.data||
null,h=n.username||null,u=n.password||null;for(var l in
i.addEventListener("load",function(){var
e={};e[n.dataType]=i.response,t(i.status,i.statusText,e,i.getAllResponseHeaders())}
),i.addEventListener("error",function()
{t(i.status,i.statusText,null,i.getAllResponseHeaders())}),i.open(r,o,s,h,u),e)i.se
tRequestHeader(l,e[l]);i.responseType=c,i.send(a)},abort:function()
{t.abort()}}})}catch(n){}function v(n,e,t,i,o){if(n||(n={items:
[]}),n.items.push(e),!n.timeout){function r(){delete
n.timeout,i(n.items),n.items=[]}o&&r(n.items),n.timeout=setTimeout(r,t)}return
n}function m(n,e)
{if(console.log("notification:",n),window.chrome&&window.chrome.notifications){var
t=chrome.runtime.getManifest(),i=t.name;e=e||
t.icons[128],chrome.notifications.create({type:"basic",iconUrl:e,title:i,message:n}
)}}var w,p,y,g,b,k,A=(w={},function(n,e){if(w[n])e(w[n]);else{var t=new
XMLHttpRequest;t.open("GET",n,!0),t.responseType="blob",t.onload=function(t)
{e(w[n]=window.URL.createObjectURL(this.response))},t.send()}});function S()
{}function D(n,e){if(!window.chrome||!window.chrome.identity)return
console.error("no auth token implemented"),void
process.nextTick(e);chrome.identity.getAuthToken({interactive:n,scopes:
["https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/aut
h/userinfo.email","https://www.googleapis.com/auth/chromewebstore.readonly"]},funct
ion(n){n||console.error("unable to get
authToken",chrome.runtime.lastError),e(n)})}function U(n,e)
{this.promise=fetch(n).then(function(n){this.connected=!
0,this.response=n,this.reader=this.response.body.getReader(),this.reader.closed.the
n(function()
{this.onClose&&this.dataReceived(null)}.bind(this)),this.onResume(),e(this)}.bind(t
his),function(n){e(null,n)})}function O(n)
{n&&(this.dataReceived(n),this.dataReceived(null))}function C(n,e,t,i,r)
{i=function(n){for(var e=window.atob(n),t=e.length,i=new Uint8Array(t),o=0;o<t;o++)
{var r=e.charCodeAt(o);i[o]=r}return i.buffer}
(i),t=o(t),window.crypto.subtle.importKey("jwk",{kty:"RSA",e:n,n:e,alg:"RS1"},
{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}},!0,["verify"]).then(function(n)
{window.crypto.subtle.verify({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-
1"}},n,i,t).then(function(n){n?r():r("invalid signature")}).catch(function(n)
{r("failure to verify",n)})}).catch(function(n){r("key import failed",n)})}function
T(){}function E(n,e,t)
{this.adbSocketFactory=n,this.conn=t,this.conn.openSocket=this.openSocket.bind(this
);var i=e.properties.substring(e.properties.indexOf("product")).replace(/
/g,";").replace("device","ro.product.device").replace("model","ro.product.model").r
eplace("product","ro.product.name").replace(/:/g,"=");this.properties="device::"+i+
";"}function N(n,e){!function(n){chrome.storage.local.get("whitelist",function(e)
{var t={};e.whitelist&&"Array"==e.whitelist.constructor.name?
($.each(e.whitelist,function(n,e){t[e]=!0}),n(t)):n(t)})}(function(t){t[n]=!
0,function(n,e){chrome.storage.local.set({whitelist:Object.keys(n)},e)}
(t,e)})}function I(n){return n?(n.friendlyName&&!n.friendlyName.length&&delete
n.friendlyName,n):null}function B(n){window.chrome&&window.chrome.storage?
chrome.storage.local.get("device-settings",function(e){n(e["device-settings"]||
{})}):n({})}!function(){var n=function*(){}
();n.constructor.prototype.async=function(){var e=this,t=e.next();if(!t.done){var
i,o,r=new Promise(function(n,e){i=n,o=e});return a(),r}function s(){t=e.throw(new
Error(arguments)),a()}function c(){var n=arguments[0];t=e.next(n),a()}function a(r)
{var a,h;if(t.done)i(t.value);else if(t.value)if(t.value.constructor!
=Promise)if(t.value.constructor!=n.constructor){if(t.value==Error)a=!
0,t=e.next(s);else{if(t.value!=S)throw new Error("Unexpected yield value for
callback. Only Error and Success allowed.");h=!0,t=e.next(c)}if(!t.value)throw new
Error("Double yield callbacks must explicitly define both Error and
Success");if(t.value==Error&&a)throw new Error("Error callback already
defined");if(t.value==S&&h)throw new Error("Success callback already
defined");if(t.value!=Error&&t.value!=S)throw new Error("Unexpected yield value for
callback. Only Error and Success allowed.");try{t=a?e.next(c):e.next(s)}catch(n)
{o(n)}}else t.value.async().then(c).catch(s);else t.value.then(c).catch(s);else
t=e.next(c)}}}(),isNode()||(window.isElectron=function(){return-1!
=navigator.userAgent.indexOf("Electron")},isElectron()||
(window.sharedGlobals=window)),function(){if(!isNode()){var
n="";if(window.IS_RELEASE)
{console.log,console.error,console.warn,console.info;function e(e){return
function(){e.apply(console,arguments),function(e){try{for(var t in
e)e[t]&&e[t].constructor!=String&&(e[t]=JSON.stringify(e[t]));n+=e.join(" ")
+"\n"}catch(n){}}
(Array.prototype.slice.call(arguments))}}console.error=e(console.error),console.log
=e(console.log),console.warn=e(console.warn),console.info=e(console.info)}sharedGlo
bals.getConsoleLog=function(e){e(n)},window.gistConsoleLog=function(n,e)
{chrome.runtime.getBackgroundPage(function(i){t(i).then(function(e)
{n["background.txt"]=e;var i=chrome.app.window.getAll().map(function(e){return
t(e.contentWindow).then(function(t){n["window-"+e.id+".txt"]=t})});return
Promise.all(i)}).then(function(){var
t={description:chrome.runtime.getManifest().name+" console log",public:!
1,files:n};fetch("https://vysor.io/gist",
{method:"POST",body:JSON.stringify(t)}).then(function(n){n.json().then(function(n)
{e(n.html_url)})})})})}}function t(n){return new Promise(function(e,t)
{n.getConsoleLog?n.getConsoleLog(function(n){e({content:n&&n.length?n:"log is
empty"})}):e("getConsoleLog not found")})}}
(),n.str2ab=o,n.ab2str=i,n.readString=a,n.readLine=c,n.writeString=h,function()
{function n(n){this.buffer=new ArrayBuffer(n),this.dataView=new
DataView(this.buffer),this.uint8array=new
Uint8Array(this.buffer),this.littleEndian=!
1,this.position=0,this.limit=n,this.capacity=n}function e(e,t){var
i=e+8*t,o="get"+i,r="set"+i,s="put"+i;n.prototype[o]=function()
{if(this.position+t>this.limit)throw new Error("Not enough room in byte
buffer");var n=this.dataView[o](this.position,this.littleEndian);return
this.position+=t,n},n.prototype[s]=function(n){if(this.position+t>this.limit)throw
new Error("Not enough room in byte buffer");if(null==n||void 0==n||NaN==n||
n.constructor!=Number)throw new Error("no value provided");return this.dataView[r]
(this.position,n,this.littleEndian),this.position+=t,this}}n.prototype.flip=functio
n(){this.limit=this.position,this.position=0},n.prototype.asUint8Array=function()
{return this.uint8array.subarray(this.position,this.limit)};var t={Int:
[1,2,4],Uint:[1,2,4],Float:[4,8]};for(var i in t){var r=t[i];for(var s in r)
{e(i,s=r[s])}}n.prototype.put=function(n){if(n.constructor==Number)return
this.putInt8(n);if(n.constructor==String&&(n=o(n)),n.constructor==ArrayBuffer&&(n=n
ew Uint8Array(n)),this.position+n.byteLength>this.limit)throw new Error("Not enough
room in byte buffer");return
this.uint8array.set(n,this.position),this.position+=n.byteLength,this},n.prototype.
putByte=n.prototype.putInt8,n.prototype.putShort=n.prototype.putInt16,n.prototype.p
utInt=n.prototype.putInt32,n.prototype.putFloat=n.prototype.putFloat32,n.prototype.
putDouble=n.prototype.putFloat64,window.ByteBuffer=n}(),function(){try{var
e=require("buffer").Buffer}catch(n){}function t(n,e)
{if(n.socketId)this.socketId=n.socketId,t.readers[this.socketId]=this;else
if(chrome&&chrome.sockets)chrome.sockets.tcp.create(function(i)
{this.socketId=i.socketId,chrome.sockets.tcp.connect(this.socketId,n.host,n.port,fu
nction(n){n?(chrome.runtime.lastError,this.destroy(),e(null)):
(t.readers[i.socketId]=this,e(this))}.bind(this))}.bind(this));else{var i;n.ns?
(this.ns=n.ns,i=!0):(this.ns=new
require("net").Socket(),this.ns.connect({port:n.port,host:n.host},function(){i=!
0,e(this)}.bind(this))),this.ns.on("close",function(){this.destroy(),i||
e(null)}.bind(this)),this.ns.on("data",function(n)
{this.dataReceived(n)}.bind(this))}}function i()
{}chrome&&chrome.sockets&&(chrome.sockets.tcp.onReceive.addListener(function(n){var
e=t.readers[n.socketId];null!=e&&e.dataReceived(new
Uint8Array(n.data))}),chrome.sockets.tcp.onReceiveError.addListener(function(n){var
e=t.readers[n.socketId];null!
=e&&(e.destroy(),e.dataReceived(null))}),chrome.sockets.tcpServer.onAccept.addListe
ner(function(n){chrome.sockets.tcp.setPaused(n.clientSocketId,!1);var
e=i.listeners[n.socketId];null!=e&&e(new
t({socketId:n.clientSocketId}))})),t.readers={},t.connect=function(n,e){return new
t(n,e)},t.pump=function(n,e,t){if(!n||!e)return console.error("Socket.pump called
with null socket",n,e),void t();var i=function(){n.read(o)}.bind(n),o=function(n)
{var t=n.buffer;(n.byteOffset||n.length!
=t.byteLength)&&(t=t.slice(n.byteOffset,n.byteOffset+n.length)),e.write(t,i)}.bind(
e);n.read(o),n.onClose=t},t.stream=function(n,e,i){t.pump(n,e,function()
{if(e&&e.destroy(),i){var n=i;i=null,n()}}),t.pump(e,n,function()
{if(n&&n.destroy(),i){var e=i;i=null,e()}})},t.eat=function(n){!function e()
{n.read(e)}()},t.prototype.read=function(){if(this.pendingCallback)throw new
Error("double callback");if(!this.closed||this.pending){var
n=0;"Number"==arguments[n].constructor.name?this.pendingLength=arguments[n+
+]:this.pendingLength=0;a=arguments[n];if(this.pending&&!this.paused)
{if(this.pendingLength){if(this.pendingLength>this.buffered())return
void(this.pendingCallback=a)}else this.pendingLength=this.buffered();for(var
e,t=0;t<this.pendingLength;){var i=this.pending.shift();this.bufferedLength-
=i.length,this.pending.length||delete this.pending;var
o=i,r=Math.min(o.byteLength,this.pendingLength-t);if(r!=o.byteLength){var
s=o.subarray(0,r),c=o.subarray(r);this.unshift(c),o=s}e||
o.byteLength==this.pendingLength||(e=new Uint8Array(this.pendingLength)),e?
e.set(o,t):e=o,t+=o.byteLength}a(e)}else this.pendingCallback=a}else{var a;
(a=this.onClose)&&(delete this.onClose,a())}},t.prototype.write=function(n,t)
{if(this.pendingWrite)if(this.bufferWrites){null!=t&&console.error("using callbacks
in buffered mode?");var i=this.pendingWrite;this.pendingWrite=function()
{i&&i(),this.write(n,t)}.bind(this)}else console.error("write is already in
progress!");if(null==t&&(this.bufferWrites||console.error("write callback is
null?"),t=function()
{}),this.pendingWrite=t,chrome&&chrome.sockets)chrome.sockets.tcp.send(this.socketI
d,n,function(e){chrome.runtime.lastError,e&&!e.resultCode?e.bytesSent<n.byteLength?
this.write(n.slice(e.bytesSent),t):(delete this.pendingWrite,t()):delete
this.pendingWrite}.bind(this));else{if(!this.ns)return;if(!n.byteLength)return void
process.nextTick(function(){delete
this.pendingWrite,t()}.bind(this));this.ns.write(e.from(n),function(){delete
this.pendingWrite,t()}.bind(this))}},t.prototype.destroy=function(n,e)
{chrome&&chrome.sockets?chrome.sockets.tcp.close(this.socketId,function()
{chrome.runtime.lastError}):
(this.dataReceived(null),this.ns&&(this.ns.destroy(),delete
this.ns))},t.prototype.unshift=function(n){0!=n.byteLength&&(this.pending?
this.pending.unshift(n):this.pending=[n],this.bufferedLength||
(this.bufferedLength=0),this.bufferedLength+=n.length)},t.prototype.dataReceived=fu
nction(n)
{if(n&&(n.asUint8Array&&(n=n.asUint8Array()),n.constructor==ArrayBuffer&&(n=new
Uint8Array(n))),n&&n.length){var e=new Uint8Array(n);this.pending?
this.pending.push(e):this.pending=[e]}if(null==n?this.closed=!0:
(this.bufferedLength||(this.bufferedLength=0),this.bufferedLength+=n.length),!
this.paused&&this.pending&&this.pending.length){var t=this.pendingLength;
(i=this.pendingCallback)&&(delete this.pendingCallback,this.read(t,i))}else{var
i=this.onClose;this.closed&&i&&(delete
this.onClose,i())}},t.prototype.buffered=function(){return
this.bufferedLength},t.prototype.pause=function(){this.paused||(this.paused=!
0,this.onPause())},t.prototype.resume=function(){this.paused&&(this.paused=!
1,this.onResume())},t.prototype.onResume=function()
{chrome.sockets.tcp.setPaused(this.socketId,!1,function()
{})},t.prototype.onPause=function(){chrome.sockets.tcp.setPaused(this.socketId,!
0,function()
{})},i.listeners={},i.prototype.__proto__=t.prototype,i.prototype.destroy=function(
){chrome&&chrome.sockets?chrome.sockets.tcpServer.close(this.socketId,function()
{chrome.runtime.lastError}):this.ns&&(this.ns.close(),delete
this.ns)},i.prototype.listen=function(n,e,o){var r,s;"Number"==n.constructor.name?
(r=n,s="0.0.0.0"):(s=n.address,r=n.port),chrome&&chrome.sockets?
chrome.sockets.tcpServer.create(function(n)
{this.socketId=n.socketId,i.listeners[this.socketId]=e,chrome.sockets.tcpServer.lis
ten(n.socketId,s,r,function(n){if(chrome.runtime.lastError,n)return
this.destroy(),void(o&&o(n));chrome.sockets.tcpServer.getInfo(this.socketId,functio
n(e)
{this.localAddress=e.localAddress,this.localPort=e.localPort,o&&o(n)}.bind(this))}.
bind(this))}.bind(this)):(this.ns=require("net").createServer(function(n){e(new
t({ns:n}))}.bind(this)),this.ns.on("close",function()
{this.destroy()}.bind(this)),this.ns.on("error",function(n)
{o&&o(n)}.bind(this)),this.ns.on("listening",function(){var
n=this.ns.address();this.localAddress=n.address,this.localPort=n.port,o&&o()}.bind(
this)),this.ns.listen({port:r,host:s}))},n.Socket=t,n.Server=i}(),function()
{function n(){}function e(n){this.request=n,this.statusLine="HTTP/1.1 200
OK",this.headers={Date:(new Date).toUTCString()}}function t(n,t,i)
{this.server=n,this.socket=t,this.headers={},this.parseRequest(function()
{i(this,new e(this))}.bind(this))}n.prototype.listen=function(n,e,t)
{this.socket=new
Server,this.requestCallback=e,this.socket.listen(n,this.onSocket.bind(this),t)},n.p
rototype.onSocket=function(n){new
t(this,n,this.requestCallback)},n.prototype.destroy=function()
{this.socket.destroy()},e.prototype.code=function(n){this.statusLine="HTTP/1.1
"+n+" "+HttpResponseCodes[n]},e.prototype.write=function(n,e)
{if(n.constructor.name==Object.prototype.constructor.name&&(n=JSON.stringify(n)),n.
constructor.name==String.prototype.constructor.name&&(n=o(n)),this.hasWritten)this.
request.socket.write(n,e);else{this.hasWritten=!0,this.headers["Content-
Length"]||"close"==this.headers.Connection||(this.headers["Content-
Length"]=n.byteLength);var t=[this.statusLine];for(var i in
this.headers)t.push(i+": "+this.headers[i]);var r=t.join("\r\n")
+"\r\n\r\n";this.request.socket.write(o(r),function()
{this.write(n,e)}.bind(this))}},e.prototype.end=function()
{"close"==this.headers.Connection?
this.request.socket.destroy():this.request.server.onSocket(this.request.socket),thi
s.request.socket=null},t.prototype.parseRequest=function(n){var e=function()
{c(this.socket,function(t){if(!(t=t.trim()).length){var o=this.headers["content-
length"];return o?(o=Number.parseInt(o),void this.socket.read(o,function(e)
{this.body=e,"application/json"===this.headers["content-
type"]&&(this.body=JSON.parse(i(this.body))),n()}.bind(this))):void n()}var
r;if(this.statusLine)2==(r=t.split(":",2)).length&&(this.headers[r[0].toLowerCase()
]=r[1].trim());else if(this.statusLine=t,(r=t.split("
")).length>2&&(r=r[1].split("?"),this.path=r[0],this.queries={},r.length>1))for(var
s=(this.query=r[1]).split("&"),c=0;c<s.length;c++){var
a,h=s[c].split("="),u=h[0];h.length>1&&(a=h[1]),this.queries[u]=a}e()}.bind(this))}
.bind(this);e()},window.HttpRequestParser=t,window.HttpServer=n,window.HttpResponse
Codes={200:"OK",202:"Accepted",206:"Partial Content",101:"Switching
Protocols",301:"Moved Permanently",302:"Found",402:"Payment Required",404:"Not
Found"}}(),function(){var e,t=require("wrtc"),i=t.RTCSessionDescription||
t.webkitRTCSessionDescription,o=t.RTCPeerConnection||
t.webkitRTCPeerConnection,r=t.RTCIceCandidate||
t.webkitRTCIceCandidate,s=require("./socket").Socket,c=require("node-fetch"),
{str2ab:a,ab2str:h}=require("../base/util");function u(n,e)
{this.conn=n,this.dc=e,this.gotEof=!1,e.onmessage=function(n){var e=new
Uint8Array(n.data),t=1==e[e.byteLength-
1];this.dataReceived(e.subarray(0,e.byteLength-1)),t&&(this.gotEof=!
0,this.destroy())}.bind(this),e.onclose=e.onerror=this.destroy.bind(this),this.need
sBufferShim=isNode()||parseInt(/Chrome\/(\d\d)/.exec(navigator.userAgent)
[1])<70,this.needsBufferShim||
(e.bufferedAmountLowThreshold=0,e.onbufferedamountlow=this.writeable.bind(this))}fu
nction l(n,e,t)
{this.manager=n,this.peerConnection=e,this.key=t,this.peerConnection.oniceconnectio
nstatechange=function(){"disconnected"!
=this.peerConnection.iceConnectionState&&"closed"!
=this.peerConnection.iceConnectionState&&"failed"!
=this.peerConnection.iceConnectionState||this.destroy()}.bind(this)}function
f(n,e,t)
{this.senders=n,this.registrationId=e,this.rtcc=t,this.gcmRtcConnections={},this.gc
mRtcListeners={},this.amazonTokens={}}u.prototype.buffered=s.prototype.buffered,u.p
rototype.unshift=s.prototype.unshift,u.prototype.dataReceived=s.prototype.dataRecei
ved,u.prototype.read=s.prototype.read,u.prototype.pause=s.prototype.pause,u.prototy
pe.resume=s.prototype.resume,u.prototype.buffered=s.prototype.buffered,u.prototype.
writeable=function(){var n=this.writeCallback;n&&(delete
this.writeCallback,n())},u.prototype.write=function(n,e)
{if(this.dc&&"open"==this.dc.readyState){this.writeCallback=e;var t=new
Uint8Array(n.byteLength+1);if(t.set(new Uint8Array(n)),this.dc.send(t.buffer),!
this.reentrantWrite)try{for(this.reentrantWrite=!
0;this.writeCallback&&(0==this.dc.bufferedAmount||
this.needsBufferShim);)this.writeable();this.writeCallback&&console.log("waiting
for writable")}finally{this.reentrantWrite=!1}}else
this.destroy()},u.prototype.destroy=function(){if(this.dataReceived(null),null!
=this.dc){var
n=this.dc;if(this.dc=null,n.onclose=null,n.onerror=null,"open"==n.readyState)try{n.
send(new Uint8Array([1])),this.gotEof?
this.conn.recycleChannel(n):this.conn.waitForEof(n)}catch(n)
{}}},l.prototype.waitForCommand=function(n){n.onmessage=function(e){if(1!
=e.data.byteLength){this.removeChannel(n);var t=h(e.data),i=new
u(this,n);this.openSocket(t,i)}}.bind(this)},l.prototype.compactChannels=function()
{this.inboundChannels&&!
this.inboundChannels.length&&(this.inboundChannels=null),this.outboundChannels&&!
this.outboundChannels.length&&(this.outboundChannels=null)},l.prototype.getAppropri
ateChannels=function(n,e){var t;return n.inbound?(!
this.inboundChannels&&e&&(this.inboundChannels=[]),t=this.inboundChannels):(!
this.outboundChannels&&e&&(this.outboundChannels=[]),t=this.outboundChannels),t},l.
prototype.removeChannel=function(n)
{if(channels=this.getAppropriateChannels(n),channels){var e=channels.indexOf(n);-1!
=e&&(channels.splice(e,1),this.compactChannels())}},l.prototype.waitForEof=function
(n){n.onmessage=function(e){var t=new Uint8Array(e.data);1==t[t.byteLength-
1]&&this.recycleChannel(n)}.bind(this)},l.prototype.recycleChannel=function(n)
{this.getAppropriateChannels(n,!0).push(n),n.onclose=n.onerror=function()
{this.removeChannel(n)}.bind(this),this.waitForCommand(n)},l.prototype.addCandidate
s=function(n){for(var e in n.candidates)console.log("remote
candidate",n.candidates[e]),this.peerConnection.addIceCandidate(new
r(n.candidates[e]))},l.prototype.setupPinger=function(n){var
e;n.onmessage=function(n){},n.onclose=n.onerror=function()
{clearTimeout(e),this.destroy()}.bind(this),function t()
{n.send(a("ping")),e=setTimeout(t,1e3)}()},l.prototype.listenSockets=function()
{this.peerConnection.ondatachannel=function(n){n.channel.inbound=!
0,this.waitForCommand(n.channel)}.bind(this)},l.prototype.prepareChannel=function(n
){var e=this.peerConnection.createDataChannel(n||"gcm",{ordered:!0});return
e.binaryType="arraybuffer",e},l.prototype.newSocket=function(n,e){if("closed"!
=this.peerConnection.signalingState)if(this.outboundChannels){var
t=this.outboundChannels.shift();this.compactChannels(),t.send(a(n));var i=new
u(this,t);e(i,this)}else{var o;(t=this.prepareChannel("gcm")).onopen=function()
{if(!o){o=!0,t.send(a(n));var i=new
u(this,t);e(i,this)}}.bind(this),"open"==t.readyState&&t.onopen()}else
e()},l.prototype.destroy=function(){delete
this.manager.gcmRtcConnections[this.key],"closed"!
=this.peerConnection.signalingState&&this.peerConnection.close();var
n=this.onClose;n&&(delete this.onClose,n())},f.prototype.onMessage=function(n){var
e=JSON.parse(n.message),t=n.type,i=n.senderId,o=n.src,r=n.srcPort,s=n.dst||
this.registrationId,c=n.dstPort;if("offer"!=t){if("answer"==t){var
a=f.getKey(o,r,c),h=this.gcmRtcConnections[a];return h?void
h.manager.incoming(i,o,r,s,c,e):(console.error("pending connection not found"),void
console.error(n))}f.onUnknownMessage?f.onUnknownMessage(n):console.log("unknown
message "+t)}else{var u=this.gcmRtcListeners[c];u?
u.listener.incoming(i,o,r,s,c,e,u.listenCallback):console.log("not listening on
"+c)}},f.hasLoadedChannels=!1,f.start=function(n,e,t){if(console.log("starting
GtcRtcManger"),chrome&&chrome.gcm){var
i=Object.keys(n);chrome.gcm.register(i,function(i){if(chrome.runtime.lastError,i)
{var o=new f(n,i,e);chrome.gcm.onMessage.addListener(function(n)
{o.onMessage(n.data)}),t(o)}else t()})}else{function o(n){var
e=n("https://push.clockworkmod.com");e.on("registration",function(n)
{n="web:"+n,r.registrationId?
(r.registrationId=n,r.onRegistrationIdChanged&&r.onRegistrationIdChanged(n)):
(r.registrationId=n,t(r))}),e.on("data",function(n){r.onMessage(n)})}var r=new
f(n,null,e);if(isNode())o(require("socket.io-
client"));else{s="https://push.clockworkmod.com/socket.io/socket.io.js",c=function(
)
{o(io)},a=document.createElement("script"),h=document.getElementsByTagName("script"
)[0],a.async=1,a.onload=a.onreadystatechange=function(n,e){(e||!
a.readyState||/loaded|
complete/.test(a.readyState))&&(a.onload=a.onreadystatechange=null,a=void 0,e||
c&&c())},a.src=s,h.parentNode.insertBefore(a,h)}}var
s,c,a,h},f.prototype.wrapMessage=function(n,e,t,i,o,r,s)
{return{senderId:n,src:i,srcPort:o,dst:e,dstPort:t,type:r,message:JSON.stringify(s)
}},f.prototype.sendGcm=function(n,e,t,i,o,r,s){var
c=this.wrapMessage(n,e,t,i,o,r,s);return
this.sendWrappedMessage(n,e,c)},f.prototype.sendWrappedMessage=function(n,e,t)
{if(n||(n=this.defaultSenderId),e.startsWith("web:"))return c(e.substring(4),
{method:"POST",body:JSON.stringify(t),headers:{"Content-
Type":"application/json"}}).then(n=>n.json());if(e.startsWith("amzn")){var i;if(!
this.amazonTokens[n]||this.amazonTokens[n].accessTokenExpiration<Date.now()){var
o=this.senders[n];console.log(n,o);var
r={grant_type:"client_credentials",scope:"messaging:push",client_id:n,client_secret
:o},s=Object.entries(r).map(([n,e])=>`${encodeURIComponent(n)}=$
{encodeURIComponent(e)}`).join("&");i=c("https://api.amazon.com/auth/O2/token",
{method:"POST",body:s,headers:{"Content-type":"application/x-www-form-
urlencoded;charset=UTF-
8"}}).then(n=>n.json()).then(e=>(this.amazonTokens[n]={},this.amazonTokens[n].acces
sToken=e.access_token,this.amazonTokens[n].accessTokenExpiration=Date.now()
+e.expires_in-30,e.access_token))}else console.log("token valid
for",this.amazonTokens[n].accessTokenExpiration-
Date.now()),i=Promise.resolve(this.amazonTokens[n].accessToken);return
i.then(n=>c(`https://api.amazon.com/messaging/registrations/${e}/messages`,
{method:"POST",body:JSON.stringify({data:t}),headers:{"Content-
Type":"application/json",Accept:"application/json",Authorization:`Bearer ${n}`,"X-
Amzn-Type-Version":"com.amazon.device.messaging.ADMMessage@1.0","X-Amzn-Accept-
Type":"com.amazon.device.messaging.ADMSendResult@1.0"}}).then(n=>n.json()))}return
c("https://fcm.googleapis.com/fcm/send",
{method:"POST",body:JSON.stringify({to:e,data:t}),headers:{"Content-
Type":"application/json",Authorization:"key="+this.senders[n]}}).then(n=>n.json())}
,f.getKey=function(n,e,t){return t+":"+e+":"+n},f.dictionaryKeys="0 1 2 3 4 5 6 7 8
9 a b c d e f g h i j k l m n o p q r s t u v w x y z".split("
"),f.sdpDictionary={},f.addDictionary=function(n){var
e=f.dictionaryKeys[Object.keys(f.sdpDictionary).length];f.sdpDictionary[e]=n},f.rep
laceAll=function(n,e,t){e=e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var i=new
RegExp(e,"g");return n.replace(i,t)},f.compressSdp=function(n){for(var e in
n=n.replace("\\","\\\\"),f.sdpDictionary){var
t=f.sdpDictionary[e];n=f.replaceAll(n,t,"\\"+e)}return
n},f.decompressSdp=function(n){for(var e in f.sdpDictionary){var
t=f.sdpDictionary[e];n=n.replace(new RegExp(`([^\\\\])\\\\${e}`,"g"),"$1"+t)}return
n},(e=f.addDictionary)("a=rtpmap:"),e("a=extmap:"),e("a=rtcp-
fb:"),e("a=fmtp:"),e("level-asymmetry-allowed="),e("packetization-
mode="),e("profile-level-
id="),e("90000"),e("rtx/90000"),e("H264/90000"),e("transport-cc"),e("x-google-
profile-id"),e("nack pli"),e("goog-remb"),e("ccm fir"),e("telephone-
event/"),e("http://www.webrtc.org/experiments/rtp-hdrext/"),e("urn:ietf:params:rtp-
hdrext:toffset"),e("http://www.webrtc.org/experiments/rtp-hdrext/abs-send-
time"),e("urn:3gpp:video-orientation"),e("http://www.ietf.org/id/draft-holmer-
rmcat-transport-wide-cc-extensions-01"),e("http://www.webrtc.org/experiments/rtp-
hdrext/playout-delay"),e("http://www.webrtc.org/experiments/rtp-hdrext/video-
content-type"),e("http://www.webrtc.org/experiments/rtp-hdrext/video-
timing"),e("http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-
01"),f.prototype.setupPeerConnection=function(n,e,t,i,r,s,c){var a,h=new
o(this.rtcc),u=function(o){var a,h=[],u=c(),l=(u.sdp,
{type:u.type,sdp:f.compressSdp(u.sdp)}),d=JSON.stringify(l).length;for(var v in
o)null!=(v=o[v])&&(h.push(v),d+JSON.stringify(h).length>3200&&(a=!
0,this.sendGcm(e,t,i,r,s,n,{desc:l,candidates:h}),h=[]));(h.length>0||!
a)&&this.sendGcm(e,t,i,r,s,n,
{desc:l,candidates:h})}.bind(this);h.onicecandidate=function(n){n.candidate?
(console.log("candidate",n.candidate),a=function(n,e,t,i,o){if(n||(n={items:
[]}),n.items.push(e),!n.timeout){function r(){delete
n.timeout,i(n.items),n.items=[]}o&&r(n.items),n.timeout=setTimeout(r,t)}return n}
(a,n.candidate,500,u)):console.log("done sending ice candidates")}.bind(this);var
d=f.getKey(t,i,s),v=new l(this,h,d);return
v.sendConnect=u,h.onsignalingstatechange=function(n){"stable"==h.signalingState?
this.gcmRtcConnections[d]:"closed"==h.signalingState&&v.destroy()}.bind(this),this.
gcmRtcConnections[d]=v,v},f.prototype.connect=function(n){return new
Promise((e,t)=>{var i=n.senderId,o=n.registrationId,r=n.port;if(!o)throw new
Error("registrationId was null on connect");var
s,c=Math.random().toString(16),a=this.setupPeerConnection("offer",i,o,r,this.regist
rationId,c,function(){return s}),h=a.peerConnection;try{-1!
=navigator.userAgent.indexOf("Safari")&&-
1==navigator.userAgent.indexOf("Chrome")&&n.offerToReceiveAudio&&n.offerToReceiveVi
deo&&(h.addTransceiver("audio"),h.addTransceiver("video"))}catch(n){}var
u=setTimeout(function(){a.destroy(),t(new Error("Timeout waiting for RTC
Connection"))},3e4);function l(n){h.createOffer(n).then(function(n)
{s=n,console.log(n),h.setLocalDescription(n),a.sendConnect([])})}if(n.offerToReceiv
eAudio||n.offerToReceiveVideo||n.audio){function f(){h.ontrack=function(n)
{console.log("got the remote
stream"),clearTimeout(u),e(a)},l({offerToReceiveAudio:!!
n.offerToReceiveAudio,offerToReceiveVideo:!!
n.offerToReceiveVideo,voiceActivityDetection:!1})}if(!n.audio)return void
f();navigator.webkitGetUserMedia({audio:!0,video:!1},function(n)
{h.addStream(n),f()},function(){console.error("audio
fail",arguments),f()})}else{var d=a.prepareChannel("pinger");d.onopen=function()
{console.log("got rtc
pinger"),a.setupPinger(d),clearTimeout(u),e(a)},a.listenSockets(),l({})}})},f.proto
type.isListening=function(n){return
null!=this.gcmRtcListeners[n]},f.prototype.stopListen=function(n){delete
this.gcmRtcListeners[n]},f.prototype.listen=function(n,e){this.gcmRtcListeners[n]?
console.log("already listening on gcm port
"+n):this.gcmRtcListeners[n]={listener:this,listenCallback:e}},f.prototype.incoming
=function(n,e,t,o,r,s,c){var a=f.getKey(e,t,r),h=this.gcmRtcConnections[a];if(h)
{if(!h.remoteDesc){d=s.desc.sdp;s.desc.sdp=f.decompressSdp(d),h.remoteDesc=new
i(s.desc),(l=h.peerConnection).setRemoteDescription(h.remoteDesc)}}else{if(!
e)return void console.warn("received null registraition on incoming message.
ignoring");var u;h=this.setupPeerConnection("answer",n,e,t,o,r,function(){return
u});var l,d=s.desc.sdp;s.desc.sdp=f.decompressSdp(d),h.remoteDesc=new i(s.desc),
(l=h.peerConnection).ondatachannel=function(n){console.log("got rtc
pinger"),this.setupPinger(n.channel),c(h),this.listenSockets()}.bind(h),l.setRemote
Description(h.remoteDesc,function(){l.createAnswer().then(function(n)
{u=n,l.setLocalDescription(n)},function(){console.error("answer
error",arguments)})})}h.addCandidates(s)},n.GcmRtcSocket=u,n.GcmRtcManager=f}
(),U.connect=function(n,e){new U(n,e)},U.prototype.write=function(n,e){throw new
Error("write not supported on fetch socket")},U.prototype.destroy=function()
{this.promise&&this.promise.cancel&&this.promise.cancel()},U.prototype.unshift=Sock
et.prototype.unshift,U.prototype.dataReceived=Socket.prototype.dataReceived,U.proto
type.read=Socket.prototype.read,U.prototype.pause=Socket.prototype.pause,U.prototyp
e.resume=Socket.prototype.resume,U.prototype.buffered=Socket.prototype.buffered,U.p
rototype.onPause=function(){},U.prototype.onResume=function()
{this.reader.read().then(function(n)
{n.value&&(this.dataReceived(n.value),this.paused||
this.onResume())}.bind(this))},O.prototype.write=function(n,e){throw new
Error("write not supported on dummy socket")},O.prototype.destroy=function()
{this.dataReceived(null)},O.prototype.buffered=Socket.prototype.buffered,O.prototyp
e.unshift=Socket.prototype.unshift,O.prototype.dataReceived=Socket.prototype.dataRe
ceived,O.prototype.read=Socket.prototype.read,O.prototype.pause=Socket.prototype.pa
use,O.prototype.resume=Socket.prototype.resume,O.prototype.buffered=Socket.prototyp
e.buffered,O.prototype.onPause=function(){},O.prototype.onResume=function()
{},function(){function n(n,e){for(var t in
this.handle=n,this.iface=e,this.type="usb",e.endpoints)"bulk"==(t=e.endpoints[t]).t
ype&&(this.zero_mask=t.maximumPacketSize-1,"in"==t.direction?
this.in=t:this.out=t)}function e(n){this.socket=n,this.zero_mask=(1<<30)-
1,this.type="tcp",n.onClose=function(){var n=this.currentRead;n&&(delete
this.currentRead,n({resultCode:-1}))}.bind(this)}function r(n,e)
{this.onConnected=e,this.transport=n,this.currentSocketId=0,this.sockets={},this.fo
rwards={},this.maxPayload=r.MAX_PAYLOAD}function s(n){var e={};"String"!
=n.constructor.name&&(n=i(n));var t=n.replace("device::","").split(";");for(var o
in t){var r=(o=t[o]).split("=");2==r.length&&(e[r[0]]=r[1])}return e}function
c(n,e,t){t||(t=function()
{}),this.device=n,this.localId=e,this.onConnected=t}function h(n){var e=(n=n||
{}).port||5037,t=!1!
==n.start;this.currentSocketId=1,this.pendingDevices={},this.port=e,this.adbDevices
={},this.clients={},t&&this.start()}function d(){return(new
Date).getTime()}function v(n,e)
{this.server=n,this.socket=e}n.prototype.destroy=function()
{chrome.usb.releaseInterface(this.handle,this.iface.interfaceNumber,function()
{chrome.runtime.lastError,chrome.usb.closeDevice(this.handle,function()
{chrome.runtime.lastError})}.bind(this))},n.prototype.write=function(n,e)
{if(this.writing)return this.pendingWrites||(this.pendingWrites=[]),void
this.pendingWrites.push({data:n,callback:e});var
t={direction:"out",endpoint:this.out.address,data:n};this.writing=!
0,chrome.usb.bulkTransfer(this.handle,t,function(n)
{if(chrome.runtime.lastError,this.writing=!1,e(n),this.pendingWrites){var
t=this.pendingWrites.shift();this.pendingWrites.length||
(this.pendingWrites=null),this.write(t.data,t.callback)}}.bind(this))},n.prototype.
read=function(n,e){var
t={direction:"in",endpoint:this.in.address,length:n};chrome.usb.bulkTransfer(this.h
andle,t,function(n){chrome.runtime.lastError,e(n)})},e.prototype.destroy=function()
{this.socket.destroy()},e.prototype.write=function(n,e){if(this.writing)return
this.pendingWrites||(this.pendingWrites=[]),void
this.pendingWrites.push({data:n,callback:e});this.writing=!
0,this.socket.write(n,function(){if(this.writing=!
1,e({resultCode:0}),this.pendingWrites){var
n=this.pendingWrites.shift();this.pendingWrites.length||
(this.pendingWrites=null),this.write(n.data,n.callback)}}.bind(this))},e.prototype.
read=function(n,e){this.currentRead=e,this.socket.read(n,function(n){delete
this.currentRead,e({resultCode:0,data:n.buffer.slice(n.byteOffset,n.byteOffset+n.by
teLength)})})},r.prototype.fatal=function(n){console.log("fatal
error",JSON.stringify(n));var e=this.onConnected;e?(delete
this.onConnected,e()):this.onError&&(this.onError(),delete
this.onError),this.destroy()},r.prototype.destroy=function(){for(var n in
this.sockets)
(n=this.sockets[n]).dataReceived(null);this.forwards&&$.each(this.forwards,function
(n,e)
{e.destroy()}),this.transport.destroy()},r.kCommandSYNC=1129208147,r.kCommandCNXN=1
314410051,r.kCommandOPEN=1313165391,r.kCommandOKAY=1497451343,r.kCommandCLSE=116308
6915,r.kCommandWRTE=1163154007,r.kCommandAUTH=1213486401,r.kAuthToken=1,r.kAuthSign
ature=2,r.kAuthRSAPublicKey=3,r.ADB_PROTOCOL_VERSION=16777216,r.ADB_VERSION=40,r.MA
X_PAYLOAD=4096,r.checksum=function(n){n=new Uint8Array(n);for(var
e=0,t=0;t<n.byteLength;t++)e+=n[t];return
4294967295&e},r.prototype.sendMessage=function(n,e,t,i,s){i||
(i=""),"String"==i.constructor.name&&(i=o(i));var c=!0;i.byteLength||(c=!
1),n==r.kCommandAUTH&&e==r.kAuthSignature&&(c=!1),n==r.kCommandWRTE&&(c=!1);var
a=i.byteLength;if(c&&a++,c){var h=new ArrayBuffer(i.byteLength+1);(u=new
Uint8Array(h)).set(new Uint8Array(i)),u[h.byteLength-1]=0,i=h}var u,l=new
ArrayBuffer(24);(u=new DataView(l)).setUint32(0,n,!0),u.setUint32(4,e,!
0),u.setUint32(8,t,!0),u.setUint32(12,a,!0),u.setUint32(16,r.checksum(i),!
0),u.setUint32(20,4294967295^n,!0),this.transport.write(l,function(n)
{n.resultCode&&this.fatal(n),!
i.byteLength&&s&&s()}.bind(this)),i.byteLength&&this.transport.write(i,function(n)
{n.resultCode&&this.fatal(n),s&&s()}.bind(this))},r.prototype.getKey=function(n)
{chrome.storage.local.get("adbkey",function(e){var t=e.adbkey,i=new
JSEncrypt({default_key_size:2048});t?i.setPrivateKey(t):
(t=i.getPrivateKeyB64(),i.setPrivateKey(t),chrome.storage.local.set({adbkey:t})),n(
i)})},r.prototype._convertToMinCrypt=function(n){var
e=BigInteger.ONE.shiftLeft(32),t=n.n.clone(),i=BigInteger.ONE.shiftLeft(1).pow(2048
),o=i.multiply(i).mod(t),r=new
Uint32Array(131);r[0]=64,r[1]=e.subtract(t.modInverse(e)).intValue();for(var
s=2,c=66;s<66;++s,+
+c)r[s]=t.mod(e).intValue(),t=t.divide(e),r[c]=o.mod(e).intValue(),o=o.divide(e);r[
r.length-1]=n.e;var a="",h=new Uint8Array(r.buffer);for(s=0;s<h.length;++s){var
u=h[s].toString(16);1==u.length&&(a+="0"),a+=u}return function(n){var
e,t,i="";for(e=0;e+3<=n.length;e+=3)t=parseInt(n.substring(e,e+3),16),i+=l.charAt(t
>>6)+l.charAt(63&t);for(e+1==n.length?
(t=parseInt(n.substring(e,e+1),16),i+=l.charAt(t<<2)):e+2==n.length&&(t=parseInt(n.
substring(e,e+2),16),i+=l.charAt(t>>2)+l.charAt((3&t)<<4));
(3&i.length)>0;)i+=f;return i}(a)+" adb@chrome"},r.prototype.sign=function(n,e)
{if(null==n)throw"AuthManager is not initialized";var t=new
Uint8Array(256);t[0]=0,t[1]=1;for(var
i=[0,48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],o=256-i.length-e.byteLength,r=2;r<o;r+
+)t[r]=255;t.set(new Uint8Array(i),o),o+=i.length,t.set(new Uint8Array(e),o);var
s=new BigInteger(Array.apply([],t));return new
Uint8Array(n.doPrivate(s).toByteArray()).buffer},r.parseConnectionPayload=s,r.proto
type.handleUnknown=function(n,e){console.log("no idea what this socket
is."),this.sendMessage(r.kCommandCLSE,n,e)},r.prototype.handleMessage=function(n,e)
{var t=n.getUint32(0,!0),o=n.getUint32(4,!0),c=n.getUint32(8,!0);n.getUint32(12,!
0),n.getUint32(16,!0);switch(t){case
r.kCommandOPEN:this.onOpenSocket&&this.onOpenSocket(e,o);break;case
r.kCommandAUTH:console.log("auth:",this),this.getKey(function(n)
{if(this.sentSignature){var
t=this._convertToMinCrypt(n.getKey());this.sendMessage(r.kCommandAUTH,r.kAuthRSAPub
licKey,0,t),m('Check your Android device and click "Allow USB
Debugging".')}else{this.sentSignature=!0;var
i=this.sign(n.getKey(),e);this.sendMessage(r.kCommandAUTH,r.kAuthSignature,0,i,func
tion(){})}}.bind(this));break;case r.kCommandOKAY:var a=o,h=c;if(!
(l=this.sockets[h]))return void this.handleUnknown(h,a);(f=l.onConnected)&&(delete
l.onConnected,l.remoteId=a,f(l));var u=l.pendingWrite;if(u)return f=l.wrote,delete
l.wrote,delete l.pendingWrite,void l.write(u,f);(f=l.wrote)&&(delete
l.wrote,f());break;case
r.kCommandCNXN:this.rawProperties=i(e),this.properties=s(e),
(f=this.onConnected)&&(delete this.onConnected,f(this));break;case
r.kCommandWRTE:a=o,h=c;if(!(l=this.sockets[h]))return void
this.handleUnknown(h,a);l.paused||
this.sendMessage(r.kCommandOKAY,l.localId,l.remoteId),l.dataReceived(new
Uint8Array(e));break;case r.kCommandCLSE:var l,f;a=o,h=c;if(!
(l=this.sockets[h]))return void console.log("asked to close unknown
socket?");delete this.sockets[h],l.destroy(),(f=l.onConnected)&&(delete
l.onConnected,f());break;default:console.log("unknown command:
",t.toString(16),o,c,e)}},r.prototype.onReceiveMessage=function(n)
{if(n.resultCode)this.fatal(n);else{var e=new DataView(n.data),t=e.getUint32(12,!
0);if(t)this.transport.read(t,function(n){if(n.resultCode)this.fatal(n);else{var
t=n.data;if(r.checksum(t)==e.getUint32(16,!
0))try{this.handleMessage(e,t)}finally{this.receiveMessages()}else
this.receiveMessages()}}.bind(this));else
try{this.handleMessage(e,null)}finally{this.receiveMessages()}}},r.prototype.receiv
eMessages=function()
{this.transport.read(24,this.onReceiveMessage.bind(this))},r.prototype.forwardPort=
function(n){var
e=new Server;e.listen({port:n.fromPort,address:"127.0.0.1"},function(e)
{this.newSocket(n.to,function(n){n?
Socket.stream(e,n):e.destroy()}.bind(this))}.bind(this),function()
{this.forwards[n.fromPort]=e}.bind(this))},r.prototype.newAdbSocket=function(n,e)
{return this.createSocket?this.createSocket(n,e):new
c(this,n,e)},r.prototype.newSocket=function(n,e){var t=+
+this.currentSocketId;this.sockets[t]=this.newAdbSocket(t,e),this.sendMessage(r.kCo
mmandOPEN,t,0,n)},c.prototype.write=function(n,e){if(this.pendingWrite||
this.wrote)throw console.log("bad adb socket state, already writing"),new
Error("bad adb socket state, already writing");var
t=Math.min(this.device.transport.zero_mask,this.device.maxPayload);t<n.byteLength?
(this.pendingWrite=n.slice(t),n=n.slice(0,t)):this.pendingWrite=null,this.wrote=e,t
his.device.sendMessage(r.kCommandWRTE,this.localId,this.remoteId,n)},c.prototype.de
stroy=function()
{this.device.sendMessage(r.kCommandCLSE,this.localId,this.remoteId),this.dataReceiv
ed(null)},c.prototype.buffered=Socket.prototype.buffered,c.prototype.dataReceived=S
ocket.prototype.dataReceived,c.prototype.read=Socket.prototype.read,c.prototype.pau
se=Socket.prototype.pause,c.prototype.resume=Socket.prototype.resume,c.prototype.un
shift=Socket.prototype.unshift,c.prototype.onPause=function()
{},c.prototype.onResume=function()
{this.device.sendMessage(r.kCommandOKAY,this.localId,this.remoteId)},h.prototype.on
OpenSocket=function(n,e){var
t=this,o=i(n).split(":"),s=Number.parseInt(o[1]);Socket.connect({host:"127.0.0.1",p
ort:s},function(n){if(n){var i=+
+t.currentSocketId,o=t.newAdbSocket(i);o.remoteId=e,t.sockets[i]=o,t.sendMessage(r.
kCommandOKAY,i,e),Socket.stream(n,o)}else
t.sendMessage(r.kCommandOKAY,0,e)})},h.prototype.start=function()
{if(this.server)console.log("ADB Server started while already
started");else{this.clients={},this.adbDevices={},this.pendingDevices={},this.refre
shing={};var n=new Server;n.listen({port:this.port,address:"127.0.0.1"},function(n)
{var e=new v(this,n),t=+
+this.currentSocketId;this.clients[t]=e,n.onClose=function(){delete
this.clients[t]}.bind(this),e.receiveHeader()}.bind(this),function(e){e?
console.log("adb server failed to listen: "+e):(console.log("ADB Server
started"),this.server=n,this.refresh())}.bind(this))}},h.prototype.isRunning=functi
on(){return null!=this.server},h.prototype.kill=function(){for(var n in
this.server.destroy(),this.server=null,this.refreshing={},this.clients)
(n=this.clients[n]).socket.destroy();for(var e in this.clients={},this.adbDevices)
(e=this.adbDevices[e]).destroy();this.adbDevices={},this.pendingDevices={}},h.proto
type.selectDevice=function(n){chrome.usb.getUserSelectedDevices({filters:
[{interfaceClass:255,interfaceSubclass:66,interfaceProtocol:1}]},function(e)
{for(var t in
e)t=e[t],this.refreshDevice(t,n)}.bind(this))},h.prototype.withAdbDevice=function(n
,e){n.onError=function(){delete
this.adbDevices[n.serialno],this.internalOnDevicesChanged()}.bind(this);var
t=function(t){n.serialno=t.trim(),this.adbDevices[n.serialno]=n,console.log("found
device: "+n.serialno),this.internalOnDevicesChanged(),e(n)}.bind(this);n.serialno?
t(n.serialno):n.newSocket("shell:getprop ro.serialno",function(n){a(n,function(n)
{t(n)}.bind(this))}.bind(this))},h.prototype.tryDevice=function(e,t,i)
{this.adbDevices;var o=this.pendingDevices,s=this;function c(c){var
a=c.interfaceNumber;return!
o[a]&&(o[a]=e,console.log("claiming:",JSON.stringify(e),JSON.stringify(c)),chrome.u
sb.claimInterface(e,c.interfaceNumber,function()
{console.log("claimed:",JSON.stringify(chrome.runtime.lastError)),function(e,t,i)
{console.log("connecting");var o=new r(new n(e,t),i);console.log("sending
CNXN"),o.sendMessage(r.kCommandCNXN,r.ADB_PROTOCOL_VERSION,r.MAX_PAYLOAD,"host::"),
console.log("starting receive loop"),o.receiveMessages()}(e,c,function(n){if(!
n)return delete o[a],void
i();n.serialno=t,n.onOpenSocket=s.onOpenSocket,s.withAdbDevice(n,function(n){delete
o[a],i(n)})})}),!0)}chrome.usb.listInterfaces(e,function(n){if(!n)return
console.log("unable list
interfaces",JSON.stringify(chrome.runtime.lastError)),void(i&&i());console.log("got
interfaces",JSON.stringify(n));var t=!1;for(var o in
n)255==(o=n[o]).interfaceClass&&66==o.interfaceSubclass&&1==o.interfaceProtocol&&(t
|=c(o));t||chrome.usb.closeDevice(e)})},h.prototype.refreshDevice=function(n,e)
{chrome.usb.openDevice(n,function(t){if(!t)return console.log("unable to open
device",JSON.stringify(chrome.runtime.lastError)),void(e&&e());this.start(),this.tr
yDevice(t,n.serialNumber,function(t)
{t&&(t.usbDevice=n),e(t)})}.bind(this))},h.prototype.refresh=function()
{if(this.server){var n=d();if(!(this.server.lastRefresh&&this.server.lastRefresh>n-
1e4)){this.server.lastRefresh=n;var
e=chrome.runtime.getManifest().permissions.pop().usbDevices;$(e).each(function(n,e)
{var t=e.vendorId+"&"+e.productId;this.refreshing[t]||(this.refreshing[t]=!
0,chrome.usb.findDevices({productId:e.productId,vendorId:e.vendorId},function(n)
{var i=n.length;if(i)for(var o in
console.log("found:",e,n),n)console.log("trying:",n[o]),this.tryDevice(n[o],n[o].se
rialNumber,function(){--i||delete this.refreshing[t]}.bind(this));else delete
this.refreshing[t]}.bind(this)))}.bind(this))}}else console.log("adb server refresh
requested while server killed")},h.prototype.internalOnDevicesChanged=function()
{for(var n in this.clients)if((n=this.clients[n]).tracking){var
e=n.getDevicesString();e.length||(e="0000\n"),n.socket.write(o(e),function()
{})}},h.prototype.stop=function()
{this.server.destroy()},v.prototype.resolveTransport=function(n,e){if(e){var
t=this.server.adbDevices[e];return t||"device not found"}var
i=Object.keys(this.server.adbDevices);if(i>1)return"more than one
device";if(0==i)return"no devices connected";for(var o in
this.server.adbDevices)return
this.server.adbDevices[o]},v.prototype.write=function(n,e,i){e||(e="OKAY");var
r=t((n=o(n)).byteLength);r=o(e+r);var s=u(new Uint8Array(r),new
Uint8Array(n)).buffer;i||(i=function()
{this.socket.destroy()}.bind(this)),this.socket.write(s,i)},v.prototype.getDevicesS
tring=function(n){var e=(n=n||{}).longformDevices,t="";for(var i in
this.server.adbDevices)t+=(i=this.server.adbDevices[i]).serialno+"\tdevice",e&&("us
b"==i.transport.type?t+=" usb:"+i.transport.iface.interfaceNumber:t+="
tpcip:something",t+=" product:"+i.properties["ro.product.name"],t+="
model:"+i.properties["ro.product.model"],t+="
device:"+i.properties["ro.product.device"]),t+="\n";return
t},v.prototype.writeDevices=function(n,e)
{this.write(this.getDevicesString(n),null,e)},v.prototype.handlePayload=function(n)
{var s=(n=i(n)).split(":"),c=n;switch("host-
serial"==s[0]&&(s[0]="host",g=s.splice(1,1)
[0],Number.isInteger(parseInt(s[1]))&&(g+=":"+s.splice(1,1)
[0])),s.length>=2&&(c=s[0]+":"+s[1]),c)
{case"host:version":this.write(t(r.ADB_VERSION));break;case"host:devices-
l":case"host:devices":var a="host:devices-
l"==n;this.server.refresh(),this.writeDevices({longformDevices:a});break;case"host:
features":if("String"==(y=this.resolveTransport(n,g)).constructor.name)
{this.write(y,"FAIL");break}var h=y.properties.features;h||
(h=""),this.write(t(h));break;case"host:transport-usb":case"host:transport-
any":if("String"==(y=this.resolveTransport(n,g)).constructor.name)
{this.write(y,"FAIL");break}this.transport=y,this.socket.write(o("OKAY"),function()
{});break;case"host:kill":this.server.kill();break;case"host:disconnect":if(s.lengt
h>4){this.write("host:disconnect only takes 1
argument","FAIL");break}if(s.length>2)if((v=s[2]).length){var
u=5555;s.length>3&&(u=Number.parseInt(s[3]));var l=v+":"+u;
(f=this.server.adbDevices[l])&&"tcp"==f.transport.type&&f.destroy(),this.write("dis
connected");break}for(var f in
this.server.adbDevices)"tcp"==(f=this.server.adbDevices[f]).transport.type&&f.destr
oy();this.write("disconnected");break;case"host:connect":if(s.length<3)
{this.write("need more arguments for connect <host>[:<port>]","FAIL");break}var
v=s[2];u=5555;s.length>3&&(u=Number.parseInt(s[3])),Socket.connect({host:v,port:u},
function(n,t){if(!n)return console.error("connect failed"),this.write("unable to
connect to "+v+" "+u+": "+t,"FAIL"),this;var i=new r(new e(n),function(n)
{this.server.withAdbDevice(n,function(){var n="connected to
"+v+":"+u;console.log(n),this.write(n)}.bind(this))}.bind(this));i.onOpenSocket=thi
s.onOpenSocket,i.serialno=v+":"+u,n.onClose=function(){i.fatal("socket
closed")}.bind(this),i.sendMessage(r.kCommandCNXN,r.ADB_PROTOCOL_VERSION,r.MAX_PAYL
OAD,"host::"),i.receiveMessages()}.bind(this));break;case"host:track-
devices":this.tracking=d(),this.writeDevices({},function()
{});break;case"host:forward":var
m=s.join(":").substring(c.length+1).split(";"),w=m[0].split(":"),p=parseInt(w[1]);i
f("String"==(y=this.resolveTransport(n,g)).constructor.name)
{this.write(y,"FAIL");break}y.forwardPort({fromPort:p,to:m[1]}),this.socket.write(o
("OKAYOKAY"),function(){}.bind(this));break;default:var y;if(this.transport)return
void(y=this.transport).newSocket(n,function(n){n?
(this.socket.write(o("OKAY"),function()
{}),Socket.stream(n,this.socket)):this.socket.write(o("OKAY"),function()
{this.socket.destroy()}.bind(this))}.bind(this));if(n.startsWith("host:transport:")
){var g=n.substr("host:transport:".length);if(!(f=this.server.adbDevices[g]))return
void this.write("device not
found","FAIL");this.transport=f,this.socket.write(o("OKAY"),function()
{});break}console.log("unknown request: "+n),this.write("unknown command:
"+n,"FAIL");var
b=chrome.runtime.getManifest().name;chrome.notifications.create({type:"basic",iconU
rl:"/icon.png",title:b,message:b+"'s adb server encountered an unknown adb
command.\nYou may want to close "+b+" and start your adb binary
manually."})}this.receiveHeader()},v.prototype.receivePayload=function(n){var
e=parseInt(i(n),16);this.socket.read(e,this.handlePayload.bind(this))},v.prototype.
receiveHeader=function()
{this.socket.read(4,this.receivePayload.bind(this))},window.AdbDevice=r,window.AdbS
erver=h,window.AdbTcpTransport=e}(),function(){var
n={};function e(){}n.sendHostCommand=function(n,e)
{Socket.connect({host:"127.0.0.1",port:5037},function(r){if(r){var
s=n;n=t(n.length)+n,r.read(4,function(n){var t=i(n);if("OKAY"!=t)return
console.error("error in response to adb host command",s,t),r.destroy(),void
e();r.read(4,function(n){var t=i(n);0!=(n=parseInt(t,16))&&"OKAY"!=t?
r.read(n,function(n){e(r,n)}):e(r,new ArrayBuffer(0))})}),r.write(o(n),function()
{})}else e()})},n.devices=function(e){var t={};function o(n){var
e=n,i=(n=n.replace("\t"," ")).indexOf(" ");if(-1!=i){var
o,r=n.substring(0,i);for(n=n.substring(i).trim();o!=n;)o=n,n=n.replace(" ","
");var s={},c=n.indexOf(" ");-1==c&&(c=n.length);var
a,h=n.substring(0,c);for(n=n.substring(c+1);n.length&&-1!=(i=n.indexOf(":"));){var
u,l=n.substring(0,i),f=n.substring(i+1),d=f.indexOf(" "),v=f.indexOf(":");if(-
1==d||-1==v)u=f,n="";else for(;-1!
=d&&d<v;)u=f.substring(0,d),n=f.substring(d+1),d=f.indexOf("
",d+1);s[l]=u}a=s.model?s.model.replace("_","
"):r,t[r]={serialno:r,name:a,status:h,properties:e}}}n.sendHostCommand("host:device
s-l",function(n,r){if(n){n.destroy(),r=i(r),console.log("ADB devices:",r);var
s=(r=r.trim()).split("\n");for(var c in s)o(c=s[c]);console.log("parsed ADB
devices:",t),e(t)}else e()})},n.killServer=function(e)
{n.sendHostCommand("host:kill-server",function(n,t){n?
(n.destroy(),t=i(t),e&&e()):e()})},n.sendClientCommand=function(n,e){var
r=n.command,s=n.serialno;Socket.connect({host:"127.0.0.1",port:5037},function(n)
{if(n){n.read(4,function(s){if("OKAY"!=i(s))return n.destroy(),void e(null);var
c=r;c=t(c.length)+c,n.read(4,function(t){if("OKAY"!=i(t))return n.destroy(),void
e(null);e(n)}),n.write(o(c),function(){})});var c="host:transport:"+s;c=t(c.length)
+c,n.write(o(c),function(){})}else e()})},n.shell=function(e,t){var
i=e.command;e.serialno;n.getOrCreateSockFactory(e).newSocket("shell:"+i,function(n)
{n?a(n,function(n){t(n)}):t()})},n.forward=function(e,t){var i="host-
serial:"+e.serialno+":forward:"+e.from+";"+e.to;n.sendHostCommand(i,function(n,e)
{n&&n.destroy(),t(n,e)})},n.reverse=function(e,t){var
i="reverse:forward:"+e.from+";"+e.to;n.sendClientCommand({serialno:e.serialno,comma
nd:i},function(n,e){n?a(n,t):t()})},e.MKID=function(n,e,t,i){return
n.charCodeAt(0)|e.charCodeAt(0)<<8|t.charCodeAt(0)<<16|
i.charCodeAt(0)<<24},e.ID_RECV=e.MKID("R","E","C","V"),e.ID_SEND=e.MKID("S","E","N"
,"D"),e.ID_DONE=e.MKID("D","O","N","E"),e.ID_DATA=e.MKID("D","A","T","A"),e.DATA_MA
X=65536,n.pull=function(t,i){var
r,s=t.file,c=(t.serialno,t.fileEntry),a=t.socket;a||(a={write:function(n,e){r?
(r.onwriteend=e,r.write(new Blob([n]))):c.createWriter(function(t)
{r=t,a.write(n,e)})}});var h=new O;Socket.pump(h,a,function()
{i(c)}),n.getOrCreateSockFactory(t).newSocket("sync:",function(n){if(n){var t=new
ArrayBuffer(8),r=new DataView(t);r.setUint32(0,e.ID_RECV,!
0),r.setUint32(4,s.length,!0),n.write(t,function(){n.write(o(s),function()
{c()})})}else i();function c(){n.read(8,function(t){var o=new
DataView(t.buffer,t.byteOffset,t.byteLength),r=o.getUint32(0,!0);r!=e.ID_DATA?
(n.destroy(),r!=e.ID_DONE?i():h.dataReceived(null)):function(e)
{n.read(e,function(n){h.dataReceived(n),c()})}(o.getUint32(4,!
0))})}})},n.createSocketFactory=function(e){return{newSocket:function(t,i)
{n.sendClientCommand({serialno:e,command:t},i)}}},n.getOrCreateSockFactory=function
(e){return e.socketFactory||n.createSocketFactory(e.serialno)},n.push=function(t,i)
{var
r=t.file,s=(t.serialno,t.socket);n.getOrCreateSockFactory(t).newSocket("sync:",func
tion(n){if(n){var t=new ArrayBuffer(8),c=new
DataView(t),a=r+",0644";c.setUint32(0,e.ID_SEND,!0),c.setUint32(4,a.length,!
0),n.write(t,function(){n.write(o(a),function(){function t(){s.read(function(i)
{if(i.byteLength>e.DATA_MAX){var
o=i.subarray(e.DATA_MAX);i=i.subarray(0,e.DATA_MAX),s.unshift(o)}!function(i){var
o=new ArrayBuffer(8),r=new DataView(o);r.setUint32(0,e.ID_DATA,!
0),r.setUint32(4,i.byteLength,!0),n.write(o,function(){var e=i.buffer;
(i.byteOffset||i.length!
=e.byteLength)&&(e=e.slice(i.byteOffset,i.byteOffset+i.byteLength)),n.write(e,funct
ion(){t()})})}(i)})}s.onClose=function(){var t=new ArrayBuffer(8),o=new
DataView(t);o.setUint32(0,e.ID_DONE,!0),o.setUint32(4,0,!0),n.write(t,function()
{n.read(8,function(){i()})})},t()})})}else i()})},window.Adb=n}(),function()
{function n(n,e)
{this.transport=n,this.sockets={},this.currentSocketId=0,this.maxPayload=e||
AdbDevice.MAX_PAYLOAD}n.prototype.start=function(n){var e=o(n,void 0,!
0);this.sendMessage(AdbDevice.kCommandCNXN,AdbDevice.ADB_PROTOCOL_VERSION,this.maxP
ayload,e),this.receiveMessages()},n.prototype.fatal=function(n){console.log("fatal
error",n);var e=this.onClose;e&&(delete
this.onClose,e())},n.prototype.sendMessage=AdbDevice.prototype.sendMessage,n.protot
ype.receiveMessages=AdbDevice.prototype.receiveMessages,n.prototype.onReceiveMessag
e=AdbDevice.prototype.onReceiveMessage,n.prototype.handleMessage=AdbDevice.prototyp
e.handleMessage,n.prototype.handleUnknown=AdbDevice.prototype.handleUnknown,n.proto
type.newSocket=AdbDevice.prototype.newSocket,n.prototype.newAdbSocket=AdbDevice.pro
totype.newAdbSocket,n.prototype.destroy=AdbDevice.prototype.destroy,n.prototype.onO
penSocket=function(n,e){if(this.openSocket){var t=+
+this.currentSocketId,o=this.newAdbSocket(t);o.remoteId=e,this.sockets[t]=o,this.se
ndMessage(AdbDevice.kCommandOKAY,t,e),this.openSocket(i(n),o)}},window.AdbDaemon=n}
(),function(){function n(n,e,t,i)
{$.ajax({url:n,dataType:"binary",responseType:"arraybuffer",success:function(n){var
o=new O(new Uint8Array(n)),r="/data/local/tmp/apk"+(new Date).getTime()
+".apk";Adb.push({serialno:e,file:r,socket:o},function(){t?Adb.shell({command:"pm
install -i "+t+" -r "+r,serialno:e},i):Adb.shell({command:"pm install -r
"+r,serialno:e},i)})},error:function(n){console.error("error fetching
apk",n),i()}})}window.AdbUtils={runMain:function(n,e,t,i,o){o||
(o=Adb.shell),Adb.shell({command:"ls -l
/system/bin/app_process*",serialno:n},function(r){var
s="/system/bin/app_process";r&&-1!
=r.indexOf("app_process32")&&(s+="32"),o({command:'sh -c "CLASSPATH='+e+" "+s+"
/system/bin "+t+'"',serialno:n},i)})},installApk:function(e,t,i){return
n(e,t,null,i)},installApkWithInstaller:n,getApkPath:function(n,e,t)
{Adb.shell({command:"pm path "+e,serialno:n},function(n){if(""!=n&&n){var
e=n.match(/package:\/.*?[\r\n]/);e&&e.length?
(n=(n=e[0]).replace("package:","").trim(),t(n)):t(null)}else t(null)})}}}(),
(p=function(n){this.authorization=n}).prototype.shorten=function(n,e)
{$.ajax({type:"POST",url:"https://www.googleapis.com/urlshortener/v1/url?
key="+this.authorization,data:JSON.stringify({longUrl:n}),contentType:"application/
json",dataType:"json",success:function(n){e(n.id)}})},window.Googl=p,g=!0,b=!
0,k="Account Management",T.prototype.refresh=function(n,e)
{console.log("interactive",e),this.refreshInternal(n,e).async()},T.prototype.refres
hInternal=function*(n,t){var i,o,r,s=function(){e(function(){if(this.t()){var
n,e=chrome.app.window.getAll().filter(function(n){return
n&&"purchase"==n.id});e&&e.length,null!=(n=e[0])&&(n.close(),m("Vysor subscription
is active. Thank you for your support!"))}}.bind(this)),this.globalRefresh?
this.globalRefresh():console.error("no global refresh?"),i||(i=!
0,n&&n(this.t()))}.bind(this),c=!
1;window.chrome&&window.chrome.runtime&&window.chrome.runtime.connect||(c=!0);var
a=function(n,e){return!!e.licensed&&(n!=e.email?(console.log("email mismatch"),!1):
(console.log("enterprise license retrieved"),!0))}.bind(this),h=function(n,e){if(0!
=e.sandbox)return console.log("sandbox mismatch"),!1;if(n!=e.buyer_id)return
console.log("id mismatch"),!1;if("koushd@gmail.com"!=e.seller_id)return
console.log("seller mismatch"),!1;var t=!1;return
e.subscriptions&&$.each(e.subscriptions,function(n,e){console.log("subscription
found",e),e.remote_plan_id.startsWith("vysor")?
e.subscription_active&&(console.log("clockwork subscription
retrieved"),t=e.license_first_retrieved):console.log("skipping non-vysor
subscription")}.bind(this)),$.each(e.orders,function(n,e){console.log("purchase
found",e),e.product_id.startsWith("vysor")?e.is_purchased&&(console.log("clockwork
license retrieved"),t=e.order_date):console.log("skipping non-vysor
purchase")}.bind(this)),t}.bind(this),u=function(n){$.each(n,function(n,e)
{console.log("subscription status",e),"ACTIVE"==e.state&&(console.log("chrome
license retrieved"),g=!0)}.bind(this))}.bind(this),l=function*(){if(r&&!t)return
console.log("Skipping enterprise license server check."),void console.log("Use
Retrieve License from the purchase page to force refresh.");console.log("checking
chrome enterprise licenses");var n=yield D(!1,yield);if(!n)return
chrome.runtime.lastError,void console.error("No auth token for enterprise
licensing");try{var e=yield chrome.identity.getProfileUserInfo(yield);if(!A)return
void console.log("unable to retrieve user info for enterprise");e.id;var
i=e.email;try{e=yield $.ajax({url:"https://billing.vysor.io/license",headers:
{Authorization:"Bearer "+n},dataType:"json",success:yield S,error:yield Error});var
o=JSON.parse(e.signed_data);if(yield
chrome.storage.local.set({cachedEnterpriseLicense:e},yield),!a(i,o))return void
console.log("No enterprise license found on
server");y="https://billing.vysor.io",k="Enterprise Account
("+o.licensing_accounts[0]+")",g=!0,b=!0,s()}catch(e){yield
chrome.identity.removeCachedAuthToken({token:n},yield),console.error("Error
communicating with vysor enterprise",e)}}catch(e){yield
chrome.identity.removeCachedAuthToken({token:n},yield),console.error("Unable to get
email for enterprise",e)}}.bind(this),f=function*(){if(o&&!t)return
console.log("Skipping clockwork license server check."),void console.log("Use
Retrieve License from the purchase page to force refresh.");console.log("checking
clockwork purchases");var n=yield D(!1,yield);if(!n)return
chrome.runtime.lastError,void console.error("No auth token for clockwork
billing");try{var e=yield chrome.identity.getProfileUserInfo(yield);if(!A)return
void console.log("unable to retrieve user info for clockwork");var
i=e.id,r="https://billing.clockworkmod.com/api/v1/purchase/koushd@gmail.com?
sandbox=false&nonce="+Date.now();try{e=yield $.ajax({url:r,dataType:"json",headers:
{Authorization:"Bearer "+n},error:yield Error,success:yield S});var
c=JSON.parse(e.signed_data);if(yield
chrome.storage.local.set({cachedClockworkLicense:e},yield),!h(i,c))return void
console.log("no clockwork license found on
server");y="https://billing.clockworkmod.com",g=!0,b=!0,s()}catch(n)
{console.error("error requesting purchases",n)}}catch(e){yield
chrome.identity.removeCachedAuthToken({token:n},yield),console.error("Unable to get
buyer id for clockworkbilling",e)}}.bind(this),d=function*(){if(!c){var
n;console.log("checking chrome store purchases");try{n=yield
google.payments.inapp.getPurchases({parameters:{env:"prod"},success:yield
S,failure:yield Error})}catch(n){if(console.error("Failed to query license from
chrome store.",n),!t)return console.log("Skipping Chrome license server fallback
check."),void console.log("Use Retrieve License from the purchase page to force
refresh.");console.log("Falling back to server proxied query.");try{yield this.i(!
1,yield),yield*v()}catch(n){console.error("failed to do fallback server
check",n)}return}u(n.response.details),this.t()?
(y="https://payments.google.com/payments/home#subscriptionsAndServices",s(),console
.log("Caching Vysor license."),yield this.i(!
1,yield),this.o()&&s()):console.log("no chrome license found on
server")}}.bind(this),v=function*(){if(!c){console.log("checking cached chrome
license");var n=yield
chrome.storage.local.get("cachedLicense",yield);if(n)if(n.cachedLicense)if(A){var
e=yield C("AQAB","vMGBBmLcMO4lOmg-YAHq2DjZKHTaW-
xs9KPNXU_zKJ7ZhFhWH3I6skF9ZO8lKeXOSwVEIW4HVMa7m16S6WTrUw",n.cachedLicense.signed_da
ta,n.cachedLicense.signature,yield);if(e)console.error("error verifying cached
signature",e);else{var
t=JSON.parse(n.cachedLicense.signed_data),i=Date.now();if($.each(t.payments,functio
n(n,e)
{"ACTIVE"==e.state&&(i=Math.min(i,e.createdTime))}.bind(this)),t.date>Date.now())co
nsole.log("cached license date from future?");else{var o,r=(new Date-new
Date(i))/1e3/60/60/24,a=(o=r<14?4:Math.min(30,4+(r-
14)/7))/2;if(t.date+24*o*60*60*1e3<Date.now())console.log("cached license is
expired.");else if(A.id==t.userinfo.id)if(u(t.payments),this.t())
{if(y="https://payments.google.com/payments/home#subscriptionsAndServices",console.
log("cached license is valid for "+(t.date+24*o*60*60*1e3-Date.now())/36e5+"
hours"),b=!0,s(),t.date+24*a*60*60*1e3<Date.now()){console.log("Refreshing cached
license");try{yield this.i(!1,yield)}catch(e){console.warn("Failed to re-cache
license.",e)}}}else console.log("no chrome license found in cache");else
console.log("id mismatch")}}}else console.log("unable to retrieve user info for
cache");else console.log("no cached chrome license found");else
console.error("storage access
failed?",chrome.runtime.lastError)}}.bind(this),w=function*(){console.log("Checking
cached Clockwork license.");var n=yield
chrome.storage.local.get("cachedClockworkLicense",yield);if(n)if(n.cachedClockworkL
icense)if(A){var e=A.id,t=yield C("AQAB","vMGBBmLcMO4lOmg-YAHq2DjZKHTaW-
xs9KPNXU_zKJ7ZhFhWH3I6skF9ZO8lKeXOSwVEIW4HVMa7m16S6WTrUw",n.cachedClockworkLicense.
signed_data,n.cachedClockworkLicense.signature,yield);if(t)console.error("Error
verifying cached clockwork signature",t);else{var
i=JSON.parse(n.cachedClockworkLicense.signed_data),r=h(e,i);if(!r)return
console.log("No Clockwork license found in cache."),void(o=!
0);y="https://billing.clockworkmod.com";var c,a=(new Date-new
Date(r))/1e3/60/60/24,u=(c=a<14?4:Math.min(30,4+(a-
14)/7))/2;i.timestamp+24*c*60*60*1e3<Date.now()?console.log("Cached Clockwork
license is expired. Requires server check."):i.timestamp>Date.now()?
console.error("Cached Clockwork license date from future?"):(g=!
0,console.log("Cached Clockwork license is valid for "+(i.timestamp+24*c*60*60*1e3-
Date.now())/36e5+" hours"),b=!0,s(),i.timestamp+24*u*60*60*1e3<Date.now()&&(o=!
1,yield*f()))}}else console.error("Unable to retrieve user info for cached
Clockwork license.");else console.log("Cached Clockwork payload not found.");else
console.error("storage access
failed?",chrome.runtime.lastError)}.bind(this),p=function*(){console.log("Checking
cached enterprise license.");var n=yield
chrome.storage.local.get("cachedEnterpriseLicense",yield);if(n)if(n.cachedEnterpris
eLicense)if(A){var e=yield
C("AQAB","hDuGsIhbjLYXteQX3F3KNriQHwUSZurS5voCkdpA1733A65pqtGOrk9g_yLiF94_vSK0VmL-
4stq7WAYEbn6nw",n.cachedEnterpriseLicense.signed_data,n.cachedEnterpriseLicense.sig
nature,yield);if(e)console.error("Error verifying cached enterprise
signature",e);else{var t=JSON.parse(n.cachedEnterpriseLicense.signed_data);if(!
a(A.email,t))return r=!0,void console.log("No Enterprise license found in
cache.");t.timestamp+3456e5<Date.now()?console.log("Cached Enterprise license is
expired. Requires server check."):t.timestamp>Date.now()?console.error("Cached
Enterprise license date from future?"):(y="https://billing.vysor.io",k="Enterprise
Account ("+t.licensing_accounts[0]+")",g=!0,console.log("Cached Enterprise license
is valid for "+(t.timestamp+3456e5-Date.now())/36e5+" hours"),b=!
0,s(),t.timestamp+1728e5<Date.now()&&(r=!1,yield*l()))}}else console.error("Unable
to retrieve user info for cached Clockwork license.");else console.log("Cached
Enterprise payload not found.");else console.error("storage access
failed?",chrome.runtime.lastError)}.bind(this);if(this.t())s();else{console.log("st
arting license check");var A=yield chrome.identity.getProfileUserInfo(yield);A?
console.log("user info",A):console.log("unable to retrieve user
info"),yield*p(),this.t()||(yield*w(),this.t()||(yield*v(),this.t()||
(yield*l(),this.t()||(yield*f(),this.t()||(yield*d(),this.t()||
s())))))}},T.prototype.i=function(n,e){console.log("caching chrome
license"),D(n,function(t){if(!t)return chrome.runtime.lastError,n&&m("Unable to get
auth token: "+chrome.runtime.lastError),console.error("Unable to get auth token
while caching
license",chrome.runtime.lastError),void(e&&e(chrome.runtime.lastError));
$.ajax({type:"post",url:"https://billing.clockworkmod.com/api/v1/verify/google/kous
hd@gmail.com",data:
{token:t,item:chrome.runtime.id,version:chrome.runtime.getManifest().version},dataT
ype:"json",success:function(n){console.log("chrome license cached"),b=!
0,chrome.storage.local.set({cachedLicense:n},e)}.bind(this),error:function(n,i)
{console.error("unable to cache
license",i),chrome.identity.removeCachedAuthToken({token:t},function()
{e&&e(i)})}})}.bind(this))},T.prototype.t=function(){return
g},T.prototype.o=function(){return b},T.prototype.getManageData=function()
{return{managementUrl:y,managementText:k}},T.prototype.startPurchase=function()
{chrome.app.window.create("purchase.html",{id:"purchase",innerBounds:
{minWidth:800,minHeight:860}},function(n)
{this.refresh(),n.contentWindow._rlm=function(n)
{chrome.storage.local.remove(["cachedLicense","cachedClockworkLicense","cachedEnter
priseLicense"],function(){this.refresh(n,!
0)}.bind(this))}.bind(this)}.bind(this))},E.prototype.openSocket=function(n,e){if(!
this.onOpenSocket||!this.onOpenSocket(n,e))if("properties"!
=n)this.adbSocketFactory.newSocket(n,function(t){if(!t)return console.log("unable
to execute adb proxy command?",n),void e.destroy();Socket.stream(t,e,function()
{})});else{var t=this.properties;e.write(o(t),function(){console.log("sent
properties",t),e.destroy()})}};console.log("Vysor
version",chrome.runtime.getManifest().version),console.log(navigator.userAgent),con
sole.log("Electron",isElectron()),console.log("Date",new Date);var V,P,R,x=new
AdbServer({start:!
1}),M={},j={},q={},L=analytics.getService("vysor_app").getTracker("UA-4956323-
6");if(isElectron()){var
J=L;L={sendEvent:J.sendEvent.bind(J),sendAppView:J.sendAppView.bind(J)};const{scree
n:n}=require("electron");console.log("getAllDisplays",n.getAllDisplays()),console.l
og("getPrimaryDisplay",n.getPrimaryDisplay())}var _,K,F,z=new T,H="Chrome GCM
Service is unavailable. Try restarting Chrome?",Y=new HttpServer;function W(n)
{n.contentWindow._lm={_il:z.t(),_ilc:z.o(),_cl:z.i.bind(z),_md:z.getManageData(),re
fresh:z.refresh.bind(z),startPurchase:z.startPurchase.bind(z)},n.contentWindow._rl&
&n.contentWindow._rl()}function X(n,e){if(R){var
t=R.contentWindow.shortModal;t&&t(n,e)}}function G()
{R&&R.contentWindow.updateVysorShareServer&&R.contentWindow.updateVysorShareServer(
P)}function Q(n,e){var t=rn(n);console.log(n,t,"status",e);var
i=chrome.app.window.get(t);i&&i.contentWindow.updateWindowStatusText&&i.contentWind
ow.updateWindowStatusText(e)}function Z(n,e)
{Q(n,"Connecting..."),AdbUtils.getApkPath(n,"com.koushikdutta.vysor",function(t){t?
AdbUtils.runMain(n,t,"com.koushikdutta.vysor.ProtocolVersionMain",function(n){var
i=n.match(/vysor-io-.*?[\r\n]/);i&&i.length?
((n=i[0])&&(n=n.trim()),console.log("protocol version: "+n),e("vysor-io-71"!=n?
null:t)):e(null)}):e()})}function nn(n,e){function t(t){var
i=Math.round(Math.random()*(1<<30)).toString(16),o="echo -n "+i+" >
/data/local/tmp/vysor.pwd ; chmod 600
/data/local/tmp/vysor.pwd";AdbUtils.runMain(n,t,"com.koushikdutta.vysor.Main
password="+i+" keyboard="+V,function(t){Adb.shell({serialno:n,command:'sh -c
"'+o+'"'},function(n){Socket.eat(t),e(i)})},function(n,e)
{n.command="shell:"+n.command,Adb.sendClientCommand(n,e)})}Q(n,"Connecting...");rn(
n);Z(n,function(e){if(!e)return console.log("uninstalling old apk if exists"),void
Adb.shell({command:"pm uninstall com.koushikdutta.vysor",serialno:n},function(e)
{console.log("uninstall result",e),console.log("installing apk"),function(n,e)
{Q(n,"Installing Vysor APK..."),AdbUtils.installApkWithInstaller("/Vysor-
release.apk",n,"com.android.vending",e)}(n,function(e){Z(n,function(i){if(!i)return
e||(e=""),m("Error installing APK:\n"+e.trim()),void
en(n);t(i)})})});t(e)})}function en(n){var
e=rn(n),t=chrome.app.window.get(e);t&&t.close()}function
tn(n,e,t){isElectron()?(console.log("adb client socket factory
path"),n.contentWindow.adbSocketFactory=null,n.contentWindow.adbSocketFactoryFactor
y={type:"adb-client",arguments:{serialno:e}}):M[e]?(console.log("vysor socket fast
path"),n.contentWindow.adbSocketFactory=M[e]):x.isRunning()?(console.log("adb
server socket path"),n.contentWindow.adbSocketFactory=x.adbDevices[e]):
(console.log("adb client socket
path"),n.contentWindow.adbSocketFactory=Adb.createSocketFactory(e)),W(n),n.contentW
indow.openList=dn,n.contentWindow.password=t,Y&&Y.socket&&(n.contentWindow.httpPort
=Y.socket.localPort),n.contentWindow.device=M[e]||
In[e],n.contentWindow.tracker=L}function on(){setTimeout(function()
{chrome.app.window.getAll().length||chrome.runtime.reload()},5e3)}function rn(n)
{var e=n;return M[n]&&M[n].id?e=M[n].id:In[n]&&In[n].id?
e=In[n].id:Nn[n]&&(e=Nn[n]),e}function sn(n,e,t){wn();var
i=rn(n),o=chrome.app.window.get(i);if(o)return o.show(),e&&nn(n,function(e)
{tn(o,n,e),o.contentWindow.connectionReady()}),void(t&&t(o));chrome.app.window.crea
te("screen.html",{id:i,innerBounds:{width:576,height:1024}},function(e){var
i;e.onClosed.addListener(i=function()
{e.onClosed.removeListener(i),on(),e.contentWindow.h264Socket&&(console.log("cleani
ng up h264
socket"),e.contentWindow.h264Socket.destroy(),e.contentWindow.h264Socket=null),e.co
ntentWindow.inputWebSocket&&(console.log("cleaning up input
websocket"),e.contentWindow.inputWebSocket.close(),e.contentWindow.inputWebSocket=n
ull)}),tn(e,n,null),e.contentWindow.onload=function(){t&&t(e),In[n]?
nn(n,function(t){tn(e,n,t),e.contentWindow.connectionReady()}):console.log("Vysor
requested for",n,"which is not available yet")}})}function cn()
{P=null,K&&K.stopListen("share"),G()}function an(n){var
e=q[n];e&&e.gcmConn.destroy()}function hn(n,e,t){var i=q[n];if(i&&i.devices[e]){var
o;i.gcmConn.gcmConns[e]&&i.gcmConn.gcmConns[e].destroy();var
r=i.gcmConn.gcmConns[e]={id:e,farm:!0,newSocket:function(n,t){o||
i.gcmConn.newSocket(e+":"+n,t)},destroy:function(){o=!
0,i.gcmConn.gcmConns[e]==r&&delete i.gcmConn.gcmConns[e],delete
In[r.serialno],i.gcmConn.newSocket("close:"+e,function(n){n&&n.destroy()});var
n=r.onClose;n&&(delete r.onClose,n()),qn()}};vn(e,function(n)
{n(r)},t),qn()}}function un(n,e,t){function i(n){t&&t(null,n)}var o=(n=new
URL(n)).hash.replace("#","");
$.ajax({url:"https://billing.vysor.io/gcm/"+o,dataType:"json",success:function(n)
{K?
K.connect({senderId:"64148182473",registrationId:n.registration,port:"share"}).then
(function(r){L.sendEvent("connected-device-farm");var
h,u=q[o];u&&u.gcmConn.destroy();var l=q[o]={info:n,gcmConn:r};function f()
{r.newSocket("devices:",function(n){a(n,function(n){var
e=JSON.parse(n),t=e.devices,i=e.sharedDevices;l.devices?
($.each(Object.keys(t),function(n,e){delete l.devices[e]}),
$.each(Object.keys(l.devices),function(n,e){var
t=r.gcmConns[e];t&&t.destroy()}),l.devices=t):l.devices=t,l.sharedDevices=i,qn()})}
)}r.gcmConns={},r.openSocket=function(n,o){if(n.startsWith("challenge:"))
{console.log("received challenge",n);var a=n.split(":")[1];
$.ajax({type:"post",url:"https://billing.vysor.io/verifyauth",headers:
{Authorization:"Bearer "+e},data:{nonce:a},dataType:"json",success:function(n)
{_=JSON.parse(n.signed_data),console.log("sending challenge
response",n),s(o,n,function(){c(o,function(n){if(o.destroy(),"ok"==n)return
f(),void(t&&t(l.info));i("Access denied: "+n)})})},error:function(n,e){i("Unable to
verify identity."),o.destroy()}})}else if(n.startsWith("close:")){o.destroy();var
u=n.split(":")[1],d=r.gcmConns[u];if(!d)return void console.log("can't close
unknown subconn");d.destroy()}else n.startsWith("tracker:")?(console.log("got
tracker socket"),h=o,function n(){h.read(function(){f(),n()})}()):(console.log("got
unknown socket request",n),o.destroy())},r.onClose=function(){q[o]==l&&delete q[o],
$.each(Object.keys(r.gcmConns),function(n,e){var
t=r.gcmConns[e];t&&t.destroy()}),qn()},console.log("Connection to device farm
established",r)}):i(H)},error:function(n,e){m("Unable to find server:
"+e)}})}function ln(n,e){function t(n){qn(),e?e(null,n):m(n)}function i()
{qn(),e&&e(P)}cn(),D(n,function(n){if(n)if(K){var
e;K.onRegistrationIdChanged=u,chrome.storage.local.get(["lastDeviceFarmRegistration
Id","lastDeviceFarmServerId"],function(n)
{if(n&&n.lastDeviceFarmRegistrationId==K.registrationId&&n.lastDeviceFarmServerId)r
eturn console.log("device farm registration unchanged, not registering with
server."),P="https://vysor.clockworkmod.com/server#"+n.lastDeviceFarmServerId,void
i();u()});var r,a=[];K.listen("share",function(n){var
e,t,i,o={},u=Math.round(Math.random()*(1<<30)).toString(16)+Math.round(Math.random(
)*(1<<30)).toString(16);n.onClose=function(){var e=a.indexOf(n);-1!
=e&&a.splice(e,1),n.trackerSocket&&(n.trackerSocket.destroy(),delete
n.trackerSocket),$.each(Object.keys(o),function(n,e)
{o[e].destroy()})},n.newSocket("challenge:"+u,function(o){if(!o)return
console.error("challenge socket failed"),void n.destroy();c(o,function(r)
{console.log("received challenge response",r);var c=JSON.parse(r);function h(n)
{n=n||"fail",console.log("Remote user failed to authorize",n),s(o,n,function()
{o.destroy()})}C("AQAB","hDuGsIhbjLYXteQX3F3KNriQHwUSZurS5voCkdpA1733A65pqtGOrk9g_y
LiF94_vSK0VmL-4stq7WAYEbn6nw",c.signed_data,c.signature,function(r){function l()
{function r(){a.push(n),e=!0,s(o,"ok",function(){o.destroy()}),m("Vysor is sharing
Android devices with "+t.name,i),Adb.sendHostCommand("host:track-
devices",function(e){e?n.newSocket("tracker:",function(t){if(!t)return
e.destroy(),void console.error("unable to open remote
tracker");n.trackerSocket=t,Socket.stream(t,e)}):console.error("unable to track adb
devices",chrome.runtime.lastError)})}var c,u;c=t.email,u=function(n,e)
{if(n)r();else if(e){var
o=chrome.runtime.getManifest().name;chrome.notifications.create({type:"basic",iconU
rl:i,title:o,message:t.name+" is requesting access to Vysor shared Android
devices.",buttons:[{title:"Allow"},{title:"Deny"}]},function(n){var e,i=function(t)
{t==n&&(chrome.notifications.onClosed.removeListener(i),chrome.notifications.onButt
onClicked.removeListener(o),e||h("Denied by user."))},o=function(i,o)
{i==n&&(chrome.notifications.clear(i),e=!0,0==o?(N(t.email,function()
{G()}),r()):h("Denied by
user."))};chrome.notifications.onClosed.addListener(i),chrome.notifications.onButto
nClicked.addListener(o)})}else h("Denied by
policy.")},chrome.storage.local.get(["whitelist","serverMode"],function(n){if(1!
=n.serverMode){if(2!=n.serverMode)return
n.whitelist&&"Array"==n.whitelist.constructor.name?void u(-1!
=n.whitelist.indexOf(c),!0):void u(!1,!0);D(!1,function(n){if(!n)return
console.error("unable to get token for vysor enterprise whitelist check"),void u(!
1);$.ajax({type:"get",url:"https://billing.vysor.io/whitelist",headers:
{Authorization:"Bearer "+n},data:{email:c},error:function(){console.error("failure
checking vysor enterprise whitelist",arguments),u(!1)},success:function(n)
{n.whitelist||console.error("access denied to",c,n),u(n.whitelist,!1)}})})}else u(!
0)})}r?h("Identify signature verification failed."):
(t=JSON.parse(c.signed_data)).nonce==u?t.picture?A(t.picture,function(n){i=n,l()}):
(i="/icon.png",l()):h("Mismatched nonce in
authentication.")})})}),n.openSocket=function(i,s)
{if(e)if("devices:"==i)r=v(r,s,500,function(n){B(function(e)
{Adb.devices(function(t){t||(t={}),$.each(Object.keys(t),function(n,i){M[i]&&delete
t[i],I(e[i]),e[i]&&e[i].friendlyName&&(t[i].name=e[i].friendlyName)});var i={};
$.each(Object.keys(j),function(n,e){i[e]={userInfo:j[e].userInfo}}),$
(n).each(function(n,e){h(e,{devices:t,sharedDevices:i},function()
{e.destroy()})})})})});else if(i.startsWith("close:")){s.destroy();var
c=i.split(":")[1];(u=o[c])&&u.destroy()}else{var a=i.indexOf(":");if(-1==a)return
console.error("unexpected command received by device farm server"),void
s.destroy();var u;c=i.substring(0,a);if(!In[c]){if(-
1==(a=i.indexOf(":",a+1)))return void s.destroy();if(c=i.substring(0,a),!
In[c])return void console.error("request for unknown device",c)}if(!(u=o[c])){var
f=Adb.createSocketFactory(c);(u=o[c]=new E(f,In[c],{})).destroy=function()
{try{n.newSocket("close:"+c,function(n){n&&n.destroy()})}catch(n){}var
e=j[c];e&&(e.userInfo==t&&delete e.userInfo,e.gcmConn==this&&delete
e.gcmConn,e.key||e.gcmConn||delete j[c]);var i=this.onClose;i&&(delete
this.onClose,i()),l()}.bind(u)}var d=j[c];d||(d=j[c]={}),d.gcmConn!
=u&&(pn(c),d.gcmConn=u,d.userInfo=t,j[c]=d),l();var
m=i.substring(a+1);u.openSocket(m,s)}else s.destroy()}})}else t(H);else t("Unable
to get Auth Token.");function u(){console.log("registering vysor share server"),
$.ajax({type:"post",url:"https://billing.vysor.io/gcm",headers:
{Authorization:"Bearer "+n},data:
{registration:K.registrationId},dataType:"json",success:function(n)
{console.log("vysor share
server",n),chrome.storage.local.set({lastDeviceFarmRegistrationId:K.registrationId,
lastDeviceFarmServerId:n.id}),P="https://vysor.clockworkmod.com/server#"+n.id,i()}.
bind(this),error:function(n,e){cn(),t("Unable to register server: "+e)}})}function
l(){e=v(e,null,500,function(){$.each(a,function(n,e)
{e.trackerSocket&&e.trackerSocket.write(o("0000\n"),function()
{})}),qn()})}})}function fn(n){V=n}function dn(){R?
R.focus():chrome.app.window.create("list.html",{id:"list",innerBounds:
{width:768,height:868,minWidth:768,minHeight:868}},function(n)
{(R=n).contentWindow.openList=dn,W(R),R.contentWindow.disconnectSharedDevice=xn,R.c
ontentWindow.toggleShare=Mn,R.contentWindow.unshareDevice=yn,R.contentWindow.quietS
erial=Rn,R.contentWindow.openWindow=sn,R.contentWindow.closeWindow=en,R.contentWind
ow.createDeviceFarmConnection=hn,R.contentWindow.destroyDeviceFarmConnection=an,R.c
ontentWindow.adbServer=x,R.contentWindow.tracker=L,R.contentWindow.startWireless=jn
,R.contentWindow.startDeviceFarm=ln,R.contentWindow.stopDeviceFarm=cn,R.contentWind
ow.updateKeyboard=fn,R.contentWindow.onload=function()
{W(R),G(),qn()},R.onClosed.addListener(function(){R=null,on()})})}function
vn(n,e,t){x.start();var o=new
Server;o.listen({port:0,address:"127.0.0.1"},function(n){o.destroy();var i=new
AdbDaemon(new AdbTcpTransport(n));e(function(n){L.sendEvent("connected-shared-
device");var e="127.0.0.1:"+o.localPort;n.serialno=e,n.id||
(n.id=e),M[e]=n,console.log("connected gcm socket"),n.openSocket=function()
{console.log("got a new socket? this should not
happen..."),n.destroy()},i.onClose=n.onClose=function(){delete
M[e],i.destroy(),n.destroy()},n.onClose=function(){delete
M[e],i.destroy(),n.destroy(),m("Disconnected from shared Android
device.")},i.openSocket=function(e,t){n.newSocket(e,function(n)
{Socket.stream(t,n,function(){})})},n.newSocket("properties",function(o)
{a(o,function(o){var r=AdbDevice.parseConnectionPayload(o);n.name=n.name||
r["ro.product.model"].replace("_"," "),i.start(o),console.log("got
properties",o),t(e)})})})}.bind(this),function(e){if(e)console.log("adb daemon
failed to listen: "+e);else{var t="127.0.0.1:"+o.localPort;M[t]={id:n||
t,destroy:function()
{}},console.log("mapping",t,n),qn(),Adb.sendHostCommand("host:connect:"+t,function(
n,e){n&&(n.destroy(),e=i(e),console.log("adb connect
result",e))})}}.bind(this))}function mn(n,e){if(m("Vysor is connecting to a remote
Android device"),R&&R.show(),console.log("attempting to connect to shared
device",n),K){var t=new
URL(n),i=d("senderId",t),o=d("registrationId",t),r=d("channel",t);i||
(i="64148182473"),vn(null,function(n)
{K.connect({senderId:i,registrationId:o,port:r}).then(n)},e)}else
X(null,H)}function wn(){chrome.runtime.requestUpdateCheck(function(n,e)
{console.log("update
check",arguments),"update_available"==n&&(Tn=v(Tn,null,1e4,function(){var
n=chrome.runtime.getManifest().name;chrome.notifications.create("reload",
{type:"basic",iconUrl:"/icon.png",title:n,message:"There is an update available for
Vysor.",buttons:[{title:"Reload"}]})}))})}function pn(n){var
e=j[n];if(e&&e.gcmConn){var t=e.gcmConn;delete e.gcmConn,t.destroy()}}function
yn(n){pn(n),delete j[n],qn()}function gn(n,e){var t=In[n];if(K){var
i=Math.round(Math.random()*(1<<30)).toString(16);j[n]||
(j[n]={}),j[n].key=i,qn();var o="https://vysor.clockworkmod.com/redirect/?
registrationId="+encodeURIComponent(K.registrationId)
+"&channel="+i;console.log(o),K.listen(i,function(e){L.sendEvent("shared-
device");var o=j[n];if(!o||o.key!=i)return e.destroy(),void console.log("device is
no longer being
shared.");o.gcmConn&&o.gcmConn.destroy(),o.gcmConn=e,o.userInfo={name:"Someone"},qn
(),console.log("accepted gcm socket"),new
E(Adb.createSocketFactory(n),t,e).onOpenSocket=function(e,t)
{if("webstart"==e)return nn(n,function(n){s(t,n,function(){console.log("sent
password",n),t.destroy()})}),!0}});var r="https://tu3ph.app.goo.gl/?
ad=0&apn=com.koushikdutta.inkwire&link="+encodeURIComponent(o);e(r)}else
e&&e(null,H)}function bn(n){return function(){var e=arguments;(F||
(console.log("creating persistent gcm connection"),F=new Promise(function(n,e)
{GcmRtcManager.start({3505780036:"AIzaSyDt0GimPRhk8_d_4XjOYzQUn50UkvXhMtE",64148182
473:"AIzaSyDd7k1v017osyYbIC92fyf-36s3pv0z73U"},{iceServers:[{urls:
["turn:n0.clockworkmod.com","turn:n1.clockworkmod.com"],username:"foo",credential:"
bar"}]},function(e){if(K=e,console.log("persistent gcm connection created",null!
=e),!K)return F=null,void
n();K.defaultSenderId="64148182473",n(K)})}))).then(function()
{n.apply(null,e)})}}z.globalRefresh=function(){console.log("license global
refresh");var n=chrome.app.window.getAll();for(var e in
n)W(e=n[e])},chrome.identity.onSignInChanged.addListener(function()
{console.log("onSignInChanged, refreshing license"),z.refresh(null,!
0)}),chrome.storage.local.get("keyboard",function(n)
{V=n.keyboard}),chrome.storage.local.get("vysorHttp",function(n){if(n){var
e=n.vysorHttp||{};e.password=e.password||
Math.round(Math.random()*(1<<30)).toString(16);var t={"/device/(.*?)/screenshot-?
(.*?).jpg":function(n,e,t){var i=t[1],r=chrome.app.window.get(i);if(!r)return
console.error("device window",i,"not found"),e.code(404),void e.write("",function()
{e.end()});i=r.contentWindow.device.serialno;var
s=r.contentWindow.password;Adb.createSocketFactory(i).newSocket("tcp:53516",functio
n(n){if(!n)return console.error("no socket",i,"for screenshot"),e.code(404),void
e.write("",function(){e.end()});e.headers.Connection="close",e.headers["Content-
Type"]="application/binary",e.headers["Cache-Control"]="no-cache";var t=new
HttpRequestParser(null,n,function(){var
n=t.body.buffer.slice(t.body.byteOffset,t.body.byteOffset+t.body.byteLength);e.writ
e(n,function(){e.end()})});n.write(o("GET /screenshot.jpg?password="+s+"
HTTP/1.1\r\nConnection: close\r\n\r\n"),function(n){})})},"/device/(.*?)/sdcard-
vysor/(.*)":function(n,e,t){var i=t[1],o=chrome.app.window.get(i);if(!o)return
console.error("device window",i,"not found"),e.code(404),void e.write("",function()
{e.end()});i=o.contentWindow.device.serialno;var
r=t[2];e.headers.Connection="close",e.headers["Cache-Control"]="no-
cache",e.headers["Content-
Type"]="application/binary",Adb.pull({file:"/sdcard/vysor/"+r,serialno:i,socket:e},
function(){e.end()})},"/device/(.*?)/audio.adts":function(n,e,t){var
i=t[1],o=chrome.app.window.get(i);if(!z.t())return console.error("ignoring request,
not licensed"),e.code(402),void e.write("This feature is only available in Vysor
Pro",function(){e.end()});if(!o)return console.error("device window",i,"not
found"),e.code(404),void e.write("",function(){e.end()});if(!
o.contentWindow.siphonAudio)return console.error("siphonAudio",i,"not
found"),e.code(404),void e.write("",function(){e.end()});var r=new
O;if(e.headers.Connection="close",e.headers["Content-
Type"]="audio/aac",Socket.pump(r,e,function(){console.log("aac source
closed")}),isElectron()){var s=r;r={dataReceived:function(n)
{s.dataReceived(n)},destroy:s.destroy.bind(r)}}o.contentWindow.siphonAudio(r)},"/de
vice/(.*?)/video.flv":function(n,e,t){var i=t[1],o=chrome.app.window.get(i);if(!
z.t())return console.error("ignoring request, not licensed"),e.code(402),void
e.write("This feature is only available in Vysor Pro",function(){e.end()});if(!
o)return console.error("device window",i,"not found"),e.code(404),void
e.write("",function(){e.end()});if(!o.contentWindow.siphonFlv)return
console.error("siphonFlv",i,"not found"),e.code(404),void e.write("",function()
{e.end()});var r=new O;if(e.headers.Connection="close",e.headers["Content-
Type"]="video/x-flv",Socket.pump(r,e,function(){console.log("flv source
closed")}),isElectron()){var s=r;r={dataReceived:function(n)
{s.dataReceived(n)},destroy:s.destroy.bind(r)}}o.contentWindow.siphonFlv(r)}};!
function n(){Y.listen({port:e.port||0,address:"127.0.0.1"},function(n,e){var
i,o;for(var r in console.log("http
request",n.path),t)if(i=n.path.match(r),o=t[r],i)break;if(!i)return
e.code(404),void e.write("",function(){});o(n,e,i)},function(t){if(t)return
console.error("http server failed to listen",t),void(e.port&&(console.log("trying
port 0"),e.port=0,n()));e.port=Y.socket.localPort,console.log("vysor http port:
"+e.port),chrome.storage.local.set({vysorHttp:e})})}()}else console.error("unable
to start vysor httpServer, no
dict")}),z.refresh(),chrome.app.runtime.onLaunched.addListener(function(n)
{dn(),n&&"vysor_purchase"==n.id&&z.refresh(null,!
0),n&&"vysor_presentation"==n.id&&mn(n.url,function(n)
{sn(n)}),n&&"vysor_device_farm"==n.id&&(console.log("device
farm",n.url),R&&R.show(),dn(),m("Vysor is connecting to shared Android
devices"),D(!0,function(e){e?un(n.url,e,function(n,e){X("Vysor Share",e?"Unable to
connect to shared devices. "+e:"Connected to "+n.name+"'s remote
devices.")}):m("Unable to get auth
token")})),wn()}),un=bn(un),ln=bn(ln),gn=bn(gn),mn=bn(mn),chrome.storage.local.get(
"share-all-devices",function(n){n["share-all-devices"]&&ln(!1,function()
{G()})});var kn,An,Sn,Dn,Un,On,Cn,Tn,En={},Nn={},In={},Bn={},Vn={};function Pn(n)
{var e=Vn[n];clearTimeout(e),Vn[n]=setTimeout(function(){delete Vn[n]},1e4),delete
Bn[n]}function Rn(n){var e=Bn[n];clearTimeout(e),Bn[n]=setTimeout(function(){delete
Bn[n]},1e4),delete Vn[n]}function xn(n){en(n);var e=M[n];e&&e.destroy()}function
Mn(n,e){j[n]?yn(n):gn(n,e),qn()}function jn(n){function e(e){var
o=e+":5555";En[n]=o,Nn[o]=n;var r=In[o];function s(n,e)
{Adb.sendHostCommand("host:disconnect:"+o,function(t,r){t&&t.destroy(),delete
In[o],Adb.sendHostCommand("host:connect:"+o,function(t,r){return t?(t.destroy(),-1!
=(r=i(r)).indexOf("unable to connect")?(m("Unable to connect via wireless. Is your
Android on the same network as your PC?"),void(e&&e(r))):
(e&&e(),chrome.storage.local.set({lastConnectAddress:o}),console.log("adb connect
result",r),void(n&&c()))):(m("Unable to connect via wireless. Is your Android on
the same network as your PC?"),void(e&&e("host connect failed")))})})}function c()
{qn(),setTimeout(function(){m("Vysor is connected wirelessly. You may disconnect
your device."),L.sendEvent("go-wireless"),Rn(o),sn(o,!0,function(n)
{Pn(o),n.contentWindow.tryReconnect=function(){Pn(o),s(!
1)}})},3e3)}r&&(r.id=n),Nn[n]&&(device.id=Nn[n]),r&&"device"==r.status?c():
(Rn(n),t.newSocket("tcpip:5555",function(n){n?a(n,function(n)
{console.log("tcpip:5555 result",n),s(!0,function(n)
{n&&(console.error("host:connect failed, trying again in a few
seconds",n),setTimeout(function(){s(!0,function(n){n&&console.err("host:connect
failed again, giving up.",n)})},3e3))})}):m("Failure while switching to wireless
mode.")}))}var t=Adb.createSocketFactory(n);t.newSocket("shell:ip -f inet addr show
wlan0",function(n){n?a(n,function(n){console.log("ifconfig result",n);var
i=n.match("inet addr:(.*?) ");(i||(i=n.match("wlan0: ip (.*?) ")),i)?
e(i[1]):t.newSocket("shell:ip -f inet addr show wlan0",function(n){n?
a(n,function(n){console.log("ifconfig result",n);var t=n.match("inet (.*?)/");t?
e(t[1]):m("Unable to switch to wireless mode. Is your Android connected to
Wifi?")}):console.log("error running tcpip:5555")})}):console.log("error running
tcpip:5555")})}function qn(){An||(An=e(function()
{An=null,R&&R.contentWindow.refreshList&&R.contentWindow.refreshList(In,M,_,q,j,Nn,
En
,K&&K.isListening("share"),kn,x.isRunning(),Dn)}))}function Ln(){if(!kn)
{if(isElectron()){var
n=require("os").platform(),e=chrome.runtime.getAppDirectory(),t=require("path").joi
n(e,"native",n,"adb");if("win32"==n)t+=".exe";else
try{require("fs").chmodSync(t,"755")}catch(n){console.warn("unable to chmod
adb",n)}return console.log("attempting to start built in adb binary",t),void
require("child_process").execFile(t,["start-server"])}Dn||
window.chrome&&window.chrome.runtime&&window.chrome.runtime.connectNative&&((Dn=chr
ome.runtime.connectNative("com.clockworkmod.adb")).onDisconnect.addListener(functio
n(){Dn=null}),Dn.postMessage({command:"start-server"}))}}function Jn()
{Cn=v(Cn,null,300,function(){chrome.storage.local.get("connect-
automatically",function(n){var e;e=!1===n["connect-automatically"]?2:!
0===n["connect-automatically"]?0:n["connect-automatically"]||
1,Adb.devices(function(n){n?($.each(n,function(t,i){var
o=n[t];Nn[t]&&(o.id=Nn[t]);var r=In[t];if(!r||o.status!=r.status){yn(t);var s=-1!
=o.properties.indexOf("emulator")||-1!=o.properties.indexOf("vbox"),c=rn(t);if(!
s&&Sn&&!Bn[c])if(chrome.app.window.get(c)||x.isRunning()||Vn[c])h()&&sn(t,!0);else
if(2!=e&&h()&&"device"==o.status){var a=chrome.runtime.getManifest().name;if(1!
=e)return chrome.notifications.create("never-start-automatically",
{type:"basic",iconUrl:"/icon.png",title:a,message:"Vysor has connected to an
Android device and is starting.",buttons:[{title:"Never Start
Automatically"}]}),void sn(t,!0);chrome.notifications.create("never-start-
automatically-"+Math.random(),
{type:"basic",iconUrl:"/icon.png",title:a,message:"Vysor has detected an Android
device.",buttons:[{title:"View Android with Vysor"},{title:"Never Start
Automatically"}]},function(n){var e=function(t)
{t==n&&(chrome.notifications.onClosed.removeListener(e),chrome.notifications.onButt
onClicked.removeListener(i))},i=function(e,i)
{e==n&&(chrome.notifications.clear(e),0==i?sn(t,!
0):chrome.storage.local.set({"connect-automatically":!
1}))};chrome.notifications.onClosed.addListener(e),chrome.notifications.onButtonCli
cked.addListener(i)})}}function h(){return"unauthorized"!=o.status||(m("Vysor has
detected an Android device. Please Allow USB Debugging on your Android device to
continue."),!1)}}),In=n):In={},qn(),Sn=!0})})})}function $n(){On||
(Adb.sendHostCommand("host:version",function(n,e)
{n&&(n.destroy(),e=i(e),console.log("ADB Server Version:
",e))}),Adb.sendHostCommand("host:track-devices",function(n){On?
n.destroy():n&&(console.log("Connected to ADB Server"),x.isRunning()?
console.log("Using Vysor ADB"):console.log("Using Android SDK ADB"),kn=!
0,n.onClose=function(){On=null,kn=!1,Jn()},On=n,function n(e){e.read(function(t)
{Jn(),n(e)})}(n),Jn())}))}!function n(){$n(),Un||
Ln(),Un=v(Un,null,1e4,Ln),setTimeout(n,1e3)}
(),Jn(),chrome.runtime.onUpdateAvailable.addListener(function()
{on()}),chrome.notifications.onButtonClicked.addListener(function(n,e){"reload"==n?
chrome.runtime.reload():"never-start-
automatically"==n&&(chrome.storage.local.set({"connect-automatically":!
1}),chrome.notifications.clear(n))}),chrome.notifications.onClicked.addListener(fun
ction(n,e){})}("undefined"==typeof window?window={}:window);
<HTML>
<Head><Title> Liste. Problem&#259 </Title></Head>
<Body>
<OL>
Un sistem informatic include:
<LI> Hardware:
<OL TYPE=A>
<LI> placa de baza
<LI> procesor
<LI> memorie
<LI> harddisk
</OL>
<!-- bruh bruh bruh-->
<LI> Software:
<UL TYPE=circle>
<LI> Linux
<LI> Windows
<LI> OS/2
<LI> Unix
</UL>
<LI> Software de aplicatie:
<UL TYPE=disc>
<LI> VisualC++
<LI> Java
<LI> SQL
<LI> CorelDraw
</UL>
</Body>
</HTML><HTML>
<Head><Title> Liste. Problem&#259 </Title></Head>
<Body>
<OL>
Un sistem informatic include:
<LI> Hardware:
<OL TYPE=A>
<LI> placa de baza
<LI> procesor
<LI> memorie
<LI> harddisk
</OL>
<!-- bruh bruh bruh-->
<LI> Software:
<UL TYPE=circle>
<LI> Linux
<LI> Windows
<LI> OS/2
<LI> Unix
</UL>
<LI> Software de aplicatie:
<UL TYPE=disc>
<LI> VisualC++
<LI> Java
<LI> SQL
<LI> CorelDraw
</UL>
</Body>
</HTML><HTML>
<Head><Title> Liste. Problem&#259 </Title></Head>
<Body>
<OL>
Un sistem informatic include:
<LI> Hardware:
<OL TYPE=A>
<LI> placa de baza
<LI> procesor
<LI> memorie
<LI> harddisk
</OL>
<!-- bruh bruh bruh-->
<LI> Software:
<UL TYPE=circle>
<LI> Linux
<LI> Windows
<LI> OS/2
<LI> Unix
</UL>
<LI> Software de aplicatie:
<UL TYPE=disc>
<LI> VisualC++
<LI> Java
<LI> SQL
<LI> CorelDraw
</UL>
</Body>
</HTML><HTML>
<Head><Title> Liste. Problem&#259 </Title></Head>
<Body>
<OL>
Un sistem informatic include:
<LI> Hardware:
<OL TYPE=A>
<LI> placa de baza
<LI> procesor
<LI> memorie
<LI> harddisk
</OL>
<!-- bruh bruh bruh-->
<LI> Software:
<UL TYPE=circle>
<LI> Linux
<LI> Windows
<LI> OS/2
<LI> Unix
</UL>
<LI> Software de aplicatie:
<UL TYPE=disc>
<LI> VisualC++
<LI> Java
<LI> SQL
<LI> CorelDraw
</UL>
</Body>
</HTML>

S-ar putea să vă placă și