This document will walk you through the process of setting up an Amazon Neptune database without any previous configuration. This guide will only be concerned with setting up Neptune.
Note that it is not possible to connect to an Amazon Neptune database directly from your local machine. Instead, you must configure an EC2 instance to act as a bastion server:
' width='618' height='518' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAEAAAAA2CAYAAAB3Ep8CAAAACXBIWXMAAA3nAAAN5wGZFKomAAAL2klEQVRo3uVb%2b29b1R3nv9gkpgkJhsY2tInXYAiNSqAJaUwgmNjYtE0avzGmobUwSqFAX2ylLaykKUGjLWnSNo%2bWpM0bt3nHeTSJ7cR52Y4dv%2b049vXj%2bnFtf3a%2bx76u7VznQZuk2Y70zTm%2b5z7O%2bZzv%2b5zckU6nkU6nELuyD%2bEPfoJ4y4dIJ0RQYV3I9G8%2bZb6fqTey3EF/pCkVwv%2b4C%2bH3f4zw3h8h8tEOxLtOYqvKZoJwR8jrQPTTZyFWv8a4YD9iDXsRvfg2Ioef5L8DsRSWwjFG8U0hfyRRAMSGc4Cq9jRie%2b6G1H4Yqd4KJDuOQGr6AFLZL%2bHdfR/qurSoUttQPWBBtXphQ%2bncoBWne824MGRdxgkbJwKpEOYrXoX9yHOwH/s17EdfgP34y7AdeR5u1el8xtw0Efis04SAmNgcEaA/0SQQCgYRFDIUYhQR/EwPVCB67jVIRjWfPlEqKUFKpSElU7eUkuydRFS%2b7LdA2EwAEsnkso7kYBVCf/8WQrvvRnj/Q4ieeQWSVbuhg5EBIDHYVABS7COkgOqHF3B20IHegSHE//0MIhW/RbTuTURrdyJ84kUkPn4KEz0tODvsRs3gApfVm6WaIRuqBhYwZFrKDWrTAaDSpHGiacwGN/uu5fx7iO76NpKth5DsLIN05X1IX%2b1G/N174Tz6HOb9SVgWw4wit4QWfBF8qjLk5H5LAGjRuTDrFHg7PNWDhb2Pw75/B2z7noR1z8Owf/QrLLz9IHyq/2yIUjzPLIAvFN9aALTWAG%2bnGEWCAYRcFoiLDiRDS4j77BD9i%2btwZjKitZK3R/2prNyfZWLgC28xADpbhgNSqVTuhkAoAvXwdYzrJuFZ9GFKr4fD4YDH64XRZILRaILPt4SJyUl%2b3eVywW63Q5KSGauxgleXb%2bdvKwAyH8182OWwQdXRhuvDg/C6nWhraUZ7aws6r6owMjSIpsuNMJuMuPp1B4YG1bz/q4v1SKekZZNdyeXdCADW4kgVApAVgWgiCaMnDIM7BItPhFWQYGa1wRmA2RuGyROC0SXAthTlbZM3wmlhKYZ5Vs86g5lr7B3WJZFzweocYGE6IHZTABTHEErBVfH7bgCgvcEBmoUAnIEoglGJD8TPYgFBlBBizwaZyyAkMzUnNs5AJM7vI%2bLPMCKNHolLWSDDyyZTOLg0zjLnxxfNiN6ZHtO6AVgtgCoFRgEAervAL86wFVQqKXUlpEu7M2bx8nuM9gIew6pWQel9fABUpzJOWNWQAz6Pi7c/V3s4qOuJB4onH4vF4PF4OFG7FAgFAEzaMxwwx1g/9wBTiFyZBT0IH/oZ8wy/h9A7P%2bBhc2jnnYi2H8vcy1xkJbZLMDd31hVavhJ88pkVTzmnYPv09xD%2btQPJ489AVV0OMZUBdS0AFE8%2bIAjQ6nQYHRvjpJuYQDAYVHxGEQB5wHKyhA9ScCNy9GlE9j%2bMyKHHEPnwcYTf/SED4OMcAFAIncjPn3IEle0kVSEvf69U%2bQril96G%2bNlvWHR6DyTN5cx32XuTzFVfiYpXdWpqCmMaDZ84ATHO2mSlZmZmYLZYCkBQFIHpLMsWABBkABx5CuF9DyJ84KeMGx5DaM/3Ee34JCsfSSQSiaIBpTkHTDmE5X5AFrBE7ymIn/8O4ulX2LsfQqz%2bLYhnX0X09J/X5WrJpjsYCvEJ08SJNFptrqbrxBEOpzN3/4o6QAaABpL0OyAe/jnEfQ8gevARRA89CnHPvYi2fpQb6KlTp3DgwAFUVFTgxIkTKC8vRxmrDx75hLdlor6Kk%2bUQmJ6LXy3j8YZY9jwix36ByD%2bfQIwSMtV/Yx%2bNwcZ8isbGRqjVavT19RVQf38/uru74WQTohJik6dVlyddDIJMY%2bPjmJmd5YulrAMKRCA7PSkOz/GX4H33AXjefxTeDx6D8637EeivyfJTCtFolCscerEkEetKiMUT0Nv8/HcBJTJKLqhpR/DQE0jU7UTswuuIX3wLUtmz8FXv4v3zRgMqKyuhUqnQ3t5eQB0dHWhubsbCwkLmXrOZr7A86VIkg2Can1%2bLDmCR4tIS/EIQbqsZ9skRLJmnsGicgGA1rKqgKMSddoZKqS%2bQDbCdeh2Lr9%2bJwBt3IbDzO9DsegSC3bhux4fknDhgknmr1C5Fcj%2bBuqIO4AvPVqu%2bvh7Xrl7F9MwsRjU6NFxpRmNTC%2bouNaCtrRUtbBV8Pl9OFvM5R1aCK2V/qYy21sFacxBC52m0Ds8ha7h4rLCaEpTl2WAwsPG0oX9gAANMZKjuY2Iik3y9l4kPcZCLic4qShA5DvAy3z/g90MQAnAzf99mtcJus/E%2bigHi8biiSSIAZhQ4QO6n9zY0NKDp6260d6txrX8YtfUX2WTmCgBdySnKB9PMxGCAJs4mOTIygtHR0Vw9PDzM%2b4aGhvh3S5pBWQek1pmUVIr%2biv2AYgBIb1gsZiwQmefZqjhgMhr59bU4QqXcXDKFpCNopWnCpCxJaRY/q8gBSgPOL2amPIIB/5qB0WeBVRq4n3HVlStX0HTlMro6O9HV1QUVC6y0zGSt1RPMB4E4hogsA4nEGFOKVsats0zrz83N5foVHSE5FqC8AGVp3EIULkaeYIy1Y7AvRRBhzx08fBTtXf0IMlPu9ItwZ/tdgcL7iQhMCpCUYgEqcWYlaHDXtXqmlc1skJn2nMG47lhgLfsJpV3hvHA4LqVgZxOzsgjQxqI5alNt8YawxET9THUNekd08IppDpTcb80S/SaiPgKk1MDyf18aZ652dk%2bk5roLooR1xQJKk8tfbbld2hVelg9QNltU6uvqMDc7c1NxeeYasqFyGl/2mbGYDYe/6J5fdzB0izNCyiaLsjxUamtrmZKZztr51Dfe7LxtM0Jynq54sMnkDQCmp6eXpc9uJmNz2wGgyAHJ/xcOKPnR1DfSAVuVE/zGAJD3Zietn920kK2BmVkBL1Pqp6ouMCughTuc4jlCuZ/upWfyf5NVkLe8bnsOkPcF9PYgs91hrpXJpntZTW1XQAQZtUMsvFX1DoGsuysQyfbH4Q0W3k/XCBA5IbJtRECuFc1gQoBpRo%2bA08LawbV5ggyAZGobiYA84AJFRonG9qMQa3chefJ5JM7/lZ8kSQzX5JKbSjs/MkdtKwAmWJ0qktuUKED84k9I9J/hSVGx4mXEm/ZDrPpLLiWmlPaW37c9ALDeiAWWARAXIX72EsRPnuFnBeKdJxHefQ9ExgVpBQDyn/3f4ICIH9HaNzjLR8qeQ1x1HOG9968JAMovbDsdUAxAMh5F6MjTiOy5F%2bF37uOrH37zuwhf2LkGDhC2LwcgLzXubz4G97EX4C3/Izzlf4D74xcRHG3O5kRLA7CNdUA65%2bv7AwH0DY5gQj%2bFoeER6CYmodFNwuFZLHCJldJi248D7MKygIgCoUH1ADo62nnikXJuavZ7ZmZ61cTE9tMBBAD5PIkENLTLotVCp9NhcnKSJx3Hx8d5m/JuGo0Wer2eJx7l/HxxZnjbOULyOQHalzPMzWKgrzdzMKKtFTqtBlP6SX44oqO9DZcbG9Db3YWe7k6YjMo7xbrtogPkWICUlpn58LTXH06kEWNjoECYhkRDpNQV7d7Sdn48nampLyKBn/UlWopkzgtQUKTfbrEApbIpiCEQjO4gtCYn%2brUGXusYGVwCoyA/MTJhdvHAaczgwIzNx5%2bhJKjRHeJtiggpulQ6tXFbAdDKAJhQyAck4jHG%2bi04f66anwXq6%2bnGpfo6dHdeQxejxq8uYYKJRXdXJxeJ/t4e1NfVwpTd2FA6oaEUL9Bh6S0FoHHMwY/GKJVYVGRAxBEJh/jOkNfjhsftQlAQGAX4jlEoKEBgplII%2bGGeN0GMhNc1kC96zDx83jIAaFeoTGXEObYSlf0WfmaHE2PN6kEbqtRWXp8bsuP8sIMTtTllr8tEaW26tzL7/Nn89xURHZOlCRMHbNlZYToVRiUck/gq0LlhXz6FZIpxWsySrwRl%2boresQplco7ZQ1J9W8ABt1MhDpD/c2TDASDZrxu2oX7EhrotpvoRJj5sLOXXjCXziLe6/BdGXHeG5SG5VQAAAABJRU5ErkJggg==' /%3e%3c/svg%3e)
Diagram taken from here.
Fortunately, we will also be hosting our project on our EC2 instance. This simplifies our setup greatly.
Sign into AWS here: https://www.awseducate.com/signin/SiteLogin
Setting up your EC2 instance
Please consult the "Setting up your EC2 instance" section of Uploading BearChat to Amazon EC2. If you already have an EC2 instance set up, you may partially or completely skip this section.
Setting up your Neptune database
- Go to the AWS console.
- Search "Neptune" in the search bar and click on the "Neptune" option in the dropdown. This should take you to Neptune's dashboard.
- Click on "Create database." In the "Connectivity" section, ensure that the "Virtual Private Cloud (VPC)" option matches to your instance's VPC ID. Every other option can be kept default. You may choose a production database or a development database at your discretion. We recommend you use a development database first and set up a production database later.
- Create the database.
- After you create your database, go back to the Neptune dashboard and click on your newly created database cluster. Take note of the cluster endpoint (this should be a URL) and Port (default 8182).
SSHing into your EC2 instance
Please consult the "SSHing into your EC2 instance" section of Uploading BearChat to Amazon EC2.
You may also follow the guide from the AWS docs: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html
If you having trouble connecting, make sure you are using the correct private key and logging in as the user ec2-user
instead of root
. If you are using PuTTY (Windows only), make sure you convert your .pem
file to a .ppk
file.
Connecting to your Neptune database
- SSH into your EC2 instance.
-
Follow the instructions in the AWS docs here: https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-console.html
- You may run into an issue when you try running the command
cp {@jre_path}/lib/security/cacerts /tmp/certs/cacerts
. If you are using a freshly provisioned EC2 instance, you can ignore this step.
- When you see
your-neptune-endpoint
, use your cluster endpoint.
- If you are experiencing "Host did not respond in a timely fashion," please see the section "Configuring Security Group" below.
- The AWS docs provide the example query
g.V().limit(1)
in order to test your connection to the Neptune database. If you'd like, you can copy paste the following commands to populate your database with test data:
g.addV().property("uuid", 123456)
g.addV().property("uuid", 654321)
g.V().has("uuid", 123456).bothE("friends with").where(otherV().has("uuid", 654321)).count()
g.addE("friends with").from(g.V().has("uuid", 123456)).to(g.V().has("uuid", 654321))
g.V().has("uuid", 123456).bothE("friends with").where(otherV().has("uuid", 654321)).count()
g.V().has("uuid", 654321).bothE("friends with").where(otherV().has("uuid", 123456)).count()
g.V().count()
Lines 1-2: add two people with uuid 123456
and 654321
.
Line 3: check if 123456
and 654321
are friends. Returns 1 if they are and 0 if they are not. Should return 0.
Line 4: adds an edge between 123456
and 654321
to indicate that they are friends.
Lines 5-6: check if 123456
and 654321
are friends. Returns 1 if they are and 0 if they are not. Both should return 1.
Line 7: check how many people are in our database. Should be 2.
You can then delete the test data by entering:
Exit the gremlin console by entering :exit
You may also make a HTTPS request to the Neptune database:
curl -X POST -d '{"gremlin":"<GREMLIN_QUERY_HERE>"}' https://NEPTUNE_CLUSTER_ENDPOINT:PORT/gremlin
You must call the HTTPS response through EC2. The HTTPS request will always fail if you execute it on your local machine.
Configuring Security Group
If the Neptune request is failing, your EC2 instance and Neptune database may be configured such that Neptune blocks connections from EC2. To fix this, perform the following steps:
- Go to your EC2 instance and take note of your EC2 security group:
' width='1537' height='335' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAEAAAAAOCAIAAAAQWY2VAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACnUlEQVRIx81WC0/bMBDu//9T0yS0oQ3KhkZBFJI2D%2bcdx3Ycv%2bKwc1IKKzC6oZV9Oll3duzeZ9936owyVjcNJqShtMa4wk1FqDPcwDxMNsRZhXGNISQNIc7fLBG8DcdvDm8zQqkQAmNclqWQSguucKabXCsJ82VZgVU1llK50LlYKdV13bQEiWut27aFefMemBHGIJskSYMgZFzIlojEE6mneMvaNgijKIqDMG5bDgZREEVCSMYoLIVhjJIUuMEDgK%2b10QeHewEp5d0Iay3ccIlpXjdw2X3f393Djph8mN/6UzgMw%2bQcHo6ANgZqoCjKJM3TNFsHAdw9JDQ8wpTrU38bvhdGAlpPNQ2i7DinMKPUAPfqzA7WDq8BbkKOgKLcobcn4Elhr6uJ%2bxNexbTREQBR4rouyorzblx4YcejstlBbwxKsiwvoKcBGUjDvvzx0zxgBFF5/ho0Bscw1nai64ToONwnaJFRykCCToYtKNOJFmpk%2bomJgN6mONTYJolN0o2hxNb1Q%2bovkIOkIfssy1arFUJoubwhlG2T24cAZAb9ADohYwyhBOq5qqo8cyUdxwgaTAJ9Jk1hgLAoihih6bVnhHPFubnxxMlcns7V5ZW59azn2dvRPL%2b/Xvbfz53deoMQv3nNHYX8USn/tZZmJM/F8ZfqYpGGETBLqlqa/pejp%2bOV6mNkTufDWGY7T/F2KT/w31s2GwKN7%2buTeU4ZYnJNTdhIv%2bq8gseNDLGIsEBUIWbCtofG1J%2bc2Tz/FwTe0IV4K32/O/7Kv51361BWtaqxwc1k2vlER7H6sdCnZzaMnlXCuxKAptn3LW7Q9dI/%2bhx/%2bJgefdKLq/7y3i4WdrUeKL3bu8EdmgD86YFWD4UPCcKox/EZAxjT/2f4CRZiNTuISyCoAAAAAElFTkSuQmCC' /%3e%3c/svg%3e)
- Go to your database instance and click on the security group:
' width='1594' height='748' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAEAAAAAeCAIAAAATj48OAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAHd0lEQVRYw81XiXLbNhD1//9UZzqTxqllS5ZpSRRJ8RJ4g/d99oGQXSW2Yzlp02JW1GIBLrAHsI9XaZa5YWwHcRgnUZKAsYOInvjICWLwcZLSMPQDGkYRjaKAgonx4v%2bBrvDTvERykygrkryQ7FgkoRdn4BUnUZwYfJymR8vWDNN2HMt2DdN0PC/N81%2bzxSRNU/af4R88vIkOnnGSnAzYbB5vb%2b9uF7f36/VOFIlpiKJ4t1xuHoXtZrOXZPN4LKuqKIosn9vM/LLdF2UJQkZgD5AEQWAeLc%2bnQRBilBmwE/fL%2b/X9%2bmH9IKyFjXkkkiw/CJsH4fFxsxUl2XFdruvXE9wMZ2VFESUxHAfHe75/JDAgQBqfDGiatu/7cRyHYeiHoW1ZF/zAJX3ftG1V1/8ZVRV8zxne6rou57CwFGLJkKaLm5tPf1xLkoLtdl0HG5qz1v5o6/7xxlXOLkbDzq8QBdgUxSwc6RwsUDXv%2biep/jnjv9PgY5ZaaHn%2bbABLNSQZfjCg6bp%2b6NvZ4FeJ%2b4KFq%2b95l4eue%2bbnbvMUiJdhOe%2b%2bDNerEs7AKUhsnIQoinGvXKWzASzRmwbJVTzdMDCnebvhFTxhLXKRd2F8WTIhchXvgmfPqsLCbKCuwSB3MYGlb1HUbCYT8slgIJ8znI02s6KC6eRCNoGvAhvwIrOkrhGHkwH8ffjesa3dbvcoCMrhUDdvpofruniFWJbj%2begimLKi2o6HddMsl2SF2DZuM1Q9hMKybS%2bgCGk2OyUMI0XVYDt2ByWW7QRh2DBttmqYhmFiFMmMXaHyqJp2UDVcmtgxyqftuFAIM3ja%2b0HAbiFsCXfNiJxpG1w/adWVTc/vIE7T%2bJJGPJmv8hwMjnyaJFVZgoeeumJOxgU2TePzZMiZqmmsmY/h9aKpm6fRedp5w%2bJ9VxY5rkXeP607D4B4F467wllIqzpvurRugyz380b2cyOq0qZrhhFU90PR9d9S25fdYAWh4Xjgw7w4HC10wSdVbbq%2bRaO8YdMYdUM9TPU4VcNY9aMbpZZPSUA9VPu2x9Knae1JM2fSuoGeuKrLfoQGLAchlDBVw8S67ZBwA0Ra3jhVMkxBM/rNeGtXn4/5yq1uSHl9LO69GsKom8KvKeonyaYHP07GyUqrjeGofgK5V/WKG0lOaMYl5oAUl4qEbk1nb1N0jShX3BiTzaTCfNp%2bq5kr9%2btedkK37DHBr0c8jajAKqAHlUBixgUykxkg2f5SMUXD2upko5Prnf5po/25N76I%2buedfrM3trq1M16Qaa1EZbU/iKYtHIzFZg8e8o12XIrKcq9AyGfeS%2bpqry5FmU%2bAfJYc1oq%2bmxd9RTnkTI8MbSTO7LQAmTRRXap54cGldlZqfuhTys4ApQFDaY5rMazmADig4TS7juV7ru864C1C8LAdG433IcE0z2XDEEDOWMfmZNsWf55enCfwLn5z12KNkO8Qf4FSGuHgg3BxxpxidMOQJmnCDMiLvIj9InSLyCvigPFgihzBAeRwvQA4mqGROEHIcPAhRNXAbeN5Ppvg%2b2HMgAr84c4SoBRcMrhbIC9wnxblzxCDvW8RR6Mw0ZXXnnjnguR7Vxa83Z1nEz8M5cNBwoWq6SjUcCznIcTm4AdJUURJ2csKQgM9qmHsJQWjxHJwY2q6bhILhs14%2bN/8HkCwdcvRAfRBFiN0DULgv%2byprrGwzViDwY08RwWJnkazeYuI7wmJ5Cx0eDeZAexz1F8n3s6735//NSXcgHKGeqj97VxHeYFsu7Y6a/UZGOTdl5JXuvV3G8ZRVoeBVWUQSvU4sud77z2vfooAivmDICwWt6Dr6y/b7W61WoMXhA0Kefc1knmnXQ7emqabpjaK6r1ULVfV4q5erRtJQVXvxrG9AAXOVT9jYA7WcCjG8Rj4j%2bLh/qxdhopb7LKRlfpu1RECHMZeBLIwzGZx1%2bgGbOveWx3bO0UAEMvQdQAY0zQBP4A9gFKmSxogwDThw0lRFHx2yrKMD/9ZPL771kCsTngE4wZU03HiCFALH%2b9X92MYPs98W83I4PT8RQaEyA7ijBAZSHxnB183OCM/AViGOy80u18L4zw5Z1dUBvSEGAxdx8bzvHsQPmAAdmwYBiKAPqQ8DWY8y4/W35D9hOzPMgeKAGM1TVNVlRwJvrgvMh5AT9iMTQs2oLHt%2bCZxNPO4VzQ/SiescLf6SATaBjUVtzZqG6qnYR5xmSGdDoeDaRpAuaikAaWIMqroEblCCKAyKmWSZlAEUz0PFdnnife%2bATwC211vO2D0MBaIq3qxGRQ6rdxmmkyzlw8fS6EkSfp%2bmH6oIfpJHD8r/UDm3a4G28m7MhqrdjqtPh4Jc/8wXJCJZymEBEAOc%2bk4A/TLGlOUl43uxW5SHym%2brD7ghRFftzuxXizjL4vw85/08xf3t9/rzW66zAsnA5AG/HMMifdjEWj7Iau6pGxB/fCB08836hFS4PsuDFtK27Ia38uclwakbfeDW%2bcNxhPTZLDUtvkNdnki4RsNV8H4wqpfagAuwd1W1HVdVfHQZeVw0WX60TPzhgF/AbwreYyybIsDAAAAAElFTkSuQmCC' /%3e%3c/svg%3e)
- For your Neptune security group, add the following inbound rule:
Custom TCP - Port range 8182 - Custom source - <your EC2 security group>
' width='1830' height='536' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAEAAAAATCAIAAACvEZzQAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAD6UlEQVRIx81XzY7bNhD2Gxe95NRTrwXyGkWRHgr0UPQB0t0iCBKg6XYDpN21JEqiJEukSP1TVD%2bSlqy13V2kWAT%2bMKDH5MyQQw6Ho8391oto7AdBkqZRHIdRRMIw3eU5L0shOKi0zNzyUoC5HNr8dv37X7e3r6%2bu37x99%2b79%2bz/%2bvLm6ur799I%2bflbKSsqosyVVbXZYDPgkDEkVRHBAShFEYxYREXhBsfd/zydbzQRBAC0mwAQkvy4FSSiElOIBxzhjLiwJUMFbseeb4gnHHC6tyCWQc8Dxvu8WOB9jinJWi6dRg0Pe9axfM3X3n0J9B98jYY/IL%2bs/Q7XvjQEITrD6OYwTHruBMtutVK6W01iN%2bZpfGUYPU3HNkc3Q4N3YW2sIpgYFRNXymA6wo6k41w3QWQsg4pkhAzEpgiyhNsjQtuOSNOpUv8hzE6r4dxqVTn9ACWMPdy3a7NM1wEbmsSzuRPrcYeLjm4TOiaJNlWZTt6K6oqhqboMZ5E5Vqu66um7/v7iKa0LzEbYEDyLM4K5OhsMYV3Fnh7mC0EHVtgsFEQ9u2Zj36QMuWQwV3DOkb2RmKcEPUTdUOejwDLAzWGOOMlzDsnDEOYCBNEriB/OiMOiBaqqYZBmXud2WAN0FZp4WsJrMIdQrI0yQRUkC9adqq7Sgri6phdVtYYk0n2t4J94Ny63CBBMaE5zmze/m%2bT5KUhBEs7wMEDkz/C3p9nOcFTMs69ZEkH%2b7IzT35cE8%2b%2bnFQVH4hh1lbH2FWfHJ21xoHtPXaHquengNr14ZRV71q1FgPCgQG1Klnm8g4gISPagKPF%2b6A1s9j%2bstg74C5rBZgDuE4n6VetdP6nJewXcJlHQj6CUyLttZHuWUdWksSc5PsF3bkwLhILGuYQ/xhaOrDhTskR30qs1/gkfqyFyf903re02U8vCEuT%2b5JKWlOoJZlFKDOyUw1SlGQIh/jsqM6iikNw4hS05liNELVFMZWhpCQEAIBJMHEAj2oo2KjRKFrjST4hx6YRbJHf%2bCqLiMCJDFNkJRNIZykWbaLbS2MWShNE0wdGfMgi9S%2bGCGKnWX7h70DeNHqqpvfNkdIgp1751eFhBNw739rh7q5vz/78q46jTBsOjzo79rWmRncdLZxsx/sO741qmocunFox75VfYOUvkGOx7Mzl82GhKX1X/nff9c94kT3ERJPzVg3jaxrRHlV1wuZV2jQYpyEmtCWVbUx3yiA%2bVK5FMLTiQ8qhFCGqoRxmqYINgQr2pzx3S/f5T98nb96kX//FfduNhdV3DvCNqPEwBeIcYBzfI7co2b2fBQ1Owz8%2bpL99A3/%2bdvixxfcv/kXxYOxVZmwgzYAAAAASUVORK5CYII=' /%3e%3c/svg%3e)
We are a student group acting independently of the University of California. We take full responsibility for our organization and this website.