# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: eolymp/atlas/atlas.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from eolymp.annotations import http_pb2 as eolymp_dot_annotations_dot_http__pb2
from eolymp.annotations import ratelimit_pb2 as eolymp_dot_annotations_dot_ratelimit__pb2
from eolymp.annotations import scope_pb2 as eolymp_dot_annotations_dot_scope__pb2
from eolymp.annotations import service_pb2 as eolymp_dot_annotations_dot_service__pb2
from eolymp.executor import verifier_pb2 as eolymp_dot_executor_dot_verifier__pb2
from eolymp.executor import interactor_pb2 as eolymp_dot_executor_dot_interactor__pb2
from eolymp.wellknown import expression_pb2 as eolymp_dot_wellknown_dot_expression__pb2
from eolymp.atlas import attachment_pb2 as eolymp_dot_atlas_dot_attachment__pb2
from eolymp.atlas import category_pb2 as eolymp_dot_atlas_dot_category__pb2
from eolymp.atlas import change_pb2 as eolymp_dot_atlas_dot_change__pb2
from eolymp.atlas import permission_pb2 as eolymp_dot_atlas_dot_permission__pb2
from eolymp.atlas import problem_pb2 as eolymp_dot_atlas_dot_problem__pb2
from eolymp.atlas import score_pb2 as eolymp_dot_atlas_dot_score__pb2
from eolymp.atlas import solution_pb2 as eolymp_dot_atlas_dot_solution__pb2
from eolymp.atlas import statement_pb2 as eolymp_dot_atlas_dot_statement__pb2
from eolymp.atlas import submission_pb2 as eolymp_dot_atlas_dot_submission__pb2
from eolymp.atlas import template_pb2 as eolymp_dot_atlas_dot_template__pb2
from eolymp.atlas import test_pb2 as eolymp_dot_atlas_dot_test__pb2
from eolymp.atlas import testset_pb2 as eolymp_dot_atlas_dot_testset__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x65olymp/atlas/atlas.proto\x12\x0c\x65olymp.atlas\x1a\x1d\x65olymp/annotations/http.proto\x1a\"eolymp/annotations/ratelimit.proto\x1a\x1e\x65olymp/annotations/scope.proto\x1a eolymp/annotations/service.proto\x1a\x1e\x65olymp/executor/verifier.proto\x1a eolymp/executor/interactor.proto\x1a!eolymp/wellknown/expression.proto\x1a\x1d\x65olymp/atlas/attachment.proto\x1a\x1b\x65olymp/atlas/category.proto\x1a\x19\x65olymp/atlas/change.proto\x1a\x1d\x65olymp/atlas/permission.proto\x1a\x1a\x65olymp/atlas/problem.proto\x1a\x18\x65olymp/atlas/score.proto\x1a\x1b\x65olymp/atlas/solution.proto\x1a\x1c\x65olymp/atlas/statement.proto\x1a\x1d\x65olymp/atlas/submission.proto\x1a\x1b\x65olymp/atlas/template.proto\x1a\x17\x65olymp/atlas/test.proto\x1a\x1a\x65olymp/atlas/testset.proto\"\xf3\x02\n\x11ListProblemsInput\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x37\n\x07\x66ilters\x18( \x01(\x0b\x32&.eolymp.atlas.ListProblemsInput.Filter\x1a\x86\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x33\n\x0b\x63\x61tegory_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x34\n\nis_visible\x18\x03 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12\x34\n\nis_private\x18\x04 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12/\n\x06number\x18\x05 \x03(\x0b\x32\x1f.eolymp.wellknown.ExpressionInt\"I\n\x12ListProblemsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Problem\"h\n\x12\x43reateProblemInput\x12&\n\x07problem\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Problem\x12*\n\tstatement\x18\x02 \x01(\x0b\x32\x17.eolymp.atlas.Statement\")\n\x13\x43reateProblemOutput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"(\n\x12\x44\x65leteProblemInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteProblemOutput\"*\n\x14\x44\x65scribeProblemInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"?\n\x15\x44\x65scribeProblemOutput\x12&\n\x07problem\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Problem\")\n\x13ListStatementsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"M\n\x14ListStatementsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12&\n\x05items\x18\x02 \x03(\x0b\x32\x17.eolymp.atlas.Statement\".\n\x16\x44\x65scribeStatementInput\x12\x14\n\x0cstatement_id\x18\x01 \x01(\t\"E\n\x17\x44\x65scribeStatementOutput\x12*\n\tstatement\x18\x01 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"V\n\x14\x43reateStatementInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12*\n\tstatement\x18\x02 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"#\n\x15\x43reateStatementOutput\x12\n\n\x02id\x18\x01 \x01(\t\"X\n\x14UpdateStatementInput\x12\x14\n\x0cstatement_id\x18\x01 \x01(\t\x12*\n\tstatement\x18\x02 \x01(\x0b\x32\x17.eolymp.atlas.Statement\"\x17\n\x15UpdateStatementOutput\",\n\x14\x44\x65leteStatementInput\x12\x14\n\x0cstatement_id\x18\x01 \x01(\t\"\x17\n\x15\x44\x65leteStatementOutput\"V\n\x13UpdateVerifierInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12+\n\x08verifier\x18\x02 \x01(\x0b\x32\x19.eolymp.executor.Verifier\"\x16\n\x14UpdateVerifierOutput\"+\n\x15\x44\x65scribeVerifierInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"E\n\x16\x44\x65scribeVerifierOutput\x12+\n\x08verifier\x18\x01 \x01(\x0b\x32\x19.eolymp.executor.Verifier\"\\\n\x15UpdateInteractorInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12/\n\ninteractor\x18\x02 \x01(\x0b\x32\x1b.eolymp.executor.Interactor\"\x18\n\x16UpdateInteractorOutput\"-\n\x17\x44\x65scribeInteractorInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"K\n\x18\x44\x65scribeInteractorOutput\x12/\n\ninteractor\x18\x01 \x01(\x0b\x32\x1b.eolymp.executor.Interactor\"\'\n\x11ListTestsetsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"I\n\x12ListTestsetsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.eolymp.atlas.Testset\"*\n\x14\x44\x65scribeTestsetInput\x12\x12\n\ntestset_id\x18\x01 \x01(\t\"?\n\x15\x44\x65scribeTestsetOutput\x12&\n\x07testset\x18\x01 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"P\n\x12\x43reateTestsetInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12&\n\x07testset\x18\x02 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"!\n\x13\x43reateTestsetOutput\x12\n\n\x02id\x18\x01 \x01(\t\"P\n\x12UpdateTestsetInput\x12\x12\n\ntestset_id\x18\x01 \x01(\t\x12&\n\x07testset\x18\x02 \x01(\x0b\x32\x15.eolymp.atlas.Testset\"\x15\n\x13UpdateTestsetOutput\"(\n\x12\x44\x65leteTestsetInput\x12\x12\n\ntestset_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteTestsetOutput\"\'\n\x11ListExamplesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\":\n\x12ListExamplesOutput\x12$\n\x08\x65xamples\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"$\n\x0eListTestsInput\x12\x12\n\ntestset_id\x18\x01 \x01(\t\"C\n\x0fListTestsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.eolymp.atlas.Test\"$\n\x11\x44\x65scribeTestInput\x12\x0f\n\x07test_id\x18\x01 \x01(\t\"6\n\x12\x44\x65scribeTestOutput\x12 \n\x04test\x18\x01 \x01(\x0b\x32\x12.eolymp.atlas.Test\"G\n\x0f\x43reateTestInput\x12\x12\n\ntestset_id\x18\x01 \x01(\t\x12 \n\x04test\x18\x02 \x01(\x0b\x32\x12.eolymp.atlas.Test\"\x1e\n\x10\x43reateTestOutput\x12\n\n\x02id\x18\x01 \x01(\t\"D\n\x0fUpdateTestInput\x12\x0f\n\x07test_id\x18\x01 \x01(\t\x12 \n\x04test\x18\x02 \x01(\x0b\x32\x12.eolymp.atlas.Test\"\x12\n\x10UpdateTestOutput\"\"\n\x0f\x44\x65leteTestInput\x12\x0f\n\x07test_id\x18\x01 \x01(\t\"\x12\n\x10\x44\x65leteTestOutput\"*\n\x14ListPermissionsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"@\n\x15ListPermissionsOutput\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Permission\"X\n\x14GrantPermissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12,\n\npermission\x18\x02 \x01(\x0b\x32\x18.eolymp.atlas.Permission\"\x17\n\x15GrantPermissionOutput\"<\n\x15RevokePermissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x18\n\x16RevokePermissionOutput\"W\n\x17\x43reateCodeTemplateInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12(\n\x08template\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Template\"/\n\x18\x43reateCodeTemplateOutput\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"X\n\x17UpdateCodeTemplateInput\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12(\n\x08template\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Template\"\x1a\n\x18UpdateCodeTemplateOutput\".\n\x17\x44\x65leteCodeTemplateInput\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"\x1a\n\x18\x44\x65leteCodeTemplateOutput\",\n\x16ListCodeTemplatesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"O\n\x17ListCodeTemplatesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Template\"0\n\x19\x44\x65scribeCodeTemplateInput\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"F\n\x1a\x44\x65scribeCodeTemplateOutput\x12(\n\x08template\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Template\"Y\n\x15\x43reateAttachmentInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12,\n\nattachment\x18\x02 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"/\n\x16\x43reateAttachmentOutput\x12\x15\n\rattachment_id\x18\x01 \x01(\t\"\\\n\x15UpdateAttachmentInput\x12\x15\n\rattachment_id\x18\x01 \x01(\t\x12,\n\nattachment\x18\x02 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"\x18\n\x16UpdateAttachmentOutput\".\n\x15\x44\x65leteAttachmentInput\x12\x15\n\rattachment_id\x18\x01 \x01(\t\"\x18\n\x16\x44\x65leteAttachmentOutput\"\xec\x01\n\x14ListAttachmentsInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12:\n\x07\x66ilters\x18( \x01(\x0b\x32).eolymp.atlas.ListAttachmentsInput.Filter\x1a\x66\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x30\n\x04name\x18\x02 \x03(\x0b\x32\".eolymp.wellknown.ExpressionString\"O\n\x15ListAttachmentsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Attachment\"0\n\x17\x44\x65scribeAttachmentInput\x12\x15\n\rattachment_id\x18\x01 \x01(\t\"H\n\x18\x44\x65scribeAttachmentOutput\x12,\n\nattachment\x18\x01 \x01(\x0b\x32\x18.eolymp.atlas.Attachment\"(\n\x13\x44\x65scribeChangeInput\x12\x11\n\tchange_id\x18\x01 \x01(\t\"<\n\x14\x44\x65scribeChangeOutput\x12$\n\x06\x63hange\x18\x01 \x01(\x0b\x32\x14.eolymp.atlas.Change\"\x82\x03\n\x10ListChangesInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x36\n\x07\x66ilters\x18( \x01(\x0b\x32%.eolymp.atlas.ListChangesInput.Filter\x1a\x83\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x32\n\nip_address\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12/\n\x07user_id\x18\x03 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x38\n\ttimestamp\x18\x04 \x03(\x0b\x32%.eolymp.wellknown.ExpressionTimestamp\x12.\n\x04type\x18\x05 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\"G\n\x11ListChangesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12#\n\x05items\x18\x02 \x03(\x0b\x32\x14.eolymp.atlas.Change\")\n\x13ListProblemTopInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"?\n\x14ListProblemTopOutput\x12\'\n\x05items\x18\x02 \x03(\x0b\x32\x18.eolymp.atlas.Submission\"1\n\x1b\x44\x65scribeProblemGradingInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\"\x8d\x01\n\x1c\x44\x65scribeProblemGradingOutput\x12@\n\x06ranges\x18\x02 \x03(\x0b\x32\x30.eolymp.atlas.DescribeProblemGradingOutput.Range\x1a+\n\x05Range\x12\r\n\x05grade\x18\x01 \x01(\r\x12\x13\n\x0bupper_bound\x18\x02 \x01(\x02\"S\n\x13\x43reateSolutionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12(\n\x08solution\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"+\n\x14\x43reateSolutionOutput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"T\n\x13UpdateSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\x12(\n\x08solution\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"\x16\n\x14UpdateSolutionOutput\"*\n\x13\x44\x65leteSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteSolutionOutput\"\xac\x03\n\x12ListSolutionsInput\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x38\n\x07\x66ilters\x18( \x01(\x0b\x32\'.eolymp.atlas.ListSolutionsInput.Filter\x1a\xbd\x02\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x32\n\nproblem_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x31\n\tauthor_id\x18\x03 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12;\n\x11moderation_status\x18\x04 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\x12\x33\n\tpublished\x18\x05 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\x12.\n\x04lang\x18\x06 \x03(\x0b\x32 .eolymp.wellknown.ExpressionEnum\"K\n\x13ListSolutionsOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Solution\",\n\x15\x44\x65scribeSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"B\n\x16\x44\x65scribeSolutionOutput\x12(\n\x08solution\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Solution\"+\n\x14PublishSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"\x17\n\x15PublishSolutionOutput\"-\n\x16UnpublishSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"\x19\n\x17UnpublishSolutionOutput\"+\n\x14\x41pproveSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\"\x17\n\x15\x41pproveSolutionOutput\";\n\x13RefuseSolutionInput\x12\x13\n\x0bsolution_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\"\x16\n\x14RefuseSolutionOutput\"\x8e\x02\n\x13ListCategoriesInput\x12\x0e\n\x06offset\x18\n \x01(\x05\x12\x0c\n\x04size\x18\x0b \x01(\x05\x12\x39\n\x07\x66ilters\x18( \x01(\x0b\x32(.eolymp.atlas.ListCategoriesInput.Filter\x1a\x9d\x01\n\x06\x46ilter\x12*\n\x02id\x18\x01 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x31\n\tparent_id\x18\x02 \x03(\x0b\x32\x1e.eolymp.wellknown.ExpressionID\x12\x34\n\nis_visible\x18\x03 \x03(\x0b\x32 .eolymp.wellknown.ExpressionBool\"L\n\x14ListCategoriesOutput\x12\r\n\x05total\x18\x01 \x01(\x05\x12%\n\x05items\x18\x02 \x03(\x0b\x32\x16.eolymp.atlas.Category\"?\n\x13\x43reateCategoryInput\x12(\n\x08\x63\x61tegory\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Category\"+\n\x14\x43reateCategoryOutput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"T\n\x13UpdateCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12(\n\x08\x63\x61tegory\x18\x02 \x01(\x0b\x32\x16.eolymp.atlas.Category\"\x16\n\x14UpdateCategoryOutput\"*\n\x13\x44\x65leteCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteCategoryOutput\",\n\x15\x44\x65scribeCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\"B\n\x16\x44\x65scribeCategoryOutput\x12(\n\x08\x63\x61tegory\x18\x01 \x01(\x0b\x32\x16.eolymp.atlas.Category\"M\n\x13\x41ssignCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12\x12\n\nproblem_id\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\r\"\x16\n\x14\x41ssignCategoryOutput\"@\n\x15UnassignCategoryInput\x12\x13\n\x0b\x63\x61tegory_id\x18\x01 \x01(\t\x12\x12\n\nproblem_id\x18\x02 \x01(\t\"\x18\n\x16UnassignCategoryOutput\"I\n\x15\x43reateSubmissionInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0c\n\x04lang\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\"/\n\x16\x43reateSubmissionOutput\x12\x15\n\rsubmission_id\x18\x01 \x01(\t\"0\n\x17\x44\x65scribeSubmissionInput\x12\x15\n\rsubmission_id\x18\x01 \x01(\t\"H\n\x18\x44\x65scribeSubmissionOutput\x12,\n\nsubmission\x18\x01 \x01(\x0b\x32\x18.eolymp.atlas.Submission\"9\n\x12\x44\x65scribeScoreInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"9\n\x13\x44\x65scribeScoreOutput\x12\"\n\x05score\x18\x01 \x01(\x0b\x32\x13.eolymp.atlas.Score\"<\n\x15UpdateVisibilityInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07visible\x18\x02 \x01(\x08\"\x18\n\x16UpdateVisibilityOutput\"9\n\x12UpdatePrivacyInput\x12\x12\n\nproblem_id\x18\x01 \x01(\t\x12\x0f\n\x07private\x18\x02 \x01(\x08\"\x15\n\x13UpdatePrivacyOutput2\xd4V\n\x05\x41tlas\x12\xa1\x01\n\rCreateProblem\x12 .eolymp.atlas.CreateProblemInput\x1a!.eolymp.atlas.CreateProblemOutput\"K\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x1b\"\x10/atlas/problems/:\x07problem\x12\xa4\x01\n\rDeleteProblem\x12 .eolymp.atlas.DeleteProblemInput\x1a!.eolymp.atlas.DeleteProblemOutput\"N\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x1e*\x1c/atlas/problems/{problem_id}\x12\x94\x01\n\x0cListProblems\x12\x1f.eolymp.atlas.ListProblemsInput\x1a .eolymp.atlas.ListProblemsOutput\"A\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x12\x12\x10/atlas/problems/\x12\xb2\x01\n\x0f\x44\x65scribeProblem\x12\".eolymp.atlas.DescribeProblemInput\x1a#.eolymp.atlas.DescribeProblemOutput\"V\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\'\x12\x1c/atlas/problems/{problem_id}b\x07problem\x12\xb8\x01\n\x10UpdateVisibility\x12#.eolymp.atlas.UpdateVisibilityInput\x1a$.eolymp.atlas.UpdateVisibilityOutput\"Y\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02)\"\'/atlas/problems/{problem_id}/visibility\x12\xac\x01\n\rUpdatePrivacy\x12 .eolymp.atlas.UpdatePrivacyInput\x1a!.eolymp.atlas.UpdatePrivacyOutput\"V\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02&\"$/atlas/problems/{problem_id}/privacy\x12\xaa\x01\n\x0cListExamples\x12\x1f.eolymp.atlas.ListExamplesInput\x1a .eolymp.atlas.ListExamplesOutput\"W\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02(\x12&/atlas/problems/{problem_id}/examples/\x12\xba\x01\n\x0eUpdateVerifier\x12!.eolymp.atlas.UpdateVerifierInput\x1a\".eolymp.atlas.UpdateVerifierOutput\"a\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x31\x1a%/atlas/problems/{problem_id}/verifier:\x08verifier\x12\xc0\x01\n\x10\x44\x65scribeVerifier\x12#.eolymp.atlas.DescribeVerifierInput\x1a$.eolymp.atlas.DescribeVerifierOutput\"a\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x00@\xf8\xe2\n\n\x82\xd3\xe4\x93\x02\x31\x12%/atlas/problems/{problem_id}/verifierb\x08verifier\x12\xc4\x01\n\x10UpdateInteractor\x12#.eolymp.atlas.UpdateInteractorInput\x1a$.eolymp.atlas.UpdateInteractorOutput\"e\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x35\x1a\'/atlas/problems/{problem_id}/interactor:\ninteractor\x12\xca\x01\n\x12\x44\x65scribeInteractor\x12%.eolymp.atlas.DescribeInteractorInput\x1a&.eolymp.atlas.DescribeInteractorOutput\"e\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x00@\xf8\xe2\n\n\x82\xd3\xe4\x93\x02\x35\x12\'/atlas/problems/{problem_id}/interactorb\ninteractor\x12\xc1\x01\n\x0f\x43reateStatement\x12\".eolymp.atlas.CreateStatementInput\x1a#.eolymp.atlas.CreateStatementOutput\"e\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x35\x1a(/atlas/problems/{problem_id}/statements/:\tstatement\x12\xb9\x01\n\x0fUpdateStatement\x12\".eolymp.atlas.UpdateStatementInput\x1a#.eolymp.atlas.UpdateStatementOutput\"]\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02-\x1a /atlas/statements/{statement_id}:\tstatement\x12\xae\x01\n\x0f\x44\x65leteStatement\x12\".eolymp.atlas.DeleteStatementInput\x1a#.eolymp.atlas.DeleteStatementOutput\"R\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\"* /atlas/statements/{statement_id}\x12\xb2\x01\n\x0eListStatements\x12!.eolymp.atlas.ListStatementsInput\x1a\".eolymp.atlas.ListStatementsOutput\"Y\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02*\x12(/atlas/problems/{problem_id}/statements/\x12\xbe\x01\n\x11\x44\x65scribeStatement\x12$.eolymp.atlas.DescribeStatementInput\x1a%.eolymp.atlas.DescribeStatementOutput\"\\\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02-\x12 /atlas/statements/{statement_id}b\tstatement\x12\xb7\x01\n\rCreateTestset\x12 .eolymp.atlas.CreateTestsetInput\x1a!.eolymp.atlas.CreateTestsetOutput\"a\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02\x31\"&/atlas/problems/{problem_id}/testsets/:\x07testset\x12\xad\x01\n\rUpdateTestset\x12 .eolymp.atlas.UpdateTestsetInput\x1a!.eolymp.atlas.UpdateTestsetOutput\"W\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02\'\x1a\x1c/atlas/testsets/{testset_id}:\x07testset\x12\xa4\x01\n\rDeleteTestset\x12 .eolymp.atlas.DeleteTestsetInput\x1a!.eolymp.atlas.DeleteTestsetOutput\"N\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n2\x82\xd3\xe4\x93\x02\x1e*\x1c/atlas/testsets/{testset_id}\x12\xab\x01\n\x0cListTestsets\x12\x1f.eolymp.atlas.ListTestsetsInput\x1a .eolymp.atlas.ListTestsetsOutput\"X\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02(\x12&/atlas/problems/{problem_id}/testsets/\x12\xb3\x01\n\x0f\x44\x65scribeTestset\x12\".eolymp.atlas.DescribeTestsetInput\x1a#.eolymp.atlas.DescribeTestsetOutput\"W\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02\'\x12\x1c/atlas/testsets/{testset_id}b\x07testset\x12\xa8\x01\n\nCreateTest\x12\x1d.eolymp.atlas.CreateTestInput\x1a\x1e.eolymp.atlas.CreateTestOutput\"[\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02*\"\"/atlas/testsets/{testset_id}/tests:\x04test\x12\x9c\x01\n\nUpdateTest\x12\x1d.eolymp.atlas.UpdateTestInput\x1a\x1e.eolymp.atlas.UpdateTestOutput\"O\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02\x1e\x1a\x16/atlas/tests/{test_id}:\x04test\x12\x96\x01\n\nDeleteTest\x12\x1d.eolymp.atlas.DeleteTestInput\x1a\x1e.eolymp.atlas.DeleteTestOutput\"I\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0c\xf5\xe2\n\x00\x00 A\xf8\xe2\n\xc8\x01\x82\xd3\xe4\x93\x02\x18*\x16/atlas/tests/{test_id}\x12\x9e\x01\n\tListTests\x12\x1c.eolymp.atlas.ListTestsInput\x1a\x1d.eolymp.atlas.ListTestsOutput\"T\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02$\x12\"/atlas/testsets/{testset_id}/tests\x12\xa1\x01\n\x0c\x44\x65scribeTest\x12\x1f.eolymp.atlas.DescribeTestInput\x1a .eolymp.atlas.DescribeTestOutput\"N\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00 A\xf8\xe2\n2\x82\xd3\xe4\x93\x02\x1e\x12\x16/atlas/tests/{test_id}b\x04test\x12\xc5\x01\n\x0fGrantPermission\x12\".eolymp.atlas.GrantPermissionInput\x1a#.eolymp.atlas.GrantPermissionOutput\"i\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:permission:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x36\"(/atlas/problems/{problem_id}/permissions:\npermission\x12\xc6\x01\n\x10RevokePermission\x12#.eolymp.atlas.RevokePermissionInput\x1a$.eolymp.atlas.RevokePermissionOutput\"g\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:permission:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x34*2/atlas/problems/{problem_id}/permissions/{user_id}\x12\xb8\x01\n\x0fListPermissions\x12\".eolymp.atlas.ListPermissionsInput\x1a#.eolymp.atlas.ListPermissionsOutput\"\\\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:permission:read\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02*\x12(/atlas/problems/{problem_id}/permissions\x12\xc7\x01\n\x12\x43reateCodeTemplate\x12%.eolymp.atlas.CreateCodeTemplateInput\x1a&.eolymp.atlas.CreateCodeTemplateOutput\"b\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x32\"&/atlas/problems/{problem_id}/templates:\x08template\x12\xbf\x01\n\x12UpdateCodeTemplate\x12%.eolymp.atlas.UpdateCodeTemplateInput\x1a&.eolymp.atlas.UpdateCodeTemplateOutput\"Z\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02*\"\x1e/atlas/templates/{template_id}:\x08template\x12\xb5\x01\n\x12\x44\x65leteCodeTemplate\x12%.eolymp.atlas.DeleteCodeTemplateInput\x1a&.eolymp.atlas.DeleteCodeTemplateOutput\"P\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02 *\x1e/atlas/templates/{template_id}\x12\xba\x01\n\x11ListCodeTemplates\x12$.eolymp.atlas.ListCodeTemplatesInput\x1a%.eolymp.atlas.ListCodeTemplatesOutput\"X\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02)\x12\'/atlas/problems/{problems_id}/templates\x12\xc4\x01\n\x14\x44\x65scribeCodeTemplate\x12\'.eolymp.atlas.DescribeCodeTemplateInput\x1a(.eolymp.atlas.DescribeCodeTemplateOutput\"Y\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02*\x12\x1e/atlas/templates/{template_id}b\x08template\x12\xc5\x01\n\x10\x43reateAttachment\x12#.eolymp.atlas.CreateAttachmentInput\x1a$.eolymp.atlas.CreateAttachmentOutput\"f\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x36\"(/atlas/problems/{problem_id}/attachments:\nattachment\x12\xbf\x01\n\x10UpdateAttachment\x12#.eolymp.atlas.UpdateAttachmentInput\x1a$.eolymp.atlas.UpdateAttachmentOutput\"`\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x30\"\"/atlas/attachments/{attachment_id}:\nattachment\x12\xb3\x01\n\x10\x44\x65leteAttachment\x12#.eolymp.atlas.DeleteAttachmentInput\x1a$.eolymp.atlas.DeleteAttachmentOutput\"T\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02$*\"/atlas/attachments/{attachment_id}\x12\xb6\x01\n\x0fListAttachments\x12\".eolymp.atlas.ListAttachmentsInput\x1a#.eolymp.atlas.ListAttachmentsOutput\"Z\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02+\x12)/atlas/problems/{problems_id}/attachments\x12\xc4\x01\n\x12\x44\x65scribeAttachment\x12%.eolymp.atlas.DescribeAttachmentInput\x1a&.eolymp.atlas.DescribeAttachmentOutput\"_\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x30\x12\"/atlas/attachments/{attachment_id}b\nattachment\x12\x96\x01\n\x0e\x44\x65scribeChange\x12!.eolymp.atlas.DescribeChangeInput\x1a\".eolymp.atlas.DescribeChangeOutput\"=\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\x82\xd3\xe4\x93\x02\x1c\x12\x1a/atlas/changes/{change_id}\x12\x97\x01\n\x0bListChanges\x12\x1e.eolymp.atlas.ListChangesInput\x1a\x1f.eolymp.atlas.ListChangesOutput\"G\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\x82\xd3\xe4\x93\x02&\x12$/atlas/problems/{problem_id}/changes\x12\x9b\x01\n\x0eListProblemTop\x12!.eolymp.atlas.ListProblemTopInput\x1a\".eolymp.atlas.ListProblemTopOutput\"B\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\x82\xd3\xe4\x93\x02\"\x12 /atlas/problems/{problem_id}/top\x12\xb7\x01\n\x16\x44\x65scribeProblemGrading\x12).eolymp.atlas.DescribeProblemGradingInput\x1a*.eolymp.atlas.DescribeProblemGradingOutput\"F\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\x82\xd3\xe4\x93\x02&\x12$/atlas/problems/{problem_id}/grading\x12\xa0\x01\n\x0e\x43reateSolution\x12!.eolymp.atlas.CreateSolutionInput\x1a\".eolymp.atlas.CreateSolutionOutput\"G\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x32\"&/atlas/problems/{problem_id}/solutions:\x08solution\x12\x98\x01\n\x0eUpdateSolution\x12!.eolymp.atlas.UpdateSolutionInput\x1a\".eolymp.atlas.UpdateSolutionOutput\"?\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02*\"\x1e/atlas/solutions/{solution_id}:\x08solution\x12\x8e\x01\n\x0e\x44\x65leteSolution\x12!.eolymp.atlas.DeleteSolutionInput\x1a\".eolymp.atlas.DeleteSolutionOutput\"5\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02 *\x1e/atlas/solutions/{solution_id}\x12\x97\x01\n\rListSolutions\x12 .eolymp.atlas.ListSolutionsInput\x1a!.eolymp.atlas.ListSolutionsOutput\"A\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x12\x12\x10/atlas/solutions\x12\xb8\x01\n\x10\x44\x65scribeSolution\x12#.eolymp.atlas.DescribeSolutionInput\x1a$.eolymp.atlas.DescribeSolutionOutput\"Y\x82\xe3\n\x16\x8a\xe3\n\x12\x61tlas:problem:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02*\x12\x1e/atlas/solutions/{solution_id}b\x08solution\x12\x99\x01\n\x0fPublishSolution\x12\".eolymp.atlas.PublishSolutionInput\x1a#.eolymp.atlas.PublishSolutionOutput\"=\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02(\"&/atlas/solutions/{solution_id}/publish\x12\xa1\x01\n\x11UnpublishSolution\x12$.eolymp.atlas.UnpublishSolutionInput\x1a%.eolymp.atlas.UnpublishSolutionOutput\"?\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02*\"(/atlas/solutions/{solution_id}/unpublish\x12\xb4\x01\n\x0f\x41pproveSolution\x12\".eolymp.atlas.ApproveSolutionInput\x1a#.eolymp.atlas.ApproveSolutionOutput\"X\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02(\"&/atlas/solutions/{solution_id}/approve\x12\xb0\x01\n\x0eRefuseSolution\x12!.eolymp.atlas.RefuseSolutionInput\x1a\".eolymp.atlas.RefuseSolutionOutput\"W\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:problem:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\x80?\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\'\"%/atlas/solutions/{solution_id}/refuse\x12\xa8\x01\n\x0e\x43reateCategory\x12!.eolymp.atlas.CreateCategoryInput\x1a\".eolymp.atlas.CreateCategoryOutput\"O\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02\x1e\"\x12/atlas/categories/:\x08\x63\x61tegory\x12\xab\x01\n\x0eUpdateCategory\x12!.eolymp.atlas.UpdateCategoryInput\x1a\".eolymp.atlas.UpdateCategoryOutput\"R\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02!\"\x1f/atlas/categories/{category_id}\x12\xab\x01\n\x0e\x44\x65leteCategory\x12!.eolymp.atlas.DeleteCategoryInput\x1a\".eolymp.atlas.DeleteCategoryOutput\"R\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\n\xd7#>\xf8\xe2\n\x05\x82\xd3\xe4\x93\x02!*\x1f/atlas/categories/{category_id}\x12\x9d\x01\n\x0eListCategories\x12!.eolymp.atlas.ListCategoriesInput\x1a\".eolymp.atlas.ListCategoriesOutput\"D\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:category:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02\x14\x12\x12/atlas/categories/\x12\xba\x01\n\x10\x44\x65scribeCategory\x12#.eolymp.atlas.DescribeCategoryInput\x1a$.eolymp.atlas.DescribeCategoryOutput\"[\x82\xe3\n\x17\x8a\xe3\n\x13\x61tlas:category:read\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0\x41\xf8\xe2\nd\x82\xd3\xe4\x93\x02+\x12\x1f/atlas/categories/{category_id}b\x08\x63\x61tegory\x12\xc1\x01\n\x0e\x41ssignCategory\x12!.eolymp.atlas.AssignCategoryInput\x1a\".eolymp.atlas.AssignCategoryOutput\"h\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x37\"5/atlas/categories/{category_id}/problems/{problem_id}\x12\xc7\x01\n\x10UnassignCategory\x12#.eolymp.atlas.UnassignCategoryInput\x1a$.eolymp.atlas.UnassignCategoryOutput\"h\x82\xe3\n\x18\x8a\xe3\n\x14\x61tlas:category:write\xea\xe2\n\x0b\xf5\xe2\n\x00\x00\xa0@\xf8\xe2\n\x14\x82\xd3\xe4\x93\x02\x37*5/atlas/categories/{category_id}/problems/{problem_id}\x12\xb0\x01\n\x10\x43reateSubmission\x12#.eolymp.atlas.CreateSubmissionInput\x1a$.eolymp.atlas.CreateSubmissionOutput\"Q\x82\xe3\n\x1a\x8a\xe3\n\x16\x61tlas:submission:write\x82\xd3\xe4\x93\x02-\"(/atlas/problems/{problem_id}/submissions:\x01*\x12\xb8\x01\n\x12\x44\x65scribeSubmission\x12%.eolymp.atlas.DescribeSubmissionInput\x1a&.eolymp.atlas.DescribeSubmissionOutput\"S\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:submission:read\x82\xd3\xe4\x93\x02\x30\x12\"/atlas/submissions/{submission_id}b\nsubmission\x12\xaf\x01\n\rDescribeScore\x12 .eolymp.atlas.DescribeScoreInput\x1a!.eolymp.atlas.DescribeScoreOutput\"Y\x82\xe3\n\x19\x8a\xe3\n\x15\x61tlas:submission:read\x82\xd3\xe4\x93\x02\x36\x12-/atlas/problems/{problem_id}/scores/{user_id}b\x05score\x1a\x06\xb2\xe3\n\x02\x08\x01\x42\x33Z1github.com/eolymp/contracts/go/eolymp/atlas;atlasb\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'eolymp.atlas.atlas_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z1github.com/eolymp/contracts/go/eolymp/atlas;atlas'
  _ATLAS._options = None
  _ATLAS._serialized_options = b'\262\343\n\002\010\001'
  _ATLAS.methods_by_name['CreateProblem']._options = None
  _ATLAS.methods_by_name['CreateProblem']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\033\"\020/atlas/problems/:\007problem'
  _ATLAS.methods_by_name['DeleteProblem']._options = None
  _ATLAS.methods_by_name['DeleteProblem']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\036*\034/atlas/problems/{problem_id}'
  _ATLAS.methods_by_name['ListProblems']._options = None
  _ATLAS.methods_by_name['ListProblems']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\022\022\020/atlas/problems/'
  _ATLAS.methods_by_name['DescribeProblem']._options = None
  _ATLAS.methods_by_name['DescribeProblem']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\'\022\034/atlas/problems/{problem_id}b\007problem'
  _ATLAS.methods_by_name['UpdateVisibility']._options = None
  _ATLAS.methods_by_name['UpdateVisibility']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002)\"\'/atlas/problems/{problem_id}/visibility'
  _ATLAS.methods_by_name['UpdatePrivacy']._options = None
  _ATLAS.methods_by_name['UpdatePrivacy']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002&\"$/atlas/problems/{problem_id}/privacy'
  _ATLAS.methods_by_name['ListExamples']._options = None
  _ATLAS.methods_by_name['ListExamples']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002(\022&/atlas/problems/{problem_id}/examples/'
  _ATLAS.methods_by_name['UpdateVerifier']._options = None
  _ATLAS.methods_by_name['UpdateVerifier']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0021\032%/atlas/problems/{problem_id}/verifier:\010verifier'
  _ATLAS.methods_by_name['DescribeVerifier']._options = None
  _ATLAS.methods_by_name['DescribeVerifier']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\000@\370\342\n\n\202\323\344\223\0021\022%/atlas/problems/{problem_id}/verifierb\010verifier'
  _ATLAS.methods_by_name['UpdateInteractor']._options = None
  _ATLAS.methods_by_name['UpdateInteractor']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0025\032\'/atlas/problems/{problem_id}/interactor:\ninteractor'
  _ATLAS.methods_by_name['DescribeInteractor']._options = None
  _ATLAS.methods_by_name['DescribeInteractor']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\000@\370\342\n\n\202\323\344\223\0025\022\'/atlas/problems/{problem_id}/interactorb\ninteractor'
  _ATLAS.methods_by_name['CreateStatement']._options = None
  _ATLAS.methods_by_name['CreateStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\0025\032(/atlas/problems/{problem_id}/statements/:\tstatement'
  _ATLAS.methods_by_name['UpdateStatement']._options = None
  _ATLAS.methods_by_name['UpdateStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\002-\032 /atlas/statements/{statement_id}:\tstatement'
  _ATLAS.methods_by_name['DeleteStatement']._options = None
  _ATLAS.methods_by_name['DeleteStatement']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\002\"* /atlas/statements/{statement_id}'
  _ATLAS.methods_by_name['ListStatements']._options = None
  _ATLAS.methods_by_name['ListStatements']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002*\022(/atlas/problems/{problem_id}/statements/'
  _ATLAS.methods_by_name['DescribeStatement']._options = None
  _ATLAS.methods_by_name['DescribeStatement']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002-\022 /atlas/statements/{statement_id}b\tstatement'
  _ATLAS.methods_by_name['CreateTestset']._options = None
  _ATLAS.methods_by_name['CreateTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\0021\"&/atlas/problems/{problem_id}/testsets/:\007testset'
  _ATLAS.methods_by_name['UpdateTestset']._options = None
  _ATLAS.methods_by_name['UpdateTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\002\'\032\034/atlas/testsets/{testset_id}:\007testset'
  _ATLAS.methods_by_name['DeleteTestset']._options = None
  _ATLAS.methods_by_name['DeleteTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\240@\370\342\n2\202\323\344\223\002\036*\034/atlas/testsets/{testset_id}'
  _ATLAS.methods_by_name['ListTestsets']._options = None
  _ATLAS.methods_by_name['ListTestsets']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002(\022&/atlas/problems/{problem_id}/testsets/'
  _ATLAS.methods_by_name['DescribeTestset']._options = None
  _ATLAS.methods_by_name['DescribeTestset']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002\'\022\034/atlas/testsets/{testset_id}b\007testset'
  _ATLAS.methods_by_name['CreateTest']._options = None
  _ATLAS.methods_by_name['CreateTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\002*\"\"/atlas/testsets/{testset_id}/tests:\004test'
  _ATLAS.methods_by_name['UpdateTest']._options = None
  _ATLAS.methods_by_name['UpdateTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\002\036\032\026/atlas/tests/{test_id}:\004test'
  _ATLAS.methods_by_name['DeleteTest']._options = None
  _ATLAS.methods_by_name['DeleteTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\014\365\342\n\000\000 A\370\342\n\310\001\202\323\344\223\002\030*\026/atlas/tests/{test_id}'
  _ATLAS.methods_by_name['ListTests']._options = None
  _ATLAS.methods_by_name['ListTests']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002$\022\"/atlas/testsets/{testset_id}/tests'
  _ATLAS.methods_by_name['DescribeTest']._options = None
  _ATLAS.methods_by_name['DescribeTest']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000 A\370\342\n2\202\323\344\223\002\036\022\026/atlas/tests/{test_id}b\004test'
  _ATLAS.methods_by_name['GrantPermission']._options = None
  _ATLAS.methods_by_name['GrantPermission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:permission:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0026\"(/atlas/problems/{problem_id}/permissions:\npermission'
  _ATLAS.methods_by_name['RevokePermission']._options = None
  _ATLAS.methods_by_name['RevokePermission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:permission:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0024*2/atlas/problems/{problem_id}/permissions/{user_id}'
  _ATLAS.methods_by_name['ListPermissions']._options = None
  _ATLAS.methods_by_name['ListPermissions']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:permission:read\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002*\022(/atlas/problems/{problem_id}/permissions'
  _ATLAS.methods_by_name['CreateCodeTemplate']._options = None
  _ATLAS.methods_by_name['CreateCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0022\"&/atlas/problems/{problem_id}/templates:\010template'
  _ATLAS.methods_by_name['UpdateCodeTemplate']._options = None
  _ATLAS.methods_by_name['UpdateCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002*\"\036/atlas/templates/{template_id}:\010template'
  _ATLAS.methods_by_name['DeleteCodeTemplate']._options = None
  _ATLAS.methods_by_name['DeleteCodeTemplate']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002 *\036/atlas/templates/{template_id}'
  _ATLAS.methods_by_name['ListCodeTemplates']._options = None
  _ATLAS.methods_by_name['ListCodeTemplates']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002)\022\'/atlas/problems/{problems_id}/templates'
  _ATLAS.methods_by_name['DescribeCodeTemplate']._options = None
  _ATLAS.methods_by_name['DescribeCodeTemplate']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002*\022\036/atlas/templates/{template_id}b\010template'
  _ATLAS.methods_by_name['CreateAttachment']._options = None
  _ATLAS.methods_by_name['CreateAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0026\"(/atlas/problems/{problem_id}/attachments:\nattachment'
  _ATLAS.methods_by_name['UpdateAttachment']._options = None
  _ATLAS.methods_by_name['UpdateAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\0020\"\"/atlas/attachments/{attachment_id}:\nattachment'
  _ATLAS.methods_by_name['DeleteAttachment']._options = None
  _ATLAS.methods_by_name['DeleteAttachment']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002$*\"/atlas/attachments/{attachment_id}'
  _ATLAS.methods_by_name['ListAttachments']._options = None
  _ATLAS.methods_by_name['ListAttachments']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002+\022)/atlas/problems/{problems_id}/attachments'
  _ATLAS.methods_by_name['DescribeAttachment']._options = None
  _ATLAS.methods_by_name['DescribeAttachment']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\0020\022\"/atlas/attachments/{attachment_id}b\nattachment'
  _ATLAS.methods_by_name['DescribeChange']._options = None
  _ATLAS.methods_by_name['DescribeChange']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\202\323\344\223\002\034\022\032/atlas/changes/{change_id}'
  _ATLAS.methods_by_name['ListChanges']._options = None
  _ATLAS.methods_by_name['ListChanges']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\202\323\344\223\002&\022$/atlas/problems/{problem_id}/changes'
  _ATLAS.methods_by_name['ListProblemTop']._options = None
  _ATLAS.methods_by_name['ListProblemTop']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\202\323\344\223\002\"\022 /atlas/problems/{problem_id}/top'
  _ATLAS.methods_by_name['DescribeProblemGrading']._options = None
  _ATLAS.methods_by_name['DescribeProblemGrading']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\202\323\344\223\002&\022$/atlas/problems/{problem_id}/grading'
  _ATLAS.methods_by_name['CreateSolution']._options = None
  _ATLAS.methods_by_name['CreateSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\005\202\323\344\223\0022\"&/atlas/problems/{problem_id}/solutions:\010solution'
  _ATLAS.methods_by_name['UpdateSolution']._options = None
  _ATLAS.methods_by_name['UpdateSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002*\"\036/atlas/solutions/{solution_id}:\010solution'
  _ATLAS.methods_by_name['DeleteSolution']._options = None
  _ATLAS.methods_by_name['DeleteSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002 *\036/atlas/solutions/{solution_id}'
  _ATLAS.methods_by_name['ListSolutions']._options = None
  _ATLAS.methods_by_name['ListSolutions']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\022\022\020/atlas/solutions'
  _ATLAS.methods_by_name['DescribeSolution']._options = None
  _ATLAS.methods_by_name['DescribeSolution']._serialized_options = b'\202\343\n\026\212\343\n\022atlas:problem:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002*\022\036/atlas/solutions/{solution_id}b\010solution'
  _ATLAS.methods_by_name['PublishSolution']._options = None
  _ATLAS.methods_by_name['PublishSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002(\"&/atlas/solutions/{solution_id}/publish'
  _ATLAS.methods_by_name['UnpublishSolution']._options = None
  _ATLAS.methods_by_name['UnpublishSolution']._serialized_options = b'\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002*\"(/atlas/solutions/{solution_id}/unpublish'
  _ATLAS.methods_by_name['ApproveSolution']._options = None
  _ATLAS.methods_by_name['ApproveSolution']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002(\"&/atlas/solutions/{solution_id}/approve'
  _ATLAS.methods_by_name['RefuseSolution']._options = None
  _ATLAS.methods_by_name['RefuseSolution']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:problem:write\352\342\n\013\365\342\n\000\000\200?\370\342\n\024\202\323\344\223\002\'\"%/atlas/solutions/{solution_id}/refuse'
  _ATLAS.methods_by_name['CreateCategory']._options = None
  _ATLAS.methods_by_name['CreateCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002\036\"\022/atlas/categories/:\010category'
  _ATLAS.methods_by_name['UpdateCategory']._options = None
  _ATLAS.methods_by_name['UpdateCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002!\"\037/atlas/categories/{category_id}'
  _ATLAS.methods_by_name['DeleteCategory']._options = None
  _ATLAS.methods_by_name['DeleteCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\n\327#>\370\342\n\005\202\323\344\223\002!*\037/atlas/categories/{category_id}'
  _ATLAS.methods_by_name['ListCategories']._options = None
  _ATLAS.methods_by_name['ListCategories']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:category:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002\024\022\022/atlas/categories/'
  _ATLAS.methods_by_name['DescribeCategory']._options = None
  _ATLAS.methods_by_name['DescribeCategory']._serialized_options = b'\202\343\n\027\212\343\n\023atlas:category:read\352\342\n\013\365\342\n\000\000\240A\370\342\nd\202\323\344\223\002+\022\037/atlas/categories/{category_id}b\010category'
  _ATLAS.methods_by_name['AssignCategory']._options = None
  _ATLAS.methods_by_name['AssignCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\000\000\240@\370\342\n\024\202\323\344\223\0027\"5/atlas/categories/{category_id}/problems/{problem_id}'
  _ATLAS.methods_by_name['UnassignCategory']._options = None
  _ATLAS.methods_by_name['UnassignCategory']._serialized_options = b'\202\343\n\030\212\343\n\024atlas:category:write\352\342\n\013\365\342\n\000\000\240@\370\342\n\024\202\323\344\223\0027*5/atlas/categories/{category_id}/problems/{problem_id}'
  _ATLAS.methods_by_name['CreateSubmission']._options = None
  _ATLAS.methods_by_name['CreateSubmission']._serialized_options = b'\202\343\n\032\212\343\n\026atlas:submission:write\202\323\344\223\002-\"(/atlas/problems/{problem_id}/submissions:\001*'
  _ATLAS.methods_by_name['DescribeSubmission']._options = None
  _ATLAS.methods_by_name['DescribeSubmission']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:submission:read\202\323\344\223\0020\022\"/atlas/submissions/{submission_id}b\nsubmission'
  _ATLAS.methods_by_name['DescribeScore']._options = None
  _ATLAS.methods_by_name['DescribeScore']._serialized_options = b'\202\343\n\031\212\343\n\025atlas:submission:read\202\323\344\223\0026\022-/atlas/problems/{problem_id}/scores/{user_id}b\005score'
  _LISTPROBLEMSINPUT._serialized_start=621
  _LISTPROBLEMSINPUT._serialized_end=992
  _LISTPROBLEMSINPUT_FILTER._serialized_start=730
  _LISTPROBLEMSINPUT_FILTER._serialized_end=992
  _LISTPROBLEMSOUTPUT._serialized_start=994
  _LISTPROBLEMSOUTPUT._serialized_end=1067
  _CREATEPROBLEMINPUT._serialized_start=1069
  _CREATEPROBLEMINPUT._serialized_end=1173
  _CREATEPROBLEMOUTPUT._serialized_start=1175
  _CREATEPROBLEMOUTPUT._serialized_end=1216
  _DELETEPROBLEMINPUT._serialized_start=1218
  _DELETEPROBLEMINPUT._serialized_end=1258
  _DELETEPROBLEMOUTPUT._serialized_start=1260
  _DELETEPROBLEMOUTPUT._serialized_end=1281
  _DESCRIBEPROBLEMINPUT._serialized_start=1283
  _DESCRIBEPROBLEMINPUT._serialized_end=1325
  _DESCRIBEPROBLEMOUTPUT._serialized_start=1327
  _DESCRIBEPROBLEMOUTPUT._serialized_end=1390
  _LISTSTATEMENTSINPUT._serialized_start=1392
  _LISTSTATEMENTSINPUT._serialized_end=1433
  _LISTSTATEMENTSOUTPUT._serialized_start=1435
  _LISTSTATEMENTSOUTPUT._serialized_end=1512
  _DESCRIBESTATEMENTINPUT._serialized_start=1514
  _DESCRIBESTATEMENTINPUT._serialized_end=1560
  _DESCRIBESTATEMENTOUTPUT._serialized_start=1562
  _DESCRIBESTATEMENTOUTPUT._serialized_end=1631
  _CREATESTATEMENTINPUT._serialized_start=1633
  _CREATESTATEMENTINPUT._serialized_end=1719
  _CREATESTATEMENTOUTPUT._serialized_start=1721
  _CREATESTATEMENTOUTPUT._serialized_end=1756
  _UPDATESTATEMENTINPUT._serialized_start=1758
  _UPDATESTATEMENTINPUT._serialized_end=1846
  _UPDATESTATEMENTOUTPUT._serialized_start=1848
  _UPDATESTATEMENTOUTPUT._serialized_end=1871
  _DELETESTATEMENTINPUT._serialized_start=1873
  _DELETESTATEMENTINPUT._serialized_end=1917
  _DELETESTATEMENTOUTPUT._serialized_start=1919
  _DELETESTATEMENTOUTPUT._serialized_end=1942
  _UPDATEVERIFIERINPUT._serialized_start=1944
  _UPDATEVERIFIERINPUT._serialized_end=2030
  _UPDATEVERIFIEROUTPUT._serialized_start=2032
  _UPDATEVERIFIEROUTPUT._serialized_end=2054
  _DESCRIBEVERIFIERINPUT._serialized_start=2056
  _DESCRIBEVERIFIERINPUT._serialized_end=2099
  _DESCRIBEVERIFIEROUTPUT._serialized_start=2101
  _DESCRIBEVERIFIEROUTPUT._serialized_end=2170
  _UPDATEINTERACTORINPUT._serialized_start=2172
  _UPDATEINTERACTORINPUT._serialized_end=2264
  _UPDATEINTERACTOROUTPUT._serialized_start=2266
  _UPDATEINTERACTOROUTPUT._serialized_end=2290
  _DESCRIBEINTERACTORINPUT._serialized_start=2292
  _DESCRIBEINTERACTORINPUT._serialized_end=2337
  _DESCRIBEINTERACTOROUTPUT._serialized_start=2339
  _DESCRIBEINTERACTOROUTPUT._serialized_end=2414
  _LISTTESTSETSINPUT._serialized_start=2416
  _LISTTESTSETSINPUT._serialized_end=2455
  _LISTTESTSETSOUTPUT._serialized_start=2457
  _LISTTESTSETSOUTPUT._serialized_end=2530
  _DESCRIBETESTSETINPUT._serialized_start=2532
  _DESCRIBETESTSETINPUT._serialized_end=2574
  _DESCRIBETESTSETOUTPUT._serialized_start=2576
  _DESCRIBETESTSETOUTPUT._serialized_end=2639
  _CREATETESTSETINPUT._serialized_start=2641
  _CREATETESTSETINPUT._serialized_end=2721
  _CREATETESTSETOUTPUT._serialized_start=2723
  _CREATETESTSETOUTPUT._serialized_end=2756
  _UPDATETESTSETINPUT._serialized_start=2758
  _UPDATETESTSETINPUT._serialized_end=2838
  _UPDATETESTSETOUTPUT._serialized_start=2840
  _UPDATETESTSETOUTPUT._serialized_end=2861
  _DELETETESTSETINPUT._serialized_start=2863
  _DELETETESTSETINPUT._serialized_end=2903
  _DELETETESTSETOUTPUT._serialized_start=2905
  _DELETETESTSETOUTPUT._serialized_end=2926
  _LISTEXAMPLESINPUT._serialized_start=2928
  _LISTEXAMPLESINPUT._serialized_end=2967
  _LISTEXAMPLESOUTPUT._serialized_start=2969
  _LISTEXAMPLESOUTPUT._serialized_end=3027
  _LISTTESTSINPUT._serialized_start=3029
  _LISTTESTSINPUT._serialized_end=3065
  _LISTTESTSOUTPUT._serialized_start=3067
  _LISTTESTSOUTPUT._serialized_end=3134
  _DESCRIBETESTINPUT._serialized_start=3136
  _DESCRIBETESTINPUT._serialized_end=3172
  _DESCRIBETESTOUTPUT._serialized_start=3174
  _DESCRIBETESTOUTPUT._serialized_end=3228
  _CREATETESTINPUT._serialized_start=3230
  _CREATETESTINPUT._serialized_end=3301
  _CREATETESTOUTPUT._serialized_start=3303
  _CREATETESTOUTPUT._serialized_end=3333
  _UPDATETESTINPUT._serialized_start=3335
  _UPDATETESTINPUT._serialized_end=3403
  _UPDATETESTOUTPUT._serialized_start=3405
  _UPDATETESTOUTPUT._serialized_end=3423
  _DELETETESTINPUT._serialized_start=3425
  _DELETETESTINPUT._serialized_end=3459
  _DELETETESTOUTPUT._serialized_start=3461
  _DELETETESTOUTPUT._serialized_end=3479
  _LISTPERMISSIONSINPUT._serialized_start=3481
  _LISTPERMISSIONSINPUT._serialized_end=3523
  _LISTPERMISSIONSOUTPUT._serialized_start=3525
  _LISTPERMISSIONSOUTPUT._serialized_end=3589
  _GRANTPERMISSIONINPUT._serialized_start=3591
  _GRANTPERMISSIONINPUT._serialized_end=3679
  _GRANTPERMISSIONOUTPUT._serialized_start=3681
  _GRANTPERMISSIONOUTPUT._serialized_end=3704
  _REVOKEPERMISSIONINPUT._serialized_start=3706
  _REVOKEPERMISSIONINPUT._serialized_end=3766
  _REVOKEPERMISSIONOUTPUT._serialized_start=3768
  _REVOKEPERMISSIONOUTPUT._serialized_end=3792
  _CREATECODETEMPLATEINPUT._serialized_start=3794
  _CREATECODETEMPLATEINPUT._serialized_end=3881
  _CREATECODETEMPLATEOUTPUT._serialized_start=3883
  _CREATECODETEMPLATEOUTPUT._serialized_end=3930
  _UPDATECODETEMPLATEINPUT._serialized_start=3932
  _UPDATECODETEMPLATEINPUT._serialized_end=4020
  _UPDATECODETEMPLATEOUTPUT._serialized_start=4022
  _UPDATECODETEMPLATEOUTPUT._serialized_end=4048
  _DELETECODETEMPLATEINPUT._serialized_start=4050
  _DELETECODETEMPLATEINPUT._serialized_end=4096
  _DELETECODETEMPLATEOUTPUT._serialized_start=4098
  _DELETECODETEMPLATEOUTPUT._serialized_end=4124
  _LISTCODETEMPLATESINPUT._serialized_start=4126
  _LISTCODETEMPLATESINPUT._serialized_end=4170
  _LISTCODETEMPLATESOUTPUT._serialized_start=4172
  _LISTCODETEMPLATESOUTPUT._serialized_end=4251
  _DESCRIBECODETEMPLATEINPUT._serialized_start=4253
  _DESCRIBECODETEMPLATEINPUT._serialized_end=4301
  _DESCRIBECODETEMPLATEOUTPUT._serialized_start=4303
  _DESCRIBECODETEMPLATEOUTPUT._serialized_end=4373
  _CREATEATTACHMENTINPUT._serialized_start=4375
  _CREATEATTACHMENTINPUT._serialized_end=4464
  _CREATEATTACHMENTOUTPUT._serialized_start=4466
  _CREATEATTACHMENTOUTPUT._serialized_end=4513
  _UPDATEATTACHMENTINPUT._serialized_start=4515
  _UPDATEATTACHMENTINPUT._serialized_end=4607
  _UPDATEATTACHMENTOUTPUT._serialized_start=4609
  _UPDATEATTACHMENTOUTPUT._serialized_end=4633
  _DELETEATTACHMENTINPUT._serialized_start=4635
  _DELETEATTACHMENTINPUT._serialized_end=4681
  _DELETEATTACHMENTOUTPUT._serialized_start=4683
  _DELETEATTACHMENTOUTPUT._serialized_end=4707
  _LISTATTACHMENTSINPUT._serialized_start=4710
  _LISTATTACHMENTSINPUT._serialized_end=4946
  _LISTATTACHMENTSINPUT_FILTER._serialized_start=4844
  _LISTATTACHMENTSINPUT_FILTER._serialized_end=4946
  _LISTATTACHMENTSOUTPUT._serialized_start=4948
  _LISTATTACHMENTSOUTPUT._serialized_end=5027
  _DESCRIBEATTACHMENTINPUT._serialized_start=5029
  _DESCRIBEATTACHMENTINPUT._serialized_end=5077
  _DESCRIBEATTACHMENTOUTPUT._serialized_start=5079
  _DESCRIBEATTACHMENTOUTPUT._serialized_end=5151
  _DESCRIBECHANGEINPUT._serialized_start=5153
  _DESCRIBECHANGEINPUT._serialized_end=5193
  _DESCRIBECHANGEOUTPUT._serialized_start=5195
  _DESCRIBECHANGEOUTPUT._serialized_end=5255
  _LISTCHANGESINPUT._serialized_start=5258
  _LISTCHANGESINPUT._serialized_end=5644
  _LISTCHANGESINPUT_FILTER._serialized_start=5385
  _LISTCHANGESINPUT_FILTER._serialized_end=5644
  _LISTCHANGESOUTPUT._serialized_start=5646
  _LISTCHANGESOUTPUT._serialized_end=5717
  _LISTPROBLEMTOPINPUT._serialized_start=5719
  _LISTPROBLEMTOPINPUT._serialized_end=5760
  _LISTPROBLEMTOPOUTPUT._serialized_start=5762
  _LISTPROBLEMTOPOUTPUT._serialized_end=5825
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_start=5827
  _DESCRIBEPROBLEMGRADINGINPUT._serialized_end=5876
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_start=5879
  _DESCRIBEPROBLEMGRADINGOUTPUT._serialized_end=6020
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_start=5977
  _DESCRIBEPROBLEMGRADINGOUTPUT_RANGE._serialized_end=6020
  _CREATESOLUTIONINPUT._serialized_start=6022
  _CREATESOLUTIONINPUT._serialized_end=6105
  _CREATESOLUTIONOUTPUT._serialized_start=6107
  _CREATESOLUTIONOUTPUT._serialized_end=6150
  _UPDATESOLUTIONINPUT._serialized_start=6152
  _UPDATESOLUTIONINPUT._serialized_end=6236
  _UPDATESOLUTIONOUTPUT._serialized_start=6238
  _UPDATESOLUTIONOUTPUT._serialized_end=6260
  _DELETESOLUTIONINPUT._serialized_start=6262
  _DELETESOLUTIONINPUT._serialized_end=6304
  _DELETESOLUTIONOUTPUT._serialized_start=6306
  _DELETESOLUTIONOUTPUT._serialized_end=6328
  _LISTSOLUTIONSINPUT._serialized_start=6331
  _LISTSOLUTIONSINPUT._serialized_end=6759
  _LISTSOLUTIONSINPUT_FILTER._serialized_start=6442
  _LISTSOLUTIONSINPUT_FILTER._serialized_end=6759
  _LISTSOLUTIONSOUTPUT._serialized_start=6761
  _LISTSOLUTIONSOUTPUT._serialized_end=6836
  _DESCRIBESOLUTIONINPUT._serialized_start=6838
  _DESCRIBESOLUTIONINPUT._serialized_end=6882
  _DESCRIBESOLUTIONOUTPUT._serialized_start=6884
  _DESCRIBESOLUTIONOUTPUT._serialized_end=6950
  _PUBLISHSOLUTIONINPUT._serialized_start=6952
  _PUBLISHSOLUTIONINPUT._serialized_end=6995
  _PUBLISHSOLUTIONOUTPUT._serialized_start=6997
  _PUBLISHSOLUTIONOUTPUT._serialized_end=7020
  _UNPUBLISHSOLUTIONINPUT._serialized_start=7022
  _UNPUBLISHSOLUTIONINPUT._serialized_end=7067
  _UNPUBLISHSOLUTIONOUTPUT._serialized_start=7069
  _UNPUBLISHSOLUTIONOUTPUT._serialized_end=7094
  _APPROVESOLUTIONINPUT._serialized_start=7096
  _APPROVESOLUTIONINPUT._serialized_end=7139
  _APPROVESOLUTIONOUTPUT._serialized_start=7141
  _APPROVESOLUTIONOUTPUT._serialized_end=7164
  _REFUSESOLUTIONINPUT._serialized_start=7166
  _REFUSESOLUTIONINPUT._serialized_end=7225
  _REFUSESOLUTIONOUTPUT._serialized_start=7227
  _REFUSESOLUTIONOUTPUT._serialized_end=7249
  _LISTCATEGORIESINPUT._serialized_start=7252
  _LISTCATEGORIESINPUT._serialized_end=7522
  _LISTCATEGORIESINPUT_FILTER._serialized_start=7365
  _LISTCATEGORIESINPUT_FILTER._serialized_end=7522
  _LISTCATEGORIESOUTPUT._serialized_start=7524
  _LISTCATEGORIESOUTPUT._serialized_end=7600
  _CREATECATEGORYINPUT._serialized_start=7602
  _CREATECATEGORYINPUT._serialized_end=7665
  _CREATECATEGORYOUTPUT._serialized_start=7667
  _CREATECATEGORYOUTPUT._serialized_end=7710
  _UPDATECATEGORYINPUT._serialized_start=7712
  _UPDATECATEGORYINPUT._serialized_end=7796
  _UPDATECATEGORYOUTPUT._serialized_start=7798
  _UPDATECATEGORYOUTPUT._serialized_end=7820
  _DELETECATEGORYINPUT._serialized_start=7822
  _DELETECATEGORYINPUT._serialized_end=7864
  _DELETECATEGORYOUTPUT._serialized_start=7866
  _DELETECATEGORYOUTPUT._serialized_end=7888
  _DESCRIBECATEGORYINPUT._serialized_start=7890
  _DESCRIBECATEGORYINPUT._serialized_end=7934
  _DESCRIBECATEGORYOUTPUT._serialized_start=7936
  _DESCRIBECATEGORYOUTPUT._serialized_end=8002
  _ASSIGNCATEGORYINPUT._serialized_start=8004
  _ASSIGNCATEGORYINPUT._serialized_end=8081
  _ASSIGNCATEGORYOUTPUT._serialized_start=8083
  _ASSIGNCATEGORYOUTPUT._serialized_end=8105
  _UNASSIGNCATEGORYINPUT._serialized_start=8107
  _UNASSIGNCATEGORYINPUT._serialized_end=8171
  _UNASSIGNCATEGORYOUTPUT._serialized_start=8173
  _UNASSIGNCATEGORYOUTPUT._serialized_end=8197
  _CREATESUBMISSIONINPUT._serialized_start=8199
  _CREATESUBMISSIONINPUT._serialized_end=8272
  _CREATESUBMISSIONOUTPUT._serialized_start=8274
  _CREATESUBMISSIONOUTPUT._serialized_end=8321
  _DESCRIBESUBMISSIONINPUT._serialized_start=8323
  _DESCRIBESUBMISSIONINPUT._serialized_end=8371
  _DESCRIBESUBMISSIONOUTPUT._serialized_start=8373
  _DESCRIBESUBMISSIONOUTPUT._serialized_end=8445
  _DESCRIBESCOREINPUT._serialized_start=8447
  _DESCRIBESCOREINPUT._serialized_end=8504
  _DESCRIBESCOREOUTPUT._serialized_start=8506
  _DESCRIBESCOREOUTPUT._serialized_end=8563
  _UPDATEVISIBILITYINPUT._serialized_start=8565
  _UPDATEVISIBILITYINPUT._serialized_end=8625
  _UPDATEVISIBILITYOUTPUT._serialized_start=8627
  _UPDATEVISIBILITYOUTPUT._serialized_end=8651
  _UPDATEPRIVACYINPUT._serialized_start=8653
  _UPDATEPRIVACYINPUT._serialized_end=8710
  _UPDATEPRIVACYOUTPUT._serialized_start=8712
  _UPDATEPRIVACYOUTPUT._serialized_end=8733
  _ATLAS._serialized_start=8736
  _ATLAS._serialized_end=19828
# @@protoc_insertion_point(module_scope)
