browserfs
Version:
A filesystem in your browser!
39 lines • 12.3 kB
JavaScript
;
var api_error_1 = require('./api_error');
var BaseFile = (function () {
function BaseFile() {
}
BaseFile.prototype.sync = function (cb) {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP));
};
BaseFile.prototype.syncSync = function () {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP);
};
BaseFile.prototype.datasync = function (cb) {
this.sync(cb);
};
BaseFile.prototype.datasyncSync = function () {
return this.syncSync();
};
BaseFile.prototype.chown = function (uid, gid, cb) {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP));
};
BaseFile.prototype.chownSync = function (uid, gid) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP);
};
BaseFile.prototype.chmod = function (mode, cb) {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP));
};
BaseFile.prototype.chmodSync = function (mode) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP);
};
BaseFile.prototype.utimes = function (atime, mtime, cb) {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP));
};
BaseFile.prototype.utimesSync = function (atime, mtime) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP);
};
return BaseFile;
}());
exports.BaseFile = BaseFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUFrQyxhQUFhLENBQUMsQ0FBQTtBQWlLaEQ7SUFBQTtJQStCQSxDQUFDO0lBOUJRLHVCQUFJLEdBQVgsVUFBWSxFQUEwQjtRQUNwQyxFQUFFLENBQUMsSUFBSSxvQkFBUSxDQUFDLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ00sMkJBQVEsR0FBZjtRQUNFLE1BQU0sSUFBSSxvQkFBUSxDQUFDLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNNLDJCQUFRLEdBQWYsVUFBZ0IsRUFBMEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBQ00sK0JBQVksR0FBbkI7UUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDTSx3QkFBSyxHQUFaLFVBQWEsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUEwQjtRQUMvRCxFQUFFLENBQUMsSUFBSSxvQkFBUSxDQUFDLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ00sNEJBQVMsR0FBaEIsVUFBaUIsR0FBVyxFQUFFLEdBQVc7UUFDdkMsTUFBTSxJQUFJLG9CQUFRLENBQUMscUJBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ00sd0JBQUssR0FBWixVQUFhLElBQVksRUFBRSxFQUEwQjtRQUNuRCxFQUFFLENBQUMsSUFBSSxvQkFBUSxDQUFDLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ00sNEJBQVMsR0FBaEIsVUFBaUIsSUFBWTtRQUMzQixNQUFNLElBQUksb0JBQVEsQ0FBQyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDTSx5QkFBTSxHQUFiLFVBQWMsS0FBVyxFQUFFLEtBQVcsRUFBRSxFQUEwQjtRQUNoRSxFQUFFLENBQUMsSUFBSSxvQkFBUSxDQUFDLHFCQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ00sNkJBQVUsR0FBakIsVUFBa0IsS0FBVyxFQUFFLEtBQVc7UUFDeEMsTUFBTSxJQUFJLG9CQUFRLENBQUMscUJBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUEvQkQsSUErQkM7QUEvQlksZ0JBQVEsV0ErQnBCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4vYXBpX2Vycm9yJztcbmltcG9ydCBTdGF0cyBmcm9tICcuL25vZGVfZnNfc3RhdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGUge1xuICAvKipcbiAgICogKipDb3JlKio6IEdldCB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIFtOdW1iZXJdXG4gICAqL1xuICBnZXRQb3MoKTogbnVtYmVyO1xuICAvKipcbiAgICogKipDb3JlKio6IEFzeW5jaHJvbm91cyBgc3RhdGAuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBCcm93c2VyRlMubm9kZS5mcy5TdGF0cyldIGNiXG4gICAqL1xuICBzdGF0KGNiOiAoZXJyOiBBcGlFcnJvciwgc3RhdHM/OiBTdGF0cykgPT4gYW55KTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBTeW5jaHJvbm91cyBgc3RhdGAuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBCcm93c2VyRlMubm9kZS5mcy5TdGF0cyldIGNiXG4gICAqL1xuICBzdGF0U3luYygpOiBTdGF0cztcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBBc3luY2hyb25vdXMgY2xvc2UuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIGNsb3NlKGNiOiAoZXJyPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkO1xuICAvKipcbiAgICogKipDb3JlKio6IFN5bmNocm9ub3VzIGNsb3NlLlxuICAgKi9cbiAgY2xvc2VTeW5jKCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogQXN5bmNocm9ub3VzIHRydW5jYXRlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHRydW5jYXRlKGxlbjogbnVtYmVyLCBjYjogKGVycj86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBTeW5jaHJvbm91cyB0cnVuY2F0ZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlblxuICAgKi9cbiAgdHJ1bmNhdGVTeW5jKGxlbjogbnVtYmVyKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBBc3luY2hyb25vdXMgc3luYy5cbiAgICogQHBhcmFtIFtGdW5jdGlvbihCcm93c2VyRlMuQXBpRXJyb3IpXSBjYlxuICAgKi9cbiAgc3luYyhjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogU3luY2hyb25vdXMgc3luYy5cbiAgICovXG4gIHN5bmNTeW5jKCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogV3JpdGUgYnVmZmVyIHRvIHRoZSBmaWxlLlxuICAgKiBOb3RlIHRoYXQgaXQgaXMgdW5zYWZlIHRvIHVzZSBmcy53cml0ZSBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBmaWxlXG4gICAqIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcl0gYnVmZmVyIEJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIHdyaXRlIHRvXG4gICAqICB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG9mZnNldCBPZmZzZXQgaW4gdGhlIGJ1ZmZlciB0byBzdGFydCByZWFkaW5nIGRhdGEgZnJvbS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlbmd0aCBUaGUgYW1vdW50IG9mIGJ5dGVzIHRvIHdyaXRlIHRvIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gcG9zaXRpb24gT2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSB3aGVyZSB0aGlzXG4gICAqICAgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gSWYgcG9zaXRpb24gaXMgbnVsbCwgdGhlIGRhdGEgd2lsbCBiZSB3cml0dGVuIGF0XG4gICAqICAgdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBOdW1iZXIsIEJyb3dzZXJGUy5ub2RlLkJ1ZmZlcildXG4gICAqICAgY2IgVGhlIG51bWJlciBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIGludG8gdGhlIGZpbGUuXG4gICAqL1xuICB3cml0ZShidWZmZXI6IE5vZGVCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IG51bWJlciwgY2I6IChlcnI6IEFwaUVycm9yLCB3cml0dGVuPzogbnVtYmVyLCBidWZmZXI/OiBOb2RlQnVmZmVyKSA9PiBhbnkpOiB2b2lkO1xuICAvKipcbiAgICogKipDb3JlKio6IFdyaXRlIGJ1ZmZlciB0byB0aGUgZmlsZS5cbiAgICogTm90ZSB0aGF0IGl0IGlzIHVuc2FmZSB0byB1c2UgZnMud3JpdGVTeW5jIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGZpbGVcbiAgICogd2l0aG91dCB3YWl0aW5nIGZvciBpdCB0byByZXR1cm4uXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuQnVmZmVyXSBidWZmZXIgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gd3JpdGUgdG9cbiAgICogIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gb2Zmc2V0IE9mZnNldCBpbiB0aGUgYnVmZmVyIHRvIHN0YXJ0IHJlYWRpbmcgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuZ3RoIFRoZSBhbW91bnQgb2YgYnl0ZXMgdG8gd3JpdGUgdG8gdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBwb3NpdGlvbiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHdoZXJlIHRoaXNcbiAgICogICBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBJZiBwb3NpdGlvbiBpcyBudWxsLCB0aGUgZGF0YSB3aWxsIGJlIHdyaXR0ZW4gYXRcbiAgICogICB0aGUgY3VycmVudCBwb3NpdGlvbi5cbiAgICogQHJldHVybiBbTnVtYmVyXVxuICAgKi9cbiAgd3JpdGVTeW5jKGJ1ZmZlcjogTm9kZUJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyO1xuICAvKipcbiAgICogKipDb3JlKio6IFJlYWQgZGF0YSBmcm9tIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcl0gYnVmZmVyIFRoZSBidWZmZXIgdGhhdCB0aGUgZGF0YSB3aWxsIGJlXG4gICAqICAgd3JpdHRlbiB0by5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG9mZnNldCBUaGUgb2Zmc2V0IHdpdGhpbiB0aGUgYnVmZmVyIHdoZXJlIHdyaXRpbmcgd2lsbFxuICAgKiAgIHN0YXJ0LlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuZ3RoIEFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBwb3NpdGlvbiBBbiBpbnRlZ2VyIHNwZWNpZnlpbmcgd2hlcmUgdG8gYmVnaW4gcmVhZGluZyBmcm9tXG4gICAqICAgaW4gdGhlIGZpbGUuIElmIHBvc2l0aW9uIGlzIG51bGwsIGRhdGEgd2lsbCBiZSByZWFkIGZyb20gdGhlIGN1cnJlbnQgZmlsZVxuICAgKiAgIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvciwgTnVtYmVyLCBCcm93c2VyRlMubm9kZS5CdWZmZXIpXSBjYiBUaGVcbiAgICogICBudW1iZXIgaXMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkXG4gICAqL1xuICByZWFkKGJ1ZmZlcjogTm9kZUJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyLCBjYjogKGVycjogQXBpRXJyb3IsIGJ5dGVzUmVhZD86IG51bWJlciwgYnVmZmVyPzogTm9kZUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogUmVhZCBkYXRhIGZyb20gdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuQnVmZmVyXSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IHRoZSBkYXRhIHdpbGwgYmVcbiAgICogICB3cml0dGVuIHRvLlxuICAgKiBAcGFyYW0gW051bWJlcl0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBidWZmZXIgd2hlcmUgd3JpdGluZyB3aWxsXG4gICAqICAgc3RhcnQuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5ndGggQW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIHBvc2l0aW9uIEFuIGludGVnZXIgc3BlY2lmeWluZyB3aGVyZSB0byBiZWdpbiByZWFkaW5nIGZyb21cbiAgICogICBpbiB0aGUgZmlsZS4gSWYgcG9zaXRpb24gaXMgbnVsbCwgZGF0YSB3aWxsIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBmaWxlXG4gICAqICAgcG9zaXRpb24uXG4gICAqIEByZXR1cm4gW051bWJlcl1cbiAgICovXG4gIHJlYWRTeW5jKGJ1ZmZlcjogTm9kZUJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyO1xuICAvKipcbiAgICogKipTdXBwbGVtZW50YXJ5Kio6IEFzeW5jaHJvbm91cyBgZGF0YXN5bmNgLlxuICAgKlxuICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG1hcHMgdG8gYHN5bmNgLlxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBkYXRhc3luYyhjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKlN1cHBsZW1lbnRhcnkqKjogU3luY2hyb25vdXMgYGRhdGFzeW5jYC5cbiAgICpcbiAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBtYXBzIHRvIGBzeW5jU3luY2AuXG4gICAqL1xuICBkYXRhc3luY1N5bmMoKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogQXN5bmNocm9ub3VzIGBjaG93bmAuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSB1aWRcbiAgICogQHBhcmFtIFtOdW1iZXJdIGdpZFxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBjaG93bih1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIsIGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogU3luY2hyb25vdXMgYGNob3duYC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIHVpZFxuICAgKiBAcGFyYW0gW051bWJlcl0gZ2lkXG4gICAqL1xuICBjaG93blN5bmModWlkOiBudW1iZXIsIGdpZDogbnVtYmVyKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogQXN5bmNocm9ub3VzIGBmY2htb2RgLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbW9kZVxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBjaG1vZChtb2RlOiBudW1iZXIsIGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogU3luY2hyb25vdXMgYGZjaG1vZGAuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBtb2RlXG4gICAqL1xuICBjaG1vZFN5bmMobW9kZTogbnVtYmVyKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogQ2hhbmdlIHRoZSBmaWxlIHRpbWVzdGFtcHMgb2YgdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbRGF0ZV0gYXRpbWVcbiAgICogQHBhcmFtIFtEYXRlXSBtdGltZVxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICB1dGltZXMoYXRpbWU6IERhdGUsIG10aW1lOiBEYXRlLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKk9wdGlvbmFsKio6IENoYW5nZSB0aGUgZmlsZSB0aW1lc3RhbXBzIG9mIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW0RhdGVdIGF0aW1lXG4gICAqIEBwYXJhbSBbRGF0ZV0gbXRpbWVcbiAgICovXG4gIHV0aW1lc1N5bmMoYXRpbWU6IERhdGUsIG10aW1lOiBEYXRlKTogdm9pZDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIHRoYXQgY29udGFpbnMgc2hhcmVkIGltcGxlbWVudGF0aW9ucyBvZiBmdW5jdGlvbnMgZm9yIHRoZSBmaWxlXG4gKiBvYmplY3QuXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VGaWxlIHtcbiAgcHVibGljIHN5bmMoY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjYihuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApKTtcbiAgfVxuICBwdWJsaWMgc3luY1N5bmMoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKTtcbiAgfVxuICBwdWJsaWMgZGF0YXN5bmMoY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmMoY2IpO1xuICB9XG4gIHB1YmxpYyBkYXRhc3luY1N5bmMoKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuc3luY1N5bmMoKTtcbiAgfVxuICBwdWJsaWMgY2hvd24odWlkOiBudW1iZXIsIGdpZDogbnVtYmVyLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCkpO1xuICB9XG4gIHB1YmxpYyBjaG93blN5bmModWlkOiBudW1iZXIsIGdpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKTtcbiAgfVxuICBwdWJsaWMgY2htb2QobW9kZTogbnVtYmVyLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCkpO1xuICB9XG4gIHB1YmxpYyBjaG1vZFN5bmMobW9kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKTtcbiAgfVxuICBwdWJsaWMgdXRpbWVzKGF0aW1lOiBEYXRlLCBtdGltZTogRGF0ZSwgY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjYihuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApKTtcbiAgfVxuICBwdWJsaWMgdXRpbWVzU3luYyhhdGltZTogRGF0ZSwgbXRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApO1xuICB9XG59XG4iXX0=