"use strict";
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v2.11.8
//   protoc               v4.25.9
// source: io/restorecommerce/access_control.proto
Object.defineProperty(exports, "__esModule", { value: true });
exports.protoMetadata = exports.AccessControlServiceDefinition = exports.ReverseQuery = exports.Response = exports.Context = exports.Request = exports.Response_Decision = exports.protobufPackage = void 0;
exports.response_DecisionFromJSON = response_DecisionFromJSON;
exports.response_DecisionToJSON = response_DecisionToJSON;
exports.response_DecisionToNumber = response_DecisionToNumber;
/* eslint-disable */
const wire_1 = require("@bufbuild/protobuf/wire");
const any_1 = require("../../google/protobuf/any");
const attribute_1 = require("./attribute");
const options_1 = require("./options");
const policy_set_1 = require("./policy_set");
const rule_1 = require("./rule");
const status_1 = require("./status");
exports.protobufPackage = "io.restorecommerce.access_control";
var Response_Decision;
(function (Response_Decision) {
    Response_Decision["PERMIT"] = "PERMIT";
    Response_Decision["DENY"] = "DENY";
    Response_Decision["NOT_APPLICABLE"] = "NOT_APPLICABLE";
    Response_Decision["INDETERMINATE"] = "INDETERMINATE";
    Response_Decision["UNRECOGNIZED"] = "UNRECOGNIZED";
})(Response_Decision || (exports.Response_Decision = Response_Decision = {}));
function response_DecisionFromJSON(object) {
    switch (object) {
        case 0:
        case "PERMIT":
            return Response_Decision.PERMIT;
        case 1:
        case "DENY":
            return Response_Decision.DENY;
        case 2:
        case "NOT_APPLICABLE":
            return Response_Decision.NOT_APPLICABLE;
        case 3:
        case "INDETERMINATE":
            return Response_Decision.INDETERMINATE;
        case -1:
        case "UNRECOGNIZED":
        default:
            return Response_Decision.UNRECOGNIZED;
    }
}
function response_DecisionToJSON(object) {
    switch (object) {
        case Response_Decision.PERMIT:
            return "PERMIT";
        case Response_Decision.DENY:
            return "DENY";
        case Response_Decision.NOT_APPLICABLE:
            return "NOT_APPLICABLE";
        case Response_Decision.INDETERMINATE:
            return "INDETERMINATE";
        case Response_Decision.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
function response_DecisionToNumber(object) {
    switch (object) {
        case Response_Decision.PERMIT:
            return 0;
        case Response_Decision.DENY:
            return 1;
        case Response_Decision.NOT_APPLICABLE:
            return 2;
        case Response_Decision.INDETERMINATE:
            return 3;
        case Response_Decision.UNRECOGNIZED:
        default:
            return -1;
    }
}
function createBaseRequest() {
    return {};
}
exports.Request = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.target !== undefined) {
            rule_1.Target.encode(message.target, writer.uint32(10).fork()).join();
        }
        if (message.context !== undefined) {
            exports.Context.encode(message.context, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRequest();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.target = rule_1.Target.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.context = exports.Context.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            target: isSet(object.target) ? rule_1.Target.fromJSON(object.target) : undefined,
            context: isSet(object.context) ? exports.Context.fromJSON(object.context) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.target !== undefined) {
            obj.target = rule_1.Target.toJSON(message.target);
        }
        if (message.context !== undefined) {
            obj.context = exports.Context.toJSON(message.context);
        }
        return obj;
    },
    create(base) {
        return exports.Request.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseRequest();
        message.target = (object.target !== undefined && object.target !== null)
            ? rule_1.Target.fromPartial(object.target)
            : undefined;
        message.context = (object.context !== undefined && object.context !== null)
            ? exports.Context.fromPartial(object.context)
            : undefined;
        return message;
    },
};
function createBaseContext() {
    return {};
}
exports.Context = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.subject !== undefined) {
            any_1.Any.encode(message.subject, writer.uint32(10).fork()).join();
        }
        if (message.resources !== undefined && message.resources.length !== 0) {
            for (const v of message.resources) {
                any_1.Any.encode(v, writer.uint32(18).fork()).join();
            }
        }
        if (message.security !== undefined) {
            any_1.Any.encode(message.security, writer.uint32(26).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseContext();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.subject = any_1.Any.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    if (message.resources === undefined) {
                        message.resources = [];
                    }
                    const el = any_1.Any.decode(reader, reader.uint32());
                    if (el !== undefined) {
                        message.resources.push(el);
                    }
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.security = any_1.Any.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            subject: isSet(object.subject) ? any_1.Any.fromJSON(object.subject) : undefined,
            resources: globalThis.Array.isArray(object?.resources)
                ? object.resources.map((e) => any_1.Any.fromJSON(e))
                : undefined,
            security: isSet(object.security) ? any_1.Any.fromJSON(object.security) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.subject !== undefined) {
            obj.subject = any_1.Any.toJSON(message.subject);
        }
        if (message.resources?.length) {
            obj.resources = message.resources.map((e) => any_1.Any.toJSON(e));
        }
        if (message.security !== undefined) {
            obj.security = any_1.Any.toJSON(message.security);
        }
        return obj;
    },
    create(base) {
        return exports.Context.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseContext();
        message.subject = (object.subject !== undefined && object.subject !== null)
            ? any_1.Any.fromPartial(object.subject)
            : undefined;
        message.resources = object.resources?.map((e) => any_1.Any.fromPartial(e)) || undefined;
        message.security = (object.security !== undefined && object.security !== null)
            ? any_1.Any.fromPartial(object.security)
            : undefined;
        return message;
    },
};
function createBaseResponse() {
    return {};
}
exports.Response = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.decision !== undefined) {
            writer.uint32(8).int32(response_DecisionToNumber(message.decision));
        }
        if (message.obligations !== undefined && message.obligations.length !== 0) {
            for (const v of message.obligations) {
                attribute_1.Attribute.encode(v, writer.uint32(18).fork()).join();
            }
        }
        if (message.evaluationCacheable !== undefined) {
            writer.uint32(24).bool(message.evaluationCacheable);
        }
        if (message.operationStatus !== undefined) {
            status_1.OperationStatus.encode(message.operationStatus, writer.uint32(34).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.decision = response_DecisionFromJSON(reader.int32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    if (message.obligations === undefined) {
                        message.obligations = [];
                    }
                    const el = attribute_1.Attribute.decode(reader, reader.uint32());
                    if (el !== undefined) {
                        message.obligations.push(el);
                    }
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.evaluationCacheable = reader.bool();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.operationStatus = status_1.OperationStatus.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            decision: isSet(object.decision) ? response_DecisionFromJSON(object.decision) : undefined,
            obligations: globalThis.Array.isArray(object?.obligations)
                ? object.obligations.map((e) => attribute_1.Attribute.fromJSON(e))
                : undefined,
            evaluationCacheable: isSet(object.evaluationCacheable)
                ? globalThis.Boolean(object.evaluationCacheable)
                : isSet(object.evaluation_cacheable)
                    ? globalThis.Boolean(object.evaluation_cacheable)
                    : undefined,
            operationStatus: isSet(object.operationStatus)
                ? status_1.OperationStatus.fromJSON(object.operationStatus)
                : isSet(object.operation_status)
                    ? status_1.OperationStatus.fromJSON(object.operation_status)
                    : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.decision !== undefined) {
            obj.decision = response_DecisionToJSON(message.decision);
        }
        if (message.obligations?.length) {
            obj.obligations = message.obligations.map((e) => attribute_1.Attribute.toJSON(e));
        }
        if (message.evaluationCacheable !== undefined) {
            obj.evaluationCacheable = message.evaluationCacheable;
        }
        if (message.operationStatus !== undefined) {
            obj.operationStatus = status_1.OperationStatus.toJSON(message.operationStatus);
        }
        return obj;
    },
    create(base) {
        return exports.Response.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseResponse();
        message.decision = object.decision ?? undefined;
        message.obligations = object.obligations?.map((e) => attribute_1.Attribute.fromPartial(e)) || undefined;
        message.evaluationCacheable = object.evaluationCacheable ?? undefined;
        message.operationStatus = (object.operationStatus !== undefined && object.operationStatus !== null)
            ? status_1.OperationStatus.fromPartial(object.operationStatus)
            : undefined;
        return message;
    },
};
function createBaseReverseQuery() {
    return {};
}
exports.ReverseQuery = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.policySets !== undefined && message.policySets.length !== 0) {
            for (const v of message.policySets) {
                policy_set_1.PolicySetRQ.encode(v, writer.uint32(10).fork()).join();
            }
        }
        if (message.obligations !== undefined && message.obligations.length !== 0) {
            for (const v of message.obligations) {
                attribute_1.Attribute.encode(v, writer.uint32(18).fork()).join();
            }
        }
        if (message.operationStatus !== undefined) {
            status_1.OperationStatus.encode(message.operationStatus, writer.uint32(26).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseReverseQuery();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    if (message.policySets === undefined) {
                        message.policySets = [];
                    }
                    const el = policy_set_1.PolicySetRQ.decode(reader, reader.uint32());
                    if (el !== undefined) {
                        message.policySets.push(el);
                    }
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    if (message.obligations === undefined) {
                        message.obligations = [];
                    }
                    const el = attribute_1.Attribute.decode(reader, reader.uint32());
                    if (el !== undefined) {
                        message.obligations.push(el);
                    }
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.operationStatus = status_1.OperationStatus.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            policySets: globalThis.Array.isArray(object?.policySets)
                ? object.policySets.map((e) => policy_set_1.PolicySetRQ.fromJSON(e))
                : globalThis.Array.isArray(object?.policy_sets)
                    ? object.policy_sets.map((e) => policy_set_1.PolicySetRQ.fromJSON(e))
                    : undefined,
            obligations: globalThis.Array.isArray(object?.obligations)
                ? object.obligations.map((e) => attribute_1.Attribute.fromJSON(e))
                : undefined,
            operationStatus: isSet(object.operationStatus)
                ? status_1.OperationStatus.fromJSON(object.operationStatus)
                : isSet(object.operation_status)
                    ? status_1.OperationStatus.fromJSON(object.operation_status)
                    : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.policySets?.length) {
            obj.policySets = message.policySets.map((e) => policy_set_1.PolicySetRQ.toJSON(e));
        }
        if (message.obligations?.length) {
            obj.obligations = message.obligations.map((e) => attribute_1.Attribute.toJSON(e));
        }
        if (message.operationStatus !== undefined) {
            obj.operationStatus = status_1.OperationStatus.toJSON(message.operationStatus);
        }
        return obj;
    },
    create(base) {
        return exports.ReverseQuery.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseReverseQuery();
        message.policySets = object.policySets?.map((e) => policy_set_1.PolicySetRQ.fromPartial(e)) || undefined;
        message.obligations = object.obligations?.map((e) => attribute_1.Attribute.fromPartial(e)) || undefined;
        message.operationStatus = (object.operationStatus !== undefined && object.operationStatus !== null)
            ? status_1.OperationStatus.fromPartial(object.operationStatus)
            : undefined;
        return message;
    },
};
exports.AccessControlServiceDefinition = {
    name: "AccessControlService",
    fullName: "io.restorecommerce.access_control.AccessControlService",
    methods: {
        isAllowed: {
            name: "IsAllowed",
            requestType: exports.Request,
            requestStream: false,
            responseType: exports.Response,
            responseStream: false,
            options: { _unknownFields: { 248008: [Buffer.from([1])] } },
        },
        whatIsAllowed: {
            name: "WhatIsAllowed",
            requestType: exports.Request,
            requestStream: false,
            responseType: exports.ReverseQuery,
            responseStream: false,
            options: { _unknownFields: { 248008: [Buffer.from([1])] } },
        },
    },
};
exports.protoMetadata = {
    fileDescriptor: {
        "name": "io/restorecommerce/access_control.proto",
        "package": "io.restorecommerce.access_control",
        "dependency": [
            "google/protobuf/any.proto",
            "io/restorecommerce/rule.proto",
            "io/restorecommerce/policy_set.proto",
            "io/restorecommerce/status.proto",
            "io/restorecommerce/attribute.proto",
            "io/restorecommerce/options.proto",
        ],
        "publicDependency": [],
        "weakDependency": [],
        "optionDependency": [],
        "messageType": [{
                "name": "Request",
                "field": [{
                        "name": "target",
                        "number": 1,
                        "label": 1,
                        "type": 11,
                        "typeName": ".io.restorecommerce.rule.Target",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "target",
                        "options": undefined,
                        "proto3Optional": true,
                    }, {
                        "name": "context",
                        "number": 2,
                        "label": 1,
                        "type": 11,
                        "typeName": ".io.restorecommerce.access_control.Context",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 1,
                        "jsonName": "context",
                        "options": undefined,
                        "proto3Optional": true,
                    }],
                "extension": [],
                "nestedType": [],
                "enumType": [],
                "extensionRange": [],
                "oneofDecl": [{ "name": "_target", "options": undefined }, { "name": "_context", "options": undefined }],
                "options": undefined,
                "reservedRange": [],
                "reservedName": [],
                "visibility": 0,
            }, {
                "name": "Context",
                "field": [{
                        "name": "subject",
                        "number": 1,
                        "label": 1,
                        "type": 11,
                        "typeName": ".google.protobuf.Any",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "subject",
                        "options": undefined,
                        "proto3Optional": true,
                    }, {
                        "name": "resources",
                        "number": 2,
                        "label": 3,
                        "type": 11,
                        "typeName": ".google.protobuf.Any",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "resources",
                        "options": undefined,
                        "proto3Optional": false,
                    }, {
                        "name": "security",
                        "number": 3,
                        "label": 1,
                        "type": 11,
                        "typeName": ".google.protobuf.Any",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 1,
                        "jsonName": "security",
                        "options": undefined,
                        "proto3Optional": true,
                    }],
                "extension": [],
                "nestedType": [],
                "enumType": [],
                "extensionRange": [],
                "oneofDecl": [{ "name": "_subject", "options": undefined }, { "name": "_security", "options": undefined }],
                "options": undefined,
                "reservedRange": [],
                "reservedName": [],
                "visibility": 0,
            }, {
                "name": "Response",
                "field": [{
                        "name": "decision",
                        "number": 1,
                        "label": 1,
                        "type": 14,
                        "typeName": ".io.restorecommerce.access_control.Response.Decision",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "decision",
                        "options": undefined,
                        "proto3Optional": true,
                    }, {
                        "name": "obligations",
                        "number": 2,
                        "label": 3,
                        "type": 11,
                        "typeName": ".io.restorecommerce.attribute.Attribute",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "obligations",
                        "options": undefined,
                        "proto3Optional": false,
                    }, {
                        "name": "evaluation_cacheable",
                        "number": 3,
                        "label": 1,
                        "type": 8,
                        "typeName": "",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 1,
                        "jsonName": "evaluationCacheable",
                        "options": undefined,
                        "proto3Optional": true,
                    }, {
                        "name": "operation_status",
                        "number": 4,
                        "label": 1,
                        "type": 11,
                        "typeName": ".io.restorecommerce.status.OperationStatus",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 2,
                        "jsonName": "operationStatus",
                        "options": undefined,
                        "proto3Optional": true,
                    }],
                "extension": [],
                "nestedType": [],
                "enumType": [{
                        "name": "Decision",
                        "value": [
                            { "name": "PERMIT", "number": 0, "options": undefined },
                            { "name": "DENY", "number": 1, "options": undefined },
                            { "name": "NOT_APPLICABLE", "number": 2, "options": undefined },
                            { "name": "INDETERMINATE", "number": 3, "options": undefined },
                        ],
                        "options": undefined,
                        "reservedRange": [],
                        "reservedName": [],
                        "visibility": 0,
                    }],
                "extensionRange": [],
                "oneofDecl": [{ "name": "_decision", "options": undefined }, {
                        "name": "_evaluation_cacheable",
                        "options": undefined,
                    }, { "name": "_operation_status", "options": undefined }],
                "options": undefined,
                "reservedRange": [],
                "reservedName": [],
                "visibility": 0,
            }, {
                "name": "ReverseQuery",
                "field": [{
                        "name": "policy_sets",
                        "number": 1,
                        "label": 3,
                        "type": 11,
                        "typeName": ".io.restorecommerce.policy_set.PolicySetRQ",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "policySets",
                        "options": undefined,
                        "proto3Optional": false,
                    }, {
                        "name": "obligations",
                        "number": 2,
                        "label": 3,
                        "type": 11,
                        "typeName": ".io.restorecommerce.attribute.Attribute",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "obligations",
                        "options": undefined,
                        "proto3Optional": false,
                    }, {
                        "name": "operation_status",
                        "number": 3,
                        "label": 1,
                        "type": 11,
                        "typeName": ".io.restorecommerce.status.OperationStatus",
                        "extendee": "",
                        "defaultValue": "",
                        "oneofIndex": 0,
                        "jsonName": "operationStatus",
                        "options": undefined,
                        "proto3Optional": true,
                    }],
                "extension": [],
                "nestedType": [],
                "enumType": [],
                "extensionRange": [],
                "oneofDecl": [{ "name": "_operation_status", "options": undefined }],
                "options": undefined,
                "reservedRange": [],
                "reservedName": [],
                "visibility": 0,
            }],
        "enumType": [],
        "service": [{
                "name": "AccessControlService",
                "method": [{
                        "name": "IsAllowed",
                        "inputType": ".io.restorecommerce.access_control.Request",
                        "outputType": ".io.restorecommerce.access_control.Response",
                        "options": { "deprecated": false, "idempotencyLevel": 0, "features": undefined, "uninterpretedOption": [] },
                        "clientStreaming": false,
                        "serverStreaming": false,
                    }, {
                        "name": "WhatIsAllowed",
                        "inputType": ".io.restorecommerce.access_control.Request",
                        "outputType": ".io.restorecommerce.access_control.ReverseQuery",
                        "options": { "deprecated": false, "idempotencyLevel": 0, "features": undefined, "uninterpretedOption": [] },
                        "clientStreaming": false,
                        "serverStreaming": false,
                    }],
                "options": undefined,
            }],
        "extension": [],
        "options": undefined,
        "sourceCodeInfo": {
            "location": [{
                    "path": [4, 0, 2, 1],
                    "span": [19, 2, 31],
                    "leadingComments": " generic data structure which can be provided\n to a contextQuery (see io/restorecommerce/rule.proto)\n",
                    "trailingComments": "",
                    "leadingDetachedComments": [],
                }],
        },
        "syntax": "proto3",
        "edition": 0,
    },
    references: {
        ".io.restorecommerce.access_control.Request": exports.Request,
        ".io.restorecommerce.access_control.Context": exports.Context,
        ".io.restorecommerce.access_control.Response": exports.Response,
        ".io.restorecommerce.access_control.Response.Decision": Response_Decision,
        ".io.restorecommerce.access_control.ReverseQuery": exports.ReverseQuery,
    },
    dependencies: [any_1.protoMetadata, rule_1.protoMetadata, policy_set_1.protoMetadata, status_1.protoMetadata, attribute_1.protoMetadata, options_1.protoMetadata],
    options: {
        services: {
            "AccessControlService": { methods: { "IsAllowed": { "is_query": true }, "WhatIsAllowed": { "is_query": true } } },
        },
    },
};
function isSet(value) {
    return value !== null && value !== undefined;
}
//# sourceMappingURL=access_control.js.map