From 338097a53227d49f43d5f6fb36c50b9ce4579144 Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 15:25:04 +0700 Subject: [PATCH 1/7] create test file for admin vacancy page --- assets/js/__test__/AdminVacancyPage-test.jsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 assets/js/__test__/AdminVacancyPage-test.jsx diff --git a/assets/js/__test__/AdminVacancyPage-test.jsx b/assets/js/__test__/AdminVacancyPage-test.jsx new file mode 100644 index 0000000..f77de7b --- /dev/null +++ b/assets/js/__test__/AdminVacancyPage-test.jsx @@ -0,0 +1,9 @@ +import React from 'react'; +import ReactTestUtils from 'react-dom/test-utils'; +import fetchMock from 'fetch-mock'; +import AdminVacancyPage from '../AdminVacancyPage'; +import Wrapper from './utils/Wrapper'; + +describe('AdminVacancyPage', () => { + +}); -- GitLab From 92ca1c0ccc5706ade45a1aa105ec9d8106fe3972 Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 20:26:58 +0700 Subject: [PATCH 2/7] fix admin vacancy page to pass response --- assets/js/AdminVacancyPage.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/js/AdminVacancyPage.jsx b/assets/js/AdminVacancyPage.jsx index 73ec217..008cbcd 100755 --- a/assets/js/AdminVacancyPage.jsx +++ b/assets/js/AdminVacancyPage.jsx @@ -3,12 +3,13 @@ import { Item } from 'semantic-ui-react'; import Tabs from './components/Tabs'; import Pane from './components/Pane'; import AdminVacancy from './components/AdminVacancy'; +import { response } from './object/Response'; const AdminVacancyPage = () => ( - + -- GitLab From 310cf9501097c6457df51b06c574c001f1cfbd92 Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 20:27:11 +0700 Subject: [PATCH 3/7] create test for admin vacancy page --- assets/js/__test__/AdminVacancyPage-test.jsx | 72 ++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/assets/js/__test__/AdminVacancyPage-test.jsx b/assets/js/__test__/AdminVacancyPage-test.jsx index f77de7b..f56d1f7 100644 --- a/assets/js/__test__/AdminVacancyPage-test.jsx +++ b/assets/js/__test__/AdminVacancyPage-test.jsx @@ -3,7 +3,79 @@ import ReactTestUtils from 'react-dom/test-utils'; import fetchMock from 'fetch-mock'; import AdminVacancyPage from '../AdminVacancyPage'; import Wrapper from './utils/Wrapper'; +import CompanyPage from '../CompanyPage'; +import AdminVacancy from '../components/AdminVacancy'; +import { response, response2 } from '../object/Response'; describe('AdminVacancyPage', () => { + fetchMock.get('*', { data: 'value' }); + + const adminUser = { + role: 'admin', + data: { + url: 'http://localhost:8001/api/users/8/', + username: 'Tutuplapak', + email: '', + is_staff: false, + company: { + id: 3, + user: { + url: 'http://localhost:8001/api/users/8/', + username: 'Tutuplapak', + email: '', + is_staff: false, + }, + name: 'Tutuplapak', + created: '2017-03-28T07:30:10.535000Z', + updated: '2017-03-28T07:30:10.535000Z', + description: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla aliquet semper neque a fermentum. Duis ac tellus vitae augue iaculis ultrices. Curabitur commodo et neque nec feugiat. Morbi ac diam vel nunc commodo cursus. Phasellus nulla sapien, hendrerit vitae bibendum at, sollicitudin eu ante. Maecenas maximus, ante eu sollicitudin convallis, mauris nunc posuere risus, eu porttitor diam lacus vitae enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse at lectus a elit sollicitudin tempor. Nullam condimentum, justo nec tincidunt maximus, neque mi vulputate leo, sit amet lacinia massa ex eget sem. Duis ac erat facilisis, fringilla mauris in, consequat neque. In et neque consequat, vehicula magna at, efficitur ante. Mauris ac lacinia nibh.\r\n\r\nProin sagittis, lectus quis maximus varius, libero justo sollicitudin augue, non lacinia risus orci a enim. Curabitur iaculis enim quis ullamcorper commodo. Vivamus id nisi rhoncus, dignissim tellus quis, interdum est. Fusce sollicitudin eu libero ac feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper posuere ex, sed accumsan libero iaculis faucibus. Fusce laoreet ac ligula ut consectetur. Donec tortor mauris, rutrum at sodales et, viverra in dolor. Sed bibendum elit et maximus volutpat. Phasellus justo ipsum, laoreet sit amet faucibus eu, ultricies suscipit mauris. Nullam aliquam libero eu ante ultrices mattis. Donec non justo hendrerit neque volutpat placerat. Ut euismod est nec sem mollis, sit amet porttitor massa rhoncus. Aenean id erat sit amet nunc ultrices scelerisque non in ipsum. Curabitur sollicitudin nulla id mi accumsan venenatis.', + verified: false, + logo: + 'http://localhost:8001/files/company-logo/8a258a48-3bce-4873-b5d1-538b360d0059.png', + address: 'Jl. Kebayoran Baru nomor 13, Jakarta Barat', + }, + supervisor: null, + student: null, + }, + }; + + const companyUser = { + role: 'company', + data: { + url: 'http://localhost:8001/api/users/8/', + username: 'Tutuplapak', + email: '', + is_staff: true, + company: { + id: 3, + user: { + url: 'http://localhost:8001/api/users/8/', + username: 'Tutuplapak', + email: '', + is_staff: false, + }, + name: 'Tutuplapak', + created: '2017-03-28T07:30:10.535000Z', + updated: '2017-03-28T07:30:10.535000Z', + description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla aliquet semper neque a fermentum. Duis ac tellus vitae augue iaculis ultrices. Curabitur commodo et neque nec feugiat. Morbi ac diam vel nunc commodo cursus. Phasellus nulla sapien, hendrerit vitae bibendum at, sollicitudin eu ante. Maecenas maximus, ante eu sollicitudin convallis, mauris nunc posuere risus, eu porttitor diam lacus vitae enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse at lectus a elit sollicitudin tempor. Nullam condimentum, justo nec tincidunt maximus, neque mi vulputate leo, sit amet lacinia massa ex eget sem. Duis ac erat facilisis, fringilla mauris in, consequat neque. In et neque consequat, vehicula magna at, efficitur ante. Mauris ac lacinia nibh.\r\n\r\nProin sagittis, lectus quis maximus varius, libero justo sollicitudin augue, non lacinia risus orci a enim. Curabitur iaculis enim quis ullamcorper commodo. Vivamus id nisi rhoncus, dignissim tellus quis, interdum est. Fusce sollicitudin eu libero ac feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper posuere ex, sed accumsan libero iaculis faucibus. Fusce laoreet ac ligula ut consectetur. Donec tortor mauris, rutrum at sodales et, viverra in dolor. Sed bibendum elit et maximus volutpat. Phasellus justo ipsum, laoreet sit amet faucibus eu, ultricies suscipit mauris. Nullam aliquam libero eu ante ultrices mattis. Donec non justo hendrerit neque volutpat placerat. Ut euismod est nec sem mollis, sit amet porttitor massa rhoncus. Aenean id erat sit amet nunc ultrices scelerisque non in ipsum. Curabitur sollicitudin nulla id mi accumsan venenatis.', + verified: false, + logo: 'http://localhost:8001/files/company-logo/8a258a48-3bce-4873-b5d1-538b360d0059.png', + address: 'Jl. Kebayoran Baru nomor 13, Jakarta Barat', + }, + supervisor: null, + student: null, + }, + }; + + it('renders without problem', () => { + const adminVacancyPage = ReactTestUtils.renderIntoDocument( + + + , + ); + + return expect(adminVacancyPage).to.exist; + }); }); -- GitLab From 3652ad7192739e4094cfd93e1d672664d04ff84a Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 20:29:22 +0700 Subject: [PATCH 4/7] remove unused imports --- assets/js/__test__/AdminVacancyPage-test.jsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/assets/js/__test__/AdminVacancyPage-test.jsx b/assets/js/__test__/AdminVacancyPage-test.jsx index f56d1f7..0eb9c29 100644 --- a/assets/js/__test__/AdminVacancyPage-test.jsx +++ b/assets/js/__test__/AdminVacancyPage-test.jsx @@ -3,9 +3,6 @@ import ReactTestUtils from 'react-dom/test-utils'; import fetchMock from 'fetch-mock'; import AdminVacancyPage from '../AdminVacancyPage'; import Wrapper from './utils/Wrapper'; -import CompanyPage from '../CompanyPage'; -import AdminVacancy from '../components/AdminVacancy'; -import { response, response2 } from '../object/Response'; describe('AdminVacancyPage', () => { fetchMock.get('*', { data: 'value' }); -- GitLab From 40afb69b3aca9b521fe5331e9ff088b6d8f35a4c Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 21:56:01 +0700 Subject: [PATCH 5/7] delete AdminVacancyPage because it is actually unused --- assets/js/AdminVacancyPage.jsx | 19 ----- assets/js/__test__/AdminVacancyPage-test.jsx | 78 -------------------- assets/js/index.jsx | 2 - 3 files changed, 99 deletions(-) delete mode 100755 assets/js/AdminVacancyPage.jsx delete mode 100644 assets/js/__test__/AdminVacancyPage-test.jsx diff --git a/assets/js/AdminVacancyPage.jsx b/assets/js/AdminVacancyPage.jsx deleted file mode 100755 index 008cbcd..0000000 --- a/assets/js/AdminVacancyPage.jsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { Item } from 'semantic-ui-react'; -import Tabs from './components/Tabs'; -import Pane from './components/Pane'; -import AdminVacancy from './components/AdminVacancy'; -import { response } from './object/Response'; - -const AdminVacancyPage = () => ( - - - - - - - - -); - -export default AdminVacancyPage; diff --git a/assets/js/__test__/AdminVacancyPage-test.jsx b/assets/js/__test__/AdminVacancyPage-test.jsx deleted file mode 100644 index 0eb9c29..0000000 --- a/assets/js/__test__/AdminVacancyPage-test.jsx +++ /dev/null @@ -1,78 +0,0 @@ -import React from 'react'; -import ReactTestUtils from 'react-dom/test-utils'; -import fetchMock from 'fetch-mock'; -import AdminVacancyPage from '../AdminVacancyPage'; -import Wrapper from './utils/Wrapper'; - -describe('AdminVacancyPage', () => { - fetchMock.get('*', { data: 'value' }); - - const adminUser = { - role: 'admin', - data: { - url: 'http://localhost:8001/api/users/8/', - username: 'Tutuplapak', - email: '', - is_staff: false, - company: { - id: 3, - user: { - url: 'http://localhost:8001/api/users/8/', - username: 'Tutuplapak', - email: '', - is_staff: false, - }, - name: 'Tutuplapak', - created: '2017-03-28T07:30:10.535000Z', - updated: '2017-03-28T07:30:10.535000Z', - description: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla aliquet semper neque a fermentum. Duis ac tellus vitae augue iaculis ultrices. Curabitur commodo et neque nec feugiat. Morbi ac diam vel nunc commodo cursus. Phasellus nulla sapien, hendrerit vitae bibendum at, sollicitudin eu ante. Maecenas maximus, ante eu sollicitudin convallis, mauris nunc posuere risus, eu porttitor diam lacus vitae enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse at lectus a elit sollicitudin tempor. Nullam condimentum, justo nec tincidunt maximus, neque mi vulputate leo, sit amet lacinia massa ex eget sem. Duis ac erat facilisis, fringilla mauris in, consequat neque. In et neque consequat, vehicula magna at, efficitur ante. Mauris ac lacinia nibh.\r\n\r\nProin sagittis, lectus quis maximus varius, libero justo sollicitudin augue, non lacinia risus orci a enim. Curabitur iaculis enim quis ullamcorper commodo. Vivamus id nisi rhoncus, dignissim tellus quis, interdum est. Fusce sollicitudin eu libero ac feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper posuere ex, sed accumsan libero iaculis faucibus. Fusce laoreet ac ligula ut consectetur. Donec tortor mauris, rutrum at sodales et, viverra in dolor. Sed bibendum elit et maximus volutpat. Phasellus justo ipsum, laoreet sit amet faucibus eu, ultricies suscipit mauris. Nullam aliquam libero eu ante ultrices mattis. Donec non justo hendrerit neque volutpat placerat. Ut euismod est nec sem mollis, sit amet porttitor massa rhoncus. Aenean id erat sit amet nunc ultrices scelerisque non in ipsum. Curabitur sollicitudin nulla id mi accumsan venenatis.', - verified: false, - logo: - 'http://localhost:8001/files/company-logo/8a258a48-3bce-4873-b5d1-538b360d0059.png', - address: 'Jl. Kebayoran Baru nomor 13, Jakarta Barat', - }, - supervisor: null, - student: null, - }, - }; - - const companyUser = { - role: 'company', - data: { - url: 'http://localhost:8001/api/users/8/', - username: 'Tutuplapak', - email: '', - is_staff: true, - company: { - id: 3, - user: { - url: 'http://localhost:8001/api/users/8/', - username: 'Tutuplapak', - email: '', - is_staff: false, - }, - name: 'Tutuplapak', - created: '2017-03-28T07:30:10.535000Z', - updated: '2017-03-28T07:30:10.535000Z', - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla aliquet semper neque a fermentum. Duis ac tellus vitae augue iaculis ultrices. Curabitur commodo et neque nec feugiat. Morbi ac diam vel nunc commodo cursus. Phasellus nulla sapien, hendrerit vitae bibendum at, sollicitudin eu ante. Maecenas maximus, ante eu sollicitudin convallis, mauris nunc posuere risus, eu porttitor diam lacus vitae enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse at lectus a elit sollicitudin tempor. Nullam condimentum, justo nec tincidunt maximus, neque mi vulputate leo, sit amet lacinia massa ex eget sem. Duis ac erat facilisis, fringilla mauris in, consequat neque. In et neque consequat, vehicula magna at, efficitur ante. Mauris ac lacinia nibh.\r\n\r\nProin sagittis, lectus quis maximus varius, libero justo sollicitudin augue, non lacinia risus orci a enim. Curabitur iaculis enim quis ullamcorper commodo. Vivamus id nisi rhoncus, dignissim tellus quis, interdum est. Fusce sollicitudin eu libero ac feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper posuere ex, sed accumsan libero iaculis faucibus. Fusce laoreet ac ligula ut consectetur. Donec tortor mauris, rutrum at sodales et, viverra in dolor. Sed bibendum elit et maximus volutpat. Phasellus justo ipsum, laoreet sit amet faucibus eu, ultricies suscipit mauris. Nullam aliquam libero eu ante ultrices mattis. Donec non justo hendrerit neque volutpat placerat. Ut euismod est nec sem mollis, sit amet porttitor massa rhoncus. Aenean id erat sit amet nunc ultrices scelerisque non in ipsum. Curabitur sollicitudin nulla id mi accumsan venenatis.', - verified: false, - logo: 'http://localhost:8001/files/company-logo/8a258a48-3bce-4873-b5d1-538b360d0059.png', - address: 'Jl. Kebayoran Baru nomor 13, Jakarta Barat', - }, - supervisor: null, - student: null, - }, - }; - - it('renders without problem', () => { - const adminVacancyPage = ReactTestUtils.renderIntoDocument( - - - , - ); - - return expect(adminVacancyPage).to.exist; - }); - -}); diff --git a/assets/js/index.jsx b/assets/js/index.jsx index e1961af..248b944 100644 --- a/assets/js/index.jsx +++ b/assets/js/index.jsx @@ -13,7 +13,6 @@ import Server from './lib/Server'; import Storage from './lib/Storage'; import ApplicantPage from './ApplicantPage'; import TranscriptPage from './TranscriptPage'; -import AdminVacancyPage from './AdminVacancyPage'; import CompanyPage from './CompanyPage'; import SupervisorPage from './SupervisorPage'; import NotificationPage from './NotificationPage'; @@ -129,7 +128,6 @@ export default class App extends React.Component { - -- GitLab From 2a63361c291d154a69fef909386e997262db6783 Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 22:19:22 +0700 Subject: [PATCH 6/7] add package log --- package-lock.json | 144 ++++++++++++++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index ad8a424..48d09be 100755 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "optional": true, "requires": { @@ -153,7 +153,7 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true } } @@ -2555,7 +2555,7 @@ "regenerator-runtime": { "version": "0.13.3", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", "dev": true } } @@ -3402,7 +3402,7 @@ "babel-core": { "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", "dev": true, "requires": { "babel-code-frame": "^6.26.0", @@ -5665,7 +5665,7 @@ "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5676,7 +5676,7 @@ "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -5707,7 +5707,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "levn": { @@ -5743,13 +5743,13 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5859,7 +5859,7 @@ "eslint-plugin-import": { "version": "2.18.2", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", - "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "integrity": "sha1-AvEYC5Cwd7M9RHoXojJs60AKzrY=", "dev": true, "requires": { "array-includes": "^3.0.3", @@ -5888,7 +5888,7 @@ "resolve": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -6492,7 +6492,7 @@ "integrity": "sha1-nvxRzhnsVykIayKuiJ5dfQ4lZgE=", "dev": true, "requires": { - "esprima": "github:substack/esprima#0a7f8489a11b44b019ce168506f535f22d0be290" + "esprima": "github:substack/esprima#is-keyword" } }, "fast-deep-equal": { @@ -6544,7 +6544,7 @@ "fetch-mock": { "version": "5.13.1", "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-5.13.1.tgz", - "integrity": "sha512-eWUo2KI4sRGnRu8tKELCBfasALM5BfvrCxdI7J02j3eUM9mf+uYzJkURA0PSn/29JVapVrYFm+z+9XijXu1PdA==", + "integrity": "sha1-lVeUp389ly8WRLms5loP39YPHfc=", "requires": { "glob-to-regexp": "^0.3.0", "node-fetch": "^1.3.3", @@ -6835,7 +6835,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -6872,7 +6873,8 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -6881,7 +6883,8 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6984,7 +6987,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6994,6 +6998,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7019,6 +7024,7 @@ "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -7035,6 +7041,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7107,7 +7114,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7117,6 +7125,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7192,7 +7201,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7222,6 +7232,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7239,6 +7250,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7277,11 +7289,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -8279,7 +8293,7 @@ "isparta": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/isparta/-/isparta-4.1.1.tgz", - "integrity": "sha512-kGwkNqmALQzdfGhgo5o8kOA88p14R3Lwg0nfQ/qzv4IhB4rXarT9maPMaYbo6cms4poWbeulrlFlURLUR6rDwQ==", + "integrity": "sha1-yS5JZylGkU7FQHyAEWDzN04LfLQ=", "dev": true, "requires": { "babel-core": "^6.1.4", @@ -8296,7 +8310,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", "dev": true } } @@ -8851,7 +8865,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } @@ -8981,7 +8995,7 @@ "karma-firefox-launcher": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz", - "integrity": "sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ==", + "integrity": "sha1-ZP4D3RAwD5dU1I+ev78x9slKIAw=", "dev": true, "requires": { "is-wsl": "^2.1.0" @@ -9033,7 +9047,7 @@ "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -9980,13 +9994,13 @@ "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -9995,7 +10009,7 @@ "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -10004,7 +10018,7 @@ "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -10028,7 +10042,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "p-limit": { @@ -10070,7 +10084,7 @@ "supports-color": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10079,7 +10093,7 @@ "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -10096,7 +10110,7 @@ "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" }, "moo": { "version": "0.4.3", @@ -11287,6 +11301,25 @@ "prop-types": "^15.6.2" } }, + "react-async-script": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.1.1.tgz", + "integrity": "sha512-pmgS3O7JcX4YtH/Xy//NXylpD5CNb5T4/zqlVUV3HvcuyOanatvuveYoxl3X30ZSq/+q/+mSXcNS8xDVQJpSeA==", + "requires": { + "hoist-non-react-statics": "^3.3.0", + "prop-types": "^15.5.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", + "requires": { + "react-is": "^16.7.0" + } + } + } + }, "react-chartjs-2": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.8.0.tgz", @@ -11299,7 +11332,7 @@ "react-ckeditor-wrapper": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/react-ckeditor-wrapper/-/react-ckeditor-wrapper-1.1.2.tgz", - "integrity": "sha512-/COVfezpSKFQxC/OjFoZf1PyzxTvUxzndlpGjEcajzjRgKPzSFZiCoh/VqqwGaaHJROO9pePQ9JxmJy2YlzDAQ==", + "integrity": "sha1-cvDGgo4X6mNxXV6YNvOrovhIfPM=", "requires": { "babel-runtime": "6.x", "classnames": "2.x", @@ -11338,10 +11371,19 @@ "scheduler": "^0.18.0" } }, + "react-google-recaptcha": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-2.0.1.tgz", + "integrity": "sha512-4Y8awVnarn7+gdVpu8uvSmRJzzlMMoXqdhLoyToTOfVK6oM+NaChNI8NShnu75Q2YGHLvR1IA1FWZesuYHwn5w==", + "requires": { + "prop-types": "^15.5.0", + "react-async-script": "^1.1.1" + } + }, "react-hot-loader": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz", - "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==", + "integrity": "sha1-b5KHcyaVjHywE0tRJHRReGkSYII=", "dev": true, "requires": { "global": "^4.3.0", @@ -11354,7 +11396,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } @@ -12582,7 +12624,7 @@ "starwars": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/starwars/-/starwars-1.0.1.tgz", - "integrity": "sha512-d23qkhEuFNlHas4/w2J6ZF6qS7jqy8OK4N3gfQbtTk/5Lt1wKe+xv0cIweuNxwtwBGVXvmsLV2mdUOBKfj12cA==" + "integrity": "sha1-+OIWt4KUs/y/ytJbRPJxF543U9U=" }, "static-extend": { "version": "0.1.2", @@ -13666,7 +13708,7 @@ "acorn": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha1-AIdQkRn/pPwKAEHR6TpBfmjLhW4=" + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==" }, "big.js": { "version": "5.2.2", @@ -13684,7 +13726,7 @@ "loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { "big.js": "^5.2.2", "emojis-list": "^2.0.0", @@ -13766,7 +13808,7 @@ "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -13777,7 +13819,7 @@ "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -13823,7 +13865,7 @@ "loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -13900,7 +13942,7 @@ "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -13915,7 +13957,7 @@ "yargs": { "version": "13.2.4", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha1-C1YreUAW65ZRuYvTes82SqXW3IM=", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -14049,7 +14091,7 @@ "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -14091,7 +14133,7 @@ "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -14233,7 +14275,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "string-width": { @@ -14260,7 +14302,7 @@ "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -14301,7 +14343,7 @@ "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "dev": true, "requires": { "async-limiter": "~1.0.0" @@ -14310,7 +14352,7 @@ "yargs": { "version": "12.0.5", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { "cliui": "^4.0.0", -- GitLab From 9a45fd922dbbdfa6c9a185e759948ae884354452 Mon Sep 17 00:00:00 2001 From: Alya Putri Date: Fri, 6 Dec 2019 22:58:43 +0700 Subject: [PATCH 7/7] delete .DS_Store --- .DS_Store | Bin 10244 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100755 index e6072678a3fefd13bceb8078debb57f59ffdb6dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHM&2Jk;6n~SL)^-x&r1>ZUB#Wq0r6y6@l12ytu9FBE3JGyk5+x;F+Z%V=^{&}n z=c6Xb7ygEpGbc{`2MA7ZLgK`c0~d}+h;#Y9nRU9mUejY~v=hy~=h^q>bSAbeHfUonJI$NM~sgBE<+QB^b3Udt_N&JO=t*SvcbpWn1?^OV;rw+;PpFE_DlTb^cEx+9g1 znhufOPYtVP9~SMFRdZ!OW%VMR&ZIMYxv6%0VK%>bo-nLGU@3{ zSKle!Z5%&re{u5VBe_r#ex#vM_51Ys7~Clg2W7`HZL5wpmLI1Y;HlCBfa%bj1gk+! zv@yK%bW9C0!_bMZpcjNVODlms_Q@bK3b*(>qBDrzEjozw45@*wfbp_amqwn$j11Iy z)Z>WGG#2t_KqrN@XpoBBO|1f4^!yR?ngD!I|cBJUM*p)&C@2ht< z4cm9QM)klCT;ls~;QBq6>xQmOc4&Cy<O_=T~FvB}A)>5G%EjKBKYUhYCgt3IeZ z9E6r_({_qxOW(_lx(I8fs%@=1`T;`NmZu+iW#b`UjYkwV^x9`nn>LS|kePVeAUl2E z(RFL5?ijVT{e4&WwgUV%k5+YT(_FV*!!vAadsmL`>5Y=LZ(~HB!CI4Fxwm!41?|z< z+SVLLv+8>B_>QSnbaTxr+MZ`OwhXL-XD){;1qE!)x|wXR;y6h2f84uDtaCbq&ZeNG*EMBmVN^dtR3f6zblM2v_j@rJk} zX2qgd5(QBbABbDx6R{z7l>R_BUcc`5=Mzx_)7Q$8?L3A^r^)!OHrgDvjEd)SOY`;) zZ&Xf@p%^7kFFjNrlTnt`5!{tpnDUDVi-L^=?0V>AL=^yjY6KCfgu-EJ>(w!L;; zWn1uZ*_N{@O5bezHD1Q7G-9_5Z6J`|MCSYmbRGe(7O@i!C?WJlA{sUKFdZClTdc_n}?IEIEO&w;`{CdRR$MV&EfPsJ|5CAQfF7%Y}A8t}6%G zc{+qn1>>k)6*F&%Z*bn@5uG_66Z#6_c(h=n&>W^BeavGHe8}b0*-g?0Qfb_L*j~Z; zjP>;OtR6U}278$9=|M#m4LnJK!@Q|P5LFMOo{NT^=@*aq`1@N+fFE9hzQ4}1?^ZI81-#z-?43qnRa{tG@ J>8#%W{{=?a4k!Qs -- GitLab