New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
youtube-dl youtube:subscriptions Log-in. #24508
Comments
This is what Google calls botguard. It expects a The code to generate this string is a bit complex. I've figured it out but it would be tricky to make into correct Python code. If you look at Using this string, the code calls The callback used in the code just passes the string around to assign it to various objects, so it is not important. You can generate the string on demand by using this in console: window.botguard.bg(JSON.parse('[' + document.querySelector('[data-initial-setup-data]').dataset.initialSetupData.substr(4))[18], void 0).invoke(null, false, {}) Below is the code from Chrome's VM from botguard, which generates the string (which starts with Start from the definition of (function anonymous() {
var G = function(u, H, J) {
if (0 >= J.S || 1 < J.v || !J.Z && u || 0 != document.hidden || J.L() - J.I < J.S - H)
return false;
return !(f(23, J, (u = (J.M = true,
J).G(u ? 203 : 23),
J.$)),
J.s.push([n, u]),
0)
}, V = function(u, H, J) {
if ("object" == (H = typeof u,
H))
if (u) {
if (u instanceof Array)
return "array";
if (u instanceof Object)
return H;
if ("[object Window]" == (J = Object.prototype.toString.call(u),
J))
return "object";
if ("[object Array]" == J || "number" == typeof u.length && "undefined" != typeof u.splice && "undefined" != typeof u.propertyIsEnumerable && !u.propertyIsEnumerable("splice"))
return "array";
if ("[object Function]" == J || "undefined" != typeof u.call && "undefined" != typeof u.propertyIsEnumerable && !u.propertyIsEnumerable("call"))
return "function"
} else
return "null";
else if ("function" == H && "undefined" == typeof u.call)
return "object";
return H
}, D = this || self, g = function(u, H) {
for (H = []; u--; )
H.push(255 * Math.random() | 0);
return H
}, m = {}, f = function(u, H, J) {
if (23 == u || 203 == u)
if (H.Y[u])
H.Y[u][H.N](J);
else
H.Y[u] = H.Yt(J);
else if (99 != u && 153 != u && 247 != u && 42 != u && 193 != u || !H.Y[u])
H.Y[u] = H.J(J, H.G);
116 == u && (H.f = void 0,
f(23, H, H.G(23) + 32))
}, T = {}, uC = function(u, H, J, v) {
try {
for (v = 0; 79669387488 != v; )
u += (H << 4 ^ H >>> 5) + H ^ v + J[v & 3],
v += 2489668359,
H += (u << 4 ^ u >>> 5) + u ^ v + J[v >>> 11 & 3];
return [u >>> 24, u >> 16 & 255, u >> 8 & 255, u & 255, H >>> 24, H >> 16 & 255, H >> 8 & 255, H & 255]
} catch (r) {
throw r;
}
}, z = function(u, H, J, v, r) {
if ((J = ((v = (0 == (void 0 != (r = u.G(203) >> 3,
H = [H, r >> 8 & 255, r & 255],
v) && H.push(v),
u.G(42).length) && (u.Y[42] = void 0,
f(42, u, H)),
""),
J) && (J.message && (v += J.message),
J.stack && (v += ":" + J.stack)),
u).G(146),
3) < J) {
u.m = (H = (v = (J -= (v = v.slice(0, J - 3),
v.length + 3),
iC(v.replace(/\r\n/g, "\n"))),
u.m),
u);
try {
p(u, 153, M(v.length, 2).concat(v), 12)
} finally {
u.m = H
}
}
f(146, u, J)
}, L = false, jo = function(u, H, J, v, r) {
for (; H.s.length; ) {
if (u = u && J)
H.S && H.M ? (H.M = false,
u = 0 != document.hidden ? false : true) : u = false;
if (u) {
r = H,
H.lJ(function() {
R(r, false, J, false)
});
break
}
v = PJ((v = (u = true,
H.s.pop()),
v), H)
}
return v
}, NW = function(u, H, J, v, r, S) {
for (u.M = (r = (u.v = 0,
u.D = 25,
u.c = [],
(u.B = void 0,
u).S = 0,
u.J = function(P, c, N, Z, h, k) {
return ((k = (Z = (h = (N = this,
function() {
return Z()
}
),
function() {
return Z[N.W + (h[N.H] === c) - !k[N.H]]
}
),
N).P,
h)[N.N] = function(w) {
Z[N.O] = w
}
,
h)[N.N](P),
P = h
}
,
v = (u.Yt = function(P, c, N) {
return (c = (N = function() {
return P
}
,
function() {
return N()
}
),
c)[this.N] = function(Z) {
P = Z
}
,
c
}
,
u.Z = !(u.l = void 0,
1),
[]),
0),
false); 128 > r; r++)
v[r] = String.fromCharCode(r);
(f(50, (f(165, u, (S = (f(70, u, (f(112, u, (f((f(208, u, (f(28, u, (f(157, (f((f(88, (f(142, (f(68, (f(11, (f(221, u, (f(232, (f(193, u, (f(153, (f(179, u, (f(((f(244, u, (f(92, u, (f(175, (f(13, (f(229, (f(141, (f(168, (f(116, u, [(f(191, u, (f(113, ((f((f(42, u, (f(99, u, (f(174, (u.s = ((f(24, (f(217, (f(180, u, (f(73, u, (f((f(12, u, (f(203, u, (f(23, u, (u.w = (u.m = (u.Y = [],
u.dS = function(P) {
this.m = P
}
,
u),
[]),
0)),
0)),
function(P) {
HJ(P, 4)
}
)),
146), u, 2048),
function() {}
)),
function(P, c) {
(P = (c = Y(P),
P.G(c)),
P[0]).removeEventListener(P[1], P[2], false)
}
)),
u), function(P, c, N, Z) {
f((N = (c = Y(P),
Y(P)),
Z = Y(P),
Z), P, P.G(c) >> N)
}),
u), function(P, c, N, Z, h, k) {
if (!G(true, 255, P)) {
if (P = (Z = (N = (c = (h = Y((Z = (N = (c = Y(P),
Y(P)),
Y(P)),
P)),
P.G(c)),
P.G(N)),
P.G(Z)),
P.G(h)),
"object" == V(c)) {
for (k in h = [],
c)
h.push(k);
c = h
}
for (Z = 0 < Z ? Z : 1,
k = c.length,
h = 0; h < k; h += Z)
N(c.slice(h, h + Z), P)
}
}),
u).kt = function(P, c) {
(c.push(P[0] << 24 | P[1] << 16 | P[2] << 8 | P[3]),
c.push(P[4] << 24 | P[5] << 16 | P[6] << 8 | P[7]),
c).push(P[8] << 24 | P[9] << 16 | P[10] << 8 | P[11])
}
,
[]),
u), function(P) {
A(P, 1)
}),
[165, 0, 0])),
[])),
186), u, function(P, c, N, Z) {
f((Z = (N = Y((c = Y(P),
P)),
Y)(P),
Z), P, P.G(c) || P.G(N))
}),
f)(189, u, 0),
u), function(P, c, N, Z, h, k, w) {
if ((Z = (N = (c = Y(P),
y(P)),
""),
P.Y)[234])
for (h = P.G(234),
k = 0,
w = h.length; N--; )
k = (k + y(P)) % w,
Z += v[h[k]];
else
for (; N--; )
Z += v[Y(P)];
f(c, P, Z)
}),
function(P, c, N, Z, h) {
for (Z = (h = (N = (c = Y(P),
y(P)),
0),
[]); h < N; h++)
Z.push(Y(P));
f(c, P, Z)
}
)),
0), 0, 0]),
u), {}),
u), function(P, c, N, Z, h) {
f((N = (h = (Z = (N = Y((c = Y(P),
P)),
P).G(Y(P)),
P).G(Y(P)),
P.G(N)),
c), P, oO(N, h, Z, P))
}),
u), function(P) {
A(P, 4)
}),
u), function(P, c, N, Z) {
f((c = (N = (Z = Y((N = Y((c = Y(P),
P)),
P)),
P.G(N)),
P.G(c)),
Z), P, c[N])
}),
u), u),
u.V = [],
function(P, c, N) {
(c = (N = (c = Y(P),
Y(P)),
P.G(c)),
f)(N, P, V(c))
}
)),
function(P, c) {
Jf(P, (c = P.G(Y(P)),
c))
}
)),
f)(101, u, function(P, c, N, Z, h) {
0 !== (Z = (N = (h = (N = Y((c = Y(P),
P)),
Z = Y(P),
c = P.G(c),
P.G(Y(P))),
P).G(N),
P.G(Z)),
c) && (Z = oO(Z, 1, h, P, c, N),
c.addEventListener(N, Z, L),
f(189, P, [c, N, Z]))
}),
162), u, function(P, c, N, Z) {
(Z = (N = (c = Y(P),
Y(P)),
Y)(P),
P).m == P && (P.G(c)[P.G(N)] = P.G(Z),
116 == c && (P.T = void 0,
2 == P.G(N) && (P.f = void 0,
f(23, P, P.G(23) + 32))))
}),
function(P, c, N) {
f((c = (N = Y((c = Y(P),
P)),
P).Y[c] && P.G(c),
N), P, c)
}
)),
r = J.h || function() {}
,
f(91, u, function(P, c, N, Z) {
(Z = (N = (c = Y(P),
Y(P)),
Y)(P),
f)(Z, P, (P.G(c)in P.G(N)) + 0)
}),
u), g(4)),
[0, 0, 0])),
u), function(P, c, N) {
0 != (N = Y((c = Y(P),
P)),
P.G(c)) && f(23, P, P.G(N))
}),
function(P) {
A(P, 2)
}
)),
u), function(P, c, N) {
c = Y(P),
N = Y(P),
f(N, P, P.G(N) + P.G(c))
}),
u), function(P, c, N) {
N = (c = Y(P),
Y)(P),
f(N, P, "" + P.G(c))
}),
u), function(P, c, N, Z) {
if (c = P.V.pop()) {
for (N = Y(P); 0 < N; N--)
Z = Y(P),
c[Z] = P.Y[Z];
c[146] = P.Y[c[42] = P.Y[42],
146],
P.Y = c
} else
f(23, P, P.$)
}),
u), function(P, c) {
G(true, 5, P) || (c = vJ(P),
f(c.A, P, c.F.apply(c.X, c.a)))
}),
247), u, []),
u), function(P, c, N, Z, h, k, w, X, E, e, K, d, q) {
for (e = (X = (w = (k = (Z = (c = Y(P),
N = 0),
h = function(a, Q) {
for (; Z < a; )
N |= Y(P) << Z,
Z += 8;
return Z -= (N >>= (Q = N & (1 << a) - 1,
a),
a),
Q
}
,
h(3) + 1),
h(5)),
[]),
E = 0); e < w; e++)
K = h(1),
X.push(K),
E += K ? 0 : 1;
for (d = (E = (E - (e = 0,
1)).toString(2).length,
[]); e < w; e++)
X[e] || (d[e] = h(E));
for (e = 0; e < w; e++)
X[e] && (d[e] = Y(P));
for (e = (q = [],
k); e--; )
q.push(P.G(Y(P)));
f(c, P, function(a, Q, x, F, I) {
for (Q = (x = (a.v++,
F = 0,
[]),
[]); F < w; F++) {
if (I = d[F],
!X[F]) {
for (; I >= Q.length; )
Q.push(Y(a));
I = Q[I]
}
x.push(I)
}
a.B = (a.l = a.J(q.slice(), a.i),
a.J(x, a.i))
})
}),
function(P, c, N, Z) {
f((c = (Z = (N = Y((c = Y(P),
P)),
Y(P)),
P).G(c) == P.G(N),
Z), P, +c)
}
)),
f(151, u, D),
function(P, c, N) {
G(true, 5, P) || (c = Y(P),
N = Y(P),
f(N, P, function(Z) {
return eval(Z)
}(P.G(c))))
}
)),
106), u, function(P) {
HJ(P, 1)
}),
0)),
93)),
window.performance || {}),
u.m4 = S.timeOrigin || (S.timing || {}).navigationStart || 0,
function(P) {
P.U(4)
}
)),
u), function(P, c, N, Z, h, k, w) {
G(true, 5, P) || (c = vJ(P),
h = c.F,
N = c.a,
w = N.length,
Z = c.X,
0 == w ? k = new Z[h] : 1 == w ? k = new Z[h](N[0]) : 2 == w ? k = new Z[h](N[0],N[1]) : 3 == w ? k = new Z[h](N[0],N[1],N[2]) : 4 == w ? k = new Z[h](N[0],N[1],N[2],N[3]) : z(P, 22),
f(c.A, P, k))
}),
H && "!" == H.charAt(0)) ? (u.j = H,
r()) : (u.C = [],
u.$ = 0,
J = !!J.h,
B(u, [m, H]),
B(u, [cJ, r]),
R(u, true, J, false))
}, n = {}, R = function(u, H, J, v, r) {
if (0 != u.s.length) {
if (r = 0 == u.v)
u.I = u.L();
return H = jo(H, u, J),
r && (r = u.L() - u.I,
r < (v ? 10 : 0) || 0 >= u.D-- || u.c.push(254 >= r ? r : 254)),
H
}
}, W = function(u, H, J) {
return rs(u, ((J = u.G(23),
u).C && J < u.$ ? (f(23, u, u.$),
Jf(u, H)) : f(23, u, H),
J))
}, iC = function(u, H, J, v, r) {
for (H = [],
v = J = 0; v < u.length; v++)
r = u.charCodeAt(v),
128 > r ? H[J++] = r : (2048 > r ? H[J++] = r >> 6 | 192 : (55296 == (r & 64512) && v + 1 < u.length && 56320 == (u.charCodeAt(v + 1) & 64512) ? (r = 65536 + ((r & 1023) << 10) + (u.charCodeAt(++v) & 1023),
H[J++] = r >> 18 | 240,
H[J++] = r >> 12 & 63 | 128) : H[J++] = r >> 12 | 224,
H[J++] = r >> 6 & 63 | 128),
H[J++] = r & 63 | 128);
return H
}, A = function(u, H, J, v) {
for (v = (J = Y(u),
0); 0 < H; H--)
v = v << 8 | Y(u);
f(J, u, v)
}, l, M = function(u, H, J, v) {
for (v = H - (J = [],
1); 0 <= v; v--)
J[H - 1 - v] = u >> 8 * v & 255;
return J
}, t = function(u, H) {
try {
NW(this, u, H)
} catch (J) {
U(this, J)
}
}, p = function(u, H, J, v, r, S) {
if (u.m == u)
for (r = u.G(H),
153 == H ? (H = function(P, c, N, Z) {
if ((N = (c = r.length,
c - 4 >> 3),
r).g != N) {
N = (r.g = N,
(N << (Z = [0, 0, S[1], S[2]],
3)) - 4);
try {
r.R = uC(O(r, N), O(r, N + 4), Z)
} catch (h) {
throw h;
}
}
r.push(r.R[c & 7] ^ P)
}
,
S = u.G(193)) : H = function(P) {
r.push(P)
}
,
v && H(v & 255),
v = 0,
u = J.length; v < u; v++)
H(J[v])
}, U = function(u, H) {
u.j = ("E:" + H.message + ":" + H.stack).slice(0, 2048)
}, oO = ((t.prototype.K = false,
t.prototype).L = (t.prototype.o = function(u, H, J, v, r, S) {
if (this.j)
return this.j;
try {
r = [],
v = !!u,
S = [],
B(this, [b, r, H]),
B(this, [C, u, r, S]),
R(this, true, v, false),
J = S[0]
} catch (P) {
U(this, P),
J = this.j,
u && u(J)
}
return J
}
,
(t.prototype.lJ = D.requestIdleCallback ? function(u) {
requestIdleCallback(u, {
timeout: 4
})
}
: D.setImmediate ? function(u) {
setImmediate(u)
}
: function(u) {
setTimeout(u, 0)
}
,
t.prototype).P = function(u, H, J, v, r, S, P) {
if ((H = u[0],
H) == m) {
J = u[1];
try {
for (S = r = (v = atob(J),
J = [],
0); S < v.length; S++)
P = v.charCodeAt(S),
255 < P && (J[r++] = P & 255,
P >>= 8),
J[r++] = P;
(this.C = J,
this).$ = this.C.length << 3
} catch (c) {
z(this, 17, c)
}
rs(this)
} else if (H == b)
v = u[1],
v.push(this.G(99).length, this.G(153).length, this.G(247).length, this.G(146)),
f(168, this, u[2]),
this.Y[10] && W(this, this.G(10));
else {
if (H == C) {
this.m = (u = M((v = u[2],
this.G(99).length + 2), 2),
P = this.m,
this);
try {
J = this.G(42),
0 < J.length && p(this, 99, M(J.length, 2).concat(J), 15),
r = this.G(112) & 511,
r -= this.G(99).length + 5,
S = this.G(153),
4 < S.length && (r -= S.length + 3),
0 < r && p(this, 99, M(r, 2).concat(g(r)), 10),
4 < S.length && p(this, 99, M(S.length, 2).concat(S), 153)
} finally {
this.m = P
}
if (((P = g(2).concat(this.G(99)),
P)[1] = P[0] ^ 3,
P[3] = P[1] ^ u[0],
P)[4] = P[1] ^ u[1],
J = window.btoa) {
for (r = "",
S = 0; S < P.length; S += 8192)
r += String.fromCharCode.apply(null, P.slice(S, S + 8192));
J = J(r).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")
} else
J = void 0;
if (J)
J = "!" + J;
else
for (J = "",
r = 0; r < P.length; r++)
S = P[r][this.N](16),
1 == S.length && (S = "0" + S),
J += S;
return f(146, (((P = J,
this).G(99).length = v[0],
this.G(153)).length = v[1],
this.G(247).length = v[2],
this), v[3]),
P
}
if (H == n)
W(this, u[1]);
else if (H == T)
return W(this, u[1])
}
}
,
t.prototype.N = (t.prototype.i = (t.prototype.G = function(u, H) {
if (H = this.Y[u],
void 0 === H)
throw z(this, 30, 0, u),
this.b;
return H()
}
,
function(u) {
return (u = u().shift(),
this.l().length) || this.B().length || (this.B = this.l = void 0,
this.v--),
u
}
),
"toString"),
(t.prototype.pN = function(u, H, J, v, r, S) {
for (S = v = (J = [],
0); S < u.length; S++)
for (v += H,
r = r << H | u[S]; 7 < v; )
v -= 8,
J.push(r >> v & 255);
return J
}
,
t.prototype).$t = function(u, H, J) {
return u ^ ((H ^= H << 13,
H ^= H >> 17,
H = (H ^ H << 5) & J) || (H = 1),
H)
}
,
window.performance || {}).now ? function() {
return Math.floor(this.m4 + window.performance.now())
}
: function() {
return +new Date
}
,
function(u, H, J, v, r, S) {
return function() {
if (v.m == v) {
var P = H & 1
, c = [T, u, J, void 0, r, S, arguments];
if (H & 2)
var N = R(v, false, false, !(B(v, c),
0));
else
P && v.s.length ? B(v, c) : P ? (B(v, c),
R(v, false, false, true)) : N = PJ(c, v);
return N
}
}
}
), HJ = (t.prototype.s$ = function(u, H, J, v) {
try {
v = u[(H + 2) % 3],
u[H] = u[H] - u[(H + 1) % 3] - v ^ (1 == H ? v << J : v >>> J)
} catch (r) {
throw r;
}
}
,
function(u, H, J, v) {
v = (J = Y(u),
Y(u)),
p(u, v, M(u.G(J), H))
}
), Jf = function(u, H) {
f(23, u, ((u.V.push(u.Y.slice()),
u).Y[23] = void 0,
H))
}, PJ = function(u, H, J, v, r) {
if ((H.Z = !(J = u[0],
1),
J) == b)
H.D = 25,
H.P(u);
else if (J == C) {
J = u[v = u[1],
3];
try {
r = H.P(u)
} catch (S) {
U(H, S),
r = H.j
}
(v && v(r),
J).push(r)
} else if (J == n)
H.P(u);
else if (J == m)
H.P(u);
else if (J == cJ) {
try {
for (r = 0; r < H.w.length; r++)
try {
v = H.w[r],
v[0][v[1]](v[2])
} catch (S) {}
} catch (S) {}
(0,
(H.w = [],
u)[1])()
} else if (J == T)
return r = u[2],
f(26, H, u[6]),
f(168, H, r),
H.P(u)
}, b = {}, C = (t.prototype.b = {},
t.prototype.va = (t.prototype.H = "caller",
function(u, H, J, v) {
for (; J--; )
23 != J && 203 != J && H.Y[J] && (H.Y[J] = H[v](H[u](J), this));
H[u] = this
}
),
{}), vJ = function(u, H, J, v, r, S) {
for (S = (r = ((J = (H = {},
Y(u)),
H.A = Y(u),
H).a = [],
v = u.m == u ? Y(u) - 1 : 1,
Y(u)),
0); S < v; S++)
H.a.push(Y(u));
for (H.F = u.G(J),
H.X = u.G(r); v--; )
H.a[v] = u.G(H.a[v]);
return H
}, O = (t.prototype.W = 35,
t.prototype.O = 36,
t.prototype.Pa = function(u, H, J, v, r) {
for (r = v = 0; r < u.length; r++)
v += u.charCodeAt(r),
v += v << 10,
v ^= v >> 6;
return (v = new Number((u = (v += v << 3,
v ^= v >> 11,
v + (v << 15) >>> 0),
u & (1 << H) - 1)),
v)[0] = (u >>> H) % J,
v
}
,
function(u, H) {
return u[H] << 24 | u[H + 1] << 16 | u[H + 2] << 8 | u[H + 3]
}
), cJ = (t.prototype.U = function(u, H, J, v) {
p(this, (((v = Y((u &= (H = u & 4,
3),
J = Y(this),
this)),
J = this.G(J),
H) && (J = iC(("" + J).replace(/\r\n/g, "\n"))),
u) && p(this, v, M(J.length, 2)),
v), J)
}
,
{}), B = function(u, H) {
u.s.splice(0, 0, H)
}, Y = function(u, H, J, v) {
if (u.l)
return u.i(u.B);
if ((J = (H = u.G(23),
H) >> 3,
H) >= u.$)
throw z(u, 31),
u.b;
return f(23, (void 0 == u.f && (u.f = O(u.C, J - 4),
u.T = void 0),
u.T != J >> 3 && (u.T = J >> 3,
v = u.G(116),
u.Gw = uC(u.f, u.T, [0, 0, v[1], v[2]])),
u), H + 8),
u.C[J] ^ u.Gw[J % 8]
}, rs = (t.prototype.eR = function(u, H, J) {
if (3 == u.length) {
for (J = 0; 3 > J; J++)
H[J] += u[J];
for (J = (u = [13, 8, 13, 12, 16, 5, 3, 10, 15],
0); 9 > J; J++)
H[3](H, J % 3, u[J])
}
}
,
function(u, H, J, v, r, S, P) {
u.v++;
try {
for (v = 5001,
r = void 0,
J = u.$,
S = 0; (u.K || --v) && (u.l || (S = u.G(23)) < J); )
try {
u.l ? r = u.i(u.l) : (f(203, u, S),
P = Y(u),
r = u.G(P)),
r && r.call ? r(u) : z(u, 21, 0, P),
u.Z = true,
G(false, 2, u)
} catch (c) {
c != u.b && (u.G(70) ? z(u, 22, c) : f(70, u, c))
}
v || z(u, 33)
} catch (c) {
try {
z(u, 22, c)
} catch (N) {
U(u, N)
}
}
return J = u.G(168),
H && f(23, u, H),
u.v--,
J
}
), y = (l = D.botguard || (D.botguard = {}),
function(u, H) {
return H = Y(u),
H & 128 && (H = H & 127 | Y(u) << 7),
H
}
);
l.wLT = (l.bg = function(u, H, J) {
return u && u.substring && (J = l[u.substring(0, 3)]) ? new J(u.substring(3),H) : new l.wLT(u,H)
}
,
function(u, H, J) {
this.invoke = (J = new t(u,{
h: H
}),
function(v, r, S) {
return S = J.o(r && v, S),
v && !r && v(S),
S
}
)
}
);
try {
l.u || (D.addEventListener("unload", function() {}, L),
l.u = 1)
} catch (u) {}
try {
D.addEventListener("test", null, Object.defineProperty({}, "passive", {
get: function() {
L = {
passive: true
}
}
}))
} catch (u) {}
;
}
) |
@Tatsh The |
Any news? |
@Tatsh Thanks for that info about Login is broken and your patch Tatsh/youtube-unofficial@ae749c5 |
Checklist
Verbose log
Description
Correct login details "HTTP Error 400".
The text was updated successfully, but these errors were encountered: